Vous êtes sur la page 1sur 59

UNIVERSITÉ DE SOUSSE

ECOLE NATIONAL D’INGENIEURS DE SOUSSE


(ENISo)

PROJET DE FIN D’ETUDE

ELECTRONIQUE INDUSTRIELLE
OPTION : CONCEPTION DES SYSTEMES ELECTRONIQUE
(2ème promotion)

CONCEPTION ET REALISATION D’UN OUTIL


D’INSPECTION OPTIQUE COMPLEMENT
TEST

Élaboré par : SALEM Nizar


BEN AICHA Anis

Encadré par :
Mr.KAANICHE Khaled (ENISo)
Mr. JEMMALI Saber (ENISo)
Mr. DOUKALI Mohamed (SAGEM)
Mr.BARKANA Abdelhafidh (SAGEM)

Année universitaire : 2008/2009


Dédicaces

Parce que c’est elle qui m’a soutenu, encouragé et


aidé tout au long de mes études et de ma vie en
général,
je dédie ce travail à ma famille.

Je dédie ce mémoire à l’âme de mes deux sœurs


Nawel et Nayla que je n’oublierai jamais.

À mon père Mohamed Taher pour son grand amour


et ses sacrifices.

À ma mère Nafissa que je l’aime beaucoup.

À ma chère fiancée Sassia pour son amour et son


aide.

C’est à ma famille que je dois toutes mes réussites et toute


ma vie, c’est elle l’origine de tous les beaux moments que j’ai
vécus.

NIZAR
Dédicaces

ANIS
Résumé

Les machines de vision ont pris une grande importance dans l’industrie de nos jours vu la bonne
qualité d’inspection qu’elles fournissent aux industriels, basée sur l’acquisition des images par une
caméra normale/ Intelligente et de haute résolution.
Le projet était proposé dans le cadre de réaliser une application dont le principe est celui de
la machine de vision mais avec des méthodes et des moyens plus simples. Pour cela, on a développé
sur le visual C++ une application qui se présente en une interface utilisateur permettant la
connexion d’une caméra, avec sortie USB, à un ordinateur présentant une bonne capacité de
mémoire ensuite la configurer et prendre une image pour la carte de référence ainsi que les cartes de
tests par suite.
Cette application réalise une inspection, sur les composants sélectionnés par l’opérateur,
basée sur le calcul du nombre des pixels dont les valeurs de rouge « R », vert « G » et bleu « B »
de ces pixels sont situées chacun dans une zone bien définie et dont les bords de l’intervalle sont
comprises entre « 0 » et « 255 ».
Ce calcul se fait pour la carte référence ainsi que la carte à tester, ensuite on fait la
comparaison avec des seuils bien déterminés pour vérifier si le composant est absent,décalé ,orienter
ou bon à chaque fois ou bien la zone sélectionnée est vide au cas où l’opérateur a mal sélectionné le
composant.
Le résultat de l’application sera un rapport qui présente le résultat de l’inspection en
spécifiant le nombre des composants inspectés et le taux pour chaque type de défaut et de plus un
fichier texte dans le répertoire de l’application va contenir, à chaque fois quand fait l’inspection, la
liste des composants inspectés.

Mots-clés :

machines de vision
Abstract

The machine vision have assumed great importance in industry today because of the good
quality of inspection that they provide to manufacturers, based on the acquisition of images by a
camera normal / Intelligence and high resolution.
The project was proposed in part to make an application that has the same principle as the
machine vision, but with simpler methods and ways. This was why we developed on visual C + +
is an application that presents a user interface for connecting a camera with USB output to a
computer, whose memory has a big capacity, and then configure it to take an image for Reference
card and for cards to be tested then.
This application carries out an inspection on the components selected by the operator,
based on calculating the number of pixels whose values in red "R", green "G" and blue "B" are
located in each zone well defined so that the edges of the interval range from "0" and "255".
This calculation is done for the reference card and the tested card, then the comparison is
done with determined thresholds to check if the component is missing, or shifted right each time,
or the selected area is empty if l 'operator has selected the wrong component.
The result of the application will be a report which presents the results of the inspection,
specifying the number of components inspected and the rate for each type of defect and also a text
file in the application directory that will contain, each time the inspection is done, the list of
components inspected.


: 
REMERCIEMENTS

Qu’il nous soit permis d’exprimer nos sincères remerciements à toutes les personnes
qui n’ont pas manqué de nous donner aide et collaboration pour l’élaboration de ce
projet.
nous remercions spécifiquement :

- Monsieur Sabeur Jemmali pour son encadrement attentionné, ses encouragements


et ses précieux conseils et suggestions.
- Monsieur Khaled Kaaniche pour la confiance qu’il nous a témoigné, sa grande
disponibilité et pour les solutions qu’il a mis à notre disposition.
-Monsieur le chef service test à Sagem Tunisie Communication usine 1, Monsieur
Mohamed Doukali qui nous’a bien accueilli dans son honorable service et pour les
moyens qu’il a mis à notre disposition pour mener ce travail.
-Monsieur Abdelhafidh Barkana pour son encadrement attentionné, ses précieux
conseils et suggestions.

nous remercions les membres du jury qui ont bien voulu accepter de valoriser ce
travail.
Nous adressons nos remerciements à tous les enseignants du l’ENISo qui nous ont
donné tous les bases nécessaires pour l’élaboration de ce travail

Nous tenons remercier Madame la directrice de l’ENISo, Madame Najwa Essokri


Ben Amara pour ses encouragements et ses précieux conseils.

Que toutes les personnes de Sagem Tunisie Communication reçoivent l’expression


de notre gratitude pour leur aide.

Je remercie également Messieurs Hasen Makki pour ses précieux conseils ainsi que
tous les membres du département électronique industrielle de l’ENISo.

En espérant être digne de vos confiances


Soyez assurés de mes considérations

Nizar et Anis
Table des matières

Remerciements........................................................................................................................
Résumé (arable, français et anglais) (mots clés compris)........................................
Table des matières
Liste des figures ……………………………………………………………………………
Liste des tableaux………………………………………………………………………….
Introduction………………………………………………………………………………….
Chapitre 1 : Système de vision dans l’industrie
I. Introduction ……………………………………………………………………………
II. Contrôle qualité dans l’industrie ….………………………………
II.1. Définition…………………………………………………………………………
II.2. Vision industrielle……………………………………………………………….
2.1. Principe ……………………………………………………………..
2.2. Types de système de vision ………………………………………….
2.3. Constitution d’un système de vision …………………………………
2.4. Avantages et Inconvénients d’une machine de vision………………..
III. Evolution des systèmes de vision industriels………………………………………….
III.1. Introduction…………………………………………………………………….
III.2. Historique……………………………………………………………………..
III.3. Etapes de fonctionnement d’un système de vision ……………………………
IV. Cahier des charges et problématique…………………………………………………
IV.1. Introduction……………………………………………………………………
IV.2. Intérêt du projet………………………………………………………………
IV.3. Cahier de charge………………………………………………………………
V. Conclusion
Chapitre 2 : développement de cahier de charge
I- Introduction :
II- Architecture de la machine :
II-1. Conception :
II-2. Etapes d’inspection :
III- Système de commande (hors ligne/en ligne):
III-1.Guide d’étude des modes de marches et d’arrêts(GEMMA) :
III-2.GRAFCET du conduit :
III-3.GRAFCET du fonctionnement normal :
IV- Choix de la caméra et l’éclairage :
IV-1. Choix de la caméra:
IV-2. Choix de la carte d’acquisition :
IV-3. Choix de l’éclairage :
V- Algorithmes de traitement :
V-1. Techniques de segmentation :
V-2. Techniques de prétraitement :
Chapitre 3 : Développement de logiciel d’aide à la décision
I. Introduction :
II. Conception du logiciel :
III. Décision :
IV. Communication caméra-logiciel et acquisition de l’image :

V. Préparation des caractéristiques de carte à inspecter :


V-1. Introduction :
V-2. Le fichier RS-274X :
VI. Chargement du fichier Gerber :
1- Transformation de fichier Gerber :
a- Présentation de GC-Power Station : graphique code power station
b- Etapes à suivre :
2- Nettoyage du fichier Gerber :
a- Présentation de CAMCAD:
b- Etapes à suivre :
VII. Les bibliothèques utilisées :
1- SDL :

VIII. Phase de programmation :

1- Superposition Fichier Gerber-Image référence :


2- Sélection et sauvegarde des composants :
3- Inspection des composants par analyse et traitement d’images :
4- Résultat de test et tolérance…………………………………………………………….
5- Fonctions principales du programme :
6- Interface globale :
IX. Conclusion

Chapitre 4 : test et étude de performance


I. Test……………………………………………………………………………………
II. Etude de performance………………………………………………………………..
III. Avantage et amélioration possible…………………………………………………..

Conclusion
Bibliographie
Annexes
Table des figures

Figure 1. Fonctionnement d’un système vision ...................................................................... 17


Figure 2. Aperçu de l'outil d'inspection à réaliser .................................................................. 21
Figure 3. Ligne de production typique ................................................................................... 23
Figure 4. Dialogue opérateur machine ................................................................................... 23
Figure 5. Etats de la machine et modes de fonctionnement ................................................... 24
Figure 6. Grafcet du conduit................................................................................................... 24
Figure 7. Grafcet du fonctionnement normal ......................................................................... 25
Figure 8. Exemples des caméras à utiliser ............................................................................. 26
Figure 9. Exemples d'éclairage ............................................................................................... 27
Figure 10. Panneau de leds conçu ........................................................................................... 28
Figure 11. Etapes d'importation d'un fichier par GC Power station ........................................ 34
Figure 12. Importation du fichier et son ouverture.................................................................. 35
Figure 13. Export du fichier RS-274 .............................................. Erreur ! Signet non défini.
Figure 14. Ouverture du fichier pour le nettoyer par CAMCAD ............................................ 36
Figure 15. Image SDL d'une carte électronique ...................................................................... 37
Figure 16. Interface de l'application Max-Vision .................................................................... 46
Figure 17. Inetrface générale de l'application ......................................................................... 47
Figure 18. Affichage du composant à inspecter ...................................................................... 48
Figure 19. Inspection des composants sélectionnés ................................................................ 49
Figure 20. Rapport généré après l'inspection .......................................................................... 49
Introduction générale

