Conseils, HowTo, FAQ sur Interaction temps réel

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher

Joystick sous Linux HID Pure Data

https://puredata.info/docs/faq/how-can-i-set-permissions-so-hid-can-read-devices-in-gnu-linux http://askubuntu.com/questions/15570/configure-udev-to-change-permissions-on-usb-hid-device

Config et test audio et vidéo sous linux

Controle paramètres webcam Linux

from julian oliver (thks) : The Logitech Quickcam Pro 9000 looks like a good fit for you but only if you turn off the automagical features.

I use libwebcam's uvcdynctrl to set various paramaters, like focus, contrast,auto exposure etc.

http://www.quickcamteam.net/software/libwebcam

 uvcdynctrl-0.2 -s "Focus" 137
 uvcdynctrl-0.2 -s "Exposure, Auto" 1 #(this is 'off' believe it or not)
 uvcdynctrl-0.2 -s "Exposure (Absolute)" 320

My solution for mounting it in the last dozen or so installations has been this:

http://www.ljudmila.org/~julian/share/movies/levelHead-secured-camera.mpg

++

 guvcview -o

you can control the settings while running the camera with another application.

Open_Cv

for pix_opencv you must add [pix_rgba] in help-example " In order to make the pix_opencv objects work You always had to set colorspace RGB. otherwise, You will not see any effect."

Les espaces de couleur dans GEM / Pure data

http://gem.iem.at/documentation/GemWiki/ColorSpace


Captation d'émotion, reconnaissance de visage

http://vida.limsi.fr/index.php/VidaRANAteliers : atelier du Réseau Art Numérique, compte rendu, essais et réflexions théoriques...


Installer la wiimote avec Pure Data & ubuntu (feisty)

