0% ont trouvé ce document utile (0 vote)
3 vues35 pages

Tri de balles par vision industrielle

Le document décrit un projet de tri de balles rebondissantes par couleur et taille à l'aide d'un système de vision industrielle In-Sight de Cognex. L'application trie les balles en six couleurs et trois tailles, en utilisant un capteur de vision pour détecter et acheminer les balles vers des compartiments appropriés ou vers une zone de rebut si elles ne respectent pas les critères. Le système est configuré via le logiciel In-Sight Explorer, permettant un développement sans programmation grâce à une interface de type tableur.

Transféré par

barthimezinsoum
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues35 pages

Tri de balles par vision industrielle

Le document décrit un projet de tri de balles rebondissantes par couleur et taille à l'aide d'un système de vision industrielle In-Sight de Cognex. L'application trie les balles en six couleurs et trois tailles, en utilisant un capteur de vision pour détecter et acheminer les balles vers des compartiments appropriés ou vers une zone de rebut si elles ne respectent pas les critères. Le système est configuré via le logiciel In-Sight Explorer, permettant un développement sans programmation grâce à une interface de type tableur.

Transféré par

barthimezinsoum
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Tri couleur par vision industrielle

Le but du TP est d’effectuer le contrôle et le tri d’objets de couleur et de taille différentes. Ces objets
sont des balles rebondissantes qu’il faut contrôler et trier après fabrication.
Le développement de cette application de vision est effectuée sur un système In-Sight couleur de Co-
gnex.

1 L’application
L’application consiste à trier les balles rebondissantes selon les six couleurs suivantes :
• orange,
• rouge,
• rose,
• vert,
• bleu,
• jaune.

Ces balles peuvent avoir trois dimensions différentes :


• petite (diamètre de 27 mm),
• moyenne (diamètre de 38 mm),
• grande (diamètre de 60 mm).

La figure 1 montre une balle de taille moyenne et de couleur jaune. On peut voir sur cette figure le
capteur de présence permettant de détecter la présence des balles sous la caméra.

Figure 1 – Balle à contrôler et à trier

Un système d’alimentation permet de distribuer les balles et de les acheminer sous le capteur de vision.
Après être passées sous la caméra, les balles doivent emprunter un chemin différent selon leur couleur ou

1
leur qualité. En effet, si la couleur de la balle n’est pas l’une des six mentionnées précédemment ou si la
mesure dimensionnelle n’entre pas dans les tolérances fixées, alors la balle doit être acheminée vers une
zone de rebut. Le chemin à suivre est déterminé par un système d’aiguillages commandé par le système de
vision. Le tri par la taille se fait de façon mécanique. En effet, en fonction de leur taille les balles tombent
dans des compartiments adaptés à leur dimension mais il faut s’assurer que leur dimension est bonne.
Des voyants (vert, blanc et rouge) sont disponibles pour avertir l’opérateur si nécessaire. L’ensemble
du système de vision est placé dans une caisse à l’abri de l’éclairage ambiant et est relié à un PC via une
liaison Ethernet.
Les objets étant de forme sphérique avec une surface brillante et en mouvement, un éclairage strobo-
scopique diffus par dôme a été choisi.

TP de Vision Industrielle 2
2 Le système de vision industrielle In-Sight (Cognex)
2.1 Présentation du matériel
Le système In-Sight est un capteur de vision appelée également caméra intelligente ou smart caméra. Sa
différence avec d’autres caméras analogiques ou numériques est qu’il intègre un processeur lui permettant
de réaliser un grand nombre de traitements. Le capteur de vision In-Sight se programme en le connectant à
un PC par une liaison Ethernet et en utilisant le logiciel In-Sight Explorer. Une fois le programme effectué,
le capteur In-Sight est totalement autonome et peut être déconnecté du PC.
Il existe plusieurs types de capteurs In-Sight ayant des caractéristiques différentes (résolution, cadence,
tête déportée, sortie VGA, type d’application, ...). Le capteur utilisé dans ce TP est le capteur In-Sight
5100C (voir figure 2). C’est un capteur couleur mono-CCD de résolution 640 × 480.

Figure 2 – Capteur de vision In-Sight 5100C

2.2 Présentation du logiciel


Les applications développées sur l’In-Sight sont paramétrées (configurées ou programmées) à l’aide
d’une interface tableur unique : In-Sight Explorer qui est l’environnement de configuration des capteurs de
vision In-Sight (voir figure 3).

TP de Vision Industrielle 3
Figure 3 – Le logiciel In-Sight Explorer

Le développement d’une application utilise des outils « glisser-déposer »associés à une palette gra-
phique, ainsi que des feuilles de propriétés de ces outils qui facilitent la configuration. Le tableur In-Sight
intègre des fonctions, options et opérations qui permettent de programmer des applications complexes sans
jamais avoir besoin d’écrire une ligne de code. Outre l’utilisation d’un tableur pour le développement, le lo-
giciel In-Sight Explorer comprend également un environnement « EasyBuilder ». Cette interface logicielle
fournit toutes les fonctionnalités nécessaires pour configurer facilement des applications fiables. Les appli-
cations sont déployées rapidement car aucune programmation n’est nécessaire. Cela comprend l’extraction
automatique des caractéristiques, la définition de paramètres intelligents et de limites.
L’environnement de développement est donc constitué d’une fenêtre principale qui représente un tableau
(feuille de travail) comme dans le tableur Excel par exemple (voir figure 4) et de différentes barres d’outils,
menus ou fenêtres permettant la programmation, la configuration et la visualisation du projet.

TP de Vision Industrielle 4
Figure 4 – Feuille de travail

La feuille de travail est donc un tableau de cellules ou chaque cellule est repérée par un numéro de ligne
qui est un chiffre et un numéro de colonne qui est une lettre. Par exemple, la première cellule en haut à
gauche est la cellule A0 car elle se situe à l’intersection la colonne A et de la ligne 0.

De la même façon, les coordonnées des différents graphiques qui seront ensuite utilisés sont repérés
dans le même système. L’origine du repère de l’image se situe également en haut à gauche par défaut et les
coordonnées des pixels s’expriment par rapport à ce repère.

2.2.1 Les barres d’outils


On retrouve des menus et des barres d’outils standards dans les applications Windows comme les com-
mandes permettant la gestion de fichiers (ouverture, enregistrement, impression de fichiers, options, re-
cherche, couper-copier-coller, annuler-rétablir,...), les commandes de mises en forme des cellules (aligne-
ment du texte, couleur et taille des cellules et des polices de caractères, ...).

La figure 4 montre également les fenêtres suivantes accessibles depuis dans la barre d’outils d’explora-
tion ou des menus :
• : Réseau In-Sight : ouvre une fenêtre indiquant les In-Sight connectés sur le réseau,
• : Fichiers In-Sight : ouvre une fenêtre montrant le contenu du répertoire des fichiers,
• : Palette d’outils : ouvre une fenêtre donnant accès à la palette d’outils.

On peut remarquer sur la figure 4 que l’image et les graphiques apparaissent en transparence de la
feuille de travail. En fait, la feuille de travail est semi-transparente. Elle est superposée aux graphiques qui
sont eux-même superposés à l’image. Ce niveau de transparence peut être réglé avec les boutons et
accessibles depuis la barre d’affichage du projet. Dans cette barre d’outils, on retrouve également d’autres

TP de Vision Industrielle 5
commandes de gestion de l’affichage comme :
• : zoom avant sur l’image,
• : zoom arrière sur l’image,
• : zoom Maximum sur l’image,
• : image à l’échelle 1,
• : zoom pour remplissage de la feuille de travail par l’image (plein cadre), l’image ne sera pas
toujours vue en entière,
• : zoom pour ajustement de l’image à la feuille de travail (taille écran), l’image sera toujours vue
en entière,
• : affichage des pixels trop au pas assez exposés, les niveaux de saturation sont réglables par
l’utilisateur dans le menu Système I Options,
• : affichage de la feuille de travail, lorsque la feuille de travail n’est plus affichée, il est alors
possible de visualiser les coordonnées et les valeurs du pixel de l’image qui est pointé par la souris,
• : affichage des graphiques,
• : affichage de la vue opérateur, les bordures du tableau disparaissent pour laisser apparaître
uniquement les cellules de la vue opérateur.

