Conseils, HowTo, FAQ sur Interaction temps réel
Un article de Centre Ressources du Labomedia.
Joystick sous Linux HID Pure Data
- voir ce tuto : http://wiki.puredata.info/en/hid
Config et test audio et vidéo sous linux
- une belle papage de la SAT à ce propos pour le logiciel scenic : http://svn.sat.qc.ca/trac/scenic/wiki/TestAudiovisualInputOutput
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...
Liste d'interface analogiques numériques
Pages qui recensent ces interfaces
- La liste du magazine MAKE : http://blog.makezine.com/archive/2008/11/_draft_open_source_hardwa.html
- From jnm - artsens.org : http://www.sensorwiki.org/doku.php (merci jnm pour ta veille formidable !)
- Autre liste from vincent : http://barzilouik.free.fr/wiki/doku.php?id=interfacesetminiboards
- Liste de Limor (aka LadyAda) : http://www.adafruit.com/blog/2009/04/24/comprehensive-arduino-compatible-hardware-list/
Liste d'interfaces
MAJ From JNM du 21.04.09 (merci)
- http://arduino.cc/en/Main/ArduinoBoardMega , plus de 50 entrées sorties numériques, 16 entrées analogiques, gestion de 14 servo moteurs par PWM, etc, etc...
- les freeduino: les dizaines de différents modèles sont visibles chez les constructeurs publicisés dans la colonne de gauche du site http://freeduino.org, ce sont les moins chères du marché, totalement équivalentes en fonctionnalités électronique aux arduinos d'origine, pour 3 fois moins cher
- les metaboard http://metalab.at/wiki/Metaboard
- les flexi http://www.techsouls.com/projects/flexi/
- les uduino http://timothytwillman.com/?p=116 etc.
celles qui sont un cran au dessus en fonctionnalités/performances
- les sanguino: http://sanguino.cc/
- les illuminato: http://www.liquidware.com/shop/show/ILL/Illuminato
- les cortino: http://www.bugblat.com/products/cor.html
- les seeduino: http://www.seeedstudio.com/blog/?page_id=110
- les pinguino développées aux Beaux Arts d'Aix en provence: http://jpmandon.blogspot.com/search/label/pinguino%20general qui permettent déja des vitesses et fonctionnalités n'existant pas chez les ****duino à base Atmel, car le coeur de la pinguino n'est pas un atmel mais un PIC qui permet l'implémentation totale de l'USB 2.0 ( également le seul projet local de cette liste...)
et on n'oublie pas
- les funnel http://funnel.cc/
- les roboduino http://curiousinventor.com/kits/roboduino
- les protoduino http://eastham-lee.com/protoduino.html
- les teensy http://www.pjrc.com/teensy/teensyduino.html
- les miduino http://tomscarff.110mb.com/miduino/miduino.htm
- les ardupilot http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A44814
- les cartes d'élécont pour faire des freeduino DIY http://www.elecont.de/shop/index.php?cat=c18_Bausaetze.html
Un petit truc: pour certaines interfaces ****duino à très bas coût qui communiquent par port série il est nécessaire d'acheter un cable convertisseur USB/Série compatible pour les ordi qui n'ont pas de port série. Les cables vendu avec ces cartes sont généralement trop chers comparativement au coût de la carte, (à n'acheter avec la carte que si l'on est préssé), on peut à la place, si le budget est sérré, acheter des équivalents compatibles win, lin, mac contenant la puce PL2303, à partir de 5 euros (google + ebay) et que l'on trouve aussi gratuitement dans des caisses de rebuts de téléphones portables ( petites bidouilles à faire), ou à quelques euros aux puces. Micro micro
- Sanguino, remplaçante potentielle de l'arduino/freeduino : http://sanguino.cc/differencesfromarduino
- Arduino, la plus "célèbre" : http://www.arduino.cc
- 5$ : http://1010.co.uk/avrhid.html
- and the GNUSB http://gnusb.sourceforge.net/hardware/
- the USBDUX http://www.linux-usb-daq.co.uk/
- UBW : Don't forget one of the cheapest interface, the USB Bit Whacker DIY, http://wiki.dataflow.ws/Interaction/Interfaces/UBW official web http://greta.dhs.org/UBW/index.html and sold 19 $ at sparkfun = 12 euros....
- the ethernut http://www.ethernut.de/en/index.html
- the DLP IO http://apple.clickandbuild.com/cnb/shop/ftdichip?op=catalogue-products-null&prodCategoryID=65&title=DLP-IO8-G
- the ispsonlab and co http://www.koncon.nl/ipsonlab/
- the AID http://www.student.ocad.on.ca/~aid_dev/?q=
- the artjoy http://artjoy.narod.ru/eng/index_eng.html
- the semifluid projects http://www.semifluid.com/?p=21#more-21
- the CUI http://www.create.ucsb.edu/~dano/CUI/
- the gadgetboard http://www.lunkwill.org/gadgetboard/index.html
- the nuxie1 http://www.nuxie1.com/guides/hackaday-competition-entry.html
- the USBAD http://www.bmcm.de/us/pr-usb-ad.html
- the midiscarff http://tomscarff.tripod.com/anal2midi/analogue_inputs_to_midi_out.htm
- the CV to midi http://www.fredrikolofsson.com/pages/hardware.html
- the interface-z http://www.interface-z.com
Captations sans fils
d'après mél de jean noel montagne (merci!) http://www.artsens.org
- la Kroonde de la défunte La-Kitchen, assez chère mais bien éprouvée dans de multiples spectacles. ( 16 entrées analogiques en 10 bits vers OSC, FUDI et MIDI/lecture capteurs toutes les 5 millisecondes en mode 8 capteurs) entre 1500 et 2000 euros, sur un récepteur dédié. Doc en anglais.
- la Wisebox de l'IRCAM (16 entrées analogiques en 16 bits vers OSC/ lecture capteurs toutes les 6 millisecondes) un peu moins chère, vers les 1000 euros sur du wifi. Doc en anglais.
- la WIWI d'Interface-z, mon meilleur choix, très compacte, 10 entrées analogiques et 8 numériques en 12 bits/ lecture capteurs toutes les 5 millisecondes, en wifi sur borne dédiée (fournie), environ 600 euros, doc en français. http://www.interface-z.com/produits/cap14-minihf-433.htm
-les Eggz et EggZZ de Biogène, en zigbee, 5 ou 10 analogiques en 10 bits/ lecture toutes les 5 millisecondes. http://biogene.fr/
-En très bas coût et matériel libre, on passe à la CUI bluetooth, aux freeduino-arduino zigbee et bluetooth, à commander à l'étranger, autour de 100 à 150 euros d'euros port compris, mais avec des performances moindres, tant en terme de précision, de latence ou de compacité. Il faut également mettre la main à la pâte logicielle et matérielle, ce qui prends pas mal de temps pour faire un ensemble suffisament sûr pour monter sur une scène.
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
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...
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
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
Vidéo
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
Message de la liste PD from Patrick :
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%
Captation gestuelle
Un doc ressource très bien fait sur captation Infrarouge
: comparaison infrarouge thermique
: Suivi de mouvements Application à la scénographie intéractive et à l'installation intéractive
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
- http://www.theimagingsource.com/fr_FR/topics/firewire-cameras-at-the-imaging-source/
- http://www.unibrain.com/Products/VisionImg/1394bcam.htm
- http://createdigitalmotion.com/2009/08/06/trick-out-your-ps3-eye-webcam-best-cam-for-vision-augmented-reality/ : hacker la eye-webcam PS3
- http://stores.ebay.com/SecurityCamera2000 grand angles non "IR coated" sur Ebay
- http://www.conrad.fr/objectifs_speciaux_pour_modules_cameras_p_19247_19277_214583_364431_FAS : objectifs webcam

