Club robotique de Sophia-Antipolis

Accueil > Projets et études > Etudes techniques > Vision > Image et vision par la pratique > Reconnaissance d’image avec une CMUcam 3 (2010)

Reconnaissance d’image avec une CMUcam 3 (2010)

mercredi 27 octobre 2010, par Keuronde

La CMUcam 3 servait à repérer de grosses balles de jonglage rouge. Ces balles étaient les seuls éléments rouges sur la table, ce qui simplifiait grandement la méthode de détection.

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

JPEG - 36.8 ko
CMUCam sur son support
Un capteur sonique est fixé devant la CMUcam...

Le robot se sert de la caméra pour contrôler son déplacement, il faut donc pouvoir traiter rapidement chaque image.

 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érieur à 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é :

PNG - 19.6 ko
Logique d’analyse d’image
  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.

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document