2.2.2 Palette d’outils et fonctions

Le développement d’une application se fait donc en insérant des formules dans les cellules de la feuille
de travail. Ces formules peuvent contenir des nombres, des chaînes de caractères (textes), des références
à d’autres cellules, des structures de données ou font appel à des fonctions qui retourne des valeurs nu-
mériques, alphanumériques ou également des structures. Comme le montre les figures 5 et 6, il existe dif-
férentes catégories de fonctions ; certaines identiques à celles d’un tableur classique comme les fonctions
mathématiques et d’autres plus spécifiques aux outils de vision industrielle.

Figure 5 – La palette d’outils Figure 6 – Insertion d’une fonction

Les formules peuvent être éditées à partir de n’importe qu’elle cellule, soit en cliquant sur le bouton
(voir figure 6), soit directement à partir de la palette d’outils (voir figure 5). Pour insérer une fonction, il

TP de Vision Industrielle 6
suffit donc de la sélectionner dans l’onglet Fonctions de la palette d’outils et de valider par un double clic
ou de glisser la fonction dans la cellule correspondante.
Toutes les formules peuvent également être saisies directement dans la cellule sélectionnée ou dans la
barre d’outils correspondante. Il est toujours possible d’accéder à la liste des fonctions par les touches haut
et bas. Chaque cellule peut être mis dans un état actif, inactif ou conditionnel grâce au bouton .
L’onglet Snippets de la palette d’outils permet d’accéder à des programmes standards déjà écrits et qui
rassemblent plusieurs formules.

Les fonctions qui opèrent directement sur l’image appartiennent à la catégorie Systèmes de vision et
se décomposent en différentes catégories :
• Blob : segmentation et analyse de régions dans l’image,
• Bord : détection et analyse de contours (transitions, frontières) dans l’image,
• Correspondance Modèle : apprentissage et recherche de modèles dans l’image,
• Histogramme : extraction et analyse d’histogrammes,
• ID (identification) : lecture de codes barres (1D) et de codes matriciels (2D),
• Image : pré-traitement et filtrage d’images,
• OCV/OCR : apprentissage, lecture et vérification de caractères.

D’autres catégories de fonctions, également accessibles depuis la palette d’outils, s’appliquent sur les
résultats des fonctions obtenus sur les images comme :
• Coordonnées : changement de repère et conversion des pixels en une autre unité de mesure,
• Résultats de vision : formules permettant d’extraire différents paramètres liés à une structure de
données,
• Graphiques : affichage de textes dans les cellules, de graphiques dans les images et insertion de
commandes (liste déroulante, case à cocher, bouton, boîte de dialogue, édition,...),
• Communication : échanges de données (entrée/sorties TOR, port série, réseau),
• Structures : création de structures de données,
• Mathématiques : formules mathématiques standards.

2.2.3 Feuille de propriétés et formules


Lorsqu’une fonction qui retourne une structure ou qui possède beaucoup de paramètres est insérée
depuis la palette d’outils ou depuis le bouton , la feuille de propriétés de cette fonction est alors ouverte
dans une fenêtre pour y être configurée. La figure 7 montre la feuille de propriétés d’une fonction.

TP de Vision Industrielle 7
Figure 7 – L’édition de la feuille de propriétés d’une fonction

Une fois les paramètres fixés, il suffit de valider la configuration ou l’annuler si l’on ne souhaite plus
insérer la formule. La structure de données correspondant au résultat de la fonction s’insère alors dans la
cellule de la feuille de travail à partir de laquelle la fonction correspondante a été éditée. Les principaux
paramètres de sortie de la formule sont également insérés dans les cellules voisines de la même ligne de la
feuille de travail, ce qui crée un groupe de cellules. En fait, lorsque la feuille de propriétés d’une fonction est
validée, d’autres formules sont insérées automatiquement dans les cellules voisines de la même ligne. Ces
formules retournent les principaux résultats générés par la fonction initiale. Il est aussi possible d’insérer
d’autres formules afin de récupérer d’autres résultats ou paramètres de la fonction.

Lors du paramétrage de la fonction, plusieurs méthodes peuvent être utilisées pour fixer les paramètres :
• Agir sur les graphiques si ils sont disponibles :
Certains paramètres d’une fonction donnent accès à des structures graphiques (cercle, anneau, ré-
gion, croix, point ou ligne) sur lesquels il est possible d’agir. Par exemple, lorsqu’il faut définir
une région d’intérêt pour y effectuer une analyse, cette région est graphiquement disponible, soit en
double cliquant sur le paramètre région de la feuille de propriétés, soit depuis le bouton . Il est
alors possible, interactivement, de dimensionner, orienter, transformer ou déplacer ce graphique et
de valider par appui sur la touche Entrée ou d’annuler en appuyant sur la touche Echap. Le bouton
permet d’agrandir le graphique à sa taille maximale. Il est également possible de fixer numéri-
quement les paramètres du graphique en développant son arborescence et en modifiant les valeurs à
l’aide du clavier ou des ascenseurs disponibles.
• Agir sur les valeurs des paramètres :
Tous les paramètres d’une formule ont une valeur qui peut être numérique, alphanumérique ou
correspondre à une case à cocher ou un membre d’une liste déroulante. Le paramétrage se fait alors
en modifiant directement la valeur du paramètre dans la feuille de propriétés.
• Créer un lien relatif avec une autre cellule (autre paramètre) :
Il est également possible d’exploiter le résultat d’une autre formule et de créer ainsi le lien entre

TP de Vision Industrielle 8
différentes formules. Ce lien se réalise en cliquant sur le bouton de la feuille de propriétés ou en
double-cliquant sur le paramètre à lier. Cette opération renvoie sur le tableur et il ne reste plus qu’à
cliquer sur la cellule choisie. Le lien ainsi créée est par défaut un lien relatif, c’est à dire que si les
cellules de ce lien sont déplacées, l’expression se met automatiquement à jour. On peut également
directement écrire l’adresse de la cellule en utilisant le clavier. En adressage relatif, il conviendra
alors de mettre cette adresse entre deux $.
• Créer un lien absolu avec une autre cellule :
L’adressage absolu ne tient pas compte du déplacement des cellules et sa syntaxe n’implique pas
d’utiliser le signe $. Le bouton doit alors être utilisé pour générer ce lien.
• Insérer une autre fonction :
Il est enfin possible de lier un paramètre à une autre formule. Pour cela, il suffit d’insérer cette
formule en utilisant le bouton de la feuille de propriétés puis en saisissant la fonction ou en
accédant à la liste des fonctions par les touches haut et bas, ce qui a pour conséquence d’imbriquer
les fonctions.

2.2.4 Exécution du programme


Pour exécuter le programme, plusieurs méthodes peuvent être utilisées :
• Modification d’un paramètre : toute modification d’un paramètre entraine la mise à jour de la feuille
de travail.
• Mode vidéo directe (bouton ) :
ce mode acquiert et affiche les images successivement et désactive temporairement le tableur. Il
permet essentiellement le réglage du dispositif d’acquisition.
• Mode capture unique (bouton ) :
ce mode permet d’obtenir une image à la fois en mode hors ligne. La feuille de travail est mise à
jour à chaque acquisition.
• Mode en ligne (bouton ) :
ce mode permet de se mettre en ligne et d’accéder aux modes de déclenchement externe. C’est
uniquement dans ce mode qu’il est possible d’activer des sorties ou de lire des entrées externes.

TP de Vision Industrielle 9
3 Travail à effectuer
Les outils qui vont être mis en oeuvre concernent :
• l’acquisition des images,
• la détection des balles,
• le contrôle dimensionnel des balles,
• la mesure de couleur des balles,
• l’activation des sorties pour le tri,
• la création d’une vue opérateur.

