Versión beta Gonzalo Luzardo M. Mayo 2009 1. El Arte Digital El Arte Digital no es más que poner la tecnología al servicio del arte, así como ya lo han hecho otras ramas del desarrollo humano. De manera más formal, se puede definir como Arte Digital a una disciplina creativa de las artes plásticas que comprende obras en las que se utilizan elementos digitales, tanto en el proceso de producción como en su exhibición. En sus inicios, al contrario del resto de obras artísticas que se manifestaban sobre un soporte analógico tangible como el lienzo, un instrumento musical, material escultórico u otros, las obras de arte digital se manifiestan mediante soportes digitales o al menos tecnológicamente avanzados. Cabe destacar que el Arte Digital no incluye obras que hacen uso de técnicas digitales de forma superficial y no definitoria. La fotografía digital con retoques digitales menores, obras previamente pintadas a mano y escaneadas, o creaciones 3D de mala calidad de simples objetos geométricos, no se los pueden denominar Arte Digital. El arte radica en el artista y no en un programa; el programa es la herramienta y la computadora es el medio para el artista, así como en la prehistoria lo era el carbón y la pared de una caverna. Muchos artistas digitales de hoy en día son artistas plásticos “reciclados”. Las herramientas y los medios van evolucionando con el pasar de los años. Desde el lápiz y el papel, hasta el lienzo y las acuarelas. Todo es arte. Así también como la música que se adapta a la nueva tecnología, la pintura se adapta. El arte es el esfuerzo del artista por plasmar una idea para que sea apreciada por todos. El Arte Digital es un concepto bastante debatido en los círculos artísticos, y rechazado con frecuencia por algunos puristas del arte, que lo catalogan más como una habilidad técnica que una manifestación artística, aunque esta actitud puede (y suele) provenir de un completo desconocimiento del arte computarizado. Hoy por hoy el arte digital se encuentra expresado de muchas maneras. El cine y los video-juegos son una de las más difundidas, pero al mismo tiempo pasan más desapercibidas como arte digital que el resto. Los paisajes creados digitalmente en algunos de estos casos llevan más horas-hombre que muchas de las pinturas más conocidas del mundo y, al igual que éstas, expresan tanto sentimiento, técnica, sensibilidad y dramatismo; obras de arte digital multimedia que interactúan con el ambiente y las personas que los rodean están siendo muy populares y de mucha aceptación hoy en día. La primera exposición de gráficos generados por una máquina electrónica tuvo lugar en 1953 en el Sanford Museum de Cherokee, Iowa. Desde ese momento, cuando todavía el expresionismo abstracto y el informalismo eran las corrientes estilísticas hegemónicas en el panorama artístico occidental, la realización de gráficos con la ayuda de máquinas empezó a multiplicarse hasta llegar a ser vertiginoso y alcanzar su éxito. Fue a finales de los sesenta y principios de los setenta, cuando esta práctica se extendió a numerosos países. La revolución tecnológica del último siglo ha propiciado un Arte Digital hecho mediante la innovación de programas informáticos, y también el surgimiento de un gran abanico de cámaras digitales. Los pioneros del arte digital son Charles Csuri, Robert Mallary, David Em, Herbet W. Franke, Lawrence Gartel, John Landsown, Manfred Mahr y Friede Nake. Charles Csuri profesor de la Universidad Estatal de Ohio, es considerado el impulsor del arte digital y de la animación por ordenador por el Museo de arte Moderno y por la Association for Computing Machinery Special Interest Group Graphics. Creó el primer ordenador de arte en 1964. Su exposición “Más allá de las Fronteras” es una muestra de sus trabajos más innovadores de arte en ordenador. Charles Csuri fue el primer pintor en ganar el concurso de la revista Computer and Automations, con una obra que representaba su propio retrato tratado mediante un programa de ordenador. Otro de los impulsores del arte digital es el escultor norteamericano Robert Mallary quien 1968 realiza sus primero gráficos en ordenador. Además, desarrolló un programa de ordenador con el propósito de realizar una escultura y consiguió su objetivo haciendo ciertas transformaciones en una forma tridimensional. El Arte Digital es una nueva forma de expresión que se adapta mejor a las tecnologías de los últimos tiempos; esta no trata de reemplazar al Arte propiamente dicho, sino más bien trata de presentar una nueva alternativa innovadora, atrevida, dinámica y fresca, que puede resultar muy interesante para aquellas personas quienes quieren explorar nuevas formas de Arte [1][2][3]. 2. Descripción de MosaicMe MosaicMe es una aplicación multimedia interactiva de arte digital creada bajo licencia GNU. Como muchas de su tipo hace uso de un conjunto de líneas de código, un medio de percepción y el poder de cómputo de un ordenador para crear el arte digital de forma interactiva. MosaicMe realiza mosaicos1 digitales de manera interactiva que luego son mostrados en un monitor plano, a manera de cuadro montado en una pared, de las caras de las personas captadas por una cámara montada sobre el mismo. La Fig.2-1 muestra un esquema del montaje. Fig. 2-1 Montaje de MosaicMe. (a) Ordenador, (b) monitor y (c) cámara de vídeo. 1 Un mosaico es el arte de crear imágenes mediante la unión de pequeñas piezas de vidrio de color, u otro tipo de material similar. También se lo puede definir como una técnica de arte decorativo, un concepto de decoración interior de significancia espiritual en el interior de catedrales, en donde un conjunto de de piezas de color de piedra o vidrio son usadas para crear un patrón o imagen. Como podemos observar en la Fig. 2-1, MosaicMe está formado por un conjunto de elementos, cada uno de los cuales cumple una función muy concreta. Los elementos que conforman MosaicMe son los siguientes: a. Una cámara de vídeo, montada sobre el monitor, la cual captura una secuencia de imágenes que luego serán procesadas. b. Un ordenador, que tiene la función de procesar las imágenes capturadas por la cámara en búsqueda de caras y luego procesar el área de la imagen sobre la cual las caras han sido localizadas para crear el mosaico. c. Un monitor pantalla plana, en el cual será mostrado el mosaico. MosaicMe es configurable, ya que se puede especificar: El tamaño en píxeles de la imagen (Wp,Hp) que será capturada por la cámara . El nivel de detalle (D) y el tamaño en píxeles del mosaico (Wm,Hm) a ser creado. El tiempo (T) que la o las personas deben fijar su mirada para que de inicio al proceso de creación del mosaico. Todos estos parámetros definen la calidad del mosaico así como el tiempo de procesamiento que tomará el CPU para crearlo. La calidad está definida por la combinación del tamaño de la imagen, el nivel de detalle y el tamaño del mosaico, aunque esto afecta directamente al tiempo de procesamiento. Mientras mayor sea la calidad del mosaico requerida, mayor será los requisitos en cuanto a poder de cómputo del ordenador. Como vemos, el elemento principal de MosaicMe es el ordenador que debe analizar las imágenes provistas por la cámara para crear el mosaico de las caras encontradas que han fijado su mirada en la pantalla por un determinado tiempo. 3. Diseño de MosaicMe ORDENADOR CÁMARA DE VÍDEO C DETECTOR DE CARAS Imagen MONITOR R Caras detectadas FICHERO XML Mosaico CREADOR DEL MOSAICO V Fig. 3-1 Diseño lógico de MosaicMe. En cuanto al diseño lógico de la aplicación que reside en el ordenador, la cual es la encargada de crear los mosaicos a partir de una secuencia de imágenes obtenidas de la cámara, podemos observar en la Fig. 3-1, que contiene los siguientes elementos: 1. Un fichero XML que almacena toda la configuración del sistema. 2. Un bloque encargado de la detección de caras o rostros. 3. Un bloque encargado de la creación del mosaico. El fichero XML de configuración de MosaicMe es el siguiente: <?xml version="1.0"?> <mosaicme> <video_source> <width>ANCHO_EN_PIXELES</width> <height>ALTO_EN_PIXELES</height> <capture_period_time>PERIODO_DE_CAPTURA_SEG</capture_period_time> </video_source> <face_detection> <watch_min_time>MINIMO_TIEMPO_DE_FIJACION_SEG</watch_min_time> </face_detection> <mosaic> <width> ANCHO_EN_PIXELES </width> <height>ALTO_EN_PIXELES</height> </mosaic> <out> <fullscreen>PANTALLA_COMPLETA</fullscreen> </out> </mosaicme> Cada uno de los parámetros que se deben especificar en el fichero son los siguientes: <video_source> Configuración de la fuente de video. <width> Ancho en pixeles de la imagen capturada. <height> Alto en pixeles de la imagen capturada. <capture_period_time> Periodo de captura desde la cámara en segundos. <face_detection> Configuración del detector de caras. <watch_min_time> Tiempo mínimo de fijación (detección de caras) para iniciar el procesamiento. <mosaic> Configuración del mosaico. <width> Ancho en pixeles del mosaico. <height> Alto en pixeles del mosaico. <out> Configuración del formato de salida. <fullscrenn> 1 si se desea que la aplicación sea ejecutada en pantalla completa. El detector de caras procesa cada imagen obtenida de la cámara a una taza de PERIODO_DE_CAPTURA_SEG fotogramas por segundo, en búsqueda de caras presentes en cada una de las imágenes, obteniendo en cada momento las coordenadas del área en la cual se ha localizado el o las caras. Si durante un periodo de MINIMO_TIEMPO_DE_FIJACION_SEG segundos ha habido una detección de rostros, éste llama al creador de mosaico, el cual crea un mosaico del tamaño especificado en la configuración, el cual posteriormente será mostrado en el monitor. 4. Detección de caras La detección de caras o rostros sobre una imagen es realizada mediante el algoritmo de Viola & Jones [4] el cual busca rostros sobre una imagen partiendo desde la esquina superior izquierda de la imagen hasta finalizar en la esquina inferior derecha de esta. La imagen es explorada varias veces con diferentes tamaños de sub-imágenes cada vez, Fig. 4-1. Fig. 4-1 El detector de rostros analiza cada una de las sub-imágenes contenidas de izquierda a derecha y de arriba hacia abajo, en diferentes escalas de la imagen general. Cada sub-imagen es enviada a un conjunto de detectores en cascada que discriminan si la subimagen presentada es un rostro o no. Los detectores de las primeras capas son más generales y permiten descartar rápidamente aquellas imágenes que no contienen rostros, las capas superiores discriminan las imágenes que son más complicadas. Si una sub-imagen logra ser aceptada como rostro por todos los detectores es entonces reconocida como un rostro válido. El detector en cascada es un método basado en características, ya que cada capa de detección utiliza un conjunto simple de características rectangulares que son aplicadas a cada sub-imagen, ver la Fig. 4-2. El detector original utilizaba cuatro características rectangulares, Fig. 3-1, cada característica es aplicada en diferentes escalas y rotaciones lo que permite obtener un vector de gran dimensión que contiene las características de la imagen. En la Fig. 4-2 y Fig. 4-3, cada característica rectangular tiene asociado un valor que puede ser calculado substrayendo las intensidades de los píxeles del rectángulo negro de las intensidades del rectángulo blanco. Cada clasificador combina las características rectangulares y las convierte en un solo valor. Las características utilizadas en cada capa tienen diferentes efectos en cada clasificador. El valor obtenido de una sub-imagen y sus características, en cada capa, es comparado con un valor predeterminado de umbral que permite determinar si esta es un rostro o no. Fig. 4-1 La figura muestra un conjunto de detectores en cascada. La primera capa del detector descarta rápidamente las imágenes no contienen rostros, las capas superiores de encargan de detectar aquellas sub-imágenes de rostros que son más difíciles de detectar. Fig. 4-2 Cuatros de las características rectangulares propuestas por Viola & Jones que son utilizadas en la detección de rostros. 5. Proceso de creación del mosaico El proceso de creación del mosaico propuesto resulta interesante por su simplicidad, robustez y un alto nivel de detalle, que resultan en una fácil implementación sobre cualquier tipo de hardware. El nivel de detalle se define de manera subjetiva, y no es otra cosa que medir si perceptualmente el mosaico realizado representa de manera correcta a la imagen capturada por la cámara. Sin embargo el proceso de creación del mosaico realiza operaciones, que dependiendo de la calidad que se pretende obtener del mosaico, pueden resultar muy complejas computacionalmente hablando. El proceso de creación del mosaico es aplicado al área definida por el detector de caras (Fig.5-1 (b)) sobre la cual las caras han sido detectadas, y consiste de los siguientes pasos: 1. 2. 3. 4. 5. 6. 7. Extracción de bordes de la imagen. Re-muestreo de los puntos activos detectados en la extracción de bordes. Generación de puntos aleatorios. Triangulación de Delaunay y Obtención del Diagrama de Voronoi. Mapeo sobre la imagen capturada de los colores de los triángulos. Pintado de los triángulos. Pintado de los bordes. La extracción de bordes (Fig.5-1 (c)) de la imagen tiene el objetivo de extraer las características principales del rostro. Esta extracción de bordes es realizada con un filtro denominado “Filtro de Canny” el cual genera una imagen que contiene los bordes de la imagen original, con un ancho de un píxel. Estos bordes pueden definirse como puntos activos que son re-muestreados cada OFFSET_DE_BORDE (Fig.5-1 (d)). Fig. 5-1 Proceso de creación del mosaico. Luego se generan PUNTOS_ALEATORIOS puntos de manera aleatoria sobre la imagen original, cuidando que dichos puntos no se superpongan a los de borde. Los puntos que pertenecen al borde junto a los generados aleatoriamente son usados para crean un Diagrama de Voronoi (Fig.5-1 (e)) que representa de manera acertada la posición de cada uno de los elementos que conformarán el mosaico. El siguiente paso consiste en definir de manera correcta el color de cada uno de los triángulos. El color de cada triangulo es mapeado sobre la imagen original que está siendo procesada. El mapeo consiste en definir la media de color de los píxeles contenidos sobre cada triángulo. El último paso consiste en pintar cada uno de los triángulos, para luego pintar los bordes de los mismos de un color obscuro; esto último ayuda a que el resultado resulte más creíble (Fig.5-1 (f)). 6. Diagramas de Voronoi Los Polígonos de Thiessen o también conocidos como Diagramas de Voronoi son una construcción geométrica que permite construir una partición del plano euclídeo. Existen varias maneras de generar un Diagrama de Voronoi a partir de un conjunto de puntos dados como entrada. El método más sencillo y popularmente usado es obtener el Diagrama de Voronoi a partir del cálculo previo de la Triangulación de Delaunay sobre los puntos. Los Diagramas de Voronoi pueden ser extraídos de manera inmediata a partir de una Triangulación de Delaunay calculada previamente. Una triangulación Delaunay es un tipo especial de triangulación que se la puede definir de la siguiente manera: 1. Sea S un conjunto de n puntos en R2 2. S no tiene más de tres puntos cocirculares (caben en el mismo circulo). Fig. 6-1 Definición visual de la Triangulación de Delaunay. En la Fig. 6-1 podemos observar la definición visual de la Triangulación de Delaunay. Observamos como un triángulo que no cumple con la condición de Delaunay puede ser adaptado para que la cumpla con un simple intercambio de aristas. Como ya se mencionó el Diagrama de Voronoi es el dual de la Triangulación de Delaunay. El Diagrama de Voronoi puede ser obtenido a partir de la Triangulación de Delaunay conectando los centros de las circunferencias circunscritas en los triángulos, ver Fig.6-2. Fig. 6-2 Dualidad de la Triangulación de Delaunay y el Diagrama de Voronoi 7. Implementación de MosaicMe en Processing Para la implementación de MosaicMe se utilizó Processing, el cual es un lenguaje y entorno de programación de código abierto basado en Java, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Su principal característica es la sencillez de su utilización. Pone a disposición del programador un conjunto de estructuras y funciones que permiten a los programadores, e incluso a los que no lo son, operar de forma sencilla a nivel de píxel con imágenes captadas desde una cámara en tiempo real. Processing puede ser descargado en el sitio oficial del proyecto: http://processing.org/. El código fuente de MosaicMe puede ser descargado del repositorio de Google code: http://code.google.com/p/mosaicme/ Para la detección de caras se utilizó la librería de OpenCV para Processing, la cual contiene el algoritmo de Viola & Jones para la detección de rostros ya implementado. Esta librería puede ser descargada de: http://ubaa.net/shared/processing/opencv/. 8. Conclusiones Una vez finalizado este trabajo podemos sacar las siguientes conclusiones: 1. El arte digital es un tipo de arte que se apoya en la utilización de la tecnología como herramienta de creación. 2. MosaicMe es un nuevo tipo de arte donde el ambiente y las personas forman parte del mismo. Las personas pasan de ser simples espectadores ser protagonistas. 3. Los artistas solos no pueden crear arte, necesitan de un informático como una herramienta más de hacer arte. 4. MosaicMe tiene mucho camino por recorrer y muchas mejoras que implementar. 5. El método propuesto crea mosaicos con un gran nivel de detalle. 6. Processing es una herramienta efectiva que facilita la creación de obras de arte digital. 9. Referencias [1]. Digital Art Museum Web Site, http://dam.org/intro.htm [2]. Charles Csuri Web Site, http://www.csuri.com/ [3]. El Prado Media Lab Web Site, http://medialab-prado.es/ [4]. Viola, P., Jones, M., 2001. Rapid object detection usign a boosted cascade of simple features. In: Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR’06). Vol. 1. pp. 511-518.