Vous êtes ici:Démarrer « Guide de la vision industrielle « Correspondance de gabarit

Introduction

La correspondance de gabarit est une technique de vision industrielle de haut niveau qui identifie les parties sur une image qui correspondent à un gabarit prédéfini. Les algorithmes avancés de mise en correspondance de modèles permettent de trouver les occurrences du modèle indépendamment de leur orientation et de leur luminosité locale.

Les techniques de mise en correspondance de modèles sont flexibles et relativement simples à utiliser, ce qui en fait l’une des méthodes les plus populaires de localisation d’objets. Leur applicabilité est surtout limitée par la puissance de calcul disponible, car l’identification de modèles grands et complexes peut prendre beaucoup de temps.

Concept

Les techniques de correspondance de modèles sont censées répondre au besoin suivant : munis d’une image de référence d’un objet (l’image modèle) et d’une image à inspecter (l’image d’entrée), nous voulons identifier tous les emplacements de l’image d’entrée auxquels l’objet de l’image modèle est présent. Selon le problème spécifique à traiter, nous pouvons (ou non) vouloir identifier les occurrences tournées ou mises à l’échelle.

Nous commencerons par une démonstration d’une méthode naïve de mise en correspondance de modèles, qui est insuffisante pour les applications réelles, mais qui illustre le concept de base dont découlent les algorithmes réels de mise en correspondance de modèles. Après cela, nous expliquerons comment cette méthode est améliorée et étendue dans des routines avancées de Matching basé sur les niveaux de gris et de Matching basé sur les bords.

Matching naïf par gabarit

Imaginez que nous allons inspecter l’image d’une fiche et que notre objectif est de trouver ses broches. On nous fournit une image modèle représentant l’objet de référence que nous recherchons et l’image d’entrée à inspecter.

Image modèle

Image d’entrée

Nous allons effectuer la recherche proprement dite de manière assez simple – nous allons positionner le modèle sur l’image à tous les endroits possibles, et à chaque fois, nous calculerons une mesure numérique de la similarité entre le modèle et le segment d’image qu’il recouvre actuellement. Enfin, nous identifierons les positions qui donnent les meilleures mesures de similarité comme les occurrences probables du gabarit.

Corrélation d’images

Un des sous-problèmes qui apparaissent dans la spécification ci-dessus est le calcul de la mesure de similarité de l’image du gabarit aligné et du segment chevauché de l’image d’entrée, ce qui est équivalent au calcul d’une mesure de similarité de deux images de dimensions égales. Il s’agit d’une tâche classique, et une mesure numérique de similarité d’image est généralement appelée corrélation d’image.

Corrélation croisée

Image1 Image2 Corrélation croisée.Correlation
19404780
23316890
24715810

La méthode fondamentale de calcul de la corrélation d’image est la corrélation croisée.corrélation, qui est essentiellement une simple somme de multiplications par paire des valeurs de pixels correspondants des images.

Bien que nous puissions remarquer que la valeur de corrélation semble effectivement refléter la similarité des images comparées, la méthode de corrélation croisée est loin d’être robuste. Son principal inconvénient est qu’elle est biaisée par les changements de luminosité globale des images – l’éclaircissement d’une image peut faire grimper en flèche sa corrélation croisée avec une autre image, même si la seconde image n’est pas du tout similaire.

\mbox{Cross-Correlation}(\mbox{Image1}, \mbox{Image2})= \sum_{x,y} \mbox{Image1}(x,y) \times \mbox{Image2}(x,y)

Corrélation croisée normalisée

Image1 Image2 NCC
-0.417
0.553
0,844

La corrélation croisée normalisée est une version améliorée de la méthode classique de corrélation croisée qui introduit deux améliorations par rapport à la méthode originale :

  • Les résultats sont invariants aux changements de luminosité globale, c’est-à-dire qu’ils sont uniformément éclaircis ou assombris.c’est-à-dire qu’un éclaircissement ou un assombrissement cohérent de l’une ou l’autre image n’a aucun effet sur le résultat (ceci est réalisé en soustrayant la luminosité moyenne de l’image de chaque valeur de pixel).
  • La valeur de corrélation finale est mise à l’échelle de l’intervalle, de sorte que la CCN de deux images identiques est égale à 1,0, tandis que la CCN d’une image et de sa négation est égale à -1,0.