Récemment, il s’est apparu dans l’industrie le concept de vision industrielle qui s’agit
en fait d’une application de contrôle non destructif de processus de fabrication. Cette
application est principalement constituée d'une caméra avec objectif pour la prise d'images
des produits sur les lignes de production, d'un éclairage spécifique pour mettre en évidence
les défauts, d'un ordinateur de visualisation et de traitement des images lié à un automatisme
d'éjection.

Dans ce sens, SAGEM s’est orienté vers l’introduction de ce concept dans ses lignes
de production mais l’inconvénient était le coût élevé d’une machine de vision, qui de nos
jours est arrivée à un stade d’évolution assez développé vue les recherches et les
investissements que font les chercheurs et les industriels pour améliorer la qualité
d’inspection afin d’améliorer par suite la qualité de leurs produits industriels.

En se basant sur ses données et pour des raisons de coûts comme on a vu, vient l’idée
de ce projet qui avait comme but de réaliser un petit exemplaire d’un outil de vision qui a
pour rôle de faire l’inspection sur les cartes produites dans les lignes de production SAGEM
et qui peut être développer à long terme pour arriver au stade d’une machine de vision.

En ce qui suit, je présente en premier lieu la situation du système de vision dans


l’industrie ainsi que son importance, en second lieu, je passe aux spécifications techniques et
conception de l’outil d’inspection dans le cadre de mon projet, ensuite, les étapes de
développement de l’application d’inspection et finalement l’étape test, validation et étude de
performances de l’application.
PREMIER CHAPITRE

Système de vision dans


L’industrie
L’industrie
I- Introduction :

Le contrôle de la qualité dans l'industrie fait appel à des techniques scientifiques pour
garantie la bonne qualité d'un produit ou d'un service. Les techniques de contrôles varient
d'un produit à l'autre, mais les principes de base restent les mêmes. Dans ce contexte, on
s’intéresse à un aspect du contrôle qualité qui est la vision industrielle.
La vision industrielle est une réponse à ces préoccupations pour les opérations
de contrôles de la production. En effet les machines de vision industrielle permettent un
contrôle de la production à haute cadence et assurent une bonne répétabilité du contrôle (à la
différence d'un opérateur, une machine n'est jamais fatiguée et ses critères de décision ne
varient pas).
Elle est définie selon l'UKIVA comme étant « l'application des techniques de vision
artificielle à des problématiques de production ». Son premier objet est « d'essayer de
reproduire le plus fidèlement possible la perception visuelle humaine au moyen d'un capteur
optique associé à un système de traitement de données : le couple caméra-ordinateur».
Dans ce contexte, vient la définition de la vision industrielle comme étant la construction des
machines aptes à traiter un ensemble connu de tâches visuelles.
La vision industrielle stricto sensu concerne les problématiques de production. Il
s'agira de souvent de problèmes de contrôle qualité ou de guidage, dans le cadre d'une
automatisation d'une chaîne de production.

II- Contrôle de la qualité dans l’industrie :


II-1- Définition :

Le contrôle qualité est un aspect de la gestion de la qualité. Il est une opération


destinée à déterminer, avec des moyens appropriés, si le produit (y compris, services,
documents, code source) contrôlé est conforme ou non à ses spécifications ou exigences
préétablies et incluant une décision d'acceptation, de rejet ou de retouche.
Un contrôle est défini par un certains nombre de paramètres

 La fréquence de contrôle : systématique, par prélèvement


 la ou les caractéristiques des produits qui doivent être contrôlé.
 la méthode de contrôle : par mesure, par comparaison, par appréciation (contrôle
visuel par exemple).
 les moyens de contrôle à utiliser : appareil de mesure, référentiel
 l'entité qui réalise le contrôle : personnel de fabrication (autocontrôle4), personnel
spécialisé, personnel d'encadrement, machine (automatisation du contrôle).
Pour choisir les caractéristiques d'un contrôle, il faut tenir compte des contraintes
techniques (criticité de la caractéristique à contrôler, précision nécessaire de l’appareil de
mesure, qualification du personnel effectuant le contrôle etc) mais également des contraintes
économiques. L'aspect économique joue sur la nature du contrôle, les moyens à engager et
sur les caractéristiques à contrôler. Il faut choisir en priorité, les caractéristiques ayant une
influence sur la sécurité, la fonctionnalité du produit.
II-2- La vision Industrielle :

II-2-1. Principe :

La vision industrielle consiste à prendre une ou plusieurs images de l’objet à contrôler


ou visualiser. Les images sont obtenues grâce à une ou plusieurs caméras. Ensuite les images
sont numérisées pour être utilisables par un logiciel de traitement d’image le plus souvent
dédié au contrôle considéré. Le traitement de l’image ayant été réalisé une décision est prise
par rapport à des critères prédéfinis et une action est effectuée.
Il existe plusieurs types de vision :
 Vision 2D : Appelée la vision « classique », la vision dans un plan est la plus
répandue et la mieux maitrisée sur le marché aujourd'hui. On peut trouver
des caméras 2D en niveaux de gris ou en couleur. Ces caméras peuvent
être linéaires ou matricielle.
 Vision 3D : La vision en trois dimensions est une technique en plein développement
technologique et en plein essor. Le principe peut être résumé de façon simpliste
comme suit. Un faisceau laser (rouge le plus souvent) est projeté sur l'objet à
contrôler, une caméra matricielle placée à environ 45° par rapport au plan (laser;
objet) prend une photo de la trace laser sur l'objet. Des calculs géométriques basés sur
le principe de triangulation permettent, en étudiant la courbure de la trace laser, de
modéliser l'objet considéré en 3D.
 Vision thermique : Basée sur la détection des zones de défaut (paroi plus mince…)
issues de la différence de température des zones d’un objet. Ces zones ne peuvent pas
être détectées avec une caméra classique.
 Vision Rayon X : Parfois il est nécessaire d'effectuer un contrôle non destructif d'un
produit c’est pour ça on utilise une machine de vision intégrant un rayon X.

II-2-2. Types de Systèmes de vision :

On distingue entre deux types de systèmes de vision:


• les systèmes génériques
• les systèmes spécialisés
Les premiers sont généralement constitués d'un PC et d'une carte d'acquisition et
utilisent des caméras matricielles. Les seconds ont généralement recours à des hardwares
spécifiques (cartes à DSP, par exemple) et à des capteurs spéciaux (caméras linéaires,
capteurs IR, etc.)

II-2-3. Constitution d’un système de vision :

Un système de vision industriel est habituellement constitué de l'assemblage des


constituants listés ci-dessous:

 Une ou plusieurs caméras numériques ou analogiques (noir et blanc ou couleur) munies


d'un objectif adapté aux conditions de prise d'image, à savoir distance et taille de l'objet à
prendre en image.
 Un système d’éclairage continu ou stroboscopique.
 Une carte interface entre l'ordinateur et la caméra pour numériser les images (aussi connu
sous le nom de "frame grabber" en anglais et "carte d'acquisition vidéo" en français).
Aujourd’hui de plus en plus de caméras ont la possibilité de numériser l'image
immédiatement, ce qui permet de les brancher directement sur un bus de communication
(TCP-IP, USB, IEEE-1394 etc).
 Une unité de calcul, souvent un micro-ordinateur ou un système avec processeur
embarqué, (comme un DSP).
 Un logiciel de traitement d’image.
 Un senseur de synchronisation (souvent optique ou magnétique, ou des encodeurs) qui
déclenche la caméra lorsque l’objet passe dans son champ de vision.
 Un système d'entrée/sortie digitales, ou un système de communication protocolée (c.à.d.
connexion réseau ou RS-232 ou plus souvent RS-485 pour les longues distances) pour
transmettre les données entre les différents organes.
 Un ensemble mécanique permettant de mouvoir les objets, les caméras ou d’autres
organes.

II-2-4. Avantages et Inconvénients d’une machine de vision :

Les systèmes de vision industrielle présentent plusieurs avantages :


- Le contrôle est précis (mesures géométriques, quantité,..)
- La meure est répétitive et objective
- Le temps de calcul est rapide
- Il n'y a aucune fatigue
- Le système s'adapte à des environnements difficiles
- Le contrôle intègre des connaissances d'experts
- La vision industrielle permet de gagner sur : le coût des matériaux, le coût de travail,
Il présente néanmoins des inconvénients :
- Le système est optimisé pour une application
- L'évolution et la flexibilité du système sont limitées
- Le système est sensible aux changements des conditions d'environnement

III- Evolution des systèmes de vision industriels :


III-1. Introduction :

