Outils pour utilisateurs

Outils du site


visionlproaip

Ceci est une ancienne révision du document !


Installations préliminaires

Installation des paquets apt sur les machines (fait par l'enseignant avec des droits d'administration)

su aip
sudo apt-get install -y python3-venv idle geeqie

Création de l'environnement virtuel pour les étudiants (à faire par l'étudiant 1 fois en début de séance)

echo commence
#sauvegarde de l'ancien dossier vers un dossier contenant date et heure
mv "/home/etudiant/vision_lprorob" "/home/etudiant/vision_lprorob-$(date +%Y%m%d)-$(date +%H%M)"
mkdir -p ~/vision_lprorob
cd ~/vision_lprorob
python3 -m venv env
source env/bin/activate
pip install -U pip
pip3 install imutils opencv-python matplotlib  rubik_solver numpy
echo fini

Pour ouvrir idle3 dans l'environnement virtuel

cd ~/vision_lprorob
source env/bin/activate
python3 -m idlelib.idle

Taches de vision affectées individuellement

Discutez avec l'enseignant qui vous affectera une des taches de vision parmi les suivantes:

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.

Télécharger et compléter le programme python: https://bvdp.inetdoc.net/files/iut/tp_lpro_vision/rigid_transform_2D_a_completer.py

Vous devez compléter la fonction def computeRigidTransform(P2Dimage,P2Drobot): pour calculer la valeur des paramètres tx,ty et theta

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

rigidtransform.in
83,110,-138.5,520,9,103,-213,514,12,0,-213,410

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.

Télécharger et compléter le programme python: https://bvdp.inetdoc.net/files/iut/tp_lpro_vision/synthese_bouchon_a_completer.py

Pour cela compléter la 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_center dans l'image image
  • d2 correspond au diamètre de la région centrale du bouchon à colorier en bgr_color_contour 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:

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

Télécharger et compléter le programme python: https://bvdp.inetdoc.net/files/iut/tp_lpro_vision/correlation_a_completer.py

Vous devez compléter 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

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.

Télécharger et compléter le programme python: https://bvdp.inetdoc.net/files/iut/tp_lpro_vision/homographie_a_completer.py

Vous devez compléter 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

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

visionlproaip.1617481873.txt.gz · Dernière modification : 2021/04/03 22:31 de bvandepo