3.1 Configuration

1) Création du projet en mode tableur :


• Après avoir ouvert In-Sight Explorer, sélectionner l’In-Sight de votre choix qui apparaît dans la
fenêtre du réseau.
• Basculer en vue tableur (menu Acher ) et ôter la protection de la feuille de calcul.
• Créer un nouveau projet qui sera enregistré dans un répertoire à votre nom. Les noms des projets
In-Sight portent l’extension .job.
• Indiquer sur votre compte-rendu le nom et l’emplacement du projet.

2) Configuration des entrées/sorties :


• Configurer les Entrées/Sorties de votre système. En particulier, les 8 entrées du module d’extension
resteront en mode Donnée Utilisateur et les 8 sorties en mode Programmé. L’entrée TRIGGER est
relié au capteur de présence des balles devant la caméra et la sortie HSOUT 1 est utilisée pour
l’éclairage stroboscopique.

3.2 Acquisition

REMARQUE : LE RÉGLAGE DE L’ÉCLAIRAGE ET DE L’OBJECTIF NE DE-


VRA EN AUCUN CAS ÊTRE MODIFIE PAR LES ÉTUDIANTS !

3) Déclenchement des acquisitions :


• Choisir le mode de déclenchement permettant la capture de l’image à l’aide du capteur de présence.
• Après avoir placé une balle sous la caméra, activer le mode vidéo directe.

4) Réglage du temps d’intégration :


• Étudier et régler le temps d’intégration afin d’obtenir une image de la meilleure qualité possible en
la déplaçant à vitesse réelle devant la caméra.
• Indiquer sur votre compte-rendu la valeur de ce paramètre.

5) Réglage du gain et de l’offset :


• Mettre une feuille blanche sous la caméra et régler le gain et l’offset pour obtenir une image qui
exploite toute la dynamique des niveaux de gris mais qui limite le bruit.
• Indiquer sur votre compte-rendu les valeurs de ces paramètres et décrire ce que vous remarquez.

6) Balance des blancs :

TP de Vision Industrielle 10
• Mettre une feuille blanche sous la caméra et activer la balance des blancs dans la feuille de pro-
priétés de la fonction d’acquisition d’image. Ajuster votre réglage de gain pour obtenir un calibrage
correcte.
• Indiquer sur votre compte-rendu la valeur adéquate.

3.3 Détection de la balle

7) Détection des bords de l’objet :


• Utiliser la fonction de recherche de bords adéquate afin de détecter les deux bords opposés de la
balle dans le sens de son défilement.
• Configurer cet outil afin que les bords soit correctement détectés quelque soient la position de la balle
qui est fonction de son diamètre. Tester votre réglage sur plusieurs balles en mettant le système en
ligne.
• Indiquer sur votre compte-rendu les valeurs des paramètres modifiés et représenter graphiquement
l’outil dans l’image.
• A l’aide de la fonction GetRow, calculer automatiquement et afficher les valeurs des ordonnées de
la première extrémité de chacun des deux bords détectés ainsi que la valeur moyenne de ces deux
ordonnées pour estimer son centre.
• Est-il nécessaire de détecter les deux bords de la balle dans l’autre direction pour estimer la position
de la balle dans l’image ?

8) Détection de la région correspondant à l’objet :


• Utiliser la fonction de recherche de blobs (binary large objects) afin de détecter la balle.
• Indiquer sur votre compte-rendu les valeurs des paramètres modifiés et représenter graphiquement
l’outil dans l’image.
• Configurer l’outil afin d’afficher les valeurs des coordonnées du centre du blob correspondant à la
balle.
• Comparer les résultats de ces deux outils ainsi que leur temps de traitements.

Les coordonnées ainsi calculées serviront de repère aux autres outils mis en oeuvre dans la suite.

9) Création d’un nouveau repère :


• Créer un repère dont l’origine est le centre de la balle estimé par les outils précédents.

3.4 Contrôle dimensionnel


Afin de mesurer le diamètre des balles, il est nécessaire d’insérer un outil de vision qui permet de
détecter les contours d’un objet en forme de cercle.

10) Mesure par détection de bords :


• Insérer la fonction de recherche de bords adéquate permettant de détecter les contours des balles
(forme circulaire) et paramétrer cette fonction afin de mesurer et afficher dans une nouvelle cellule
le diamètre des balles en pixels, en faisant attention de positionner la région d’intérêt par rapport au
centre de la balle estimé précédemment (tester les deux méthodes).
• En déduire la précision (résolution spatiale) du système. Indiquer cette valeur sur votre compte-
rendu.
• Afficher les coordonnées du centre de la balle et comparer ces valeurs avec celles obtenues par les
deux méthodes précédentes.

TP de Vision Industrielle 11
• Indiquer également sur votre compte-rendu les valeurs des paramètres modifiés et représenter gra-
phiquement l’outil dans l’image.

11) Mesure par détection de blobs :


• Utiliser l’outil de recherche de blobs mis en oeuvre précédemment afin de déterminer le diamètre
équivalent du blob correspondant à la balle.
• Comparer les résultats.

Afin d’analyser les valeurs de diamètre ainsi calculées, il est possible d’utiliser :
• des fonctions de conditions (if , choose, InRange, ...),
• des fonctions de comparaison (<, >, =, <=, >=, ...),
• des opérateurs logiques (And, Or, Not, ...),
• des instructions d’affichage en utilisant ” ”.

12) Affichage de la taille :


• Relever les différentes valeurs de diamètres possibles en faisant défiler plusieurs balles de taille
différente devant la caméra.
• Indiquer sur votre compte-rendu, dans un tableau, les valeurs ainsi relevées pour chacune des trois
tailles.
• En utilisant notamment la fonction InRange et sachant qu’il est possible d’imbriquer les fonctions,
afficher dans une cellule le texte PETITE, MOYENNE, GRANDE ou DEFAUT en fonction de la
taille des balles et en tenant compte d’une tolérance de ±5 pixels.
• Indiquer sur votre compte-rendu la règle de décision utilisée pour classer les balles en fonction de
leur taille selon les catégories précédentes.

3.5 Mesure de la couleur


Afin de mesurer la couleur de chaque balle il faut utiliser une région d’intérêt permettant de calculer la
moyenne des composantes rouge, verte et bleue (ou autres) des pixels dans cette région.

13) Calcul de l’histogramme :


• Utiliser et configurer un outil d’extraction d’histogramme couleur afin d’obtenir et afficher une me-
sure pertinente de la couleur des balles en faisant attention de positionner la région d’intérêt par
rapport au centre de la balle.
• Indiquer sur votre compte-rendu les valeurs des paramètres modifiés et représenter graphiquement
l’outil dans l’image.

14) Affichage de la couleur :


• Relever les différentes valeurs possibles de la teinte en faisant défiler des balles de taille et de couleur
différentes devant la caméra.
• Indiquer sur votre compte-rendu les valeurs ainsi relevées dans un tableau à deux dimensions (la
couleur en ligne et la taille en colonne).
• En utilisant notamment la fonction InRange, afficher dans une cellule le texte ROUGE, ORANGE,
JAUNE, VERT, BLEU, ROSE ou DEFAUT en fonction de la couleur des balles.
• Indiquer sur votre compte-rendu la règle de décision utilisée pour classer les balles en fonction de
leur couleur selon les catégories précédentes.
• Associer une nouvelle cellule à chaque couleur dont la valeur sera égale à 1 lorsqu’il s’agit de la
couleur correspondante et 0 dans le cas contraire.

