ELECTRONIQUE INDUSTRIELLE
OPTION : CONCEPTION DES SYSTEMES ELECTRONIQUE
(2ème promotion)
Encadré par :
Mr.KAANICHE Khaled (ENISo)
Mr. JEMMALI Saber (ENISo)
Mr. DOUKALI Mohamed (SAGEM)
Mr.BARKANA Abdelhafidh (SAGEM)
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 :
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
Je remercie également Messieurs Hasen Makki pour ses précieux conseils ainsi que
tous les membres du département électronique industrielle de l’ENISo.
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 :
Conclusion
Bibliographie
Annexes
Table des figures
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.
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-2-1. Principe :
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.
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
Image Description de
Scène
numérique 2D l’image
Feedback
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 :
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é
VI- Conclusion :
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.
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)
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.
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
III-1.Guide
Guide d’étude des modes de marches et d’arrêts(GEMMA) :
III-2.GRAFCET du conduit :
• 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 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.
Diascopique ou Rétro-éclairage :
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 :
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 :
• 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.
- 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:
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*
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 :
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.
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.
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.
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.
Dans cette partie, on présente l’étape principale de l’inspection qui contient deux
phases principales :
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é.
500
nombredepixels
400
300
200
100
0
0 50 100 150 200 250
niveaux d'histogramme
nombredepixels
1000
500
0
0 50 100 150 200 250
niveaux d'histogramme
500
bredepixels
400
300
nom
200
100
0
0 50 100 150 200 250 300
niveaux d'histogramme
1200
bredepixels
1000
800
600
nom
400
200
0
0 50 100 150 200 250
niveaux d'histogramme
400
300
200
100
0
0 50 100 150 200 250 300
niveaux d'histogramme
1200
1000
800
600
400
200
0
0 50 100 150 200 250
niveaux d'histogramme
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 :
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
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 :
(A) (B)
(C) (D)
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 :
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 :
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 :
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é.
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.
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
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.
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.
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, 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 :