\mbox{NCC}(\mbox{Image1}, \mbox{Image2})= \frac{1}{N\sigma_1 \sigma_2} \sum_{x,y} (\mbox{Image1}(x,y)-\overline{\mbox{Image1} }) \times (\mbox{Image2}(x,y)-\overline{\mbox{Image2}) })}

Modèle d’image de corrélation

Revenons au problème qui nous occupe. Après avoir introduit la corrélation croisée normalisée – mesure robuste de la similarité des images – nous sommes maintenant en mesure de déterminer dans quelle mesure le modèle s’adapte à chacune des positions possibles. Nous pouvons représenter les résultats sous la forme d’une image, où la luminosité de chaque pixel représente la valeur de CCN du modèle positionné sur ce pixel (la couleur noire représentant la corrélation minimale de -1,0, la couleur blanche représentant la corrélation maximale de 1,0).

.

Image du modèle

Image d’entrée

Image de corrélation du modèle

Identification des correspondances

Tout ce qui doit être fait à ce stade est de décider quels points de l’image de corrélation de modèle sont suffisamment bons pour être considérés comme des correspondances réelles. Habituellement, nous identifions comme correspondances les positions qui représentent (simultanément) la corrélation du modèle :

  • plus forte qu’une certaine valeur seuil prédéfinie (c’est-à-dire plus forte que 0.5)
  • localement maximale (plus forte que la corrélation du modèle dans les pixels voisins)

Zones de corrélation du modèle supérieures à 0.75

Points de corrélation de gabarit localement maximale

Points de corrélation de gabarit localement maximale au-dessus de 0,75

Summary

Il est assez facile d’exprimer la méthode décrite dans Adaptive Vision Studio – nous n’aurons besoin que de deux filtres intégrés. Nous calculerons l’image de corrélation du modèle à l’aide du filtre ImageCorrelationImage, puis nous identifierons les correspondances à l’aide de ImageLocalMaxima – nous devons juste définir le paramètre inMinValue qui coupera les maxima locaux faibles des résultats, comme discuté dans la section précédente.

Bien que la technique introduite ait été suffisante pour résoudre le problème considéré, nous pouvons noter ses inconvénients importants :

  • Les occurrences de gabarit doivent préserver l’orientation de l’image de gabarit de référence.
  • La méthode est inefficace, car le calcul de l’image de corrélation de gabarit pour les images moyennes à grandes prend du temps.

Dans les sections suivantes, nous discuterons de la façon dont ces problèmes sont traités dans les techniques avancées de correspondance de gabarit : Matching basé sur l’échelle de gris et Matching basé sur les bords.

Matching basé sur l’échelle de gris, Matching basé sur les bords

Le Matching basé sur l’échelle de gris est un algorithme avancé de correspondance de gabarit qui étend l’idée originale de la détection de gabarit basée sur la corrélation en améliorant son efficacité et en permettant de rechercher des occurrences de gabarit indépendamment de son orientation. Le Matching basé sur les bords améliore encore plus cette méthode en limitant le calcul aux zones de bord de l’objet.

Dans cette section, nous décrirons les détails intrinsèques des deux algorithmes. Dans la section suivante (Jeu d’outils de filtrage), nous expliquerons comment utiliser ces techniques dans Adaptive Vision Studio.

Pyramide d’images

La pyramide d’images est une série d’images, chaque image étant le résultat du sous-échantillonnage (mise à l’échelle, par le facteur deux dans ce cas) de l’élément précédent.

.

Niveau 0 (image d’entrée)

Niveau 1

Niveau 2

Traitement des pyramides