Sous Hardy, il suffit d'installer du paquet http://doc.ubuntu-fr.org/wiimote Sous feisty, Suivre le tuto en anglais : https://help.ubuntu.com/community/CWiiD?highlight=%28wiimote%29
tuto plus simple pour ubuntu gusty (en bas de page) en français : http://doc.ubuntu-fr.org/wiimote
/!\ la compilation de l'external a marché (pour moi) en compilant CWiid library (version 0.4.01) et non pas la dernière version
compilation de l'external wiimote : http://mikewoz.com/index.php?page=pd-stuff
qd tout a marché, ouvrir le patch help-wiimote.pd et appuyer sur le btn 1 et 2 de la wiimote pour reconnaissance
si la reconnaissance ne marche pas, taper dans un terminal :
hciconfig
hciconfig hci0 up (pour monter le réseau bluetooth)
hcitool -i hci0 scan
résultat :::: (il faut appuyer sur btn 1 et 2 de la wiimote)
Scanning ...
00:1E:35:01:F1:D7 Nintendo RVL-CNT-01
on peut ensuite dans le patch help-wiimote.pd connecter la wiimote à Pd en indiquant 00:1E:35:01:F1:D7 dans un message (l'adresse MAC de la wiimote)

Enregistrer une vidéo de la fenetre GEM

the single magic line i use to create a movie is :
mencoder -oac mp3lame -lameopts cbr:br=256:aq=0 -audiofile rec_.wav -fps 50 -ss 0 -ovc xvid -xvidencopts bitrate=5000 -vop scale=640:480 mf://*.jpg -o out.avi
msg de cyrille henry du 13.02.2008 liste Pd + patch d'enregistrement

désormais (06.2008), le pix_record marche plutot bien, au moins sous Mac OS et Linux, donc la manip ci-dessus ne doit plus être nécessaire...

GEM dv 1394 et linux (from Pd mailing list)

Tim Boykett Summary: I think I have a fix for the problem with pix_video that has effected several people on some linux distributions. Please read on if this matters to you.

Note: this is probably for the pd-dev list, but I am not on it, so I hope that one of the PD-dev people can pick up on this and say "aha! I can do this!"

I am using a machine with udev on it, so the device names are not the ones expected by the pix_video object. In particular around line 213 of videoDV4L.cpp I see that /dev/ieee1394/dv/host0/PAL/in is being looked at, then /dev/dv1394.

The error that I think I am seeing is that buf is being set to /dev/ ieee1394/dv/host0/PAL/in then this is not working (it doesn't exist) and the next attempt to access /dev/dv1394 is finding that this is a directory (on my machine). So I get the nonsensical error: /dev/ieee1394/dv/host0/PAL/in: Is a directory

On my machine at least, the devices are /dev/dv1394/0 and /dev/dv1394/1. When I make a link from /dev/ieee1394/dv/host0/PAL/in to /dev/dv1394/0 then all is well.

Notes benjamin :
pour faire marcher camera dv avec Pd extended GEM sous ubuntu festy :
1. creation du répertoire :
sudo mkdir /dev/ieee1394/dv/host0/PAL (il faut creer les répertoires les uns après les autres = sudo mkdir /dev/ieee1394 puis sudo mkdir /dev/ieee1394/dv jusquau rep PAL mais on ne crée pas le /in final
2. creation du lien symbolique :
ln -s /dev/dv1394/0 /dev/ieee1394/dv/host0/PAL/in
3. Pour moi ça marche !!!!!
4. j'avais auparavant fais une commande du type (pour faire marche TSS encodage camera dv en theora) :
cd /dev/
chmod 777 raw1394
chgrp benjamin raw1394
sudo adduser benjamin disk

Les Espaces de couleur

Abstract sur les espaces colorimétriques

Encodage video sous linux

Gem-audio_record

mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1600 -audiofile asynth.wav -oac mp3lame
mencoder "mf://*.jpg" -mf fps=25 -o output.flv -ovc lavc -lavcopts vcodec=flv:vbitrate=1000 -ffourcc FLV1 -audiofile asynth.wav -oac mp3lame

recalage audio

mplayer -delay xx video.avi
"delay": delai audio  
xx: valeur positive ou négative selon les besoins (en seconde). Ici il faut jouer la video et essayer de déterminer la bonne valeur par tatonnement ou en utilisant pendant la lecture les touches +/- du clavier.  

Une fois la bonne valeur récupérée, on "réencode" (une simple copie en fait mais en incluant un délai) avec mencoder:

mencoder -oac copy -ovc copy -audio-delay -xx in.avi -o out.avi
gmplayer -delay -0.195 output.flv -ao jack
mencoder -oac copy -ovc copy -audio-delay -0.195 output.flv -o outputwithdelay.flv

Le "-" devant xx est le signe mathématique moins, c'est à dire que la valeur obtenue est à multiplier par -1 mais mencoder ne prend pas la valeur négative dans mon cas, j'ai été obligé de passer par avidemux auquel il convenait d'indiquer le délais en positif = 195, ça marche !

From emoc' emoc codelab

ffmpeg -i img-%04d.png -i son.wav -map 0:0 -map 1:0 -r 25 -ac 2 -b 360k -ab 192k -s 360x288 -f flv video.flv

(traduction : prendre les images numérotées de img-0001.png à img-XXXX.png, les assembler avec son.wav et enregistrer le tout en flv, 25 images / secondes, débit vidéo 360k, débit audio 192k, son stéréo, résolution 360x288)

Tests perso :

http://www.mplayerhq.hu/DOCS/HTML/fr/encoding-guide.html
aide : ffmpeg -formats
ffmpeg -i train.avi -vcodec mjpeg -b 10000k -g 5 -deinterlace -acodec pcm_s16le -ar 44100 trainmjpeg.avi

XUL OK

mencoder ho07.dv -mf fps=25 -o ho07mencoder441.avi -oac pcm -srate 44100 -af lavcresample=44100 -ovc lavc -lavcopts vcodec=mjpeg:mbd=1:vbitrate=4500 -vf pp=lb

XUL OK Vision R 2010

ffmpeg -i a02.dv -r 25 -vcodec mjpeg -pix_fmt yuvj420p -deinterlace -acodec pcm_s16le -ar 44100 a02test.mov

option -srate et -af lavcresample pour conversion à 44100 hz

mencoder ho07.dv -mf fps=25 -o outputMJPEGDI.mov -oac pcm -ovc lavc -lavcopts vcodec=mjpeg:mbd=1:vbitrate=3000 -vf pp=fd pp=fd pour deinterlaced
mencoder ho07.dv -mf fps=25 -o outputMJPEGDIlb.mov -oac pcm -ovc lavc -lavcopts vcodec=mjpeg:mbd=1:vbitrate=4500 -vf pp=lb
mencoder SubliminalInfluence001.mov -mf fps=25 -o SubliminalInfluence003mjpeg.mov -nosound -ovc lavc -lavcopts vcodec=mjpeg -of lavf -lavfopts format=mov -vf pp=ci,scale=640:480 -ofps 25
mencoder SubliminalInfluence001.mov -o SubliminalInfluence001mjpeg.mov -nosound -ovc lavc -lavcopts vcodec=mjpeg -of lavf -lavfopts format=mov 

Les tests de Patrick de 11h11.com - merci à lui !
quicktime - jpeg (4.0M)
http://www.workinprogress.ca/pd/gem/codec/out_jpeg.mov

gem 22% cpu - showing the video
gem 17% cpu - just decoding the video
mplayer xv 5% cpu
mplayer gl 9% cpu

transcode -i dvd.vob -c 500-1000 -y mov,null -F jpeg,,jpeg_quality=70 -G 1.1 --pre_clip 6,18,6,18 -J denoise3d=2,pp=lb -Z 640x480 --zoom_filter Mitchell -o out_jpeg.mov


avi - mjpeg (4.1M)
http://www.workinprogress.ca/pd/gem/codec/out_mjpeg.avi

gem 19% cpu - showing the video
gem 14% cpu - just decoding the video
mplayer xv 5% cpu
mplayer gl 9% cpu
transcode -i dvd.vob -c 500-1000 -y ffmpeg,null -F mjpeg -G 1.1 --pre_clip 6,18,6,18 -J denoise3d=2,pp=lb -Z 640x480 --zoom_filter Mitchell -o out_mjpeg.avi


avi - xvid (933K)
http://www.workinprogress.ca/pd/gem/codec/out_xvid.avi

gem 90% cpu - just decoding the video
mplayer xv 3% cpu
mplayer gl 7% cpu
transcode -i dvd.vob -c 500-1000 -y ffmpeg,null -F xvid -G 1.1 --pre_clip 6,18,6,18 -J denoise3d=2,pp=lb -Z 640x480 --zoom_filter Mitchell -o out_xvid.avi


ffmpeg / mpeg4 (977K)
http://www.workinprogress.ca/pd/gem/codec/out_mpeg4.avi

gem 90% cpu - just decoding the video
mplayer xv 3% cpu
mplayer gl 7% cpu
transcode -i dvd.vob -c 500-1000 -y ffmpeg,null -F mpeg4 -G 1.1 --pre_clip 6,18,6,18 -J denoise3d=2,pp=lb -Z 640x480 --zoom_filter Mitchell -o out_mpeg4.avi

i tested some mpeg2video, but since gem is crashing when loading the .toc file i cannot know if there's more consumption of cpu in gem vs mplayer / ffplay etc...



Message de la liste PD from Patrick plus ancien : the best codec for quicktime is jpeg:
transcode -i yourvideo -y mov,null -F jpeg,,jpeg_quality=70 -o gem.mov

gem cpu usage is 38%
mplayer cpu usage is 27%
ffplay cpu usage is 16%
lqtplay cpu usage is 1% **


for avi i tried ffmpeg / mjpeg:
transcode -i yourvideo -y ffmpeg,null -F mjpeg -o gem.avi

gem cpu usage is 33%
mplayer cpu usage is 33%
ffplay cpu usage is 22%


the really best codec around is mpeg4:
transcode -i yourvideo -y ffmpeg,null -F mpeg4 -o gem.avi

gem cpu usage is: crashed**
mplayer cpu usage is 16%
ffplay cpu usage is 11%


mencoder input.<whatever> -o output.mov -nosound -ovc lavc -lavcopts vcodec=mjpeg -of lavf -lavfopts format=mov

mencoder 08389ainthome.avi -o ainthome.mov -oac pcm -ovc lavc -lavcopts vcodec=mjpeg -of lavf -lavfopts format=mov

encoder AGPZY3GhtWA.flv -o AGPZY3GhtWA.mov -oac pcm -ovc lavc -lavcopts vcodec=mjpeg -of lavf -lavfopts format=mov -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames

[1] une bonne ressource pour des configurations d'encodage


 Note ::::: codec Quicktime codec PHOTO Jpeg ok pour windows pour install yvan hesbois
 ::::: codec Quicktime RVB Plan millions de couleurs + ok pour install lino avec video transparente

Acquisition Vidéo


Kit d'abstractions Pdmtl


http://wiki.dataflow.ws/PdMtlAbstractions Ensemble d'abstractions construit par la communauté Pd de Montréal : un must à ne pas rater !
Pour la partie SAmpler, pour utiliser le système d'ID de reconnaissance et classification des samples, utiliser sample.handler

Pour compiler Flext et Xsample sous ubuntu Feisty :
télécharger les sources de Pd correspondantes à la version installées et placer le répertoire src ds le rép de Pd
télécharger les sources de flext et xsample depuis : http://grrrr.org/ext/
puis sh build.sh pd gcc
sh build.sh pd gcc install

puis compiler xsample :
sh ../flext/build.sh pd gcc
sh ../flext/build.sh pd gcc install


Captation gestuelle

Références

Conseils

juste pour se simplifier encore plus la vie, si vous pouvez vous permettre d'éclairer en lumière visible la zone active : en éclairant les êtres humains par des éclairages de type jour (blanc, jaune ou orangâtre), ces êtres humains réfléchissent fortement les infrarouges et sont donc bien visibles comme très 'infrarouges' dans la caméra CCD (avec filtre IR enlevé et filtre visible ajouté comme le dit JNM par ailleurs). C'est la technique qu'on a utilisé avec K. Danse (Anne Holst et Jean-Marc Matos) pour notre spectacle Gameplay (pour des vidéos de démo : http://www.gratin.org/as/gameplay/ ).Ceci évite l'achat de spots IR, finalement assez chers et relativement inutiles et difficiles à régler pour éclairer une large surface. (Antoine Schmitt)

Cette question de la reconnaissance de trajectoire par caméra étant très récurente en ce moment dans les questions posées par les visiteurs du CRAS, je me permet de synthétiser ici les techniques et logiciels employés par les artistes depuis 6 ou 7 ans:

  • La technique est la suivante:

-Une caméra grand angle filmant dans l'infra rouge est dirigée vers sol, cadrant la surface à observer - Un videoprojecteur dirigé verticalement vers le sol, projette sur la même surface - Un éclairage infrarouge éclaire invisiblement (pour nos yeux) cette même surface au sol. - L'image de la caméra est envoyée à l'ordinateur -Un logiciel de vision par ordinateur analyse l'image, extrait la forme et/ou ses déplacements, puis envoie ses données au module gérant le traitement video ou le traitement 3D interactif.

Les logiciels les plus utilisés par les artistes pouvant effectuer cette opération sans difficulté:

Libres et multiplateformes: - Pure Data: objets de GEM "pix_movement et pix_movement2, pix_blob" et "pix_multiblob", entre autres techniques et autres librairies pour le tracking avec PD (Myron, Gridflow, etc) -Processing: Librairie Myron

Tous les logiciels utilisant OpenCV http://sourceforge.net/projects/opencvlibrary/

Gratuits mais non libres: Eyesweb ( windows seulement)

Payants: Isadora, avec les objets Eyes et Eyes++, MaxMsp avec Jitter/VNS et Myron, Director avec TTC et Myron, etc, certains logiciels de VJing.


  • Quelques conseils pour réussir son dispositif:

-utiliser une caméra ou une chaine d'acquisition video avec temps de latence réduit ( webcam firewire non compressé de chez unibrain, ou caméra firewire non compréssée industrielle, ou caméra analogique+ carte d'acquisition, qui offre de loin le meilleur résultat qualité prix. Une DV sony en nightshot avec un filtre lumière visible est également un très bon choix en matière de latence et de précision optique.

-Les caméras CCD ( webcam et quasiment toutes les sortes de caméras actuelles) sont pour la plupart capables de ne voir que les infra rouges, à condition d'ôter le filtre infrarouge puis de rajouter à la place un filtre lumière visible. Voir goggle " IR cam hacks"

-Les projecteurs IR se trouvent chez les milliers d'entreprises en France commercialisant des sytèmes d'alarme et de sécurité. On peut également se les fabriquer soi-même avec des LEDs IR en matrice, et même avec des projecteurs de théatre traditionnels.

On peut ainsi donc, avec certaines configurations matérielles, pour moins de 500 euros tout compris, (avec matériel d'occasion+ bricolages) avoir une qualité équivalente ou supérieure à toutes les sociétés commerciales qui prétendent avoir inventé la poudre, et qui vendent cela à plusieurs ( dizaines) de milliers d'euros. Pour une qualité très basique, parfois suffisante dans certains dispositifs une simple webcam de 5 euros à 100 euros à bricoler suffit.

-autres techniques: pilotes de certaines webcams disposant d'un algo de vision ( cf liste sensitif JNM/11mars2004) , tracking direct par cellules photo-electriques sur écran, consoles de jeu avec module de vision, etc.

L'intérêt actuel suscité par ses techniques ne va pas se tarir, bien au contraire maintenant que ces techniques sont intégrées en matériel dans des caméras industrielles ou des webcams, et bientôt, dans la totalité de nos caméras ( téléphones, app photos, ordis etc). La puissance actuelle des ordis et des logiciels de traitement d'événements interactifs temps réel permet actuellement de concevoir de magnifiques dispositifs. Ainsi que je l'ai déja précisé ici depuis plusieurs années, au terme d'une dizaine d'années, la quasi-totalité des capteurs traditionnels utilisés dans l'art contemporain seront remplacés par des technologies de vision.

Un exemple de réalisations actuelles dans ce domaine, par le duo le plus connu utilisant ces techniques ( avec Processing) http://tmema.org/messa/messa.html#videos et sur l'aspect technique: http://tmema.org/messa/installation.html

Jean Noel Montagné via la liste Art Sensitif http://www.artsens.org/

Caméras rapides pour captation gestuelle

(ressources tirées de la mailing list art sens) " Nous savons tous qu'il faut une caméra CCD (sensible aux infrarouges, IR), qu'il faut lui enlever le filtre IR qu'elle a souvent par défaut (bricolage délicat parfois impossible), et éventuellement lui rajouter des gélatines rouges foncé, proche de l'IR, pour se focaliser sur l'IR. Souvent, il faut aussi un bon grand angle pour voir large, une solution USB pour faciliter la connectique, et un driver Mac, car on travaille tous sur Mac (!) voir logiciel macam pour faire tourner les webcams Pc sur mac" Antoine Schmitt

Trucs et Astuces pour faire marcher des webcam v4l2 retordes

d'après Pd list d'après Baastian van den berg :

Here is a little trick I use for getting webcams working in different linux programs :
- to get 'weird' v4l2 cameras working with 'normal v4l2 expecting' programs, you can do this:
LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so pdextended
this starts pdextended, but first overloads some v4l2 functions with the ones in that library, which help in format conversion etc.
- to get v4l2 support in programs that are using the v4l interface :
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so pdextended
these tricks work with many many programs ;)