Máscaras Digitales - Demodrama-Faces -...

22
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 .

Transcript of Máscaras Digitales - Demodrama-Faces -...

Page 1: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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. Hardware2. 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 .

Page 2: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 3: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 4: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 lente2. 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 .

Page 5: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

● 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 / Infrared - IR - 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 - Removing IR Blocking Filter: http :// www . youtube . com / watch ? v =7 jJfuP 7 YgPA

● (2/2) Playstation 3 Eye Camera - Adding a Visible Light Blocking Filter and Tests with IR Light: http :// www . youtube . com / watch ? v = CbMqsrm 2 TTs

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 - illumination - light - for - night - vision - dc -12 v -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 .

Page 6: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

http :// www . environmentallights . com / Dimmable - LED - Strip - Light - High - Brightness - with -5050- LEDs - 60- m - Sample - Kit -12- inches - long - Infra - Red -850- nm _ P 3899. 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 .

Page 7: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 8: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 9: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 10: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

MacOSX: bajamos e instalamos la última versión del software Macam (http :// webcam - osx . 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# ps 3

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 .

Page 11: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 12: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 13: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 14: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 15: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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.

DescargaEn 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ónPara 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 .

Page 16: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 17: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 actorLos 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 .

Page 18: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

● 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 .

Page 19: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 20: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 21: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .

Page 22: Máscaras Digitales - Demodrama-Faces - …wiki.medialab-prado.es/images/5/56/Documentacion_Demodrama.pdf · de visión artificial, las marcas brillantes son identificadas por el

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 .