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.
Lien vers le patch : http://gitorious.org/flossmanuals-fr/pure-data/blobs/raw/master/patchs/GEM/capturedemouvement.pd
Pour le faire fonctionner :
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 (voir dans l'exemple ci-dessous.)
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.
Voici un patch permettant la détection de mouvement avec l'objet [pix_mean_color], qui analyse le changement de couleur RGBA par zone. Quand il y a un trop grand changement de valeur colorimétrique dans une zone, elle devient rouge et son numéro est retourné à l'utilisateur. Vous y trouverez certains des objets présentés dans l'exemple précédent, tel que [pix_crop] pour la détection par zone et [pix_movement].
Lien vers le patch : http://yamatierea.org/papatchs/#detc-mvt
Pour le faire fonctionner :
Ce patch à été tissée par Olivier Baudu au sein du Labomedia avec l'aide de Benjamin Cadon.
Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.
Vous devriez rafraîchir la page.