Dans la pratique industrielle, la mise en place d'un système de vision commence par une
série de choix : la définition du système optique (objectifs, caméra, carte d'acquisition)
permet d'optimiser la résolution de la caméra à la taille de l'objet observé ; la définition de
l'éclairage permet de réduire le contexte de vision à des équivalents mathématiques simples ;
la définition des algorithmes permet la réduction et l'interprétation ; enfin, la définition du
mode de communication du système de vision permet de bâtir un réseau plus ou moins
complexe, en fonction des tâches attendues.

Fondamentalement, la vision industrielle comporte donc deux séquences, l'une où l'on


acquiert l'image, l'autre où cette image est utilisée pour un traitement applicatif commandé
par un logiciel : contrôle, mesure, automatisme… L'acquisition de l'image repose sur le
prétraitement. La qualité de l'éclairage et de l'objectif, la finesse du capteur, le
positionnement de l'objet, la vitesse et l'intégrité de transmission des signaux, la puissance de
la carte d'acquisition, l'interfaçage direct avec l'automatisme environnant sont les
caractéristiques dominantes du traitement hardware. Un système de vision standard
comprend donc d'abord une caméra. La qualité des images qu'elle capte dépend du nombre de
pixels, de la distance, de l'environnement extérieur.

Un système de vision peut se présenter sous la forme de plusieurs architectures


matérielles. La première comprend un PC :Le système de vision est alors composé d'une
caméra, d'un câble, d'une carte d'acquisition, d'un programme informatique.
Le second type d'architecture, avec capteur de vision, se développe depuis les années
2000. L'interprétation des images est effectuée dans une caméra « intelligente » qui embarque
toute la puissance de calcul indispensable. Cette réunion dans un même boîtier de la partie
acquisition et de celle traitement d'image tend à diminuer les coûts, l'encombrement, les
temps de transmission…

IV- 2. Historique :

Les premiers systèmes de vision sont apparus dans les années 80. A cette époque les
machines de vision étaient à $30.000 et $40.000 donc vu ce coût un peu élevé, les sociétés
ont essayé d’effectuer leurs propres systèmes de vision.
En bref, les premiers prototypes de systèmes de vision industrielle sont
essentiellement gloire, un peu plus intelligent comparateurs optiques. En effet, les entreprises
avaient besoin de systèmes qui peuvent suivre l'évolution des capacités de production.
Presque simultanément à l'évolution de la technologie de la puce du processeur, les
tâches des capacités de production de machines de vision ont été élargies. elles ont assumé
un rôle sans cesse croissant pour la détection de défauts, la présence ou l'absence, les mesures
géométriques de base, une partie de calibrage et / ou de tri, de la couleur en ligne et la
reconnaissance du contrôle statistique du processus. Comme les besoins de la production
augmentent jour après jour, en fait, la sophistication des systèmes de vision et de logiciels
devient donc de plus en plus demandée.
La nécessité de la grande vitesse, la précision ainsi que les mesures de vision
quantifiables pour aboutir à la bonne décision, est évidente. Par rapport aux autres
technologies, les machines de vision sont les seuls outils qui peuvent tenir à la production et /
ou de la mesure de certaines caractéristiques requises.
Pour le secteur de la production, l'état de l'art-machine intègre des systèmes de vision rapide
et de haute résolution avec des caméras CCD frame grabbers intelligents qui permettent
plusieurs types de traitement d'image. Ces systèmes combinent des optiques afin de permettre
la résolution la plus belle possible.
L’orientation vers les caméras intelligentes et les pc basés sur la vision à la norme, a
assurée une amélioration spectaculaire au niveau de la facilité d’utilisation et de la puissance
de traitement.
Finalement, les derniers progrès se concrétisent dans l’utilisation plus large de vision 3-D et
3-D caméras intelligentes en particulier ainsi que l’apparition d'autres applications qui
impliquent l'objet de rayons X ou de l'imagerie infrarouge, et plus intégrée des sociétés
fournissant des solutions de vision et de mouvement.
III-3. Etapes de fonctionnement d’un système de vision :

Illumination

Acquisition Système de machine


de l’image de vision

Image Description de
Scène
numérique 2D l’image

Feedback

Figure 1. Fonctionnement d’un système vision

Les phases d’un système de vision se répartissent de la manière suivante :


 Phase d’acquisition : concerne l'extraction de l'image sous une forme numérique.
Eclairages, optiques, caméras et cartes d'acquisition sont nécessaires pour cette étape.
Il s'agit d'une étape importante car, bien réalisée, l'acquisition permet de simplifier les
étapes de traitement et d'analyse.
 Phase du traitement : Souvent appelée prétraitement, le traitement regroupe un
ensemble de techniques destinées à améliorer la qualité de l'image. Une première
étape, appelée restauration, vise à corriger les déformations géométriques, provoquées
par l'optique et à la caméra, et les variations d'éclairage. Une seconde étape, appelée
amélioration, vise à réduire le bruit et à augmenter les caractéristiques de l'objet
contenant les informations souhaitées.
 Phase de l’analyse : elle a pour but l'extraction de l'information caractéristique
contenue dans une image. Elle recourt à diverses techniques telles que celles de
segmentation (seuillage, détection de frontière, etc.).
 Phase d’interprétation : Sur base des caractéristiques extraites telles que celles des
positions, orientations, types,…etc, on dégage la liste des défauts détectés lors de
l’inspection.

V- Cahier de charge et problématique :


IV-1. Introduction :

L’activité principale de la chaîne de sous-traitance Sagem Tunisie Communication est


la production des cartes électroniques, pour cela elle dispose d’une dizaine de lignes de
production : des lignes CMS, des lignes vagues et des lignes d’intégration.
Comme chaque procédure de production et dans le but de garantir la bonne qualité
ainsi qu’être conforme à ce que ses clients attendent d’elle, Sagem dispose d’une phase très
importante lors de la production qui est la phase du test.
En effet, il existe deux types de test qui sont : le test « In Situ » et le test fonctionnel servant
respectivement à tester certains composants de la carte ou la fonctionnalité de toute la carte
mise en tension.
Le problème dans ces deux types de test que parfois on ne dispose pas des outils
nécessaires pour accéder à certains types de composants vu leurs tailles ou leurs
positionnements d’où la nécessité d’avoir un outil d’inspection qui nous permet à avoir les
données nécessaires sur ces composants là afin de vérifier leurs critères.
IV-2. Intérêt du projet:

Dans le but d’assurer une meilleure qualité de ces produits, SAGEM a équipé certains de
ces lignes de production par des machines de vision afin d’accomplir le test nécessaire de
certains composants.
Cependant, ces machines qui sont assez performantes coûtent très cher d’où vient l’idée
d’essayer de réaliser une machine de vision.
Mais vu que la réalisation d’une telle machine n’est pas assez simple et nécessite un
intervalle de temps assez important et des grands investissements alors le projet s’est réduit à
la conception de machine de vision ,son architecture et son fonctionnement automatique ainsi
la réalisation d’un outil d’inspection assurant certaines fonctionnalités de test des composants
électroniques sur les cartes de test.
Dans ce qui suit, on aura un aperçu sur la machine de vision, ses avantages, ses inconvénients
ainsi que ses étapes ensuite on va s’intéresser à présenter le travail demandé dans ce projet.
IV-3. Cahier de charge :

Dans le cadre de ce projet, il était demandé de réaliser un outil d’inspection des


composants électroniques sur les cartes de test. Cet outil d’inspection doit nous permettre de :
• Vérifier la présence des composants
• Vérifier leurs positions ainsi que leurs orientations
• Vérifier si c’est le bon composant ou pas à partir de son image

La vérification va se faire par rapport à une carte référence appelée aussi « carte de
calibration » qui va être notre référence pour vérifier les critères indiqués au dessus.
Pour arriver à réaliser ces étapes indiquées au dessus, on a besoin de s’intéresser à
certains points qui sont :
 Comprendre les fichiers CAO (les caractéristiques des composants indiquées dedans)
et pouvoir lire et extraire les données nécessaires à utiliser.
Composant  référence+coordonnées + dimension + orientation + caractère
 Indiquer le nombre des classes pour les niveaux qui forment l’image du composant
 La phase reconnaissance avec apprentissage (comment enrichir la base)
 La phase de la validation de l’ajout des données
 Méthode de seuillage à utiliser et comment calculer le centre de gravité d’un
composant à partir de l’image traité

La partie développement de la méthode de traitement et analyse d’image ainsi que la


réalisation des interfaces va se faire sur le Visual C++ pour des raisons qui sont :
• Les logiciels tels que le « vision builder » et le « LabView » nécessitent des licences
qui sont très couteuses.
• On doit présenter une version « 0 » pour un comité qui doit valider le projet donc il
faut que l’outil informatique utiliser est gratuit.
• La partie réalisation est dépendante de la capacité d’investissement du coté service
test

VI- Conclusion :

Le contrôle de la qualité donc a connu une déviation importante après l’intégration


des systèmes de vision dans l’industrie ce qui a permis d’améliorer la qualité des cartes
produites et de performer de plus en plus les lignes de production.
On va voir dans ce qui est suit les différentes étapes de conception et de programmation du
projet.
DEUXIÈME CHAPITRE

Spécifications techniques
Et
Conception
VI- Introduction :
La machine de vision est un domaine sans cesse croissant de la recherche qui traite
l’analyse et le traitement des données de l’image. Elle joue un rôle clé dans le développement
des systèmes intelligents.
La recherche sur la vision industrielle met l’accent sur les méthodes et les systèmes
pour analyser les images ainsi que les séquences d’images. L’objectif dans la vision
industrielle de nos jours est de développer des nouvelles approches, qui fournissent les
principales représentations et qui sont robustes à l’égard des changements dans
l’environnement et sont de calcul efficace.

VII- Architecture de la machine :


II-1. Architecture :
L'organisation d'un processus de vision par ordinateur est la suivante :
 Acquisition d'une scène
 Traitement de l'image numérique brute
 Analyse de l'image corrigée
 Interprétation / Décision

Pour cela et afin de concevoir une machine de vision nous sommes obligés de
respecter certains critères pour garder le professionnalisme, donc notre machine
contient :
 Une caméra numérique
 Un bloc d’éclairage
 Un micro ordinateur
 Un automate programmable industrielle
 Un bloc d’alimentation
 Pupitre de commande
 Deux convoyeurs

On a utilisé l’outil SOLID WORKS pour développer notre modèle (voir annexe)

Figure 2. Aperçu de l'outil d'inspection à réaliser


II-2. Conception :

Lors de la conception de notre outil d’inspection, cinq étapes doivent néanmoins être
respectées:
 La définition du cahier des charges
 L'étude de faisabilité
 le choix de la caméra
 La conception de l'éclairage
 La conception logicielle
 Les tests

Dans notre cas, le cahier de charge est défini déjà dans le chapitre 1, ce qui va permet
de préciser les critères visuels, en traduisant les paramètres humains et physiques en normes
et mesures. Les exigences de la qualité seront ainsi quantifiées.
L'éclairage est fondamental car il permet de fiabiliser et de simplifier les étapes de
traitement et d'analyse. Une fois conçu l'éclairage, le capteur peut être choisi. Trois grands
critères interviennent : la nature du capteur (qui détermine sa sensibilité dans les différentes
zones du spectre), son type (linéaire ou matriciel) et sa couleur (monochrome ou couleur).
Une fois ces quatre étapes achevées, le choix des algorithmes et leur implémentation
peut être menée à bien.
L'implémentation est suivie par une phase de tests, d'autant plus critique que
l’application influe sur le bon fonctionnement d'une chaîne de production, par exemple. Le
processus se termine par la mise en production.

II-3. Etapes d’inspection :

Donc, on définit par suite la procédure d’inspection qui contient les étapes suivantes à suivre:
 Prendre une carte de référence définir les composants à inspecter de la part de
l’opérateur
 Faire l’acquisition des images de la carte de test à inspecter
 Traitement des images
 L’analyse de ces images
 Déterminer les erreurs au niveau des paramètres à inspecter en les comparant à ceux
de référence enregistrés dans une base de données contenant des différents types de
composants ainsi que leurs critères
 Afficher ces erreurs à l’aide d’une interface qui permet l’interaction de l’opérateur
avec l’application faite

VIII- Système de commande (hors ligne/en ligne):

Pour automatiser la machine on doit respecter la structure de la chaine de production,


la ligne CMS traite des cartes vierges, rangées dans des racks, et a pour rôle d’insérer les
composants CMS. Elle est composée d’un dépileur, d’une machine de sérigraphie (MPM) et
de quatre machines de posage : deux de type FUJI CP6 et deux UNIVERSAL GSM. A ces
deux dernières machines sont associés deux PTF.
La ligne CMS comporte au total trois convoyeurs permettant la liaison entre les
différentes machines.A la fin du cycle on trouve un four, des postes de retouche et un
empileur. A noter qu’au milieu de la ligne on trouve un convoyeur – portillon. Le
fonctionnement de ces machines est cadencé par un temps de pose.
Notre machine doit être installé
installé à l’entré de four, le cadence est bien respecter car le
temps de passage d’une carte dans la machine est inférieur à une minute ce qui est suffisant
pour garder le bon fonctionnement.

Figure 3. Ligne de production typique

III-1.Guide
Guide d’étude des modes de marches et d’arrêts(GEMMA) :

Le Gemma (GuideGuide d'étude des modes de marches et d'arrêts)


d'arrêts définit les différentes
procédures de marche et d'arrêt. C'est un outil de description graphique qui décrit le dialogue
entre l'opérateur
rateur et la machine.
Il aide à la conduite de la machine, à sa maintenance ainsi qu'à son évolution.
Comme pour le Grafcet, le Gemma ne présume pas de la technologie de commande.
Dialogue PC-PO.PO. Dialogue opérateur-machine
opérateur :

Figure 4. Dialogue opérateur machine


A l’aide de Gemma on va spécifier les différents états de machine et les liaisons entre
les modes de fonctionnement.

Figure 5. Etats de la machine et modes de fonctionnement

III-2.GRAFCET du conduit :

Le Grafcet décrit le dialogue entre la partie commande et la partie opérative et définit


le fonctionnement automatique.

Figure 6. Grafcet du conduit


III-3.GRAFCET du fonctionnement normal :

Figure 7.Grafcet du fonctionnement normal

IX- Choix de la caméra et l’éclairage :

IV-1. Choix de la caméra:

Suivant le produit à inspecter, nous choisissons la caméra :


– Linéaire ou matricielle?
– Analogique ou numérique?
– Monochrome ou couleur (Mono ou tri-CCD)?

• Les caméras linéaires/ matricielles : Ces caméras fonctionnent sur le même principe
qu’un scanner ou un fax. Une caméra linéaire est constituée d’une seule rangée de
capteurs. C’est le mouvement relatif de la scène par rapport à la caméra qui va
reconstituer une image par balayage. Ces capteurs permettent d’atteindre des vitesses
et des résolutions élevées (plus de 8000 pixels sur une seule ligne).

• Les caméras analogiques/numériques : Le choix entre une caméra analogique et une


caméra numérique repose sur un compromis entre le coût et les performances. Les
caméras numériques permettent d’atteindre des vitesses d’acquisition élevées, des
images très précises et un excellent rapport signal/bruit. Les caméras analogiques sont
basées sur une technologie éprouvée et sont donc plus répandues et moins chères.

• Les caméras Monochrome ou couleur : Deux technologies sont utilisées dans les
caméras couleur :
 Mono-CCD: des masques colorés placés devant chaque capteur CCD servent à
séparer les composantes RVB.
 Tri-CCD: Pour chaque pixel de l’image, trois capteurs spécifiques à chaque
composante sont sollicités. La lumière est diffractée à travers un prisme qui
oriente chaque composante vers le capteur associé.

Dans le cadre de notre projet, on a choisi les caméras suivantes vue leurs capacités au
niveau de la résolution et la possibilité de taux de réponse rapide.

Nom Type Résolution Frame RATE Interface Image


SONY 1/1.8" Sony 2456x 2056 15fps Gigabit Digital output
XCL5005 CCD Ethernet RGB each
standard 8bit
IEEE802.3ab,
1Gbps

PROCILCA CCD 2048 × 2048 15 fps Gigabit Mono8,


GE2040C Ethernet - Bayer8,
IEEE 802.3 - Bayer16,
1000baseT RGB24,

Princeton CCD 4872 x 3248 3fps CameraLink, Color


Instruments 36mm x IEEE 1394a,
EC16000 24mm GigE

Tableau 1.les caracteristique des caméras à utiliser

-SONY XCL5005- - PROCILCAGE2040C-

Figure 8. Exemples des caméras à utiliser

IV-2. Choix de l’eclairage:

L’image qui arrive au capteur de la caméra résulte de l’interaction de la lumière avec


la scène observée. Pour minimiser les traitements logiciels, il est intéressant d’obtenir un
éclairage distribué de façon parfaitement uniforme et homogène.
Malheureusement, il est très difficile en pratique d’assurer cette uniformité, et la
constance de l’intensité au cours du temps. De plus, des effets tels que les ombres portées,
qui occultent une partie de la scène, ou les reflets, qui éblouissent le capteur, détruisent par
endroit le signal. Ces défauts sont d’autant plus vrais que le champ de vue de la caméra est
important.
L’éclairage est un élément déterminant dans un système de contrôle par vision
industrielle. En fonction de la technique d’éclairage employée, on pourra faire ressortir
certains défauts. En fait, il y a deux types d’éclairage :

 Diascopique ou Rétro-éclairage :

Dans ce cas la caméra et l’éclairage sont de part et d’autre du produit à inspecter. Le


rétro-éclairage permet de mettre en évidence le contour d’un objet, son ombre.
 Épiscopique :

Dans cette configuration la caméra et l’éclairage sont du même coté par rapport au
produit à inspecter. En fonction du type de défaut que l’on veut faire ressortir, on trouve
distingue alors différentes stratégies d’éclairage.
Pour notre outil d’inspection, l’éclairage qu’on va utiliser s’agit d’un projecteur à
leds blanches haute luminosité puisqu'une régulation de courant est effectuée pour
l'ensemble des leds, ce qui leur garantie une luminosité égale.
On a deux solutions la première est d’acheter un bloc d’éclairage et la deuxième est
de concevoir notre propre bloc d’éclairage.

1ére solution:

On peut utiliser des sources d’éclairage comme les blocs d’éclairage par des Leds :

Figure 9. Exemples d'éclairage

2éme solution :
On va concevoir notre panneau de leds il est constitué de plusieurs branches de leds
montées en série. Toutes les branches sont montées en parallèle, mais au travers de transistors
montés en miroir de courant : le courant qui circule dans le circuit collecteur de chacun est
quasiment le même que celui qui circule dans le transistor Q3, voici le schéma :
Figure 10. Panneau de leds conçu

Le schéma peut être décomposé en deux parties : celle de gauche avec les transistors
Q1 et Q2 montés en générateur de courant constant, et celle de droite avec toutes les branches
de leds et les transistors restants.
• Le générateur de courant constant :

Le courant qui circule dans la led D1 dépend de la valeur de la résistance R1,


résistance qui voit à ses bornes une tension constante voisine de 0,7V. Si la résistance R1
vaut 39 ohms, cela conduit à avoir un courant de quelques 18 à 20 mA dans cette résistance,
dans la led D1 et dans le transistor Q3. La led D1 n'est pas indispensable, mais elle permet de
s'assurer en un coup d'œil qu'il circule un courant "normal" dans le générateur de courant
constant.

• Alimentation :

L'alimentation est de 24V, mais une valeur comprise entre 22V et 26V convient
parfaitement. La valeur de cette tension a été déterminée par le type et le nombre de leds en
série. Il s'agit ici de leds blanches haute luminosité présentant une chute de tension de 3,6V
chacune, la mise en série de cinq modèles identiques implique une tension minimale de 5 x
3,6V, soit 18V. L'usage d'une tension d'alimentation de 18V n'est pas possible car aucune
marge ne serait possible pour la régulation de courant par les transistors insérés dans chaque
branche.
TROISIÈME CHAPITRE

Développement de logiciel
d’aide à la décision
I- Introduction :
Les logiciels d’aide à la décision sont des systèmes qui permettent d’évaluer
différentes situations, soit en tenant compte des ressources disponibles ou du temps alloué.
Dans le cas de la vision industrielle, les logiciels d’inspection dans l’industrie sont
basés sur des algorithmes de traitement d’image qui varient selon l’inspection qu’on veut
faire.
Dans notre cas, l’outil d’inspection qu’on veut réaliser sera basé sur des algorithmes
de traitement d’image de la carte de test qui diffèrent selon les scénarios d’inspection désirés
(détection d’absence/ Présence des composants, décalage, vérification si c’est le bon
composant ou pas,….).

II- Décision :
Un des avantages de travailler dans un milieu industrielle est qu’on métrise bien les
conditions de travail, eclairage, produits, cadence etc.… ce qui nous laisse déterminer la
qualité de l’image qui peut nous donner un bon résultat à travers des algorithmes bien
déterminés et par conséquence la meilleure décision.
Lorsqu’on est capable d’isoler les objets de leur contexte, on peut décrire leur forme,
leur taille, leur couleur, .... C’est notamment le cas de la recherche de défauts de surface,
qu’ils soient contrastés, colorés ou en relief, ... On peut également faire des études
statistiques de la répartition des valeurs associées.
Par comparaison des paramètres mesurés avec des valeurs de référence, on peut ainsi
classer les objets individuels ou populations d’échantillons en catégories pré-définies pour
arriver à la bonne décision et par suite faire une meilleure distinction selon les critères mis en
jeu.
Il faut cependant mettre en évidence l’importance du traitement en couleur qui est
plus exigeant à de nombreux points de vue. Il requiert en particulier que l’on se préoccupe de
la stabilité des couleurs et de la fidélité de leur mesure.

III- Conception du logiciel :


Dans le développement logiciel on distingue un mode de fonctionnement hors-ligne,
durant lequel un opérateur prépare la tâche d’inspection en spécifiant le type de cartes à
traiter, en ajustant des paramètres de fonctionnement et en présentant éventuellement des
images-échantillons de référence (ce que l’on appelle l’apprentissage).
Ensuite, le fonctionnement en ligne, à la cadence réelle, sans intervention de
l’opérateur, peut prendre place. L’acquisition des images est synchronisée avec le
déplacement des cartes, et chaque anomalie détectée sera affichée par suite sur l’écran
comme étant une erreur survenue.

IV- Communication caméra-logiciel et acquisition de l’image :


Le principe d’inspection dans cet outil de vision est de faire le test sur des images qui
sont acquises instantanément, cela implique qu’on doit connecter la caméra au logiciel qu’on
veut réaliser.
Pour cela, on a définit une classe Cwebcam de la manière suivante :
La fonction de la capture de la caméra est : void capture (int type), c’est une fonction
qui capte une image de la caméra et l'enregistre sous format BMP. Cette fonction contient
d’abord une partie qui détermine les données du bitmap, tel que sa taille, en fonction des
paramètres de l’image par laquelle elle est capturée.
Ensuite, on fait une création d’une image bitmap et on récupère les pixels de l’autre dans
celle-ci et selon la valeur de type on fait le garde de l’image acquise comme étant une
référence ou test.
Dans l’interface principal « Menu », on fait appel à la fonction connect () pour
vérifier si la caméra est bien connectée ou non, ensuite on appelle la fonction
AfficheWebcam() pour que l’image vu par la caméra serait affiché à l’écran.
Après la fonction capture ( int type) va nous permettre de prendre des images pour la
référence pour une valeur de la variable « type » quand celle-ci égale à 0 et des images de test
si cette valeur est égale à 1. S’il n’y a pas de caméra connectée, un message d’erreur sera
affiché.

V- Préparation des caractéristiques de carte à inspecter :


V-1. Les données Gerber :
Les données Gerber sont des simples, moyens génériques de transfert des
informations de circuit imprimé à une grande variété de dispositifs électroniques qui
convertissent les données à des œuvres d'art de PCB produits par un photoplotter.
Il s'agit d'une format standard former par des coordonnées X, Y complétés par des
commandes qui déterminent les cas où l'image PCB commence, quelle forme elle prendra, et
où elle finit. En plus des coordonnées, les données Gerber contiennent des informations
d'ouverture, qui définissent les formes et tailles des lignes, des trous, et d'autres
caractéristiques.
Le Format Gerber étendu, qui est également appelé RS-274X, englobe également la
liste de l'ouverture de l'en-tête du fichier de données Gerber et permet donc de transmettre
des fichiers d'un système à un autre sans avoir besoin de réouverture de la table d'entrée.
V-2. Le fichier RS-274X :
RS-274X prend en charge certains paramètres des codes de données (codes G) et des
codes d'ouverture (codes D) figurant dans le RS-274D, ainsi que les codes visés comme des
paramètres de masse. Les paramètres de masse sont des paramètres qui définissent les
caractéristiques qui peuvent affectées toute une parcelle, ou seulement certaines parties de la
parcelle, appelées les couches. Les paramètres de masse étendent les capacités du Format
Gerber.
Un fichier parcelle RS-274X est un fichier composé d'un certain nombre de blocs de
données contenant des paramètres et des codes. Chaque bloc de données est délimité par une
fin de bloc de caractères, généralement un astérisque (*).
Chaque bloc de données contient un ou plusieurs paramètres ou codes. Par exemple :

- Couches :
Un ou plusieurs blocs de données peuvent être regroupés en une couche d'information qui
décrit une partie d'une image graphique. En contexte RS-274X, une couche est une
composante d’information nommée de l'image composée d'un ou de plusieurs blocs de
données. Chaque couche peut avoir des caractéristiques telles que le nom, la polarité, et le
mode d'interpolation, qui diffèrent d'autres couches d'informations. En outre, une couche
peut être "éliminée" de l'environnement graphique, et peut être répétée et / ou pivotée
individuellement.
- Types de données:
Un fichier RS-274X peut contenir les types de données suivants apparaissant dans l’ordre
général suivant :
1- Les paramètres RS-274X :
Les paramètres RS-274X sont aussi nommés des paramètres de masse ou un format
Gerber. L’inclusion de ces paramètres dans le fichier marque la parcelle RS-274X à la
place du standard RS-274D.
2- Les codes standards RS-274D :
Les codes standards RS-274D consistent en :
• Un caractère code fonction comme G codes, D codes, M codes, etc. Les
fonctions codes étaient les mots des anciennes terminologies. Elles décrivent
comment les données des coordonnées qui sont associées avec elles devraient
être interprétées (comme une interpolation linéaire ou circulaire), comment le
composant image doit bouger et d’autres.
• Les données de coordonnées définissent les points vers lesquels le composant
doit bouger. Les données de coordonnées présentent les adresses des
anciennes terminologies. Les coordonnées X, Y décrivent les positions
linéaires et les coordonnées I, J définissent les arcs.
V-3. Les paramètres RS-274X:

Les paramètres RS-274X définissent les caractéristiques qui s’appliquent à une


parcelle toute entière ou à une seule couche en fonction de la position du paramètre dans le
fichier et s’il génère une nouvelle information de la couche dans le fichier. Les paramètres
RS-274X sont composés de deux lettres suivies par un ou plusieurs modificateurs optionnels.
Les paramètres RS-274X sont délimités par un séparateur de paramètre, généralement par un
signe (%). Vu que les paramètres sont également contenus dans un bloc de données, ils sont
aussi délimités par une lettre de fin de bloc. Par exemple :

Les paramètres RS-274X peuvent être regroupés en fonction de la portée de leurs


fonctions dans le fichier. Les groupes doivent apparaître dans le dossier dans l'ordre suivant:
 Les paramètres directifs qui contrôlent globalement les traitements des dossiers.
 Les paramètres image qui fournissent des informations sur l'ensemble d'une image.
 Les paramètres d’aperture qui décrivent la forme des lignes et des composants tout au
long du fichier.
 les paramètres spécifiques des couches qui décrivent le traitement d'un ou de
plusieurs couches de données.
 Divers paramètres qui fournissent des capacités qui ne tombent pas dans l'au-dessus
de
groupes.
Les paramètres RS-274X sont généralement placés au début du fichier dans l’ordre indiqué
au dessus.

Exemple:

*G04 %FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10C, 0.010*%
%LNBOXES*%
G54D10
X0Y0D02*X5000Y0D01*
X5000Y5000D01*X0Y5000D01*X0Y0D01*
X6000Y0*X11000Y0D01*
X11000Y5000D01*X6000Y5000D01*
X6000Y0D01*D02*
M02*

VI- Chargement du fichier Gerber :

Avant de charger le fichier gerber dans notre application, pour former les contours de
la carte électronique, nous somme obligé de faire des étapes préliminaires afin de crée le
gerber standard RS274X et éliminer tous les informations inutile.
Par la suite on va expliquer tous les étapes commençant par le fichier gerber reçu
d’après le client jusqu’à le fichier qu’on va l’utiliser.
VI-1. Transformation de fichier Gerber :

VI-1-1. Présentation de GC-Power Station : graphique code power station :

Le GC-Power Station est un outil qui nous permet d’introduire des modifications sur
le format standard du fichier Gerber à l’aide d’une interface graphique. Il permet aussi
d’exporter notre fichier en d’autres formats exploitables par d’autres logiciels comme le
CAMCAD et le Visual Lighter.

IV-1-2. Etapes à suivre :

A l’aide de l’outil GC-Power Station on importe le fichier du client puis on l’exporte en


format RS27

Figure 11. Etapes d'importation d'un fichier par GC Power station


Figure 12. Importation du fichier et son ouverture

VI-2. Nettoyage du fichier Gerber :

VI-2-1. Présentation de CAMCAD:

CAMCAD est le principal outil d'EDA pour travailler avec la disposition de carte, le
schéma, et d'autres fichiers de données de carte. CAMCAD se spécialise dans la lecture,
l’édition, l’augmentation, et la conversion des données des différents formats.

VI-2-2. Etapes à suivre :

A l’aide de l’outil CAMCAD on importe le fichier provenant de GC-Power


Station qui est en format RS274, on élimine les parties inutiles et puis on l’exporte en format
RS274X.
Figure 13. Ouverture du fichier pour le nettoyer par CAMCAD

VII- Les bibliothèques SDL :


Pour notre projet, nous avons besoin un moyen pour la programmation
graphique en C. L’environnement de développement Microsoft Visual c++ possède le MFC
AppWizard qui permet de programmer des graphiques en C++, mais il ne permet pas de
gérer des entités de bas niveau.Pour cela nous avons parcouru à la solution de la Bibliothèque
SDL vu ces avantages par rapport au MFC AppWizard.
La SDL, Simple Direct Media Layer, est une bibliothèque destinée à permettre l'accès
au matériel graphique pour faire, par exemple, des jeux en plein écran (ou en fenêtre), et ça
de manière portable. La SDL peut notamment fonctionner sous Linux (où elle utilise X11),
comme sous Windows (où elle utilise DirectX).
Les principaux avantages de SDL sont qu'elle est 100% libre, et surtout multi
plateforme (portage sur de nombreux environnements comme Windows, Linux, MacOS,
BeOS, OpenBSD, etc).
VIII- Phase de programmation :
La phase de programmation de logiciel d’inspection passe par plusieurs
plusieur étapes
qui ont été extraites après des propres recherches faites sur les machines de vision que
SAGEM possède plus spécifiquement sur leurs structures et les procédures d’inspection
qu’elles font.

On verra par suite, avec plus de détails, toutes les étapes


étapes de la phase de programmation.
VIII-1.
1. Superposition Fichier Gerber-Image
Gerber référence :

Le Gerber,, comme on a vu, vu est un standard mondial pour la conception de


circuits imprimés, et le format d’échange le plus connu entre les environnements CAD et
CAM. Gerber existe en version standard et étendue.

Dans cette étape, on a utilisé les données qui se trouvent dans ce type de fichier
afin de pourvoir générer une image de la carte électronique où les composants sont
présentés par des contours. Le but était de superposé
superposé cette image générée avec la carte
lors de l’étape de l’inspection pour nous servir à bien sélectionner les composants à
tester ainsi que pouvoir différencier les composants qui sont mal placés ou qui sont
absents.

Figure 14. Image SDL d'une carte électronique


Pour arriver à faire cela, on a définit deux fonctions :

 int extractinf (char * fichier);


 void plotgerber (SDL_Surface *screen)

En effet, la première fonction extractinf qui prend comme entrée le fichier Gerber
et qui permet d’extraire les informations contenues dans le fichier Gerber.

La deuxième fonction plotgerber prend comme entrée la surface SDL où elle va


tracer les formes des composants et de la carte en utilisant la bibliothèque SDL.
VIII-2. Sélection et sauvegarde des composants :

La logique du logiciel d’inspection est basée sur le chargement de l’image de


référence après sa capture et de faire la sélection des composants à tester et
l’enregistrer comme images séparées pour alléger les traitements. Donc on avait besoin
de définir deux fonctions prisimref et prisimtest respectivement pour l’image de
référence et de test mais les zones d’inspection sélectionnées pour l’image de référence
sont automatiquement sélectionnées pour l’image de test :

 bool prisimeref (SDL_Surface *screen)


 Void prisimetest (SDL_Surface *screen)

La fonction prend comme entrée un paramètre SDL qui est la surface de


l’affichage. Cette fonction nous permet de se positionner sur l’une des extrémités du
composant, faire sa sélection et afficher les informations nécessaires concernant le
composant sélectionné. Cette étape est répétitive selon le nombre de composants qu’on
veut inspecter.
VII-3. Inspection des composants par analyse et traitement d’images :

Dans cette partie, on présente l’étape principale de l’inspection qui contient deux
phases principales :

• Sélection automatique de la zone d’inspection : pour cela, on a utilisé la fonction


suivante : void prisimetest (SDL_Surface *screen) qui permet de faire la sélection
automatique des composants à tester selon la sélection faite déjà dans l’image de
référence et de les stocker afin de les traiter ensuite. Cette étape ne serait faite
que si l’état courant de la machine est la prise de l’image de test et si le
chargement de cette image est bon. D’où la nécessité de définir les états que
peuvent prendre l’outil d’inspection, donc on a définit une variable inspetat tel
que:

//les états de la machine

enum inspetat {configuration, priseimref, priseimtest, inspection};


de plus, il y a la variable resultest qui prend les différents possibilités des
résultats sur les états des composants après l’inspection :

//les résultats d'inspection

enum resultest {absence, orientation, ok, decalage, zonevide};

• Le choix de l’algorithme de traitement utilisé pour l’inspection

1ier algorithme :

Les Input de la fonction d’inspection sont les images, référence et test, acquises du
composant qu’on va les comparer à l’aide de cette fonction.
Dans cette partie, on explique l’algorithme d’inspection utilisé dans l’application. En effet,
les étapes sont les suivantes :
 Initialiser les histogrammes des composants Rouge, Vert et Bleu du pixel pour
l’image et l’image référence du composant.
 Stocker les valeurs du R, G, B du chaque pixel dans un tableau à deux dimensions
présentant la matrice de l’image test ou référence du composant sélectionné.
 Incrémenter les histogrammes, de l’image référence ou test, de chaque composante R,
G ou B à chaque fois.
 On calcule la moyenne des trois composantes pour chaque pixel de chaque image afin
de déterminer les pixels au niveau du gris de l’image
 On détermine l’histogramme de ces nouvelles valeurs de pixels pour le 1/2 de l’image
du composant et non pas pour la totalité de l’image (le 1/2 contenant le marquage du
composant sélectionné).
 Pour la valeur de 0 ≤R ≤ 40, 70 ≤ G ≤ 110 et 55 ≤ B ≤ 100 qui correspond aux valeurs
du composants des pixels de la carte électronique, à chaque fois que les coordonnées
du pixel sélectionné pour un couple (i, j) donné appartiennent à ces intervalles la
variable npixref, initialisée à « 0 » s’incrémente par 1. Même chose à faire pour
l’image de test et on incrémente par suite la variable npixtes par 1.
Maintenant, on fait le test :

Si les deux valeurs de npixref et npixtes sont tous les deux supérieures à un seuil bien
déterminé à partir de la taille de l’image, alors la zone sélectionnée est vide, si non si le
npixref est inférieure à ce seuil et l’autre non, alors le composant et absent.
Si non si on compare les deux valeurs npixtes au npixref et si c’est npixtes
supérieure à npixref avec un certain taux alors le composant normalement est signalé décalé.
Si non on fait la valeur absolue de la différence au niveau du nombre des pixels pour
chaque niveau de gris entre les histogrammes de l’image référence et celle de l’image test et
si c’est supérieur à 10 alors on incrémente une variable npixdiff initialisée à « 0 » par 1 à
chaque fois.
Si la variable est supérieure à « 10 » alors le résultat du test est que le composant est orienté.

Ensuite, selon le résultat du test on affiche, sur l’interface principale de l’inspection et


à l’aide de la bibliothèque SDL, le résultat du test qui sera par suite ajouté au rapport
d’inspection.
Simulation sous Matlab :
On montre dans cette partie à l’aide du Logiciel de simulation Matlab, les raisons
pour lesquelles on a pris les seuils utilisés lors de l’application du l’algorithme d’inspection.
Pour cela, on trace les histogrammes de R, G et B pour l’image du composant
référence et test pour le cas d’un condensateur :
Histogramme R :
histogramme R pour la référence
600

500

nombredepixels
400

300

200

100

0
0 50 100 150 200 250
niveaux d'histogramme

histogramme R pour le test


1500

nombredepixels
1000

500

0
0 50 100 150 200 250
niveaux d'histogramme

Figure 15. Histogramme de composant Rouge

D’après la figure précédente, on constate que pour la deuxième image où le


composant est absent, les niveaux de pixels se concentrent sur la zone inférieure à 50 par
contre dans le première histogramme, présence du composant, les niveaux sont étalés jusqu’à
250.
Histogramme G :
histogramme V de la référence
600

500
bredepixels

400

300
nom

200

100

0
0 50 100 150 200 250 300
niveaux d'histogramme

histogramme V du composant à tester


1400

1200
bredepixels

1000

800

600
nom

400

200

0
0 50 100 150 200 250
niveaux d'histogramme

Figure 16. Histogramme de composant vert


Dans le cas de l’histogramme de G, on voit d’après cette figure que la différence
majeure entre les histogrammes du composant référence et celui du test, dans ce cas, se
concrétise spécialement dans la zone entre 70 et 110 d’où le choix de nos seuils pour le cas
de la composante G est fait.
Histogramme B :

hist B du composant référence


600

nombre de pixels par niveau


500

400

300

200

100

0
0 50 100 150 200 250 300
niveaux d'histogramme

hist B du composant à tester


1400
nombre de pixels par niveau

1200

1000

800

600

400

200

0
0 50 100 150 200 250
niveaux d'histogramme

Figure 17. Histogramme de composant bleu

Pour le cas de la composante B, les seuils qu’on a pris pour notre algorithme sont
situés dans la zone délimité par 55 et 100 et ceci est lisible d’après des deux histogrammes
représentant la répartition de la composante B sur les pixels pour l’image référence ainsi que
l’image test du condensateur.

La combinaison de ces trois conditions de seuillage sur les valeurs des trois
composants R, G et B représente la condition utilisée dans notre algorithme, qui quand elle
soit vérifiée pour un pixel (i, j), le npixref (respectivement le npixtes si on est dans le cas de
l’image test) va être incrémenté.
2ème algorithme :
Si le milieu d’inspection n’est pas maitrisé, alors pour éviter le problème de changement
d’éclairage et de bruit on va utiliser nos images sous la forme HSV.
Cette méthode est basée sur la conversion du l’image du RGB au HSV. En effet, une
image RGB peut être représentée comme étant une matrice dont chaque couple (i, j) possède
trois composantes couleurs qui sont très dépendantes ce qui implique une difficulté au niveau
de l’extraction des traits caractéristiques.
Alors pour le modèle HSV, il y a Séparation de la teinte, de la saturation et de l’intensité ce
qui nous fournit une facilité pour faire les traitements nécessaires sur l’image.
Il est parfois préféré quand on travaille avec des matériels, des images numérisées ou d’autres
médias, d’utiliser le modèle couleur HSV ou HSL au lieu des autres modèles comme le RGB
vu la différence dans la façon avec laquelle les modèles imite la perception humaine envers
les couleurs.

Le format HSV, acronyme de "Hue Saturation Value", est un format qui possède des
caractéristiques intéressantes pour toute application d'analyse vidéo. En effet, contrairement
au RGB, le HSV est un format dit "naturel" car sa définition relève davantage de la
conception humaine de la couleur plutôt que celle du RGB qui s'applique d'abord à des
dispositifs électroniques. Cela rend donc le HSV apte par exemple à une opération de
seuillage des couleurs qui autrement pourrait être facilement faussée quelque facteur externe.
La signification des composants du HSV peuvent s'expliquer de cette manière
 Le hue peut être définie comme le "type" de couleur ou la "teinte". Ex : bleu, rouge,
orange
 La saturation est la "pureté" d'une couleur. Plus sa valeur approche de 0, plus la
couleur devient grisâtre.
 La (value) V est la clarté de la couleur.

Chacune de ces valeurs est définie dans une gamme déterminée. Par exemple, le hue
variera généralement de 0 à 360 mais peut être parfois normalisé entre 0 et 100. Quant à S et
V, ceux-ci varient de 0 à 1 ou, exprimé en pourcentage, de 0 à 100%. Il est plus facile de
comprendre ceci en observant cette représentation du HSV :

Figure 18. schéma représentatif de HSV

Pour faire la conversion du RGB en HSV, il fallait savoir mathématiquement


comment l’exprimer. Pour cela les équations utilisées dans notre algorithme pour cette
transformation non linéaire sont les suivantes :

 G − B
 60 × si MAX = R
− MIN
RGB
 MAX RGB RGB
 B − R
H =  60 × + 120 si MAX = G (Équation. I)
− MIN
RGB
 MAX RGB RGB
 R − G
 60 × + 240 si MAX = B
− MIN
RGB
 MAX RGB RGB

MAX RGB − MIN


S = RGB

MAX RGB
V = MAX RGB
Dans notre cas, la deuxième méthode de vérification se résume en étapes qui sont les
suivants :
1- Télécharger l’image référence et stocker les composantes R, G et B de ses pixels dans
trois tableaux différents à deux dimensions.
2- Faire passer un filtre médian sur les trois composantes R, G et B pour éliminer le bruit
contenu dans l’image acquise et améliorer par suite la qualité de l’image à laquelle on
va faire le traitement.
3- Convertir en HSV et maintenir juste la composante teinte (H) et afficher l’image qui
la correspond.
4- Appliquer un seuillage à l’image obtenue en utilisant la méthode de seuillage d’OTSU
5- Utiliser l’image de la teinte comme un masque qu’on va le superposer avec l’image à
tester et on détecte par suite la différence entre le masque et l’image acquise du test.
En effet, généralement le bruit désigne un phénomène qui "brouille" la perception
d'un signal, et nous gêne. En traitement d'image, le bruit est l’ensemble des pixels qui ont des
valeurs aberrantes.
Le filtre médian consiste à conformer un pixel avec son voisinage en le remplaçant
par la médiane de son voisinage. Il s’agit d’une opération du filtrage spatiale qui utilise un
masque 2D appliqué à chaque pixel dans l’image d’entrée. Appliquer le masque, veut dire le
centrer sur un pixel, évaluant les valeurs des pixels couvris et déterminant laquelle entre elles
et la v leur médiane. Celle-ci est déterminée en plaçant les valeurs des pixels dans l’ordre
croissant et en sélectionnant la valeur centrale. La valeur médiane obtenue va être celle du
pixel à l’image de sortie.
Méthode d’OTSU :
La méthode d’OTSU consiste à chercher le seuil qui minimise la variance intra-classe,
définie comme étant la somme des valeurs pondérées des deux classes :

(Équation. II)
Les poids ωi sont les probabilités des deux classes séparées par un seuil t et les sont les
variances de ces classes.
En fait, la minimisation de la variance intra-classe dans la méthode OTSU revient à
maximiser la variance interclasse :
Celle-ci est exprimée en termes de probabilités de classes ωi et des moyennes de classes µi
qui peuvent être mises à jour itérativement.

(Équation. III)
L’algorithme suivant décrit le principe de la méthode d’OTSU :

1. Calculer l’histogramme et les probabilités de chaque niveau d’intensité


2. Initialiser les valeurs de ωi(0) et µi(0)
3. Essayer pas par pas les différents seuils possibles maximum d’intensité
4. Mise à jour de ωi et µi
5. Calculer
6. Le seuil désiré correspond au maximum de
Simulation par Matlab :
En prend l’exemple d’un condensateur et on génère par Matlab comme ci indiqué
l’image de la teinte, celle en fonction de la saturation et celle en fonction de la luminance.

(A) (B)

(C) (D)

Figure 19. Présentations des composant HSV

La figure en (A) est l’image composant en modèle RGB et l’image (B) est celle
représentée avec la teinte « H ». (C) est celle de l’image en HSV mais en représentant juste la
composante (S) et la dernière (D) est celle de la composante de la luminance (V).

 Ces deux tests sont présents dans la fonction suivante: void inspectcomp () qui
fait l’inspection et l’affichage des erreurs. Pour cela, elle fait appel à une nouvelle
fonction pour l’affichage des deux images de composant celle de la référence et celle de
test superposée :

void apply_surface (int x, int y, SDL_Surface* source, SDL_Surface* destination,


SDL_Rect* clip = NULL) ;

VIII-4. Fonctions principales du programme :

 Fonction Main de l’inspection :

La fonction principale de l’inspection est la fonction : int main (int argc, char **argv)
qui fait appel à quelques fonctions qu’on a déjà définit :

 extractinf (char * fichier);

 extractcarac (char *fichier) ;


Ensuite on passe à l’initialisation de la SDL et de la SDL_fft suivit par une étape
pour le chargement des images de test.
Par suite, il y avait une boucle générale qui utilise une fonction void calcetat ( ) qui
détermine, selon l’étape actuelle de la machine, la prochaine étape à faire :
- configuration  prise de l’image référence
- prise de l’image référence  prise de l’image de test
- prise de l’image de test  inspection
- inspection  prise de l’image de test

D’où selon l’état actuel de la machine retournée, on passe à l’état qui suit qui va faire
l’appel à des fonctions prédéfinies déjà et qui sont :

 prisimeref (SDL_Surface *screen)


 prisimetest (SDL_Surface *screen)
 inspectcomp ()

 Fonction du diagnostic:

C’est la fonction dg (int argc, char **argv) qui permet de superposer les deux images
de la carte de référence et celle du test dans la même fenêtre. Elles seront affichées
rapidement l’une à la suite de l’autre d’une façon continue ce qui va nous rendre capable de
détecter les défauts de la carte lisiblement. Ce ci est fait en utilisant la bibliothèque SDL.
 Fonction d’initialisation du rapport erreur :

Cette fonction fait intervenir une nouvelle structure qui s’appelle rapporterreur et qui
est définie comme suit :
struct rapporterreur
{
char refcart[10]; // référence de la carte
long ncarttester; // nombre des cartes testées
long ncartdefect; // nombre des cartes défectueuses
long ndefaux; // nombre des défauts en générale
long repartitiondef[3]; // car on a 3 types de défaut possible
};

Ainsi qu’une autre structure dont le pointeur du composant courant est initialisé à la valeur
nulle. La structure est définie par suit :
struct compdef // composant défectueux
{ char refcompdef[10]; // référence du composant défectueux
struct compdef * suivant; // pointeur
};
 Fonction du remplissage du rapport d’erreur:
Le principe est le suivant : à chaque fois que le test appliqué sur l’image test du
composant renvoie une erreur « false », le nombre des cartes défectueuses défini dans la
structure s’incrémente par 1. Par suite, selon la nature de l’erreur, on incrémente par 1 la
colonne correspondante à l’erreur trouvée.
A la fin, on affiche le nombre des cartes testées ainsi que le nombre des cartes défectueuses
parmi elles.
 Fonction du rapport général :
C’est la fonction avec laquelle on va afficher le rapport d’erreurs de la dernière
inspection faite avec notre outil d’inspection. Elle ouvre un fichier « .txt » où toutes les
données nécessaires de l’inspection seront affichées
 Fonction d’écriture dans le rapport :
Cette fonction permet à chaque nouvelle inspection d’ajouter les résultats des
nouvelles inspections faites sur les composants, c'est-à-dire elle ajoute au fichier « .txt » qui
existe déjà le nom du nouveau composant inspecté, sa référence, ses coordonnées et
finalement le résultat de l’inspection ( nature du défaut).
 Fonction Main du rapport :
C’est la fonction principale du rapport à afficher d’après l’interface. Cette fonction
fait appel à la SDL pour l’affichage ainsi qu’à la bibliothèque SDL_ttf pour le choix de la
police. A l’aide des fonctions affiche_text et affiche_entier, elle affiche à l’écran le nom de la
carte à inspecter, le nombre des cartes testées, nombre des cartes défectueuses, nombre des
défauts et leurs nombres d’occurrence selon leurs types.
Ensuite un diagramme montrant le taux des erreurs pour chaque type sera affiché à coté.

IX- Interface globale :

Pour la création de l’interface globale du logiciel, il fallait d’abord saisir la fonction à


l’aide de laquelle on peut créer des fenêtres :
HWND CreationFenetre (HINSTANCE hInstance, HWND parent)
Ensuite, on crée la fonction qui est la fonction principale qui fait appel à tous les autres
dialogues :
int APIENTRY WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR
lpCmdLine, int nCmdShow).
Ainsi que la function qui gère les messages de dialogue « à propos » :
LRESULT CALLBACK Diapropos (HWND Dlg, UINT message, WPARAM wParam,
LPARAM lParam).
En fait, l’interface globale du logiciel qu’on a réalisé va être sous la forme suivante :
Au démarrage il y aura une 1ère interface comportant un bouton pour démarrer l’application
ou bien un autre bouton pour avoir une idée sur le constructeur.

