Outils d'utilisateurs

Outils du Site


informatique:visio

Visio

Techologies

Nous traitons les images par OpenCV sur CPU, bien que n'étant que peu efficace, cela nous permet d'effectuer des traitements suffisants à l'aide une librairie comportant déjà la grande majorité des algorithmes de vision par ordinateur. De plus, nous disposons d'un Intel Core i5 dans le NUC, l'architecture x86 étant très adaptée à OpenCV (ou l'inverse… ?).

Calibration

Les lentilles des webcams donnent lieu à des distorsions dans l'image, tout particulièrement pour les camera grand angle. Il faut donc corriger cette distorsion. OpenCV dispose d'un attirail de méthodes dédiées à cela. Il suffit de disposer d'un échiquier de calibration.

La transformation de perspective doit également être calibrée. On utilise la aussi un échiquier. On va détecter des points de l'échiquier dans l'image et leur faire correspondre les coordonnées du point de l'échiquier dans le repère réel désiré. Avec 4 points de correspondance, on peut définir la matrice de projection nécessaire à la transformation d'un point quelconque de l'image dans le plan réel associé.

Il faut noter que cela permet de transposer l'image dans un plan, les objets à détecter ne peuvent donc pas se trouver à différentes hauteurs, sans quoi des erreurs seront comises. Pour une détection en trois dimensions, il faut se pencher par exemple sur la stéréovision, qui combine deux webcams pour détecter la distance d'un objet. Cependant, la stéréovision demande beaucoup plus de ressources que la simple détection de formes et de couleur.

Détection des triangles 2014

Nous devions détecter la position et la couleur de triangles rouges et jaunes. Voici l'algorithme utilisé :

Correction de la distorsion de l'image.
Conversion de l'image en format HSV (plus adapté à la détection de couleur)
Création de masques de détection des couleurs
   Pour chaque pixel, blanc si la couleur se trouve dans les limites des teintes à détecter, noir sinon
Filtrage du bruit
   Fonctions morphologiques erode/dilate
Détection des contours externes dans les masques de couleur (on détecte les formes de couleur)
Projection de perspective des contours dans le repère réel relatif au robot
Régression des contours en polygones
   La marge d'erreur d'approximation max est configurable
Si le polygone a trois côtés : c'est un triangle, on alors un triangle et sa couleur
Si le polygone a plus de trois côtés : on cherche des triangles équilatéraux dans le polygone
   Cela permet de détecter des triangles collés les uns aux autres
Pour chaque triangle : calcul de la position au centre du contour

On obtiens ainsi une liste de triangles avec leurs coordonnées et leur couleur.

informatique/visio.txt · Dernière modification: 2014/06/19 17:54 par qchateau