Vision Industrielle Master IMA Rapports TP Vision Industrielle Bastien Bourssau
Vision Industrielle Master IMA Rapports TP Vision Industrielle Bastien Bourssaud Matthieu Crouzet Bastien Bourssaud Page 0 sur 14 Matthieu Crouzet Vision Industrielle Master IMA Index Index....................................................................................................................................1 Seuillage automatique...................................................................................2 Objectifs du TP :.....................................................................................................................2 La librairie OpenCv :..............................................................................................................2 Application au seuillage automatique :...................................................................................2 Binarisation dynamique :........................................................................................................5 Lecture code barre..............................................................................................7 Objectifs..................................................................................................................................7 Presentation.............................................................................................................................7 Exemple de code barre............................................................................................................8 Mise en œuvre des différentes étapes.....................................................................................9 1. La localisation du code :.........................................................................................9 2. Détection de l’orientation......................................................................................11 Le code barre redresser de l’image 1 fournie............................................................................11 3. Extraction du code................................................................................................12 4. Lecture du code.....................................................................................................12 Bastien Bourssaud Page 1 sur 14 Matthieu Crouzet Vision Industrielle Master IMA Seuillage automatique Objectifs du TP : Rechercher une méthode de seuillage automatique. Le seuillage n'est pas nécessairement une opération qui s'effectue manuellement : la valeur de seuil peut être obtenue de manière automatique. Le seuillage automatique est basé sur l'analyse de la distribution en fréquence (cumulée ou histogramme) des niveaux de gris associée à l'image. L'objectif des méthodes de recherche de seuil automatique est de déceler 2 "populations" sur l'histogramme, et de proposer la valeur qui permet de les séparer au mieux. On utilisera donc l’histogramme des niveaux de gris de l’image. La librairie OpenCv : L’obtention de l’histogramme, ainsi que les manipulation de l’image sont faites à partir de l’utilisation de la librairie OpenCv. OpenCv (Open source Computer Vision library) est une librairie ouverte développée par Intel. Cette librairie dispose de fonction de haut niveau pour l vision par ordinateur et le traitement d’images. Elle est implémentée sur différentes plates- formes, Windows, Linux, … Application au seuillage automatique : Ici il sera question de réaliser un programme de binarisation automatique d’une image en niveaux de gris. Les images comporteront un objet sur un fond homogène. La binarisation consiste à réduire à deux couleurs l’image (noir et blanc). Donc on va calculer un seuil à partir duquel tous les niveaux de gris qui seront supérieur à ce seuil seront blanc, les autres seront noirs. Pour binariser l’image, nous allons travailler sur l’histogramme des niveaux de gris de l’image. Dans un premier temps nous utiliseront l’image image1.tif, car elle est déjà fortement contrastée. Voici l’image avec son histogramme des niveaux de gris. Bastien Bourssaud Page 2 sur 14 Matthieu Crouzet Vision Industrielle Master IMA Image1.tif Histogramme des niveaux de gris Le principe que nous utilisons pour binariser l’image consiste à prendre le minimum entre deux maxima de l’histogramme. En effet, les deux maxima représentent (pour une image fortement contrastée) le fond et l’objet. L’objet ici est du texte écrit en noir, et le fond est homogène (presque blanc). Pour calculer les deux maxima, on réduit l’histogramme en un histogramme 8 fois plus petit (32 portions de 8 niveaux de gris), puis on étudie les variations de l’histogramme nouvellement obtenu. Algorithme : On obtient ainsi : Bastien Bourssaud Page 3 sur 14 Matthieu Crouzet Calcule de la pente pour chaque tranche de 8 niveaux de gris que l’on met dans l’histogramme réduit. // cela permet de ne garder que les variations significatives puisque l’on « réduit » l’histogramme à 32 valeurs On récupère les maxima locaux à partir du nouvel histogramme, que l’ont met dans le tableau des maxima locaux. // on ne garde ainsi que les maxima max1 = tableau des maxima locaux[i]. Suppression de max1 du tableau des maxima locaux. max2 = tableau des maxima locaux[i]. max1 = max1 * 8. max2 = max2 * 8. On prend les maxima vrai_max1 et vrai_max2 dans les tranches de huit niveaux de gris qui contiennent max1 et max2. On récupère les indices de l’histogramme ind1 et ind2 qui correspondent à vrai_max1 et vrai_max2. On prend le minimum seuil entre ind1 et ind2. Vision Industrielle Master IMA Seuillage automatique Histogramme du seuillage automatique En revanche, lorsque l’on utilise une image moins contrastée, comme image4.tiff, cette méthode de seuillage n’est plus applicable, car il n’y a pas de réelle différence entre l’objet et le fond, donc on n’obtient pas des maxima significatifs dans l’histogramme. Image4.tif Histogramme des niveaux de gris Bastien Bourssaud Page 4 sur 14 Matthieu Crouzet Vision Industrielle Master IMA Seuillage automatique Histogramme du seuillage automatique On voit clairement que cette méthode ne fournit pas un bon résultat. Donc pour obtenir une binarisation de l’image, on va procéder à une binarisation dynamique de l’image. Binarisation dynamique : Il s’agit ici de calculer une valeur de seuillage non pas pour l’image toute entière, mais pour une région de l’image. On va donc procéder comme suit : Découpage de l’image en plusieurs zones Calcule du seuil automatiquement pour chaque zone Reconstruction de l’image Pour avoir la meilleur binarisation, il faut sélectionner convenablement le nombre de zones où il faudra seuiller. Algorithme du découpage en zones de l’image : Bastien Bourssaud Page 5 sur 14 Matthieu Crouzet size_x = longueur de l’image / nombre de blocs horizontaux. size_y = largeur de l’image / nombre de blocs verticaux. pour chaque bloc i faire pour j = 0 à size_x faire pour k = 0 à size_y faire bloc[i][j][k] = image [(i % nombre de blocs)*size_x*size_y+j*size_x+k] fpour fpour fpour Vision Industrielle Master IMA Ensuite pour chaque blocs crée, on applique la méthode précedente de calcule de seuil pour binariser l’image. Puis il nous faut reconstruire l’image avec les blocs binariser. Image4.tiff binarisée On voit donc ici qu’avec 3 blocs horizontaux et 5 blocs verticaux, l’image binarisée est exploitable et on arrive à lire le texte. Cette méthode de binarisation est plus efficace pour les images faiblement contrastée, car on calcule des seuils locaux (un pour chaque bloc) plutot qu’un seuil global, qui ne rend pas suffisament compte des niveaux de gris de l’image. Bastien Bourssaud Page 6 sur 14 Matthieu Crouzet Vision Industrielle Master IMA Lecture code barre Objectifs Reconnaissance de codes barres dans un environnement réel. Il s’agit de localiser le code sur des produits grand public, d’extraire les informations codées et de vérifier le codage avec le code alphanumérique disponible juste en dessous du code à barres. Pour simplifier l’approche, on ne traitera ici que les codes à barres de type EAN13 qui se trouvent sur la plupart des produits en grande distribution. Un lot d’images dans des contextes d’acquisition différents permettra de vérifier l’efficacité du processus de reconnaissance. L’usage de ce type de codage permet d’éviter l’utilisation d’un classifieur. Presentation Le processus peut se décomposer en 4 phases. La localisation du code : cette localisation est possible sur la base de deux constatations. Tout d’abord, il est à noter que les codes sont toujours sur un fond blanc homogène. D’autre part, l’image est centrée sur le code barre. En effet, le processus de lecture est continu permettant à l’opérateur de déplacer l’objet devant le dispositif d’acquisition jusqu’à ce que le code barre soit au centre de l’image … jusqu’à ce que la reconnaissance ait lieu Attention : les barres ne sont pas nécessairement noirs alors que le fond sera estimé comme toujours blanc. Une segmentation par région sur la base d’un quadtree (ou d’un pavage) peut être envisagé. Il convient ici de définir un critère d’homogénéité pouvant porter sur les caractéristiques présentées ci-dessus. A partir de cette segmentation, un filtrage des éléments indésirables est fortement conseillé pour la suite du processus. Détection de l’orientation : la détection de l’orientation consiste à retrouver l’angle de lecture du code. Cette orientation est importante puisqu’elle conditionne les espaces interbarres qui caractérisent le codage. Plusieurs techniques de recherche des orientations peuvent être envisagées : recherche d’alignements, de directions privilégiées, maximisation des transitions, maximisation des projections …. Dans ces différentes approches, soit la direction est trouvée par un calcul global sur l’image (attention aux résidus d’image pouvant être encore présents sur les pourtours), soit en appliquant des sondes ou des rotations d’images suivant un pas connu a priori. Dans ce dernier cas, de proche en proche, on tente de maximiser un critère permettant de connaître l’orientation … et la rotation nécessaire de l’image. Suivant la technique utilisée, des filtrages de l’image peuvent être nécessaires au préalable. Extraction du code : l’extraction du code vise à retrouver les espaces au sens du codage présenté ci-après. Le code à barres disposant d’une redondance d’information (alignement des barres sur une certaine longueur), il est indispensable de vérifier que vous retrouvez le même code sur plusieurs lectures à Bastien Bourssaud Page 7 sur 14 Matthieu Crouzet Vision Industrielle Master IMA des endroits différents. Certaines images disposent volontairement de défauts de marquage. Un principe de fusion de l’information sera donc nécessaire. D’autre part, une vérification de l’alignement des barres peut dans certains contextes être nécessaire. Lecture du code : cette dernière étape porte sur l’association des espaces extraits et le codage EAN13. Les tables ci-jointes vous donnent les informations nécessaires pour ce décodage de l’information. Exemple de code barre Bastien Bourssaud Page 8 sur 14 Matthieu Crouzet Vision Industrielle Master IMA Mise en œuvre des différentes étapes 1. La localisation du code : Pour détecter le code barre, on procède à une segmentation de texture non régulière. Il existe deux uploads/Management/ compte.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/4pDq6A08XK4rlq5CzU4Gf1QQ2xlBdQSuouNi4IpQDjyc4x702e22rrxxLsoFYWljQv69fe6tN9Wyh47kMNCU0ig7.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/5c3aOPDGYuIFPt8xJmegpOydv60P9MUcOZ6S3YYjRwnWbPTVE9HvRX1kclLLl10dn0H03JfdWAwroU35VGTY8Ice.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/du0yp8sAlWWS9WNAYYB4SiFMeaQSoTmK9ml3Vca6D8civgRmH7kVlJ9KHsuQj1pmT8LogxfESQvCnyH1Z7HI5x2m.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/PCBdnaEALigcC6XSAzp71O4McOyCb6Fb9vjuKxw7EviORK7wV1ktQKjqzu1RS0GbSZWYbyit5xrQMu8EvsmwejNr.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/TeDGgx6uNa5DO036kBxVrknhzoAoWLNVSN3ay9GUEayEKcDzuw3Dnm46rXS7WWYxKqZzBqriWpmRCer6QyANhBvV.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/bkKck3lE9KWQNqtTCqyooZQwI6li84iv6zI0vQQtWMc71d2t3FDOzVqsCkH89RbLucrjish4Nu5QSd28KpEqEa7A.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/2Rzydzz3af3CjXbaoZbXtW0pwbThrIJoCWHzPkd0bbSnPYgsbe20J4lrE21F8Y0Sa8OoFfrABvIqqtDOvOXMweN2.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/sJZDmWULhHZ4Lck0vEbPCxdxy8AvNyD5gVZN6Fi4c266Db6BGJtbohXPMQiaOnBKiGZbWKEbA7ill14wEoi9eiDT.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/URtMJHENXri1TbMYwmUWKlsbhuXwxfd3B9QifS5gXYByzdN7iu0l8rt0BYWtLs913i07tZ0BLdfgwnJhQmJhyKZi.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/wPuKIsuyYKYdhkZGQPt7QMYoh3bHJlgV70oaFtGdegqLJfiu0Z2NPXCEImH6FFdGAbBJSmbiltGP5nWqpTABVsEH.png)
-
16
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 05, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.8120MB