martes, julio 03, 2007

Probando reacTIVision en Ubuntu

Para quien no lo conozca reacTIVisión es un software de visión artificial, que permite mediante unas figuras llamadas amebas (gráficos fiduciales) , captándolas con una cámara, controlar otros softwares vía OSC.

http://mtg.upf.edu/reactable/?software

Es el corazón del funcionamiento del famoso instrumento Reactable, desarrollado en la Pompeu Fabra. El autor se merece un premio!




La prueba realizada se ha hecho con una webcam conceptronic [30 fps (352x288) / 15 fps (640x480)], y ubuntu feisty. Reactivisión se comunicará con Puredata.

Preparación:

-Tener instalada la webcam y funcionando ;)
- Tener Pure Data instalado y funcionando
- La tabla de amebas con divertidos recortables

Bajamos el deb para ubuntu desde la web:

http://mtg.upf.edu/reactable/?software

Usamos la manera convencional de instalación.

a) En ubuntu haciendo doble-click sobre el paquete.
b) escribiendo en un terminal: sudo dpkg -i nombredelpaquete.deb

Bajamos el external para puredata desde la misma web:

http://prdownloads.sourceforge.net/reactivision/TUIO_PureData-1.3.zip?download

Descomprimimos (unzip nombredelarchivo.zip) , y dentro hay un archivo llamado source.zip. Lo descomprimimos, entramos en la carpeta source reciencreada, y make.

Se creará el archivo TuioCliente.pd_linux. Lo copiamos a la carpeta pd/extra. NOTA: esto depende si tienes pd desde los repositorios, entonces la carpeta será /usr/lib/pd/extra, o bien pd-extended, en tal caso deberá ser a /usr/local/lib/pd/extra.

Amebas

Baja el archivo pdf de amebas o figuras fiduciales, e imprime alguna hoja.

http://mtg.upf.edu/reactable/pdfs/fiducials.pdf


Ejecución

Desde un terminal lanzas reacTIVision y comenzará a capturar lo que aparezcan en la webcam. En la carpeta TUIO_puredata que bajamos y descomprimimos previamente, hay un ejemplo sencillo de uso:



reacTIVision se conecta con puredata via OSC, el protocolo TUIO son un conjunto de reglas de interpretación de los mensajes. El objeto [TuioClient] hace el trabajo sucio, generando mensajes como qué ameba se activa (en el pdf observa que cada una tiene un número), en qué posición de la pantalla está, y con qué ángulo. Como se puede ver en la figura anterior, se escalan los valores ancho y alto a 640x480, y se transforma el valor del ángulo a grados.

Recortando alguna ameba, puedes probar en la consola de pd, que se dectecta la presencia de cada una de ellas, y también cuando sale del campo de visión.




Para hacer una prueba rápida, conociendo un poco la dinámica de pd, es fácil asociar la variable de giro a la frecuencia de un oscilador sinusoidal. Mientras que el mensaje de presencia o ausencia, encenderá o apagará dicho oscilador. Para ello podemos tomar el ejemplo ya hecho y añadirle un par de cosas.




Al aparecer una ameba, el anterior patch no distingue de cuál se trata, si aparece una cualquiera se envía el mensaje 1 a "activo", si desaparece se envía 0. Ese valor encenderá o apagará la señal con [r activo]. El valor de grado es interpretado como frecuencia del oscilador. Es un test muy simple

(añadido y ampliado en: Documentación sobre Pure Data )

5 comentarios:

jfforero dijo...

Puedo poner mas de un figura a la vez y reconocerlas?? Como lo hago??
Gracias Oggro eres de mucha ayuda.

oggro dijo...

prueba este ejemplo

oggro dijo...

respondí lo mismo aquí:
http://hispasonic.com/tema157180-0-asc-45.html

Maximiliano dijo...

Hola Oggro,
felicitaciones por la info publicada :)

Sabes que buscando en internet no he podido encontrar .pd para bajar y poder hacer pruebas, solo las típicas como TUIO_PureData.pd y traté de hacer el ejemplo que publicaste acá pero como recién me metí en PD estoy limitado por ahora.
Solo pude hacer eso http://www.flickr.com/photo_zoom.gne?id=1801304635&size=l
y después asociarlo a un sonido
http://www.viddler.com/explore/Maximiliano/videos/10/

en todo caso para ser el principio creo que estoy bastante bien jajaja

Saludos desde Viña del Mar, Chile

oggro dijo...

hola maximiliano, pues para empezar no está nada mal eh? ;)