TP de Vision Industrielle 12
3.6 Activation des sorties pour le tri
Il reste maintenant à récupérer les informations précédentes pour activer les sorties adéquates selon
l’adressage suivant :
• sortie 0 : porte 1,
• sortie 1 : porte 2,
• sortie 2 : porte 3,
• sortie 3 : porte 4,
• sortie 4 : porte 5,
• sortie 5 : porte 6.
• sortie 6 : voyant blanc.
• sortie 7 : voyant vert.
• sortie HSOUT 0 : voyant rouge.
Les sorties 0 à 7 sont actives par défaut (portes ouvertes). Ainsi, pour fermer toutes les portes et mettre
une balle au rebut, il faut désactiver les six premières sorties, c’est à dire écrire la valeur 1 sur chacune de
ces sorties ou encore 111111 (63) sur les six premiers bits de poids faible.
Deux autres Leds (rouge et verte) sont également disponibles sur le capteur. Les différents boutons,
interrupteurs et capteurs sont enfin reliés aux entrées du système.
Attention, il faut se mettre en ligne afin de pouvoir activer les sorties ou visualiser les entrées et tester
votre programme.

15) Activation des sorties :


• Activer les six sorties de 0 à 5 en fonction de la couleur mesurée.
• Allumer les voyants en fonction de la taille de la balle.

3.7 Interface Homme-Machine


La dernière partie de ce TP consiste à réaliser une interface Homme-machine permettant notamment :
• d’afficher la mesure en millimètre du diamètre de la balle,
• d’afficher la taille de la balle,
• d’afficher la couleur de la balle,
• d’afficher le numéro de la balle analysée (comptage),
• de compter l’apparition de chaque type de balle,
• d’afficher le temps de traitement,
• de remettre à zéro les compteurs...

16) Vue opérateur :


• Créer une vue opérateur la plus claire possible (titre de l’application, taille des balles, couleurs des
balles, comptage des balles, comptages des balles en fonction de leur type, comptage des défauts,
Entrées/Sorties activées, temps de traitement,...). On veillera notamment à définir une cellule af-
fichant le type de balle et une autre cellule affichant la couleur en changeant la couleur du texte
affiché. Le diamètre des balles devra être affiché en millimètres.

TP de Vision Industrielle 13
4 Présentation des outils de vision
4.1 Configuration
Avant de commencer à utiliser le système, il est nécessaire de définir le type d’entrées/sorties utilisé
avec le capteur In-Sight. En effet, celui-ci possède par défaut un nombre limité d’entrées/sorties mais il
possible de connecter un module d’extension qui augmente alors leur nombre. Cette configuration s’effec-
tue dans le menu Capteur de la barre de menu puis Paramètres des E/S discrètes pour la configuration
des entrées/sorties discrètes (voir figures 8 et 9) et Paramètres du port série pour la configuration des
communications avec le port série.

Figure 8 – Exemple de configuration des entrées


Figure 9 – Exemple de configuration des sorties

D’autres configurations de l’explorateur In-Sight explorer sont possibles dans le menu Système I Op-
tions comme, par exemple, les valeurs d’affichage minimales et maximales de saturation (voir figure 10).

Figure 10 – Configuration de l’explorateur In-Sight

TP de Vision Industrielle 14
4.2 Acquisition
Lorsqu’un nouveau projet est crée sous In-Sight Explorer, une fonction d’acquisition d’image est auto-
matiquement insérée dans la première cellule du tableur (cellule A0), la fonction AcquireImage. La feuille
de propriétés de cette fonction peut être éditée en double cliquant sur la structure de données Image qui lui
est associée et qui apparaît donc dans la cellule A0 (voir figure 11) ou depuis le bouton .

Figure 11 – Fonction AcquireImage

On remarque que le nom de la fonction apparaît dans la barre d’outils de l’application avec, entre
parenthèse, les paramètres de la fonction. Il est donc possible de changer ces paramètres sans passer par la
feuille de propriétés.
Comme le montre la figure 11, la fonction d’acquisition d’image comporte plusieurs paramètres. Les
principaux paramètres sont :
• Déclencheur : ce paramètre définit le mode de déclenchement de l’acquisition.
• Intégration : ce paramètre permet de fixer le temps d’intégration de la caméra et agit directement sur
l’obturateur électronique. Il peut être fixe ou automatique.
• Gain / Oset : ces paramètres permettent d’ajuster la tension du signal vidéo analogique avant qu’il
ne soit numérisé.

4.2.1 Mode de déclenchement


Il existe plusieurs modes de déclenchement :
• Camera : l’image est acquise à la réception d’une pulsation sur l’entrée trigger (TRG) du module
d’entrées/sorties.
• Continu : l’image est acquise en continu à la vitesse maximale (cette vitesse dépend de la fréquence
maximale d’acquisition de la caméra et des outils utilisés),
• Externe : l’image est acquise par une entrée discrète tout ou rien (TOR) configurée comme telle ou
par une information sur le port série.

TP de Vision Industrielle 15
• Manuel : l’image est acquise par appui sur la touche F5 du clavier ou en cliquant sur le bouton de
déclenchement de capture unique (bouton ).
• Réseau : l’image est acquise par une information sur le réseau Ethernet.
La désactivation de la case à cocher de déclenchement manuel provoque la désactivation du déclenchement
en mode hors-ligne.
Il est enfin possible de contrôler l’éclairage depuis le capteur.

4.2.2 Temps d’intégration


Lorsque les objets se déplacent à une certaine vitesse sous la caméra et lorsque l’éclairage est continu,
il est possible d’obtenir une traînée ou dentelure sur les images de ces objets si le temps d’intégration (ou
temps d’exposition) est trop élevé. Un temps d’intégration trop faible augmente le rapport signal/bruit dans
l’image et donne une image de faible luminosité, ce qui oblige a augmenter le gain, l’ouverture de l’objectif
ou l’intensité de l’éclairage.
Il est possible de spécifier un réglage automatique du temps d’intégration mais dans ce cas, cette valeur
risque de changer à chaque acquisition.

4.2.3 Gain et offset


Le réglage du gain permet d’amplifier le signal image avant qu’il ne soit numérisé mais trop de gain
augmente également le niveau du bruit dans l’image ou sature les zones les plus lumineuses de l’image.
D’autre part, si la scène observée est trop sombre, il se peut que le capteur ne soit pas sensibilisé. Il faut
une certaine luminosité pour obtenir une réponse du capteur. L’offset est le paramètre qui permet de régler
le capteur pour qu’il donne une réponse à un niveau de luminosité minimal.
Pour régler correctement le gain et l’offset, il est judicieux d’afficher les niveaux de saturation de l’image
(bouton ) au moment du réglage.

4.2.4 Cas des capteurs couleurs : la balance des blancs


Pour réaliser une analyse d’images couleur, il est nécessaire que les couleurs soient correctement cali-
brées. En particulier, il faut qu’un blanc dans la scène réelle donne un blanc dans l’image indépendamment
de l’éclairage choisi, c’est dire que les valeurs rouge, verte et bleue d’un pixel blanc doivent être toutes
égales à 255. En fonction de la source lumineuse utilisée ainsi que des conditions d’éclairage et d’observa-
tion, ce n’est pas toujours réalisable. Il est alors nécessaire d’ajuster les composantes rouge, verte et bleue
les unes par rapport aux autres pour obtenir un blanc correcte. La balance des blancs est l’opération qui
permet ce calibrage en agissant indépendamment et automatiquement sur les gains à appliquer sur chaque
composante couleur. Bien entendu, ce calibrage dépend également du gain global donné au signal image.
En effet il se peut que le gain global soit trop fort et que la diminution maximale du gain d’une des compo-
santes couleur ne donne aucun effet : la composante continue d’être saturée. De même si le gain global est
trop faible, l’augmentation maximale du gain d’une des composantes couleur ne permettent pas d’avoir un
blanc mais un gris.
La fonction d’acquisition des capteurs couleur In-Sight permet de réaliser une balance des blancs gràce
à un bouton spécifique dans la feuille de propriétés de cette fonction.