Figure 21. Interface de l'application Max-Vision


Ensuite, en cliquant sur le bouton « start », une interface générale va s’ouvrir et elle est de
cette forme :

Figure 20. Inetrface générale de l'application

Cette interface contient à droite un bouton, qui, en cliquant dessous, va nous montrer
la page help du logiciel. A gauche, il y a un ensemble des boutons dont chacune fait appel à
une fonction dans le logiciel.

Ce bouton permet de connecter la caméra à


l’interface afin de visualiser les cartes de test.

Ce bouton permet de régler les paramètres de la


caméra choisie

Ce bouton est destiné pour la capture des images


pour les cartes à tester

Ce bouton permet le chargement du fichier gerber


pour le traçage de l’SDL et il permet d’indiquer le
path pour l’enregistrement des composants testés

En s’appuyant sur ce bouton, un diagnostique


rapide va être fait sur la carte de test en la
superposant respectivement avec la carte référence
Ce bouton nous permet de faire l’inspection sur les
cartes de test en générant une autre interface pour
le test

Ce bouton permet de générer un rapport


d’inspection ainsi le statistique de celui ci

Ce bouton permet de sauvegarder le rapport


d’inspection dans un fichier texte

Ce bouton génère l’aide d’utilisation de ce logiciel

En s’appuyant sur ce bouton on peut quitter