Des pyramides d’images peuvent être appliquées pour améliorer l’efficacité de la détection de gabarits basée sur la corrélation-.basée sur la corrélation. L’observation importante est que le modèle représenté dans l’image de référence est généralement encore discernable après un important sous-échantillonnage de l’image (bien que, naturellement, les détails fins soient perdus dans le processus). Par conséquent, nous pouvons identifier les candidats à la correspondance dans l’image sous-échantillonnée (et donc beaucoup plus rapide à traiter) au niveau le plus élevé de notre pyramide, puis répéter la recherche sur les niveaux inférieurs de la pyramide, en ne considérant à chaque fois que les positions de gabarit qui ont obtenu un score élevé au niveau précédent.

À chaque niveau de la pyramide, nous aurons besoin d’une image convenablement sous-échantillonnée du gabarit de référence, c’est-à-dire que la pyramide des images d’entrée et la pyramide des images de gabarit doivent être calculées.

Niveau 0 (image de référence du modèle)

Niveau 1

Niveau 2

Correspondance à base de niveaux de gris

.based Matching

Bien que dans certaines des applications l’orientation des objets soit uniforme et fixe (comme nous l’avons vu dans l’exemple de la prise), il est souvent le cas que les objets à détecter apparaissent tournés. Dans les algorithmes de correspondance de modèles, la recherche pyramidale classique est adaptée pour permettre une correspondance multi-angle, c’est-à-dire l’identification d’instances tournées du modèle.

Ce résultat est obtenu en calculant non pas une seule pyramide d’image de modèle, mais un ensemble de pyramides – une pour chaque rotation possible du modèle. Pendant la recherche de la pyramide sur l’image d’entrée, l’algorithme identifie les paires (position du modèle, orientation du modèle) plutôt que les seules positions du modèle. De manière similaire au schéma original, à chaque niveau de la recherche, l’algorithme ne vérifie que les paires (position, orientation) qui ont obtenu un bon score au niveau précédent (c’est-à-dire qui semblaient correspondre au gabarit dans l’image de plus faible résolution).

Modèle d’image

Image d’entrée

Résultats de la correspondance multiangles

La technique de correspondance pyramidale associée à la recherche multi-angles constitue la méthode de correspondance de gabarits basée sur l’échelle de gris.

Mise en correspondance basée sur les bords

La mise en correspondance basée sur les bords améliore la mise en correspondance basée sur l’échelle de gris discutée précédemment en utilisant une observation cruciale – que la forme de tout objet est définie principalement par la forme de ses bords. Par conséquent, au lieu de faire correspondre le modèle entier, nous pourrions extraire ses bords et ne faire correspondre que les pixels proches, évitant ainsi certains calculs inutiles. Dans les applications courantes, la rapidité obtenue est généralement significative.

Mise en correspondance basée sur les niveaux de gris:
Mise en correspondance basée sur les bords :

Différents types de pyramides de modèles utilisés dans les algorithmes de mise en correspondance de modèles.

Mettre en correspondance les bords d’un objet au lieu d’un objet dans son ensemble nécessite une légère modification de la méthode originale de mise en correspondance des pyramides : imaginons que nous mettions en correspondance un objet de couleur uniforme positionné sur un fond uniforme. Tous les pixels des bords de l’objet auraient la même intensité et l’algorithme original ferait correspondre l’objet partout où il y a un blob suffisamment grand de la couleur appropriée, et ce n’est clairement pas ce que nous voulons obtenir. Pour résoudre ce problème, dans le Matching basé sur les bords, c’est la direction du gradient (représentée comme une couleur dans l’espace HSV pour les besoins de l’illustration) des pixels de bord, et non leur intensité, qui est mise en correspondance.

Filter Toolset

Adaptive Vision Studio fournit un ensemble de filtres mettant en œuvre à la fois le Matching basé sur les niveaux de gris et le Matching basé sur les bords. Pour la liste des filtres, voir Template Matching filters.