TP de Vision Industrielle 16
4.3 Extraction et analyse d’histogrammes
L’histogramme est un outil statistique qui permet une autre représentation de l’image. C’est une fonction
qui représente le nombre de fois (occurrence) qu’apparaît chaque niveau de gris d’une image. Cette fonction
est donc représentée par une courbe dans laquelle l’axe des abscisses représente le niveau de gris (valeur
comprise entre 0 et 255) et l’axe des ordonnées, le nombre d’occurrence de chacun de ces niveaux. La
figure 12 montre l’histogramme d’une image.

Figure 12 – Histogramme d’une image

Cet histogramme montre qu’une majorité des pixels possède des niveaux de gris de faibles valeurs
(autour de 30) car on voit apparaître un pic à ce niveau.

La fonction ExtractHistogram de la catégorie Histogram permet d’extraire l’histogramme d’une


image (voir figure 13)

Figure 13 – Fonction ExtractHistogram

Cette fonction retourne une structure de données Hist à partir de laquelle d’autres fonctions de la caté-
gorie Histogram peuvent être insérées.

TP de Vision Industrielle 17
Les paramètres de la fonction ExtractHistogram sont les suivants :
• Structure Image : lien vers l’image d’entrée.
• Repère : repère de l’outil. Il est défini par :
 Ligne : son abscisse,

 Colonne : son ordonnée,

 Thêta : son orientation.

• Région : zone dans laquelle l’histogramme est calculé. Elle est définie par :
 X : son abscisse,

 Y : son ordonnée,

 Hauteur : sa hauteur,

 Largeur : sa largeur,

 Angle : son orientation,

 Courbure : son rayon de courbure.

• Achage : paramètres d’affichage.

D’autres fonctions de cette catégorie permettent d’obtenir plusieurs valeurs statistiques dans une plage
de niveaux de gris de l’histogramme comme le nombre de pixels, la valeur moyenne des niveaux de gris, le
seuil de binarisation, les niveaux de gris les plus et moins représentés, la somme des niveaux de gris, ...
Ainsi, l’insertion de la fonction ExtractHistogram entraîne l’insertion automatique des fonctions sup-
plémentaires suivantes de la catégorie Histogram :
• HistThresh : retourne un seuil de binarisation optimum qui sépare l’image en un premier plan et
un arrière plan dans une plage de niveaux de gris définie.
• HistContrast : retourne la valeur du contraste de l’image dans une plage de niveaux de gris définie.
• HistCount : retourne le nombre de pixels qui appartiennent à une plage de niveaux de gris définie.
• HistMean : retourne la valeur moyenne des niveau de gris dans une plage de niveaux de gris définie.

Dans le cas des images en couleur, il est possible d’utiliser la fonction ExtractColorHistogram.

TP de Vision Industrielle 18
4.4 Prétraitement
Avant d’analyser les images, il est parfois nécessaire de leur appliquer un prétraitement. Les prétraite-
ments peuvent principalement être classés en deux catégories selon que chaque pixel subit une opération,
soit dite ponctuel (la valeur du pixel est modifiée sans tenir compte des niveaux des pixels voisins), soit
dite de voisinage (la valeur du pixel est modifiée en tenant compte des niveaux des pixels voisins). D’autres
prétraitements consistent en une transformation géométrique de l’image. Ainsi dans la catégorie Image , on
accède notamment aux fonctions :
• PointFilter : opération ponctuelle (binarisation, inversion, recadrage, ...),
• NeighborFilter : opération de voisinage (filtrage linéaire, filtrage morphologique, ...),
• ScaleImage : transformation géométrique de l’image.
Ces fonctions retournent une structure de données Image correspondant à l’image après son prétraitement.

Les figures 14 et 15 illustrent les opérations de prétraitement réalisables avec les fonctions PointFilter
et NeighborFilter.

Figure 14 – Fonction PointFilter Figure 15 – Fonction NeighborFilter

TP de Vision Industrielle 19
4.5 Recherche et analyse de bords (contours)
Un contour (edge) est une zone de l’image où la luminosité varie brusquement passant du sombre au clair
ou du clair au sombre (transition). Ces contours correspondent souvent aux bords des objets et permettent
donc de les localiser et de les mesurer. C’est pourquoi la détection de contours pour rechercher et analyser
les bords d’un objet est une opération souvent employée en vision industrielle. Il est alors possible de
rechercher différentes formes de bords en utilisant principalement les fonctions suivantes de la catégorie
Bord :
• FindLine : recherche de transitions en forme de ligne droite,
• FindSegment : recherche deux transitions en ligne droite qui sont opposées,
• FindMultiLine : recherche plusieurs transition en forme de ligne droite,
• FindCurve : recherche des transitions en forme d’arc de cercle,
• FinCircle : recherche des transitions en forme de cercle.
Ces fonctions retournent une structure de données Edge qui peut intégrer une ou plusieurs transitions.
Chaque transition est alors identifié par un index et parfois une extrémité. D’autres fonctions de la même
catégorie peuvent ensuite être utilisées pour déterminer des distances ou des angles entre ces différentes
structures de données.

4.5.1 Principe de fonctionnement


Les outils de recherche de bords fonctionnent tous sur un principe similaire. Ils utilisent une structure
graphique, qui est, soit une région, soit un anneau. Cette structure est définie par une direction et représente
une zone de l’image à analyser.
Dans cette zone, un profil moyen de luminosité est déterminé. Pour une région ce profil correspond à la
moyenne des profils dans la direction de la région. Pour un anneau, le profil moyen est égal à la moyenne
des profils dans les directions radiales du cercle intérieur vers le cercle extérieur définissant l’anneau.
La dérivée du profil moyen est alors déterminée et affichée. La figure 16 montre la dérivée d’un profil
moyen évalué dans une région de taille 500 × 60.

Figure 16 – Dérivée d’un profil moyen dans une région

Lorsqu’il y a effectivement une transition dans la zone de l’image analysée, la luminosité varie progres-
sivement, soit de sombre (la luminosité tend vers 0 : noir) vers clair (la luminosité tend vers 255 : blanc),
soit de clair (blanc) vers sombre (noir). Le profil moyen évalué dans cette zone est donc respectivement, soit
un signal croissant (la dérivée est positive), soit un signal décroissant (la dérivée est négative). La transition
se situe alors exactement à cet endroit. La dérivée du profil moyen y atteint donc un extremum qui est, soit
un maximum lorsque la luminosité varie de sombre à clair, soit un minimum lorsque la luminosité varie de
clair à sombre.
L’amplitude de la dérivée dépend directement de l’amplitude de la transition. Plus la transition est
importante, plus l’amplitude de la dérivée est grande. Ici, l’amplitude de la dérivée est un score compris
entre −100 et 100. Le calcul du score peut tenir compte de l’amplitude maximum de la luminosité dans
l’image. Le signe de la dérivée correspond à la polarité de la transition : si la dérivée atteint un maximum
local (positive), la polarité est noir -> blanc et si la dérivée atteint un minimum locale (négative) la polarité
est blanc -> noir.

TP de Vision Industrielle 20
Tous les extremum locaux de la dérivée correspondent donc à des transitions dans la zone de l’image
analysée qui se différencient par leur score, leur polarité et leur position. Un seuil permet alors de sélec-
tionner les transitions pour lesquelles la valeur absolue du score est supérieure à ce seuil. De même, il est
possible de sélectionner les transitions en fonction de leur polarité.
Enfin, le calcul de la dérivée du profil moyen est effectué numériquement grâce à un filtre dérivateur qui
peut avoir une taille variable. Plus la taille de ce filtre est grande, plus la dérivée est lissée et les transitions
les moins significatifs sont supprimés mais moins la localisation de la transition est précise.
Une transition est un ensemble de points de contours qui sont estimés grâce à la dérivée du profil moyen.
Pour déterminer précisément la position du bord recherché, les outils de recherche de bords détectent fina-
lement les points de contours sur chacun des profils de luminosité utilisés dans les traitements précédents.
La transition est alors construite en sélectionnant dans l’ensemble des points de contours ainsi détectés en
fonction d’un critère. Ce critère retient, soit les points de contours dont le score est le plus grand, soit ceux
détectés en première position, soit ceux détectés en deuxième position. C’est avec ces points de contours
que l’outil de recherche de bord détermine la transition finale avec une certaine tolérance.