l’application

En sélectionnant à chaque fois un composant à tester, les informations concernant ce


composant seront affichées à droite en bas. Ces informations sont extraites du fichier texte
contenant les données sur les composants se trouvant sur la carte à tester.

Figure 21. Affichage du composant à inspecter

Après inspection, les formes en SDL des composants defectueux seront tracées en
rouge alors que les formes des composants inspectés sains seront tracées en bleu, comme
l’indique la figure suivante :
Figure 22. Inspection des composants sélectionnés

Ensuite à la fin de l’inspection, un rapport sera généré sous cette forme :

Figure 23. Rapport généré après l'inspection


X- Conclusion :

Dans ce chapitre, on a présenté les différentes étapes nécessaires pour réaliser notre
logiciel d’inspection en commençant par la connexion de la caméra au logiciel, l’acquisition
de l’image de test, ensuite passant par le chargement du fichier Gerber et la génération de
l’image SDL à partir de ce fichier et finalement finissant par l’inspection et la génération du
rapport d’erreurs d’inspection.
QUATRIÈMECHAPITRE

Test
Et
Étude de performance
I- Introduction :

Le « cycle de vie d'un logiciel » (en anglais software life cycle), désigne toutes les
étapes du développement d'un logiciel, de sa conception à sa disparition. L'objectif d'un tel
découpage est de permettre de définir des jalons intermédiaires permettant la validation du
développement logiciel, c'est-à-dire la conformité du logiciel avec les besoins exprimés, et la
vérification du processus de développement, c'est-à-dire l'adéquation des méthodes mises en
œuvre. [Cycle de vie d’un logiciel http]
Dans ce chapitre, on va voir la procédure de validation de test ainsi que la validation
de l’inspection et on va finir par étudier la performance de ce logiciel d’inspection afin de
pouvoir déterminer ses points de force ainsi que préciser les limites de son utilisation.

