Accueil Floss Manuals francophone

Puredata

Opérer une analyse de mouvements

Qu'est-ce qu'un « Blob » ? Ce n'est ni un blog enrhumé ni un cafard sans ailes, mais un terme technique utilisé par les spécialistes de la vision par ordinateur pour désigner le contour d'une zone de couleur détectée dans une image. Cette zone peut être produite par le contact d'un doigt sur une vitre, ou créée par des opérations sur l'image, notamment pour repérer des éléments en mouvement dans un flux vidéo, exemple que l'on traitera dans ce chapitre. En vision par ordinateur, on tente d'estimer au plus juste les contours et les coordonnées des formes.

La librairie GEM propose plusieurs approches pour l'analyse du mouvement. On se limitera ici à une opération « monoblob », c'est-à-dire qui définira une seule zone de mouvement dans toute l'image et donnera donc comme information la position en X et Y de cette zone ainsi que sa taille. Ces trois informations obtenues en temps réel permettent déjà d'imaginer de nombreuses créations, la caméra ou la webcam s'avérant être des capteurs performants et relativement peu coûteux (vous pouvez même envisager de détourner la webcam présente sur certaines consoles de jeux). Le patch proposé ici transforme ces coordonnées X et Y en notes de musique en fonction des mouvements effectués devant la caméra.

Capture_capturedemouvementF.png

Lien vers le patch : http://gitorious.org/flossmanuals-fr/pure-data/blobs/raw/master/patchs/GEM/capturedemouvement.pd

Pour le faire fonctionner : 

  1. Créez d'abord la fenêtre d'affichage (1) en ayant préalablement cliqué sur les options d'affichage (0).
  2. Choisissez le périphérique s'il n'apparaît pas immédiatement, changez éventuellement la dimension du flux d'images en fonction des résolutions proposées par le périphérique afin d’améliorer la qualité de la détection.
  3. Modifiez le paramètre de l'objet [pix_movement]. Cet objet réalise un filtre en comparant les deux dernières images du flux vidéo et en ne « gardant » que la différence, c'est-à-dire ce qui bouge.
  4. Pour voir la vidéo « normale » sans l'effet du filtre, cliquez sur l'interrupteur "Toggle".
  5. En bougeant devant la caméra, vous devriez entendre un son de synthèse changer de tonalité, voir un cercle rouge vous suivre et s'agrandir avec l'accélération de vos déplacements.

CaptureMouMouvement.png

Il serait tout à fait possible de décliner l'exemple ci-dessus en ne considérant par exemple qu'une portion de l'image pour accomplir plutôt des détections par zone (voir l'objet [pix_crop]).

Une autre possibilité serait de privilégier une gamme de couleurs plutôt qu'une autre. L'objet [pix_blob] peut être configuré dans ce sens (voir patch), mais il faut toujours considérer que la couleur blanche est « vue » d'un point de vue informatique comme la somme des luminosités du rouge, du vert et du bleu. En essayant de ne capter que la position d'éléments rouges, l'ordinateur prendra également en considération les éléments blancs. Pour éviter ce phénomène, il faudra mettre en place un système de filtrage soit optique soit numérique en amont de la captation de mouvement.

GEM propose d'autres objets de captation de mouvement, notamment [pix_multiblob] qui permet d'identifier plusieurs zones de mouvement dans l'image, ou encore [pix_data] ou [pix_mean_color] pour analyser les changements de couleur dans une portion de l'image.

Quelques conseils

La captation de mouvement est un art qu'il n'est pas toujours aisé de maîtriser. Il faut être vigilant sur l'éclairage et la qualité de la prise de vue en cherchant parfois des astuces pour faciliter le travail de l'ordinateur. Cela peut passer par l'utilisation d'une caméra infrarouge lorsqu'on cherche le mouvement de personnes noyées dans une vidéoprojection, ou l'utilisation de décors contrastés avec ce qui est supposé être mobile, voire l'apposition de leds infrarouges sur les vêtements d'un danseur pour grandement améliorer la précision.

Les algorithmes de vision par ordinateur ont beaucoup progressé depuis quelque temps, grâce entre autres au développement de librairies comme OpenCV (initiée par Intel), sous licence libre, qui propose des objets pour réaliser de la détection de visages, de formes complexes. Cette librairie est intégrée à Pure Data et GEM dans une extension disponible ici : http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv

Les périphériques de détection de mouvement conçus initialement pour certaines consoles de jeux comme la « Kinect » de Microsoft ou la « Wiimote » de Nintendo peuvent constituer des pistes intéressantes à explorer. Depuis leur apparition, de nombreux artistes les ont détournés de leur usage premier grâce à l'utilisation de pilotes (drivers) libres qui permettent de les faire interagir directement avec un ordinateur.