4.5.2 Paramètres
Les figures 17, 18 et 19 montrent respectivement les feuilles de propriétés des fonctions FindLine,
FindSegment et FindCircle.

Figure 17 – Fonction FindLine Figure 18 – Fonction FindSegment Figure 19 – Fonction FindCircle

Les paramètres de la fonction FindLine sont les suivants :


• Structure Image : lien vers l’image d’entrée.
• Repère : repère de l’outil. Il est défini par :
 Ligne : son abscisse,

 Colonne : son ordonnée,

 Thêta : son orientation.

• Région : zone dans laquelle la transition est recherchée. Elle est définie par :
 X : son abscisse,

 Y : son ordonnée,

 Hauteur : sa hauteur,

 Largeur : sa largeur,

 Angle : son orientation,

TP de Vision Industrielle 21
Courbure : son rayon de courbure.
• Polarité : sens de la transition (blanc -> noir : clair vers sombre, noir -> blanc : sombre vers clair
ou indiérent).
• Chercher par : critère de sélection des points de contours (transition la plus forte, premier contours
détectés, derniers contours détectés).
• Score minimum : seuil au dessus duquel la transition est sélectionnée (entre 0 et 100).
• Normalisation du score : normalisation du profil de transition.
• Tolérance angulaire : tolérance d’orientation pour la recherche de la ligne (±10˚).
• Largeur ltre : taille du filtre utilisé pour déterminer le profil de la transition.
• Achage : paramètres d’affichage.

L’insertion de la fonction FindLine entraîne l’insertion automatique des fonctions supplémentaires


suivantes de la catégorie Résultats de vision:
• GetRow : retourne l’ordonnée (ligne) d’une extrémité de la ligne indexé.
• GetCol : retourne l’abscisse (colonne) d’une extrémité de la ligne indexé.

Les paramètres de la fonction FindCircle sont identiques sauf :


• Anneau : zone dans laquelle la transition est recherchée. Elle définie par :
 X : son abscisse,

 Y : son ordonnée,

 Rayon intérieur : son rayon intérieur,

 Rayon extérieur : son rayon extérieur.

L’insertion de la fonction FindCircle entraîne l’insertion automatique des fonctions supplémentaires


suivantes de la catégorie Résultats de vision:
• GetRow : retourne l’ordonnée (ligne) du centre du cercle indexé.
• GetCol : retourne l’abscisse (colonne) du centre du cercle indexé.
• GetRadius : retourne le rayon du cercle indexé.
• GetScore : retourne le score (compris entre 0 et 100) du cercle indexé.

Dans la fonction FindSegment le paramètre Polarité est remplacé par :


• Couleur de la bande : noir si les polarités opposées des paires de lignes recherchées sont blanc -
> noir et noir -> blanc ou blanc dans le cas contraire.
L’insertion de la fonction FindSegment entraîne l’insertion automatique de la fonction supplémentaire
PairDistance qui retourne la distance entre les deux lignes détectées.
En revanche, les coordonnées des bords détectés ne sont pas automatiquement ajoutées avec cette fonc-
tion. Afin de déterminer les abscisses et les ordonnées de chaque extrémité des deux bords détectés, il est
possible d’insérer les fonctions suivantes :
• GetRow : retourne l’ordonnée (coordonnée en ligne) d’une extrémité d’un des bords du segment
détecté par la fonction FindSegment.
• GetCol : retourne l’abscisse (coordonnée en colonne) d’une extrémité d’un des bords du segment
détecté par la fonction FindSegment.

TP de Vision Industrielle 22
4.6 Recherche et analyse de blobs (régions)
Dans beaucoup de cas, la surface des objets que l’on souhaite analyser dans une image possèdent une
luminosité qui est identique sur toute leur surface. Ils forment ainsi une région homogène dans l’image.
Une région homogène est donc un ensemble de pixels connexes qui possèdent des niveaux de gris proches.
Compte tenu de ce principe, il devient possible de détecter des blobs (binary large objects) dans l’image en
utilisant principalement la fonction ExtractBlobs de la catégorie Blob (voir figure 20).

Figure 20 – Fonction ExtractBlobs

Cette fonction retourne une structure de données Blobs intégrant un ou plusieurs blobs qui peuvent être
ensuite classés. Chaque bob détecté est indentifié par un index. D’autres fonctions de la même catégorie
peuvent ainsi être utilisées à partir de cette structure de données pour trier les blobs détectés.
Pour détecter un blob, il faut tout d’abord fixer un seuil qui sépare l’image en un arrière-plan et un
premier blanc. On peut alors considérer l’ensemble des blobs dont les niveaux de gris des pixels sont, soit
inférieurs au seuil, soit supérieurs au seuil ou soit les deux. Parmi les blobs ainsi définis, seuls ceux dont
la surface est comprise entre une surface minimum et une surface maximum seront considérés. Enfin, il est
possible de définir si les blobs en contact des bords de la région d’analyse seront considérés ou non et si
les trous (blob inclus dans un blob de couleur opposée) seront pris en compte ou non pour caractériser les
blobs.

Les paramètres de la fonction ExtractBlobs sont les suivants :


• Structure Image : lien vers l’image d’entrée.
• Repère : repère de l’outil. Il est défini par :
 Ligne : son abscisse,

 Colonne : son ordonnée,

 Thêta : son orientation.

• Région : zone dans laquelle les blobs sont recherchés. Elle est définie par :
 X : son abscisse,

 Y : son ordonnée,

TP de Vision Industrielle 23
Hauteur : sa hauteur,


 Largeur : sa largeur,

 Angle : son orientation,

 Courbure : son rayon de courbure.

• Seuil : seuil de binarisation qui sépare le premier plan de l’arrière plan (valeur comprise entre 0 et
255 ou égale à −1 pour un calcul du seuil automatique).
• Nombre à classer : nombre de blobs qui seront considérés (0 pour tout considérer).
• Inclure les trous : prise en compte ou non trous dans le calcul des caractéristiques des blobs.
• Blobs sur frontières : prise en compte ou non des blobs à la frontière de la région d’analyse.
• Couleur : blob : couleur des blobs recherchés (noir : inférieur au seuil, blanc : supérieur au seuil ou
indiérent).
• Couleur : fond : couleur de l’arrière plan (noir ou blanc).
• Surface min : surface minimum des blobs.
• Surface max : surface maximum des blobs.
• Achage : paramètres d’affichage.

L’insertion de la fonction ExtractBlobs entraîne l’insertion automatique des fonctions supplémentaires


suivantes de la catégorie Résultats de vision:
• GetRow : retourne l’ordonnée (ligne) du centre de gravité du blob indexé.
• GetCol : retourne l’abscisse (colonne) du centre gravité du blob indexé.
• GetAngle : retourne l’angle de l’axe principal d’inertie du blob indexé.
• GetColor : retourne la couleur du blob indexé.
• GetScore : retourne le score (compris entre 0 et 100) du blob indexé.
• GetArea : retourne la surface du blob indexé.
• GetElongation : retourne l’élongation du blob indexé.
• GetHoles : retourne le nombre de trous du blob indexé.
• GetPerimeter : retourne le périmètre du blob indexé.
• GetSpread : retourne la compacité du blob indexé.

TP de Vision Industrielle 24
4.7 Apprentissage et recherche de motifs
L’un des outils les plus performants pour rechercher des objets dans une image est la comparaison entre
un modèle (ou motif) de l’objet recherché et l’image analysée. Ce modèle est également une image qui a
été déterminée au cours d’un apprentissage. Cette image est ensuite comparée à l’image analysée en super-
posant le modèle en chaque pixel de cette image et en mesurant une ressemblance entre les caractéristiques
du modèle et celles de la zone d’image correspondante. Si cette ressemblance est forte, alors il y a corres-
pondance entre l’image du modèle de l’objet recherché et la zone d’image analysée. Deux fonctions de la
catégorie Correspondance modèle sont principalement utilisées pour réaliser ces opérations :
• TrainPatMaxPattern : apprentissage d’un modèle à rechercher.
• FindPatMaxPatterns : recherche d’un modèle dans une image.