II- Test et validation :

Afin de tester les performances du logiciel d’inspection, on doit réaliser des essais,
par suite la stratégie adoptée a été la suivante : on réalise des tests de façon systématique et
les enregistre pour comparer les résultats trouvés pour les mêmes cartes de test et les mêmes
composants sélectionnés.
Pour cela les critères de choix des tests sont les suivants:
• couvrir les fonctionnalités du logiciel
• se placer autant que possible dans les conditions d’utilisation réelle
• identifier des catégories de risque
• structure du programme
• branchements et périphériques
• erreurs de calculs
Afin d’assurer un bon fonctionnement de l’outil d’inspection, certains conditions pour
la réalisation des tests sont indispensables, comme nous avons indiqué précédemment dans le
deuxième chapitre : le choix de l’éclairage et de la caméra de l’inspection.
Ces conditions assurent une bonne qualité des images acquises et par suite une performance
meilleure au niveau de l’inspection faite ce qui va réduire le taux d’erreur concernant
l’inspection.
Dans notre cas, vu l’absence de financement pour acquérir le matériel nécessaire pour
notre machine d’inspection, on était obligé de prendre nos images de test avec une caméra
qui n’est pas vraiment professionnelle ainsi que dans des conditions qui ne sont favorables de
point de vue :
 Eclairage : qui n’est pas standard pour toutes les images de test acquises.
 Caméra : qui n’est pas de résolution très importante selon le besoin de notre
