Une bouffée d'air frais dans la robotique

Telecom Robotics

Balises tracking vidéo

Tutoriaux

Nos Robots

Connexion utilisateur

Telecom Robotics / Areabot

Une bouffée d'air dans la robotique

4. Principe de la détection

On récapitule le principe...

On récapitule: une balise émet à 30Hz. On la filme à 60 trames par seconde (en QVGA). On prend deux trames successives, on les "soustrait" l'une de l'autre. Ce qui a changé, c'est probablement la balise.

Il y a quand même un problème : le "probablement"... Parce que d'autres choses que la balise peuvent changer entre les trames :

  • le robot adverse peut passer dans le champ de la caméra (si si, il y en a qui bougent !!!)
  • on peut avoir dans le champ des spectateurs, un arbitre, un objet qui roule
  • on peut se choper un flash
  • et en plus, il y a des projecteurs. Heureusement, ils fonctionnent sur le secteur (50Hz), et le filament reste allumé même entre les alternances. Pour la caméra, ils sont globalement constamment allumés (c'est aussi un peu pour ça qu'on fonctionne à 60Hz, et non 50Hz)
  • par contre il y a aussi de néons (dans les salles d'homologation et dans nos locaux). Eux, par contre, ne sont pas du tout constants. La caméra les voit très clairement clignotants...

En d'autres termes, on ne peut pas se contenter seulement de regarder ce qui a changé entre deux trames successives.

Par chance, les changements de la balise ont une bonne propriété : ils restent à la même place plusieurs trames de suite, pour peu qu'on regarde la balise assez longtemps. Ce qui n'est pas le cas des autres objets (à un détail près qu'on réglera plus tard) qui clignoteront sur deux trames, peut-être trois, mais pas beaucoup plus. On peut donc modifier notre algorithme : un point changeant appartiendra à la balise s'il change régulièrement sur plusieurs trames de suite. Le "plusieurs" reste encore à définir... Pour nous, ce sera un seuil réglable, qu'on essayera de prévoir et qu'on affinera lors des tests.

Ce système permet d'éliminer la plupart des objets mobiles. Par contre il n'élimine pas les néons, qui clignotent assez longuement. Pour éliminer les néons, on tire partie du fait que la caméra filme à 60Hz alors qu'ils clignotent à 50Hz (oui, le 60Hz, ce n'est pas un hasard...). A cause des fréquences différentes, le néon ne sera vu clignotant que par intermittence. C'est cette rupture de clignotement qui va nous permettre de dire que ce qu'on voit n'est pas la balise mais un néon. En d'autres termes :

  • si ça clignote pas, c'est un objet immobile,
  • si ça clignote presque pas, c'est un objet mobile,
  • si ça s'arrête de clignoter de temps en temps c'est un néon,
  • si ça clignote en permanence, c'est la balise.

Ah mais oui mais non : la caméra a son propre quartz (27MHz). Celui des balises aussi. Les quartz ont des tolérances non nulle, et leurs fréquences ont la sale manie de changer en fonction de la température... La balise va donc clignoter à une fréquence légèrement différente de la fréquence trame de la caméra. Et comme pour les néons, mais moins souvent,leur clignotement s'arrêtera par intermittence. Il va donc falloir définir précisément le seuil : suffisamment haut pour ne pas prendre des néons pour des balises, suffisamment bas pour ne pas prendre la balise pour un néon.

Pour rendre la discrimination néon / balise plus fiable, on peut aussi modifier un peu l'algorithme : on attribue à chaque point un coefficient de confiance (plus il est grand, plus il y a de chance pour qu'il appartienne à une balise). Si on voit le point clignoter, on incrémente ce coefficient. Si on le voit s'arrêter, on le décrémente. Comme les néons s'arrêtent plus souvent de clignoter que les balises, il faudra décrémenter plus fort que ce qu'on incrémentera.

Ce qui nous donne cet algorithme :

  1. si le point clignote : indice[point] += a1;
  2. s'il s'arrête de clignoter, indice[point] -= a2;
  3. si indice[point] > seuil_confiance, alors il appartient à la balise

Reste à définir a1, a2 et seuil_confiance. On partira de valeurs théoriques qu'on affinera par la pratique.


Deux trames consécutives : la balise est clairement identifiable, la lampe à sa gauche sera ignorée

Enfin dernier point, il va falloir traiter avec les particularités (défauts) de la caméra. C'est l'objet de la prochaine section (et c'est là qu'on voit pourquoi on a pris une OV7620 et pas autre chose).

Nos soutiens

Images aléatoires

L'arme secrète n°1  Untitled image 

Événements à venir

  • pas grand chose...

Contenu populaire

Parcourir les archives

« Mai 2008  
Lu Ma Me Je Ve Sa Di
      1 2 3 4
5 6 7 8 9 10 11
12 14 15 16 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Syndication

Syndiquer le contenu