4.7.1 Apprentissage
La figure 21 montre la feuille de propriétés de la fonction TrainPatMaxPattern qui permet de carac-
tériser un modèle à rechercher.

Figure 21 – Fonction TrainPatMaxPattern

Cette fonction retourne une structure de données Patterns. L’insertion de la fonction TrainPatMax-
Pattern entraîne l’insertion automatique de la fonction supplémentaire GetTrained qui retourne la valeur
1 si l’apprentissage a été correctement effectué (0 dans le cas contraire).
En fait, ce sont des points de contours de l’image d’apprentissage qui sont utilisés pour caractériser le
modèle. Ce sont ensuite ces caractéristiques qui seront mises en correspondance dans l’image analysée. Les
paramètres de la fonction TrainPatMaxPattern sont les suivants :
• Structure Image : lien vers l’image d’entrée.
• Repère : repère de l’outil. Il est défini par :
 Ligne : son abscisse,

 Colonne : son ordonnée,

TP de Vision Industrielle 25
Thêta : son orientation.


• Région du modèle : zone dans laquelle le modèle est appris. Elle est définie par :
 X : son abscisse,

 Y : son ordonnée,

 Hauteur : sa hauteur,

 Largeur : sa largeur,

 Angle : son orientation,

 Courbure : son rayon de courbure.

• Origine du modèle : coordonnées de l’origine du modèle par rapport aux coordonnées de la région
du modèle :
Décalage Ligne : abscisse par rapport à l’abscisse de la région du modèle,


 Décalage Colonne : ordonnée par rapport à l’ordonnée de la région du modèle.

• Params du modèle : paramètres du modèle :


 Algorithme : algorithme utilisé pour définir les caractéristiques du modèle. L’algorithme Pat-

Quick est le plus rapide mais le moins précis car il détermine des caractéristiques grossières du
modèle tandis que PatMax est plus précis mais moins rapide car il détermine des caractéristiques
plus précise du modèle.
 Elasticité : déviation (en pixels) autorisée sur le périmètre du modèle déterminé (0 aucune dé-

viation).
 Ignorer la polarité : prise en compte ou non de la couleur de l’objet trouvé par rapport à la couleur

d’arrière-plan.
 Granularité grossière : définit la taille du plus petit élément à détecter pour le calcul de caracté-

ristiques grossières du modèle (0 pour un calcul automatique).


 Granularité ne : définit la taille du plus petit élément à détecter pour le calcul de caractéristiques

précises du modèle (0 pour un calcul automatique).


• Timeout : temps maximum alloué à la caractérisation du modèle.
• Achage : paramètres d’affichage.

4.7.2 Recherche
La figure 22 montre la feuille de propriétés de la fonction FindPatMaxPatterns qui permet la re-
cherche d’un modèle dans une image.

TP de Vision Industrielle 26
Figure 22 – Fonction FindPatMaxPatterns

Cette fonction retourne une structure de données Patterns qui intègre tous les motifs retrouvés dans
l’image. Chaque motif retrouvé est identifié par un index. D’autres fonctions de la même catégorie peuvent
donc être utilisées à partir de cette structure de données pour trier les motifs retrouvés.

Une fois le modèle déterminé, celui-ci est ensuite centré sur chaque pixel de l’image analysée avec des
orientations et des échelles différentes. Pour chaque pixel, orientation et échelle, un score de ressemblance
compris entre 0 et 100 est calculé par l’algorithme de recherche utilisé. Plus ce score est proche de 1, plus le
modèle recherché correspond au motif analysée. L’analyse du score permet donc de localiser dans l’image
analysée les motifs qui ont été retrouvés.

Les paramètres de la fonction FindPatMaxPatterns sont les suivants :


• Structure Image : lien vers l’image d’entrée.
• Repère : repère de l’outil. Il est défini par :
 Ligne : son abscisse,

 Colonne : son ordonnée,

 Thêta : son orientation.

TP de Vision Industrielle 27
• Région de recherche : zone dans laquelle les modèles sont recherchés. Elle est définie par :
 X : son abscisse,

 Y : son ordonnée,

 Hauteur : sa hauteur,

 Largeur : sa largeur,

 Angle : son orientation,

 Courbure : son rayon de courbure.

• Modèle : lien vers le modèle à chercher.


• Nombre à chercher : nombre de modèles à rechercher.
• Conrmer : score minimum d’acceptation du modèle retrouvé (compris entre 0 et 100).
• Contraste : seuil d’acceptation de contraste.
• Score d'encombrement : prise en compte ou non.
• Hors Région : surface minimum des blobs.
• Rech. tolérances : paramètres de recherche des modèles :
 Angle de départ : tolérance minimum en orientation.

 Angle de n : tolérance maximum en orientation.

 Echelle de départ : tolérance minimum en échelle.

 Echelle de n : tolérance maximum en échelle.

 Rapport H/L : type de tolérance en rapport d’échelle (aucune, selon la hauteur ou selon la

largeur).
 Rapport H/L de départ : tolérance minimum en rapport d’échelle.

 Rapport H/L de n : tolérance maximum en rapport d’échelle.

• Rech. superposition : paramètres de recherche des modèles dans le cas de superpositions de motifs.
• Timeout : temps maximum alloué à la recherche des modèles.
• Achage : paramètres d’affichage.

L’insertion de la fonction FindPatMaxPatterns entraîne l’insertion automatique des fonctions sup-


Résultats de vision
plémentaires suivantes de la catégorie :
• GetRow : retourne l’ordonnée (ligne) de l’origine du motif indexé.
• GetCol : retourne l’abscisse (colonne) de l’origine du motif indexé.
• GetAngle : retourne l’angle du motif indexé.
• GetScale : retourne l’échelle du motif indexé.
• GetScore : retourne le score (compris entre 0 et 100) du motif indexé.

TP de Vision Industrielle 28
4.8 Calibration
Les outils de vision s’appliquant à des images, les mesures (position, distance, orientation) effectuées
sur ces images s’expriment en pixels dans un repère orthonormé positionné en haut à gauche de l’image par
défaut (cellule A0).
Or, les objets vus dans l’image évoluent dans un environnement réel ou les mesures s’expriment géné-
ralement dans une autre unité (par exemple le millimètre) par rapport à un repère précis (par exemple le
repère d’un robot).
D’autre part, les objets vus dans une image sont souvent déformés à cause des distorsions optiques ou
des effets de perspectives et d’angle de vue.
Pour réaliser des mesures fiables s’exprimant dans un environnement réel, il est donc nécessaire de
procéder à une phase de calibration qui a pour but de corriger les déformations et transformer les mesures
par rapport à ce repère réel. Cette calibration consiste donc à déterminer une équation permettant de passer
d’un environnement virtuel (l’image 2D) à un environnement réel (la scène 3D).
Différentes méthodes existent afin de déterminer cette équation :
• A partir de points de l’image dont on connaît la position dans leur environnement réel. Ces points
sont au nombre de 4 ou 9 selon la procédure utilisée et peuvent être définie, soit par l’utilisateur, soit
en utilisant des outils permettant de déterminer la position de ces points.
• A partir d’une grille de points ou d’un damier de pas régulier avec ou sans repère. Une image de la
grille est alors acquise dans les conditions d’acquisition réelles et l’analyse de cette image conduit à
déterminer l’équation de calibration.

Les fonctions de calibration font parties de la catégorie Coordonnées .


La figure 23 montre la feuille de propriétés de la fonction Calibrate permettant d’obtenir une équation
de calibration à partir de quatre points.