application.
 Positionnement : absence de support fixe pour la caméra lors de l’acquisition de
l’image ce qui peut influer sur les coordonnées des composants à tester dans l’image
acquise.
 Distance d’acquisition : qui est la distance séparant la caméra et la carte et qui doit
être varie selon les grandeurs de la carte ainsi que le zoom disponible dans la caméra.

Toutes ces données qu’on a indiqué ont une influence sur la marge d’erreur ou de
fautes qui peuvent être commises lors de l’inspection et des quelles on doit tenir compte lors
de la procédure de test.
Donc afin de valider notre application, en se référant à ce qu’on a comme moyens
disponibles, on doit refaire la procédure de test pour le même type de cartes et en
sélectionnant les mêmes composants à tester plusieurs fois et vérifier s’il y a une différence
entre les rapports de test générés pour chacun.
Cette vérification doit se faire de façon qu’à chaque fois on essaye d’avoir au maximum les
mêmes conditions favorables pour l’acquisition des images.

III- Etude des performances :

L’évaluation de performance est un élément important dans le déploiement de


systèmes logiciels
En fait, comme c’était indiqué avant, il y a un ensemble de paramètres qui déterminent la
qualité de l’inspection effectuée est ceux-ci peuvent s’illustrés dans :
• La qualité de l’image acquise  qui dépend certainement du type de la caméra
• L’environnement de la prise de l’image milieu maitrisable ou non
• L’algorithme à appliquer lors de l’inspection Techniques de traitement
• Le niveau de perfection de la machine dans le point de vue mécanique et électrique