Comme l’image modèle doit être prétraitée avant la correspondance pyramidale (nous devons calculer les pyramides de l’image modèle pour toutes les rotations possibles), les algorithmes sont divisés en deux parties :

  • Création du modèle – dans cette étape, les pyramides de l’image modèle sont calculées et les résultats sont stockés dans un modèle – objet atomique représentant toutes les données nécessaires pour exécuter la correspondance pyramidale.
  • Mise en correspondance – dans cette étape, le modèle de modèle est utilisé pour mettre en correspondance le modèle dans l’image d’entrée.

Une telle organisation du traitement permet de calculer le modèle une fois et de le réutiliser plusieurs fois.

Filtres disponibles

Pour les deux méthodes d’appariement de modèles, deux filtres sont fournis, un pour chaque étape de l’algorithme.

Mise en correspondance basée sur les échelles de gris Mise en correspondance basée sur les bords
Création du modèle: CreateGrayModel CreateEdgeModel
Mise en correspondance : LocateMultipleObjects_NCC LocateMultipleObjects_Edges

Veuillez noter que l’utilisation des filtres CreateGrayModel et CreateEdgeModel ne sera nécessaire que dans des applications plus avancées. Sinon, il suffit d’utiliser un seul filtre de l’étape Matching et de créer le modèle en définissant le paramètre inGrayModel ou inEdgeModel du filtre. Pour plus d’informations, voir Création de modèles pour la mise en correspondance de modèles.

Le principal défi de l’application de la technique de mise en correspondance de modèles réside dans le réglage minutieux des paramètres du filtre, plutôt que dans la conception de la structure du programme.

Schéma d’application avancé

Il existe plusieurs types d’applications avancées, pour lesquelles l’interface graphique interactive de Template Matching n’est pas suffisante et l’utilisateur doit utiliser directement le filtre CreateGrayModel ou CreateEdgeModel. Par exemple :

  1. Lorsque la création du modèle nécessite un prétraitement d’image non trivial.
  2. Lorsque nous avons besoin d’un tableau entier de modèles créés automatiquement à partir d’un ensemble d’images.
  3. Lorsque l’utilisateur final devrait être en mesure de définir ses propres modèles dans l’application d’exécution (par exemple en faisant une sélection sur une image d’entrée).

Schéma 1 : Création du modèle dans un programme séparé

Pour les cas 1 et 2, il est conseillé d’implémenter la création du modèle dans un macrofiltre Task séparé, de sauvegarder le modèle dans un fichier AVDATA et de lier ensuite ce fichier à l’entrée du filtre correspondant dans le programme principal :

Création du modèle : Programme principal:

Quand ce programme sera prêt, vous pourrez exécuter la tâche « CreateModel » en tant que programme à tout moment pour créer le modèle. Le lien vers le fichier de données sur l’entrée du filtre de correspondance n’a pas besoin de modifications alors, parce que c’est juste un lien et ce qui est modifié est seulement le fichier sur le disque.

Schéma 2 : Création dynamique du modèle

Pour le cas 3, lorsque le modèle doit être créé dynamiquement, le filtre de création de modèle et le filtre de correspondance doivent être dans la même tâche. Le premier, cependant, doit être exécuté conditionnellement, lorsqu’un événement IHM respectif est soulevé (par exemple, l’utilisateur clique sur un ImpulseButton ou effectue une action de souris dans une VideoBox). Pour représenter le modèle, il faut utiliser un type registerof EdgeModel ? qui stocke le dernier modèle (une autre option consiste à utiliser le filtre LastNotNil).Voici un exemple de réalisation avec le modèle étant créé à partir d’une boîte prédéfinie sur une image d’entrée lorsqu’un bouton est cliqué dans l’IHM:

Création du modèle

Hauteur de la pyramide

Le paramètre inPyramidHeight détermine le nombre de niveaux de la correspondance de la pyramide et devrait être réglé sur le plus grand nombre pour lequel le modèle est encore reconnaissable sur le niveau le plus élevé de la pyramide. Cette valeur doit être sélectionnée par expérimentation interactive en utilisant la sortie de diagnostic diagPatternPyramid (correspondance basée sur les niveaux de gris) ou diagEdgePyramid (correspondance basée sur les bords).

