Vision 2010

13 septembre 2012

Lors de la Coupe de France de Robotique de 2010, nous avions fait le choix de récupérer les balles rouges qui se trouvaient sur la table. Pour repérer ces balles, nous nous servions d’une CMUcam 3.

Les balles étaient les seuls éléments rouges présents sur le terrain. La caméra repérait les pixels rouges et les rassemblait dans des formes. Elle envoyait ensuite les formes au microcontrôleur PIC pour qu’il dirige le robot vers la balle.

La CMUcam est montée sur un bras à l’avant du robot.


CMUCam sur son support

Un capteur sonique est fixé devant la CMUcam...

 Reconnaissance des couleurs

L’image est récupérée ligne par ligne. Pour chaque pixel, les trois composantes (rouge, vert et bleu) sont reçues. Les valeurs reçues sont comprises entre 0 et 255. Un pixel est considéré comme rouge si :

  • Sa composante de rouge est supérieure à 100
  • Sa composante de rouge est supérieure à 3 fois la somme de sa composante bleue et de sa composante verte.

if( (Rouge > 100) && (Rouge > 3*(Vert+Bleu) ) )

Si le pixel est rouge, ceci est noté dans un tableau qui reproduit l’image. A la fin du traitement, ce tableau contient 1 dans toutes les cases correspondant à des pixels rouges et 0 dans les autres cases.

 Reconnaissance des zones

Ensuite le tableau est parcouru de gauche à droite puis de haut en bas. A chaque pixel rouge rencontré qui ne fait pas partie d’une forme précédemment identifiée, le traitement suivant est appliqué :


Logique de traitement
  1. Horizontalement vers la droite, comptage du nombre de pixels jusqu’au premier pixel d’une couleur différente.
  2. Retour au milieu de la ligne de pixels, comptage du nombre de pixels verticalement vers le bas jusqu’au premier pixel d’une couleur différente.
  3. Retour au milieu de la ligne verticale de pixels, comptage horizontalement vers la droite jusqu’au premier pixel d’une couleur différente.
  4. Retour au milieu de la ligne verticale de pixels, comptage horizontalement vers la gauche jusqu’au premier pixel d’une couleur différente.
  5. Déduction de la zone cible.

Enfin, les différentes zones trouvées sont comparées. Si certaines se chevauchent, celles-ci sont fusionnées. Dans notre cas, deux zones étaient fusionnées si le centre de l’une était dans la zone de l’autre. Les zones les plus petites sont éliminées. Soit la balle est trop loin, soit il s’agit d’autre chose.

Il est possible de ne traiter qu’un pixel sur 4 ou qu’un pixel sur 9 (en prenant qu’un pixel sur deux par ligne et qu’une ligne sur deux). Ceci permet de raccourcir la durée du traitement, mais l’image perd en résolution. Ceci raccourcit un peu le champ de vision du robot.

Commentaires

Il n'y a pas de commentaires

Ajouter un commentaire

Pseudo :
Mail :

Texte :

Copyright "POIVRON" 2011-2023, tous droits réservés
Administration du site