mardi 14 décembre 2010

Reconnaître une cible - Target recognition

J'ai voulu ajouter la vision à la routine de recherche et d'approche d'une cible. Le nouvel objectif du robot est donc de renverser toutes les quilles qu'il rencontre jusqu'à ce qu'il trouve celle qui comporte ce superbe symbole graphique distinctif :



Comment ça marche ?

La caméra est active en permanence. Le flux vidéo est traité par le PC embarqué, dit "PC104", à l'aide de RoboRealm qui est configuré avec les modules suivants :

Image brute : la cible et son symbole graphique. A noter, la lumière blafarde de mon bureau, avec par exemple une belle ombre au pied de la quille... Il faut en tenir lors du traitement !
Vitesse d'acquisition avant traitement : 20 FPS

Module Flood Fill 255, qui regroupe les pixels par couleurs similaires, et moyenne les teintes.

Recherche d'arête Canny 0-255

Les arêtes sont élargies avec le module Dilate pour assurer la clôture des contours

Le module Fill remplit les espaces fermés présents sur l'image : ça ressemble à l'original

Le module Shape_Match renvoit la confiance de reconnaissance des 2 "tâches" présentes sur l'image. La meilleure valeur est aussi stockée dans la variable "SHAPE_CONFIDENCE"

Pour chaque image traitée, la valeur absolue de "SHAPE_CONFIDENCE" est envoyée au Basic Stamp par le port série, précédée du caractère "A".
En sortie, ce traitement d'image est largement assez performant pour la mission : en moyenne 4 FPS.
A noter : les déformations du support du symbole et l'effet de perspective ont pu être négligés. Profitons, ce n'est pas toujours le cas...
Fin de la partie Vision.


Le début de la mission est identique à celles précédemment décrites. Après l'approche d'une cible, le micro-contrôleur lit ce qui arrive sur son entrée 1, utilisée pour les communications série avec le PC104. Dès qu'un "A" est reçu, le Basic Stamp est averti que l'octet suivant devra être stocké dans une variable "confiance".

  • Si confiance < 50, la quille est renversée et la procédure est reprise du début.
  • Si confiance > 50, la cible est identifiée, c'est la fin de la mission !


Target recognition : the closest target is knocked over unless it includes a known symbol


Aucun commentaire:

Enregistrer un commentaire