Ca a l'air amusant! Et puis... J'ai bien une petite idée.

From the Blog

mar
31
Posted by gduhamel at 6:51

Après quelques essais de détection de la gestuelle basés sur la couleur de la peau, j’ai tenté l’expérience de la reconnaissance d’objets avec la célèbre méthode de Viola et Jones, telle qu’elle est mise en place dans la bilbiothèque OpenCV. Il s’agissait de détecter un geste traduisant la sélection d’un élément dans l’espace. Des nombreuses possibilités qu’offrent une main, le mouvement ci-contre paraissait le plus intuitif et visuellement identifiable.  

Base d’images exemple

La méthode de Viola et Jones est connue pour détecter les visages avec une grande efficacité. Mais rien n’est dit pour les mains, moins encore pour le dos des mains. Il faut donc entrainer le programme a détecter ces éléments précis. Pour déterminer les caractéristiques pseudo-Haar sur lesquelles repose la méthode de détection, l’algorithme a besoin d’un grand nombre d’images. Un ensemble d’images contenant l’élément à détecter. Et une collection d’images ne contenant pas cet élément. Les images négatives sont suffisamment nombreuses sur internet. Pour produire les images positives : j’ai développé un petit programme permettant d’industrialiser le processus. 

 

  1. Ce programme utilise les images capturées par une webcam.
  2. Un compte à rebours de six secondes laisse le temps à l’utilisateur de positionner l’objet dans la zone de capture.
  3. Au terme de ce compte à rebours, l’image contenue dans le cadre est mise à l’échelle et sauvegardée.
  4. Apparence de la main oblige, l’image finale est de forme rectangulaire (et non carrée). Cela ne pose aucun problème.
  5. Le fichier image est alors retraité par un utilisaire de la bibliothèque OpenCV (createsamples). A partir d’une image positive, celui-ci permet de générer d’autres images, légèrement déformées. Contraste modifié, couleurs inversées, rotation de l’image sur plusieurs axes, …
  6. A partir d’une image de référence, le programme en créé 20.

   L’objectif de 1500 images positives a ainsi pu être atteint en moins de 10 minutes.

 

Apprentissage supervisé

Avec 1500 images positives et 3500 négatives, Opencv disposait d’éléments en quantité suffisante pour calculer ses caractéristiques pseudo-Haar. Là aussi, la bibliothèque dispose d’un utilitaire (haartraining) qui fait le travail pour nous. L’objectif est de détecter la forme avec un maximum de tolérance, quitte à obtenir quelques faux positif. Il aura fallu un petit peu plus de 8h au logiciel pour calculer une détection en dix passages répondant au besoin. Ci-dessous quelques exemples de caractéristiques calculées:  

Détection

Les résultats sont plutôt intéressants, surtout compte tenu de la courte durée de l’apprentissage. La forme d’origine est bien détectée, les faux positifs sont assez rares et peuvent être écartés facilement.

Chargement de la Vidéo…


Cette reconnaissance de forme pourra servir d’étape de détection intermédiaire. Elle indiquera des pistes que le logiciel pourra suivre afin de déterminer s’il s’agit bien d’une volonté d’interaction de l’utilisateur.

 

Références
La documentation de la bibliothèque OpenCV
L’excellent tutorial sur le blog de Naotoshi Seo

mar
17
Posted by gduhamel at 7:12

Si nos villes et nos campagnes sont admirablement couverte par la solution de géolocalisation par satellite, les solutions de localisation en intérieur sont rares. Certaines se focalisent sur les émissions WI-FI, d’autres sur des signaux RFID, pour une précision bien inférieure à celle du GPS. La recherche d’une solution de positionnement centimétrique en espace clos se transforme rapidement en parcours du combattant.

Besoin initial

Mon premier prototype s’appuyait sur une solution de vision stéréoscopique composée de deux camera et d’un marqueur visuel. Une telle solution est précise mais coûteuse, peu adaptée à plusieurs utilisateurs et requiert une grande puissance de calcul. Depuis plus d’une année, j’essaie de concevoir une technique de géolocalisation indoor par ultrasons répondant à des besoins spécifiques :

  • Localisation passive (l’élément récepteur n’interagit en aucune façon avec l’émetteur)
  • Précision d’ordre centimétrique
  • Peu couteuse (zone de couverture variable à moindres frais)
  • Intégrable dans nos environnements quotidiens

Résultat obtenus

Le système fonctionnel exploite un principe identique à celui du GPS :

  • Une constellation de plusieurs émetteurs dont la position est connue.
  • Chaque émetteur émet sur une fréquence différente.
  • Le récepteur calcule la distance à l’émetteur.
Chargement de la Vidéo…

Pour couvrir une pièce, il suffit de 3 émetteurs d’ultrasons et d’un canal radio. Les ultrasons sont émis tour à tour sur différentes fréquences tandis qu’un signal radio marque l’instant de l’émission.

Le récepteur connaissant l’instant de l’émission peut calculer, à réception, la distance le séparant de chaque émetteur. Dès que cette distance est connue pour les trois points de repère, une trilatération permet de calculer la position du récepteur dans l’espace.

Matériel

Le matériel employé est relativement simple :

  • Une carte son
    • Supportant le 5.1 : donc 6 sorties audio
    • Echantillonnage max 192kHz pour l’entrée audio
  • Quelques tweeters piézo-electriques
  • Un émetteur radio (Bande FM)
  • Récepteur radio
  • Microphone

En l’occurrence, le microphone est l’élément qui fait défaut. Un microphone traditionnel répond très mal aux ultrasons. Compte tenu des fréquences audibles par l’oreille humaine, un microphone de qualité “studio” écoutera entre 20Hz et 20 000Hz. Même un microphone de mesure répond mal aux ultra-fréquences.

Signal

Le signal devait pouvoir être diffusé sur plusieurs fréquence mais être capté très précisément (A la vitesse du son, une erreur d’une milliseconde représente 0.34cm). Les meilleurs résultats exploitent la modulation de fréquence, utilisant l’onde sonore comme une porteuse.

Répétés plusieurs fois par secondes, ces signaux sont captés par le récepteur qui analyse les bonnes fréquences pour déterminer sa position en temps réel.

Montage

Pour cette petite expérience, la carte son était branchée à un kit d’enceinte pour amplifier le signal. Chaque sortie est reliée à trois émetteurs disposés pour couvrir l’ensemble de la pièce.

Le signal radio est émis, lui aussi, depuis la carte son, reliée cette fois à un simple émetteur FM courte portée.

Le microphone est un micro de mesure à condensateur. Il requiert une alimentation et utilise une connectique spéciale.

Pour assembler les signaux transmis par ondes mécaniques et électromagnétiques, l’adaptateur du microphone et le récepteur radio sont connectés à un simple dédoubleur Jack.