Download Máscaras Digitales - Demodrama-Faces

Document related concepts
no text concepts found
Transcript
Máscaras Digitales - Demodrama-Faces - Documentación Técnica
Este documento es una descripción de las herramientas y el software utilizados por Demodrama
Faces para la creación de escenas basadas en máscaras digitales. Esta guía surge de la
necesidad de registrar los conocimientos comunicados durante el taller de producción de máscaras
digitales realizados en el centro multimedia Kër Thiossane, para que los asistentes puedan utilizarla
como recurso si desean continuar la actividad iniciada durante estos días. Las fotografías que
ilustran este documento captan momentos de creación que tuvieron lugar durante el desarrollo del
taller. En la sección final incluimos los nombres de los asistentes y de las entidades que permitieron
la celebración del taller. A todos ellos les dedicamos esta referencia, llenos de gratitud y
entusiasmo .
En esencia, la técnica consiste en generar escenas proyectadas sobre actores y fondo, escenas
con máscaras que hacen de interfaz físico o superficie de proyección de rostros digitales.
Ensayos durante el taller de creación de máscaras digitales en Kër Thiossane
A continuación se describen las herramientas agrupadas en tres secciones:
1. Hardware
2. Máscaras
3. Software
En la primera sección se definen los dispositivos hardware empleados y su configuración para
formar la escena proyectada. A continuación se describen las claves para la construcción de las
máscaras y su empleo dentro de la escena. Por último, se detalla los diferentes programas
empleados para la captación de máscaras, proyección y secuenciación de rostros digitales.
1. Hardware:
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Material básico:
● Proyector
● Cámara Web e Iluminador de infrarrojos
● Ordenadores y periféricos
Esquema genérico de la instalación de la escena proyectada
El sistema de proyección y de visión artificial definen el escenario como un área de proyección
plana en la que se mueven los actores con las máscaras y que suele contar con una superficie o
pared de fondo sobre la que se proyecta la escenografía. Para el sistema de proyección basta con
un proyector convencional para crear escenas de tamaño pequeño o medio. El sistema de visión
artificial consiste en una webcam de infrarrojos acompañado de un iluminador LED también de
infrarrojos (como los utilizados en videovigilancia o en la fabricación de mesas multitáctiles)
Tanto el software de visión artificial como el de secuenciación y proyección de escena se ejecutan
en ordenadores que, a su vez, pueden tener conectados otros dispositivos de apoyo como
webcams adicionales, altavoces, periféricos, controladores midi, sensores...
Sistema de visualización: Proyector
Es suficiente un proyector de 3000 lumenes y resolución de 1024x768.
El tamaño de la escena proyectada debe ser un equilibrio entre:
● el espacio necesario para los actores
● la resolución deseada para las imágenes proyectadas en las máscaras
● la intensidad lumínica proporcionada por el proyector que tengamos disponible.
Cuanto más grande sea la escena, de más espacio dispondrán los actores para su movimiento,
pero la resolución de las imágenes sobre la máscara será menor y la intensidad lumínica
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
proporcionada por el proyector será más débil. El tamaño típico de las escenas que generamos
está entre 3 y 4 metros de ancho.
La proyección de las imágenes sobre las máscaras será más precisa cuanto más próximos estén
entre sí el foco del proyector con la lente de la cámara de visión artificial. Es por esto conveniente
que la óptica de la cámara y del proyector se parezcan lo máximo posible. Normalmente ponemos
juntos tanto proyector como cámara e iluminadores en una mesa baja, a la distancia adecuada para
el tamaño de escena que necesitamos.
Sistema de visión artificial: Cámaras e iluminadores
Para la detección y el seguimiento de máscaras en escena utilizamos la técnica de captación de
marcas con visión artificial. Las marcas consisten en pequeños trozos de tela o vinilo reflectante.
Cuando las marcas son iluminadas por focos, éstas reflejan con gran intensidad la luz siendo vistas
como puntos muy brillantes por una cámara web. Al procesar la imagen de la webcam con software
de visión artificial, las marcas brillantes son identificadas por el ordenador como puntos discretos
que tienen una posición conocida en pantalla. En la nomenclatura de visión artificial, el mecanismo
de identificación de puntos brillantes en una imagen se llama identificación de blobs.
Marcas reflectantes para el seguimiento de máscaras
Para evitar que la luz visible de la proyección interfiera en el proceso de identificación de marcas
utilizamos iluminadores y cámaras de infrarrojos. Ya que la luz que emite el proyector pertenece
únicamente al espectro visible (no tiene componentes de espectro infrarrojo), la imagen que
obtenemos con una cámara de infrarrojos es la de un fondo homogéneo y obscurecido con las
marcas reflectantes brillando nítidamente. Para que la cámara capte la máxima intensidad de la luz
reflejada por las marcas, ésta debe posicionarse lo más cerca posible del iluminador de infrarrojos.
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Es por esto que son muy eficaces los iluminadores formados por anillos de LED que rodean a la
lente de la cámara.
Cámara de seguridad. Imagen extraída de topsurveillance.info
Otras fuentes de luz que no son la del proyector, como focos de escena o la luz del sol, contienen
gran cantidad de componente infrarrojo, con lo que pueden saturar de luz la escena e impedir que
las marcas se distingan nítidamente. Por esto se debe evitar la luz del sol o cualquier foco halógeno
en escena. También habrá que evitar materiales metálicos o espejos que reflejen intensamente la
luz, ya que el mecanismo de visión artificial podría confundirlos con las marcas reflectantes de las
máscaras.
Cualquier cámara web puede convertirse en una cámara de infrarrojos. Para ello el procedimiento
típico es el siguiente:
1. Abrir la cámara y extraer la lente
2. Extraer el filtro anti-infrarrojo que suelen traer las cámaras web sobre el sensor.
3. Añadirle un filtro de infrarrojos y fijarlo al sensor.
4. Volver a poner la lente y cerrar la cámara.
Es importante resaltar que en nuestro caso utilizamos filtro de infrarrojo para eliminar la luz visible
de la imagen proporcionada por la webcam. Muchas cámaras de infrarrojo no incluyen este filtro,
permitiendo ver tanto la componente visible como la infrarroja. En este caso tenemos que añadirle
un filtro de infrarrojos. Filtros de infrarrojos comerciales para webcams pueden obtenerse aquí:
http://peauproductions.com/store/index.php?main_page=index&cPath=2_12
Hay multitud de tutoriales y guías que muestran cómo transformar una webcam en una cámara IR.
Algunas buenas referencias del proceso:
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
●
Tutorial de Geoff Johnson: “How to make a webcam work in infrared”:
http://www.hoagieshouse.com/IR/
●
Tutorial en Instructables: “Infrared (IR) Webcam”: http://www.instructables.com/id/InfraredIR-Webcam/?ALLSTEPS
En la práctica, es una tarea complicada sobre todo en el proceso de extracción de la lente y del
filtro anti-infrarrojo. Es relativamente fácil acabar rompiendo la lente o arañando el sensor si la
cámara no es fácil de manipular.
La cámara que utilizamos actualmente es la cámara PlayStation 3 Eye. A un coste relativamente
bajo ofrece una resolución y velocidad de refresco altas (640x480 a 60 fps). Estas características
son muy importantes para obtener un seguimiento de las máscaras lo más preciso y rápido posible.
En la sección de software están especificados los drivers para hacer funcionar la cámara PS 3 Eye
tanto en Mac, como en Windows o Linux.
En los siguientes vídeos se muestran los pasos a seguir para modificar estas cámaras para la
visión en infrarrojo:
●
(1/2)
Playstation
3
Eye
Camera
http://www.youtube.com/watch?v=7jJfuP7YgPA
Removing
IR
Blocking
Filter:
●
(2/2) Playstation 3 Eye Camera - Adding a Visible Light Blocking Filter and Tests with IR
Light: http://www.youtube.com/watch?v=CbMqsrm2TTs
PeauProductions es una tienda on-line que ofrece el servicio de modificación de la PS 3 Eye,
vendiendo directamente la cámara modificada con el filtro de infrarrojo:
http://peauproductions.com/store/index.php?main_page=product_info&products_id=11
Recomendamos elegir el filtro de 850nm y la carcasa original de la cámara (Board Camera).
Además de la cámara, en esta tienda adquirimos el juego estándar de lentes que nos permite
probar diferentes ópticas: desde telescópicas a gran angular. De esta manera la posición de la
cámara se puede adaptar fácilmente a la distancia necesaria para la proyección.
http://peauproductions.com/store/index.php?main_page=product_info&cPath=26_4&products_id=2
Para los iluminadores pueden utilizarse multitud de lámparas de infrarrojos a la venta en internet.
Hay que poner especial atención en que la longitud de onda del iluminador coincida con la del filtro
infrarrojo utilizado (la mayoría de iluminadores son de 850 nm).
A continuación ponemos dos ejemplos de focos IR que pueden ser utilizados:
- Focos de LED IR: Ofrecen gran potencia lumínica. Para aprovecharla, habrá que posicionar la
cámara lo más próximo posible al foco: http://www.dealextreme.com/p/96-led-infrared-illuminationlight-for-night-vision-dc-12v-41108
- Tiras de LED IR de alta intensidad: Dan muy buenos resultados ya que se pueden situar muy
próximos a la lente de la cámara y optimizar mucho en intensidad lumínica y la facilidad de
montaje:
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
http://www.environmentallights.com/Dimmable-LED-Strip-Light-High-Brightness-with-5050-LEDs60-m-Sample-Kit-12-inches-long-Infra-Red-850-nm_P3899.aspx
Construcción de cámara de visión artificial usando la cámara PS3 Eye y tiras de led Infrarrojo
Sistema de procesamiento: Ordenadores
Tal y como explicaremos en la sección de software, tenemos que ejecutar dos programas
simultáneamente:
• Community Core Vision: procesa la información de la cámara de infrarrojos para obtener la
posición de las marcas en pantalla.
• Un scketch (un programa) de Processing que genera la proyección y secuenciación de los
rostros digitales y los escenarios a partir de las posición de las marcas.
Tanto el software como los drivers de la cámara PS 3 Eye son compatibles con los sistemas
operativos Windows, Mac y Linux, aunque únicamente lo hemos probado en los dos primeros.
Es importante la potencia de procesamiento de los ordenadores para un adecuado funcionamiento.
Las especificaciones mínimas serían aproximadamente:
• Procesador: Intel Core 2 Duo o similar
• Memoria: 2 GB a 1067 MHz
Aunque un ordenador es suficiente para ejecutar en paralelo el Community Core Vision y el scketch
de Processing, normalmente utilizamos dos ordenadores, cada uno ejecutando un software y
comunicados en red local. Esto lo hacemos por dos razones:
• Al dividir el procesamiento en dos ordenadores funcionando en paralelo, contamos con
más potencia para generar escenas más complejas y ricas en efectos. Esto es importante si
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
tenemos en cuenta que Processing no es un entorno muy eficiente en el uso de recursos
del ordenador, al menos no tanto como C++.
• Cuando utilizamos una segunda webcam para capturar rostros en tiempo real y
proyectarlos en las máscaras, usar un ordenador puede generar conflictos en la gestión que
el sistema operativo hace de las diferentes cámaras. Cuando utilizamos dos ordenadores,
conectamos la webcam de infrarrojos al ordenador que ejecuta Community Core Vision y la
cámara de captura de rostros al ordenador del sketch de Processing. De esta forma
desaparece la posibilidad de conflictos.
Diagrama de conexiones de los equipos
2. Máscaras:
Material básico:
• Máscara o careta
• Marcas de tela reflectante
Cualquier máscara puede convertirse en un soporte de rostros digitales: secuencias de imágenes,
vídeos o efectos generados por ordenador que se adaptan a la posición y orientación de la
máscara. Los rostros se proyectan en todo momento sobre las máscaras gracias al mecanismo de
visión artificial que detecta su posición en el escenario. Este mecanismo necesita que se sitúen tres
marcas de tela o vinilo reflectante en la máscara. Estas marcas definen los límites dentro de los
cuales se proyectarán las secuencias de imágenes y vídeos:
• una marca en el límite superior
• las otras dos en los límites izquierdo y derecho, justo a la mitad de la altura total de la máscara.
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Esquema de posiciones de las marcas y cómo el scketch de Processing ajusta los rostros digitales a las
mascaras
El tamaño necesario de las marcas depende en gran medida del tamaño del escenario en el que se
vayan a mover. Un escenario de grandes dimensiones necesitará marcas más grandes. Cuanto
más grande es el escenario mayor será la distancia necesaria a la que situar el proyector y la
cámara, con lo que las marcas deberán tener un mayor tamaño para servir de referencia. En la
práctica demodramática, para escenarios de unos 3 metros de ancho hemos utilizado con buenos
resultados marcas cuadradas de 3 cm de lado aproximadamente. Las marcas deben tener formas
sencillas como cuadrados o círculos y ser planas y orientadas frontalmente a la máscara.
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Producción de máscaras para la coreografía de tres alturas Zulú
Las tres marcas deben captarse en todo momento por la cámara de visión artificial. Esto impone
restricciones en el movimiento y orientación de la máscara en la escena.
• Las tres marcas de la máscara deben permanecer completamente en el interior de la escena
proyectada. El actor en su movimiento no debe salirse de los límites laterales de la escena ni
desplazarse demasiado hacia adelante respecto a la pared de fondo.
• La orientación de la máscara debe ser tal que la cámara de visión pueda captar las tres marcas.
El actor debe mantener la máscara orientada hacia la cámara.
•
Los actores deben tratar de evitar la ocultación de las marcas con su brazos o cualquier
elemento escenográfico.
Las imágenes se proyectan en el plano definido por las marcas. Por esto, y para mantener la
visibilidad de las marcas respecto de la cámara, funcionan mejor máscaras planas frente a
máscaras volumétricas. Una máscara con mucho volumen suele generar distorsiones en la
proyección y reducir la capacidad de orientar la máscara debido a ocultaciones de las marcas.
3. Software:
Los elementos software necesarios para crear una escena son los siguientes:
• Drivers de PS 3 Eye (en caso de utilizar esta cámara)
• Software de visión artificial: Community Core Vision
• Software de proyección y secuenciación: Processing y el Scketch BasicDemoScene
Drivers de PS Eye:
Para poder utilizar la cámara PS Eye en un ordenador es necesario instalar los drivers adecuados,
dependiendo del sistema operativo de nuestro ordenador:
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
MacOSX: bajamos e instalamos la última versión del software Macam (http://webcamosx.sourceforge.net/). Es recomendable descargar la versión más reciente desde este enlace:
http://sourceforge.net/projects/webcam-osx/files/cvs-build/
Se trata de un archivo .dmg, una vez abierto se elige la opción “Instalar componente”. Cuando ya
esté instalado, podemos acceder a la PS Eye como si se tratara de una webcam más. Primero
debemos comprobar que la versión instalada funciona correctamente con nuestra versión de OS X,
para ello ejecutamos Macam, seleccionamos nuestra cámara y accedemos a sus propiedades.
Para una resolución de 640 x 480 deberíamos ser capaces de seleccionar la opción 60 fps.
Windows: bajamos y ejecutamos el Archivo Cl Eye Platform SDK de la siguiente dirección:
http://codelaboratories.com/downloads/
El archivo CL Eye Platform driver contiene únicamente el driver, pero si queremos emplear la
cámara desde Processing necesitamos descargar el SDK. Una vez instalado debemos copiar la
carpeta
C:\Program Files\Code Laboratories\CL-Eye Platform
SDK\Samples\CLEyeMulticam\Java\cleyemulticam
en la carpeta de librerias de Processing, esto es, Documents\Processing\libraries, de modo que en
su interior aparezca la carpeta cleyemulticam. Si todavía no se ha instalado Processing, esta
carpeta no existirá, por lo que este paso deberá realizarse una vez instalado y ejecutado
Processing.
En caso de que al ejecutar el sketch en Processing obtengamos un error referente a este driver (del
tipo UnsitisfiedLinkError) existe un hilo con problemas comunes y soluciones que podemos
consultar en: http://codelaboratories.com/forums/viewthread/68/
Linux: Hay soporte para la cámara a partir del kernel de Linux 2.6.29. Para kernels anteriores hay
drivers disponibles en http://kaswy.free.fr/?q=node/38#ps3
Software de visión artificial: Community Core Vision
Como se ha mencionado anteriormente, el procesamiento de visión artificial se realiza a través del
programa Community Core Vision, que puede ser descargado para distintas plataformas. Para
sistemas Windows se debe descargar la versión 1.2 y no la más reciente, ya que se han realizado
cambios que impiden la comunicación con el sketch BasicDemoScene. Se puede obtener desde la
sección Downloads de la página: http://ccv.nuigroup.com/
Este programa se encarga de procesar la imagen obtenida por la cámara para aislar las marcas
reflectantes de las máscaras, y así poder ofrecer las coordenadas donde se encuentran en todo
momento.
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Marcas de la máscara capturadas por Community Core Vision
En caso de estar ejecutando el software necesario para la escena en dos ordenadores, el primer
paso será configurar Community Core Vision para que se comunique con el otro ordenador donde
se ejecuta Processing. Para ello abrimos con un editor de texto el archivo \Community Core
Vision\data\config.xml y escribimos la dirección IP del ordenador ejecuntando Processing en el
campo LOCALHOST
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Configuración de la IP del ordenador ejecutando el scketch de Processing
Guardamos los cambios realizados y arrancamos Community Core Vision. Para permitir la
comunicación debemos seleccionar la opción SEND TUIO OSC en el menú de la derecha. En la
parte inferior derecha de la ventana podemos comprobar que los mensajes se están enviando al
ordenador especificado en el fichero config.xml.
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Community Core Vision configurado para enviar TUIO
Puede ser necesario hacer click sobre Next Camera hasta que aparezca la imagen de nuestra
cámara.
A continuación ajustaremos los parámetros para que la sección Tracked Image muestre solamente
las marcas reflectantes. Primero tomaremos una imagen de la escena sin máscaras, ( es decir, sin
marcas reflectantes) pulsando REMOVE BG. Tras esto moveremos una marca por la escena
mientras probamos a variar el IMAGE THRESHOLD, de forma que desaparezca todo menos la
marca. Puede ser necesario aumentar el parámetro AMPLIFY si la marca se pierde, o los
parámetros de la sección Highpass si existen reflejos en el escenario.
Con los parámetros MIN BLOB SIZE y MAX BLOB SIZE controlamos el tamaño límite de los
objetos que queremos detectar, por lo que hay que ajustarlos al tamaño aproximado de la marca a
lo largo de la escena.
Cuando el programa esté correctamente configurado para poder seguir la marca, debemos
asegurarnos que la cámara, en su posición definitiva, cubre todo el escenario por donde se
moverán los actores. Para ello, una vez definido el tamaño deseado del escenario a través del
tamaño de la proyección, probaremos a mover una marca reflectante a lo largo de toda la escena,
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
comprobando que nunca se pierde, incluidas las cuatro esquinas. Si no es posible encontrar una
posición adecuada para ello, podemos cambiar la lente de la cámara, teniendo en cuenta que al
usar una con más apertura estaremos perdiendo cierta precisión.
Cuando tengamos todo el montaje en su posición definitiva procederemos a realizar la calibración.
Mediante este proceso se vinculan el espacio de la proyección y el de la cámara. Para ello,
pulsamos el botón “c” para entrar en la pantalla de calibración.
Como muestra dicha pantalla, existen varias opciones para personalizar el proceso. La más
importante es el número de puntos, por defecto cuatro. Cuantos más puntos usemos mayor será la
precisión, pero también mayor será el tiempo que tardamos en calibrar. En la práctica
demodramática solemos usar nueve puntos, tres en cada eje, ya que proporciona una buena
precisión y no lleva más de un minuto hacer la calibración. Siguiendo las instrucciones en pantalla,
debemos pulsar una vez la tecla “+” para añadir un punto más en el eje vertical, y una vez la tecla
“=” para añadir un punto más en el eje horizontal (las teclas pueden variar dependiendo del
teclado).
Pantalla de calibración
También son interesantes las opciones para modificar el tamaño de la zona.
Volvemos a pulsar “c” para comenzar el proceso de calibración. Se irán iluminado en rojo los
puntos donde debemos colocar la marca reflectante. Colocaremos las marcas sobre la pared donde
se va a proyectar, primero por el lado no reflectante para ajustar bien que el centro de la cruz verde
quede sobre la marca, y a continuación le daremos la vuelta y no la moveremos hasta que el
círculo rojo quede completamente azul. Se repite el proceso con todos los puntos, y al terminar se
pulsa “x” para volver a la ventana principal.
En esta ventana debemos pulsar el botón “SAVE SETTINGS” para guardar la calibración realizada.
Es importante señalar que cualquier movimiento de la cámara o el proyector hará que se pierda la
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
correcta calibración entre ambos. Si esto sucede, pero el desajuste no es muy grande, podemos
optar por mover manualmente la cámara hasta conseguir que la proyección se ajuste a la máscara.
Con esto ya tenemos Community Core Vision configurado. En su ventana principal pulsamos la
barra de espacio para que pase al modo normal de funcionamiento, en el que se consigue una
mayor velocidad de procesado. Si usamos la Ps Eye deberíamos ver que la velocidad indicada es
cercana a los 60 FPS.
Software de proyección y secuenciación: Processing y el Scketch BasicDemoScene
Para la creación y ejecución de escenas utilizamos el entorno de programación visual Processing
(http://www.processing.org/). La sencillez de este lenguaje de programación basado en Java, la rica
documentación y la amplia variedad de librerías que extienden las capacidades de la herramienta,
hacen de Processing un entorno ideal para el prototipado de escenas y efectos gráficos con las
máscaras. Como punto de partida para el trabajo con máscaras, ofrecemos el scketch (software
escrito en processing) BasicDemoScene, con las funciones básicas para crear y ejecutar escenas
para uno o dos actores.
Descarga
En el fichero “BasicDemoScene.zip” se incluye el scketch y las librerías externas de Processing
utilizadas por el mismo: GSVideo de Andres Colubri (http://gsvideo.sourceforge.net/) para
manipulación de vídeo, y TUIO de Martin Kaltenbrunner (http://www.tuio.org/?processing) para la
comunicación con Community Core Vision. BasicDemoScene.zip contiene:
1. La carpeta BasicDemoScene, el scketch de Processing
2. Las carpetas “libraries_Win”, “libraries_MacOS” y “libraries_Linux”, con las librerías de
Processing organizadas según la plataforma.
Instalación
Para ejecutar el scketch BasicDemoScene en Processing es necesario instalar Processing y las
librerías adicionales. Los pasos son los siguientes:
3. Descarga Processing (http://www.processing.org/download/) y, tras descomprimirlo,
ejecútalo por primera vez. Al ejecutarse, comprueba que se ha creado una carpeta llamada
“Processing” dentro de la carpeta personal de “Documentos”.
4. Copia la carpeta “BasicDemoScene” en la carpeta “Processing”.
5. Crea la carpeta “libraries” dentro de la carpeta “Processing”, al mismo nivel que la carpeta
“BasicDemoScene”.
6. Copia el contenido de “libraries_Win”, “libraries_MacOS” o “libraries_Linux”, dependiendo de
la plataforma, dentro de la carpeta “libraries” creada en el paso anterior.
En las siguientes imágenes se muestran los ficheros organizados dentro de la carpeta de
“Processing”
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Estructura de ficheros de la carpeta de Processing
Ejecución del software
Antes de ejecutar el software comprueba que esté funcionando Community Core Vision para la
captación de las máscaras. Una vez que esté abierto el scketch BasicDemoScene con Processing,
debes pulsar en Scketch -> Present para que el scketch funcione a pantalla completa.
El scketch proyecta imágenes y vídeos almacenados en la carpeta “data” sobre las máscaras
izquierda y derecha y sobre la imagen de fondo. También accede a una webcam conectada al
ordenador para proyectar vídeo en tiempo real sobre la máscara de la izquierda.
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Cuando sólo hay una máscara en escena, entonces se proyectan las imágenes de la máscara de la
izquierda.
Una máscara (máscara izquierda) y dos máscaras
La secuenciación de imágenes se realiza con teclado, utilizando las siguientes teclas:
● Teclas “q”/”w” : Retrocede y avanza en la serie de rostros de la máscara izquierda
● Teclas “a”/”s” : Retrocede y avanza en la serie de rostros de la máscara derecha
● Teclas “z”/”x” : Retrocede y avanza en la serie de fondos.
● Tecla “c”: En caso de que esté disponible, se activa la imagen de la webcam sobre la
máscara de la izquierda
Formato de contenidos
Esquema de capas gráficas que se superponen en un actor
Los contenidos de rostros y los fondos pueden ser imágenes, vídeos y secuencias de imágenes.
● Imágenes: Admite formatos “.jpg”, “.png” con transparencia y “.gif”
● Vídeo en formato “.mov”
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
●
Secuencias de imágenes almacenadas en carpetas: el orden de las imágenes en la
secuencia sigue el orden alfanumérico de los nombres de las imágenes.
Las imágenes y vídeos de las máscaras se redimensionan para ajustarse al tamaño de las
máscaras. Por esto, para evitar que se distorsionen, su ancho y alto deben ser proporcionales a la
de la máscara física.
Del mismo modo, las imágenes para el fondo se redimensionan al tamaño de la pantalla, por lo que
su ancho y alto debe ser proporcional al de la pantalla.
Los contenidos para máscaras y fondos se organizan en la carpeta “data” de BasicDemoScene en
las siguientes carpetas:
● “left”: Contenidos de la máscara de la izquierda
● “right”: Contenidos de la máscara de la derecha
● “stage”: Contenidos del fondo
Los contenidos se cargan al comienzo de la ejecución el scketch y se organizan en una lista
siguiendo el orden alfanumérico del nombre de los ficheros. Al pulsar las teclas correspondientes
(“q”/”w” para la máscara izquierda, “a”/”s” para la máscara de la derecha, “z”/”x” para el fondo), se
recorre la lista de contenidos hacia atrás y hacia adelante respectivamente.
Otras imágenes que se guardan en la carpeta “data” son:
● “leftMask.png”: Máscara gráfica en blanco y negro que se aplica para recortar las imágenes
de la máscara izquierda.
● “rightMask.png”: Máscara gráfica en blanco y negro que se aplica para recortar las
imágenes de la máscara derecha.
● “leftSpotLight.png”: Foco que se proyecta sobre el cuerpo del actor que lleva la máscara de
la izquierda.
● “rightSpotLight.png”: Foco que se proyecta sobre el cuerpo del actor que lleva la máscara
de la derecha.
Estas imágenes se pueden reemplazar por otras o bien eliminar si no se quieren utilizar.
Estructura del código:
Para modificar y construir escenas más allá del ejemplo BasicDemoScene, es necesiario estar
familiarizado con la programación en Java/Processing. El siguiente diagrama muestra los objetos
que se emplean en el scketch:
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Estructuras de datos en el código de BasicDemoScene
●
●
demoScene: Este objeto crea al inicio de la ejecución los objetos leftActor, rightActor y
stage, que son los encargados de dibujar los contenidos sobre las máscaras y el fondo
respectivamente. Además, demoScene abre la conexión de TUIO con Community Core
Vision para recibir la información de posición de las marcas. Durante la ejecución actualiza
la posición de las máscaras de leftActor y rightActor cuando recibe mensajes de TUIO con
la posición de las marcas.
contentManager: En el inicio de la ejecución inspecciona las carpetas en “data” (“left”, “right”
y “stage”), almacenando las imágenes, vídeos y secuencias en los objetos lectActorContent,
rightActorContent y stageContent. Durante la ejecución, estos objetos proporcionan en todo
momento las imágenes que leftActor, rightActor y stage se encargan de dibujar sobre
máscaras y fondo.
Es en el inicio de la ejecución (setup() del scketch) donde se inicializan las estructuras de datos.
scene = new DemoScene(this, width, height);
stage = scene.getStage();
leftActor = scene.getActor_1();
rightActor = scene.getActor_2();
contentManager = new ContentManager(this);
stageContent = contentManager.getStageContent();
leftFaceContent = contentManager.getLeftFaceContent();
rightFaceContent = contentManager.getRightFaceContent();
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
leftActorSpotlight = loadImage(DemoConstants.LEFT_SPOTLIGHT_PATH);
rightActorSpotlight = loadImage(DemoConstants.RIGHT_SPOTLIGHT_PATH);
El scketch utiliza los índices currentLeftFaceIndex, currentRightFaceIndex y currentStageIndex para
fijar los contenidos proyectados en cada momento sombre máscara izquierda, máscara derecha y
fondo. Además, el valor de realTimeCam determina si se utiliza la imagen de la webcam como
contenido de la máscara de la izquierda.
scene.update();
stage.draw(stageContent.getFrame());
if (realTimeCam) {
// real time video on the left mask
if (cam.available() == true){
cam.read();
lastCamFrame = cam.get();
}
leftActor.draw((PImage) lastCamFrame, leftActorSpotlight);
}
else {
leftActor.draw(leftFaceContent.getFrame(), leftActorSpotlight);
}
rightActor.draw(rightFaceContent.getFrame(), rightActorSpotlight);
Estos índices son modificados mediante los eventos de teclado
if ( key == 'c' ) // Toggle real time video
{
realTimeCam = !realTimeCam;
if(realTimeCam)
{
leftFaceContent.pause();
}
else
{
leftFaceContent.play();
}
}
else if (key == 'w') // change left face
{
currentFaceLeftStep++;
currentFaceLeftStep = min(currentFaceLeftStep,
leftFaceContent.numOfSources()-1);
leftFaceContent.setSource(currentFaceLeftStep);
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
println("left face: "+currentFaceLeftStep);
}
else if (key == 'q')
{
currentFaceLeftStep--;
currentFaceLeftStep = max(currentFaceLeftStep, 0);
leftFaceContent.setSource(currentFaceLeftStep);
}
else if (key == 's') // change right face
{
currentFaceRightStep++;
currentFaceRightStep = min(currentFaceRightStep,
rightFaceContent.numOfSources()-1);
rightFaceContent.setSource(currentFaceRightStep);
}
else if (key == 'a')
{
currentFaceRightStep--;
currentFaceRightStep = max(currentFaceRightStep, 0);
rightFaceContent.setSource(currentFaceRightStep);
}
else if (key == 'x') // change stage
{
currentStageStep++;
currentStageStep = min(currentStageStep, stageContent.numOfSources()1);
stageContent.setSource(currentStageStep);
}
else if (key == 'z')
{
currentStageStep--;
currentStageStep = max(currentStageStep, 0);
stageContent.setSource(currentStageStep);
}
4. Créditos y agradecimientos :
Autores: Enrique Esteban e Ignacio Cossio (demodrama)
Supervisión de la redacción: Patricia Esteban, Eva Racionero, Clara de Andrés e Ismael García
(demodrama)
Contribuidores al código en Processing: Eduario Moriana, Roland Assilevi, Abdoulaye Mbaye
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.
Esta documentación se debe al esfuerzo de todos los que han contribuido a la realización del taller
de creación de máscaras digitales en Ker Thiossane (16-22 diciembre 2011):
Asistentes y colaboradores del taller: Maksens Denis, Abdoulaye Mbaye, Adama Samoura,
Fatoumata Bintou Sall, Kader Diakhate, Khadidatou Ba, Lamine Dieme, Alice Gomis, Mbaye Diop,
Racine Gaye, Babacar Ndiaye, Angelina Nwachukwu, Boubacar Soulare, Mamadou Diol, Batch.
Organizadores del taller: Nadia Valentín (Embajada de España en Senegal), Marion Louisgrand,
Susana Moliner Delgado, Momar François Sylla, Roland Assilevi, Daouda Kote (Ker Thiossane)
Apoyo logístico e infraestructura desde Madrid: Medialab-Prado, Monster Electronics s.l. y
PetakaLab
Máscaras Digitales - Demodrama-Faces - Documentación Técnica por Enrique Esteban/ Ignacio Cossio se encuentra
bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.