Figure 23 – Fonction Calibrate

Pour chaque point, il suffit simplement de donner ses coordonnées en pixel dans l’image et ses coordon-

TP de Vision Industrielle 29
nées dans l’environnement réel avec l’unité de mesure voulue. La fonction renvoie une structure de données
Calib intégrant l’équation de transformation.

Une calibration plus précise peut être obtenue avec la fonction CalibrateAdvanced car celle-ci permet
de spécifier les coordonnées de neuf points au maximum.

La calibration la plus précise est toutefois obtenue avec la fonction CalibrateGrid qui ouvre un assistant
pour effectuer cette calibration à partir d’une grille ou d’un damier (voir figures 24 et 25).

Figure 24 – Fonction CalibrateGrid


Figure 25 – Grille de calibration

Généralement, la calibration s’effectue une seule fois au moment de la mise en oeuvre de l’application.
Grâce à l’équation de calibration, il devient possible de transformer une image afin de corriger ses déforma-
tions avec la fonction TransformImage ou de convertir toute les mesures (position, distance, orientation)
effectuées dans l’image en mesure s’exprimant dans l’environnement réel en utilisant les fonctions de chan-
gements d’unité et changements de repère (catégories Calibration Repère
et ).

TP de Vision Industrielle 30
4.9 Recalage
Les objets qui sont contrôlés en vision industrielle sont rarement positionnés et orientés de la même
façon d’un objet à l’autre. En conséquence, l’image d’un même objet n’est pas toujours acquise dans les
mêmes conditions. Le positionnement des outils de vision effectué dans des conditions initiales sera donc
inadapté si l’image de l’objet est acquis dans des conditions différentes. C’est pourquoi il est nécessaire de
créer un repère propre à l’objet afin de positionner tous les outils de vision par rapport à ce nouveau repère.
Le positionnement des outils de vision s’adaptera ainsi à toutes les conditions d’acquisition.

Pour déterminer un repère propre à un objet de l’image certaines fonctions de la catégories Géométrie
sont très utiles comme :
• PointToLine : mesure de la distance entre un point et une ligne.
• LineToLine : mesure de l’angle entre deux lignes.
Ces fonctions retournent une structure de données Dist qui exprime une mesure.

Les figures 26 et 27 montrent respectivement les fonctions PointToLine et LineToLine.

Figure 26 – Fonction PointToLine Figure 27 – Fonction LineToLine

Les paramètres de ces deux fonctions sont directement les coordonnées des points et des lignes d’entrée.

L’insertion de ces deux fonctions entraîne l’insertion automatique des fonctions supplémentaires sui-
vantes de la catégorie Résultats de vision
:
• GetRow : retourne l’ordonnée (ligne) d’un point.
• GetCol : retourne l’abscisse (colonne) d’un point.
• GetAngle : retourne un angle.
• GetDistance : retourne une distance.

Pour la fonction PointToLine, les coordonnées du point d’entrée, les coordonnées du point d’intersec-
tion, la distance entre le point et la droite, l’angle de la droite par rapport au repère image sont retournés.

TP de Vision Industrielle 31
Pour la fonction LineToLine, si les deux droites se coupent, ce sont alors les coordonnées du point
d’intersection et l’angle entre les deux droites qui sont retournés. La distance est alors nulle.

L’utilisation des coordonnées du point d’intersection et de l’angle permet alors de définir un nouveau
repère.

TP de Vision Industrielle 32
4.10 Contrôles et affichages
Graphiques
Afin de rendre l’application plus conviviale, les fonctions de la catégorie qui peuvent être
utilisées. Ces fonctions se divisent principalement en deux autres catégories :
• Achages : fonctions d’affichage.
• Commandes : commandes classiques.
D’autres fonctions permettent également de tracer des courbes ainsi que d’éditer ou d’afficher différents
graphiques tels que des points, des lignes, des régions, des cercles, des croix, ...

4.10.1 Affichage
Les principales fonctions de la catégorieAchages sont :
• ColorLabel : affiche une chaîne de caractères. La couleur du texte et celle du fond sont deux para-
mètres à spécifier.
• MultiStatus : affiche jusqu’à 16 voyants, chaque voyant représentant l’état d’un bit d’un entier
codé sur 16 bits. Les couleurs des voyants sont deux paramètres à spécifier.
• Status : affiche un voyant rouge, jaune ou vert avec un texte associé en fonction du signe d’une
valeur entrée (négative, nulle ou positive). Les textes associés à chaque couleur sont des paramètres
à spécifier.
• StatusLight : affiche un voyant de couleur choisie avec un texte associé en fonction du signe d’une
valeur entrée (négative, nulle ou positive). Les couleurs et les textes associés à chaque couleur sont
des paramètres à spécifier.

4.10.2 Contrôle
Les principales fonctions de la catégorieCommandes sont :
• Button : insère un bouton avec un texte qui retourne la valeur 1 lorsqu’il est activé (0 sinon).
• CheckBox : insère une case à cocher qui retourne la valeur 1 lorsqu’elle est cochée (0 sinon).
• ListBox : insère une liste déroulante qui retourne l’index de l’élément sélectionné dans la liste.
• MessageBox : affiche une boîte à messages.
• EditInt : édite, augmente ou diminue et retourne la valeur d’un entier compris entre deux bornes
d’un intervalle à fixer.
• EditFloat : édite, augmente ou diminue et retourne la valeur d’un flottant compris entre deux bornes
d’un intervalle à fixer.
• EditFloat : édite et retourne une chaîne de caractère d’une taille maximale à fixer.
• Dialog : crée une boîte de dialogue.

Ces fonctions peuvent servir à conditionner l’activité d’une cellule

4.11 Vue opérateur


Il est possible de créer et d’afficher une vue opérateur en sélectionnant un nombre de cellules visibles
(voir figure 28) et en utilisant les fonctions précédentes.
La définition de la vue opérateur est réalisée dans une fenêtre ouverte avec le bouton ou depuis la
barre des menus. Pour activer ou désactiver la vue opérateur, on utilise ensuite le bouton .

TP de Vision Industrielle 33
Figure 28 – Paramétrage de la vue opérateur

TP de Vision Industrielle 34
4.12 Entrées/sorties, communication
Une phase importante d’un projet de vision concerne la communication du système de vision avec
Communication
l’extérieur. Les fonctions de la catégorie permettent non seulement de communiquer via
le réseau (catégorie Réseau ), mais aussi de communiquer aux moyens des fonctions des deux catégories
suivantes :
• Discrète : fonctions de communication avec les entrées/sorties discrètes (Tout ou Rien),
• Série: fonctions de communication via le port Série.

4.12.1 Entrées/sorties discrètes


Les principales fonctions de la catégorieDiscrète sont :
• ReadDiscrete : lecture d’une ou plusieurs entrées discrètes.
• WriteDiscrete : écriture d’une ou plusieurs sorties discrètes.
La figure 29 montre la feuille de propriétés de la fonction WriteDiscrete.

Figure 29 – Fonction WriteDiscrete

Les paramètres de la fonction WriteDiscrete sont les suivants :


• Evénement : événement (acquisition, activation d’un bouton, condition,...) forçant la mise à jour de
la sortie.
• Bit de départ : bit de sortie à partir duquel la valeur est écrite (entre 0 et 11).
• Nombre de bits : nombre de bits à écrire (entre 1 et 12).
• Valeur : valeur à écrire et retournée par la fonction.

L’insertion de la fonction WriteDiscrete entraîne l’insertion automatique de la fonction MultiStatus.

4.12.2 Port série


Les principales fonctions de la catégorieSériesont :
• ReadSerial : lecture d’une chaîne de caractère sur le port série.
• WriteSerial : écriture d’une chaîne de caractère sur le port série.

Les chaînes de caractères sont manipulées grâce aux fonctions de la catégorie Chaîne dans la catégorie
Texte .

TP de Vision Industrielle 35

Vous aimerez peut-être aussi