Dans l’exemple suivant, la valeur de inPyramidHeight de 4 serait trop élevée (pour les deux méthodes), car la structure du modèle est entièrement perdue à ce niveau de la pyramide. De même, la valeur de 3 semble un peu excessive (surtout dans le cas de l’appariement basé sur les bords) alors que la valeur de 2 serait certainement un choix sûr.

Niveau 0 Niveau 1 Niveau 2 Niveau 3 Niveau 4
Appariement basé sur les niveaux de gris
(diagPatternPyramid) :
Mise en correspondance basée sur les arêtes
(diagEdgePyramid) :

Plage d’angles

Les paramètres inMinAngle, inMaxAngle déterminent la plage d’orientations du modèle qui sera prise en compte dans le processus de correspondance. Par exemple (les valeurs entre parenthèses représentent les paires de valeurs inMinAngle, inMaxAngle) :

  • (0,0, 360,0) : toutes les rotations sont prises en compte (valeur par défaut)
  • (-15,0, 15,0) : les occurrences du modèle sont autorisées à dévier de l’orientation du modèle de référence d’au plus 15,0 degrés (dans chaque direction)
  • (0,0, 0.0) : les occurrences du modèle sont censées préserver l’orientation du modèle de référence

Une large gamme d’orientations possibles introduit une quantité importante de surcharge (à la fois en utilisation de la mémoire et en temps de calcul), il est donc conseillé de limiter la gamme lorsque cela est possible.

Paramètres de détection des bords (uniquement correspondance basée sur les bords)

Les paramètres inEdgeMagnitudeThreshold, inEdgeHysteresis du filtre CreateEdgeModel déterminent les paramètres du seuillage à hystérésis utilisé pour détecter les bords dans l’image modèle. Plus la valeur de inEdgeMagnitudeThreshold est faible, plus le nombre d’arêtes détectées dans l’image modèle est important. Ces paramètres doivent être réglés de manière à ce que tous les bords significatifs du modèle soient détectés et que la quantité de bords redondants (bruit) dans le résultat soit aussi limitée que possible. De la même manière que pour la hauteur de la pyramide, les seuils de détection des bords doivent être sélectionnés par expérimentation interactive en utilisant la sortie de diagnostic diagEdgePyramid – cette fois, nous devons examiner uniquement l’image au niveau le plus bas.

(15,0, 30.0) – quantité excessive de bruit

(40.0, 60.0) – OK

(60.0, 70.0) – bords significatifs perdus

Le filtre CreateEdgeModel ne permettra pas de créer un modèle dans lequel aucun bord n’a été détecté au sommet de la pyramide (ce qui signifie que non seulement certains bords significatifs ont été perdus, mais tous), produisant une erreur dans ce cas. Chaque fois que cela se produit, la hauteur de la pyramide, ou les seuils d’arêtes, ou les deux, devraient être réduits.

Matching

Le paramètre inMinScore détermine à quel point l’algorithme sera permissif dans la vérification des candidats à la correspondance – plus la valeur est élevée, moins de résultats seront renvoyés. Ce paramètre devrait être réglé par expérimentation interactive à une valeur suffisamment basse pour assurer que toutes les correspondances correctes seront retournées, mais pas beaucoup plus basse, car une valeur trop basse ralentit l’algorithme et peut causer l’apparition de fausses correspondances dans les résultats.

Conseils et meilleures pratiques

Comment choisir une méthode?

Pour la grande majorité des applications, la méthode de correspondance basée sur les bords sera à la fois plus robuste et plus efficace que la correspondance basée sur les niveaux de gris. Cette dernière ne doit être envisagée que si le modèle considéré présente des zones de transition de couleur lisses qui ne sont pas définies par des bords discernables, mais qui doivent tout de même être appariées.

Précédent : Ajustement de forme Suivant : Systèmes de coordonnées locales

.

Articles

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.