Ce qui indique que le niveau de performance de la machine ou plus précisément de


l’application qu’on a fait est relatif.
En fait, l’application présente une bonne performance cotée :
 Robustesse
 Simplicité de l’utilisation
 Compatibilité avec des différents types de caméras
 Présence d’un diagnostic rapide permettant d’éviter l’étape d’inspection si le défaut
est visible
 Présence de deux approches d’inspection pour les milieux maitrisables ou non

Mais en contre partie, il y a certainement des limites pour notre application qui vue la
contrainte du temps consacré pour le projet, on n’a pas arrivé à les faire :
 Manque d’une précision fine vu l’utilisation d’une seule caméra pour la capture
d’image et donc il y aura des composants qui, vu leurs dimensions, seront mal
dimensionnés sur l’image de la carte de test.
 La sélection qui se fait manuellement : en effet avec une sélection automatique des
composants, sur la carte référence, pour les tester après, en se basant sur une base de
données va accélérer la tache d’inspection ainsi que la donner plus de précision.
 Absence d’une marge d’erreur pour tolérer le passage de certains composants sans
qu’ils seront marqués comme erronés alors qu’ils sont tolérables.
 Amélioration des algorithmes utilisés pour l’inspection afin d’assurer une qualité
meilleure ou bien plus rapide des résultats.
IV- Conclusion :

Comme on a vu dans ce chapitre, l’application présente des avantages diversifiés qui


la rendent intéressante à appliquer sur les lignes de production et à améliorer dans l’avenir.
Mais aussi l’étude de performance a montré qu’elle peut être meilleure et plus performante à
l’avenir avec l’introduction de certains changements comme c’est indiqué la dessus et que
nous n’avons pas pu les introduire vu la contrainte de temps consacré pour le projet.
CONCLUSION GENERALE

Comme on a vu, la machine vision est la technique avec laquelle les produits sans
contact direct sont inspectés sur un ou plusieurs points dans laquelle l'image capturée peut
être analysée moyennant une caméra de haute résolution.

L’application d’inspection des composants électroniques sur les cartes de test qu’on
avait présenté ici est un essai de réaliser un petit exemplaire d’une machine très performante
et qui a nécessité des années de recherche pour qu’elle arrive à ce niveau de précision et de
performance dans l’industrie et avec un coût assez important, qui s’appelle la machine vision.
Durant ce travail, on a essayé de réaliser au maximum ce qui était demandé dans le
cahier de charge avec les moyens disponibles de la part de l’entreprise et dans le délai fixé
pour le projet.
Les nouveautés dans ce domaine est l’apparition des caméras de vision intelligentes
industrielles qui sont devenues une technologie de clé dans l'objectif d'amélioration de
l'automatisation de production et du contrôle de qualité

L'avantage d'une caméra intelligente est qu’il n’y a pas besoin de matériel
supplémentaire ni de pc ainsi on peut envoyer l’image analysée vers une ou plusieurs sorties
digitales avec la caméra intelligente, et faire retirer automatiquement et directement un
produit de la ligne.
Bibliographie

Sites Internet :

[1] : extrait d’un fichier PDF : La vision industrielle selon VisionIndustrielle.Org –


[2] : http://fr.wikipedia.org/wiki/Contrôle_qualité
[3] : http://fr.wikipedia.org/wiki/Vision_industrielle
[4] : http://www.industrie-online.fr/articles-magazine/fiche-articles.php?id=444
[5] : http://www.maxicours.com/soutien-scolaire/mathematiques-appliquees/bac-pro-
pilotage-des-systemes-de-production-automatisee/188462.html
[6] : http://www.trametal.com/PDF/Articles/395_703_1.pdf
[7]: Extrait du fichier PDF Gerber RS-274 X format © Copyright 1998 Barco Graphics,
Gent, Belgium, and Barco Gerber Systems, South Windsor, CT, USA.
[8]: http://www.techno-science.net/?onglet=glossaire&definition=1484
[10]: http://www.commentcamarche.net/contents/genie-logiciel/cycle-de-vie.php3

La signification des composants du HSV peuvent s'expliquer de cette manière [Extrait de


l’Association Québécoise de Robotique Amateur http://www.aqra.ca]:

CHOI DE L4ECLAIRAGE www.cs.cf.ac.uk/User-bin/M.R.F.Lewis/lightidx.cgi


http://www.visionindustrielle.org
Livres :
[3] R.M. HARALICK. Image segmentation techniques. Computer Vision Graphics
and Image Proc
ng, pages 100-132, 1985.
[4] J.P. COCQUEREZ et S. PHILIPP. Analyse d’images : filtrage et
segmentation. Masson, 1995.
Glossaire
Insérer un glossaire des mots techniques utilisés dans le corps de votre document. Le
Glossaire est optionnel.
Annexes