Outils pour utilisateurs

Outils du site


saevisionbut3

Dépôt vers Moodle

Rendre votre projet avant le 13 décembre à 23h59! lien vers le cours moodle pour déposer le projet: https://moodle.iut-tlse3.fr/mod/assign/view.php?id=267430

Faire un dépôt par étudiant, donc chaque étudiant doit déposer le fichier zip du projet, qui doit contenir le nom des deux étudiants du binôme. Par exemple, pour les étudiants Pincemi et Pincemoi, rendre deux fois le fichier Pincemi_Pincemoi.zip

Installation des outils

Ajout de Openscad au path pour vos PC personnels

lancer SystemPropertiesAdvanced.exe et cliquer sur variable d'environnement puis 'path' et ajouter le chemin complet du fichier openscad.exe

Présentation SAE Vision Industrielle BUT3

Attention 1 séance encadrée de SAE sera en fait un examen de TP de Vision Industrielle (probablement le mardi 3 décembre 2024)

Évaluation :

  1. rendre via Moodle 1 fichier zip contenant le code + le rapport
  2. en séance, validation du fonctionnement et réponse à des questions

Explication espaces projectifs et homographies (+inverse)

https://docs.opencv.org/4.x/da/d54/group__imgproc__transform.html

Rectification d'images (exemple stéréo épipolaire + génération d'une vue fronto-parallèle)

Estimation d'homographie à partir de 4 (minimum) points 2D mis en correspondance

Mire à 4 points dans le plans

Génération d'images synthétiques avec Openscad

Modèles 3D du but2 + nouveaux modèles (mire etc)

CLI openscad syntaxe (lien)

Programme python pour générer des commandes CLI paramétriques (faire varier pose etc…)

Traitement des images synthétiques associées à vérité terrain

1 bouchon posé sur un plan P1, la face du bouchon est plane et contenue dans un plan P2 parallèle à P1

Le projet

Deux méthodes utilisant la rectification d'image: La face supérieure du bouchon = 2 disques colorés concentriques Localisation par :

  1. mesure de corrélation avec un modèle synthétique (méthode 1)
  2. recherche de 2 cercles concentriques dans l'image de contours (méthode 2)

Une méthode utilisant l'image brute acquise par la caméra: (méthode 3) : face supérieure du bouchon = 2 ellipses obtenues par projection perspective de 2 disques colorés concentriques Localisation par :

  1. détection d'ellipses dans l'image
  2. application de l'homographie inverse à l'ellipse pour obtenir le centre du cercle dans le plan du

Développement et tests sur les images synthétiques

Validation avec des images réelles

Étapes pour la méthode 1

Vous devrez tous réaliser au moins la méthode 1, dont les différentes étapes sont indiquées ci dessous. Vous pourrez ensuite réaliser les méthodes 2 et/ou 3 après validation de la méthode 1 par l'enseignant.

Partie 1: Estimation de transformation rigide 2D

Cette tache consiste à estimer 3 paramètres (2 en translation + 1 en rotation) pour une transformation rigide 2D entre 2 repères.

Partie 2: Génération d'une image synthétique du bouchon

Cette tache consiste à synthétiser deux images du bouchon: une image de couleur et une image de masque.

Faire une fonction create_pattern_and_mask(width, height,d1,d2, bgr_color_center=(0, 0, 0),bgr_color_contour=(0, 0, 0)): du programme

  • width représente la largeur de l'image à générer
  • height représente la hauteur de l'image à générer
  • d1 correspond au diamètre du contour du bouchon à colorier en bgr_color_contour dans l'image image
  • d2 correspond au diamètre de la région centrale du bouchon à colorier en bgr_color_center dans l'image image

L'image mask doit contenir un disque de diamètre d1 blanc, entouré de noir.

Les valeurs de couleurs sont indiquées dans un fichier à mettre dans le même dossier que le programme python:

listecolors.out
  160.0000,  119.0000,  109.0000
   58.0000,   58.0000,  249.0000

exemple d'images à générer pour les paramètres par défaut du programme:

image:

mask:

Partie 3: Détection de la position du bouchon dans l'image rectifiée

Cette tache consiste à rechercher la position dans l'image la plus similaire à l'image de bouchon composée de:

  • l'image de couleur:
  • un masque indiquant le fond et la forme:

différentes images à traiter:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon1_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon2_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon3_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon4_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon5_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon6_rect.jpg

Vous devez faire la fonction def processImage(image): pour rechercher la meilleure correlation entre l'image de référence du bouchon et l'image fournie dans image en utilisant la fonction matchTemplate d'openCV. La fonction def processImage(image): doit retourner l'image avec le bouchon détecté en surimpression, une variable indiquant si le bouchon est détecté dans l'image, et les position x et y du centre du bouchon détécté dans l'image.

L'image suivante montre un résultat de détection du bouchon

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon1_rect_trouve.jpg

Partie 4: Rectification de l'image grâce à une homographie

Cette tache consiste à générer une image rectifiée à partir de l'image fournie par la caméra. Cette image rectifiée doit avoir une résolution de 1 pixel par millimètre et occuper une surface de 169×169 millimètres. Les quatre coins de cette image doivent correspondre aux quatre coins de la mire posée sur le plan de travail du robot.

Vous devez faire la fonction processImage(image,srcPoints): pour calculer la transformation homographique à partir des coordonnées de points 2D mis en correspondance (avec les 4 coins de l'image à générer). La fonction doit également génerer l'image dst rectifiée

Exemple de fichier contenant les correspondances, à mettre dans le même dossier que le programme python pour la fonction main:

listepoints.out
  991.2868,  565.0504
  655.7476,  490.5274
  592.5595,  833.6786
  948.9872,  903.2888

Pour calculer l'homographie vous aurez besoin d'utiliser la fonction cv2.getPerspectiveTransform(…)

exemple d'image de la mire en entrée du programme:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imamire1.jpg

image avec les contours en surimpression:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imamire1_contour.jpg

exemple d'image de la mire en sortie du programme:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imamire1_rect.jpg

En appliquant le même traitement à des images de bouchons sur la zone de la mire:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon1.jpg

est rectifiée en:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon1_rect.jpg

saevisionbut3.txt · Dernière modification : 2024/12/03 12:14 de bvandepo