INTIMatic – una obra de net art

Resumen
INTIMatic fue una obra de net art que desarrollé con UAFC (créditos más abajo), la cual ya no está más activa. Este es el texto original de un paper que escribí al respecto.

(…) consiste en un conjunto de aplicaciones para dispositivos móviles, teléfonos celulares y tablets y para computadoras personales y una página web en donde se propone al interactuador sacarse fotos que serán procesadas para tapar su cara con una banda de píxels, generando automáticamente una situación de preservar la intimidad, basado en la obra “Intimidad Romero”.

www.intimatic.com.ar

Desarrollo y Programación: Federico Joselevich Puiggrós / Diseño: UAFC.

Código fuente: https://github.com/ludiccc/

net poetica

Palabras clave
Intimidad, fotografía, procesamiento de imagen, reconocimiento facial.

Identidad y Privacidad en Internet

La incorporación de Internet en la vida cotidiana del ser humano ha implicado un cambio en la relación de lo público y lo privado. Si bien, los dispositivos móviles, y las computadoras personales, a través de sus interfaces de usuario, intentan producir, y algunas veces lo consiguen, la sensación de intimidad con el usuario, la información que enviamos y recibimos de las redes sociales es plausible de ser utilizada en forma pública, y muchas veces lo es. Las fotos del casamiento de un familiar, del viaje veraniego a la playa, del primer día de clases o del momento en el que se encuentran la mascota y el bebé, suelen ser publicadas en páginas de redes sociales como Facebook o Twitter con la (correcta) intención de comunicarlas a nuestros seres más queridos, a nuestro círculo íntimo. Sin embargo, parte de la lógica intrínseca en que haya empresas que proveen una red social (nuevamente, Facebook, Twitter, Linkedin), consiste en que el contenido de la red social es provisto por los usuarios. Estas aplicaciones son solamente una cáscara, un contenedor, un vehículo para que los usuarios provean de información, de datos, de entidad a la red social. La red social está compuesta por gente, pero está administrada por empresas.

Un ejemplo de la vulnerabilidad del caso es lo que ocurrió en mayo del 2011, en donde una serie de aplicaciones vinculadas a Facebook podrían haber filtrado información personal de 500 mil usuarios de Facebook. Esta información incluía datos personales, correo electrónico, fotos, etc. Otro ejemplo conocido fueron unos reportes de Metro France, y de Le Nouvel Observateur que hablaban de mensajes privados de usuarios que aparecían esporádicamente en sus muros o sectores de público acceso en Facebook. Aún cuando se siguen encontrando restos de este filtrado, esta información fue desmentida rotundamente por parte de la empresa.

“Intimidad Romero”, es una obra que consiste en un perfil de Facebook de autoría desconocida como propuesta artística y crítica a la relación de la gente con la privacidad en las redes sociales así como la influencia de la fotografía digita y su distribución en relación a los procesos de identidad. Esta propuesta está basada en fotos en donde se altera una porción horizontal de la imagen pixelándola. Esta franja de píxels se ubica en el lugar más importante de la foto, ya sea sobre el rostro de quienes ahí aparecen o sobre algún elemento que hace a la esencia de lo que se fotografió, si es que en esas fotos no aparecen personas. La idea de tapar la identidad de la imagen provoca el efecto de querer ver, de querer revelar lo que hay debajo de esa franja, generando irónicamente una nueva identidad, la de aquello que no está. Como menciona Remedios Zafra en su texto “INTIMIDAD” (link), “Intimidad es nombre, estrategia pero también obra artística y, como tal, recuerda aquellas otras que a lo largo del siglo XX se han definido por su anonimato o por su máscara. Pero es la red la que la hace singular, la que la diferencia de otros pixelados antiguos. El espacio expositivo es el mundo online en el que habita y donde su práctica adquiere sentido”.

El Proyecto

La propuesta de “Intimidad Romero” de distorsionar la  realidad me resultó particularmente interesante, con lo que se realicé un primer experimiento en Processing para generar un efecto similar, utilizando la librería OpenCV, para detectar las cara. Éste fue el primer paso de una continuación a la propuesta artística: ¿cómo podrían trabajar dos artistas que no se conocen en un proyecto en común?

El proyecto de realizar una aplicación como INTIMatic, implica intentar llegar a imitar lo más precisamente posible otras aplicaciones comerciales como la red social Instagram o propuestas fotográficas como Polaroid. Esto nos llevó, a “Intimidad Romero” y a mí, a plantearnos la posibilidad de desarrollar INTIMatic tanto en su versión para computadoras personales como para dispositivos móviles y proveer de una página web en donde fueran publicadas las fotos que los usuarios fueran compartiendo y haciendo públicas. El conjunto de esas propuestas (las aplicaciones para computadora, las aplicaciones para dispositivos celulares y tablets y la página web), son lo que consideramos la obra en el presente trabajo.

Generatividad

El procesamiento automático de la imagen, su modificación, generan una situación de foto única, de pieza prácticamente irrepetible, que se enmarca dentro de los conceptos que comúnmente se esgrimen como Arte Generativo . Tomando, por ejemplo la definición de Carlo Zanni, “el arte generativo, así como se concibe hoy, es una pieza artística que utiliza algoritmos matemáticos para generar automáticamente o semiautomáticamente expresiones en formas estéticamente comprensibles”. En breve, describiré los algoritmos que se utilizan para realizar el procesamiento de las imágenes obtenidas, sin embargo es bueno destacar aquí que la idea de la obra, como hecho artístico, se completa en el momento en el que los interactuadores comparten sus imágenes pixeladas en la red. Esto es, el conjunto de las aplicaciones, sean para móviles o para desktop, con la página web que alberga a las fotos que se han ido sacando y publicando, es lo que da sustento generativo al proyecto. Es cierto que las definiciones de Arte Generativo, como la antes mencionada, hablan de algoritmos matemáticos como condición inicial para que una pieza pueda ser considerada como perteneciente a esa categoría, pero me permito una pequeña licencia poética en este punto al agregar que la propia obra en su conjunto cumple con los mandatos establecidos por estas definiciones, al mutar cotidianamente con la adquisición constante de nuevas fotos por parte de los interactuadores, haciendo que la articulación de los algoritmos matemáticos y lo que podemos denominar como algoritmos artísticos, lleven a la generación de una pieza única y mutable.

La aplicación

A partir del prototipo realizado en Processing, continué el desarrollo utilizando OpenFrameworks, un entorno de trabajo multiplataforma de C++ muy extendido utilizado mayormente para la realización de aplicaciones e instalaciones de arte electrónico.

La librería de OpenCV permite la detección de formas en una imagen a partir de una configuración previa. Es decir, permite realizar un análisis de una imagen dada buscando objetos que coincidan con un patrón previamente configurado. En este caso, se utiliza el haarcascade_frontalface_alt.xml, una configuración que está entrenada para detectar rostros.

Es necesario definir las siguientes variables para ser utilizadas:

#include "ofxCvHaarFinder.h"
(...)
class testApp : public ofxiPhoneApp{
(...)
   ofVideoGrabber vidGrabber;

   ofxCvColorImage colorImg;
   ofxCvGrayscaleImage grayImage;
   ofxCvHaarFinder finder;
(...)
};

El ofxCvHaarFinder es un objeto de la librería que realiza todo el proceso de detección de formas a partir del archivo de configuración dado. Para ello, en el setup() ha de definirse de la siguiente manera:

//--------------------------------------------------------------
void testApp::setup(){
(...)
	finder.setup("haarcascade_frontalface_default.xml");
	vidGrabber.initGrabber(640,480);
(...)
}

En particular, en el desarrollo de INTIMatic, se utiliza la cámara del dispositivo en el que se ejecuta la aplicación, sea una computadora o un dispositivo portátil como un móvil o una tablet. Por ello, la detección se realizará a partir de las imágenes obtenidas con la cámara.

En primer lugar, en el update, se realiza la captura de imágenes si es que estas están disponibles en la cámara:

vidGrabber.update();

El objeto ofVideoGrabber, contiene la información de imagen capturada por la cámara pero no en el formato requerido por la librería OpenCV para trabajar. Por ello, es necesario que el objeto colorImg, que es de tipo ofxCvColorImage, se popule con los datos crudos de la imagen obtenida:

       colorImg.setFromPixels(vidGrabber.getPixels(),
				vidGrabber.width,
				vidGrabber.height);

El primer parámetro de setFromPixels es un puntero a la posición en donde está alojada la imagen obtenida en memoria, y los siguientes información del tamaño.

La librería de OpenCV se ocupa internamente de hacer las conversiones necesarias cuando se asigna un objeto de tipo imagen color a un objeto de tipo imagen en escala de grises. La detección de formas, es necesario hacerla en una imagen con escala de grises porque el algoritmo que utiliza para relacionar puntos entre sí, funciona más rápidamente con imágenes en escala de grises que color.

El update() de una típica aplicación de detección de formas, a partir de las librería OpenCV, quedaría así:

//--------------------------------------------------------------
void testApp::update(){
	vidGrabber.update();
	if (vidGrabber.isFrameNew()){
	       colorImg.setFromPixels(vidGrabber.getPixels(),
	vidGrabber.width,
	vidGrabber.height);
	grayImage = colorImg;
	        finder.findHaarObjects(grayImage, 80, 80);
	}
}

Si los objetos ofxCvHaarFinder encuentran formas en la llamada al método findHaarObjects, la información de esto es guardada en una lista lllamada blobs. Esta lista contiene la información de posición y tamaño de cada uno de los objetos que fueron detectados en la imagen. El término BLOB viene del inglés Binary Large OBject (gran objeto binario), y hace referencia a conjuntos grandes de información que pueden ser diferenciados del resto, comprendidos en una única entidad y ser utilizados como datos. En el trabajo de análisis de imágenes por parte del OpenCV los BLOBs son el resultado de la búsqueda en la imagen trabajada.

En el caso de INTIMatic, esta información es necesaria para determinar desde dónde y hasta dónde se dibujará la franja de píxeles que cubrirán las caras de los usuarios.

void testApp::draw(){
int minY = 612;
int maxY = 0;
(...)
for(int i = 0; i < finder.blobs.size(); i++) {
            ofRectangle cur = finder.blobs[i].boundingRect;
          if (cur.y < minY) minY = cur.y;            if (cur.y+cur.height > maxY) maxY = cur.y+cur.height;
        }

Asumiendo que la imagen que se captura tiene una altura máxima de 612 píxels, se comienza una búsqueda de máximos y mínimos en los BLOBs detectados. Una vez determinada la parte superior del blog más alto y la inferior del más bajo, se comienza a dibujar la banda de píxels:

unsigned char * pixels = vidGrabber.getPixels();
       ofFill();
       float sqSize = (maxY-minY)/4;
       for (int x = 0; x < vidGrabber.width; x+= sqSize)
           for (int y = minY; y < maxY-sqSize*2; y+=sqSize) {
               ofSetColor(pixels[(y*vidGrabber.width+x)*3],
                          pixels[(y*vidGrabber.width+x)*3+1],
                          pixels[(y*vidGrabber.width+x)*3+2]);
               ofRect(x,y,sqSize,MIN(sqSize,maxY-y));
           }

La aplicación está en este momento en condiciones de enviar las fotos al servidor de Internet en el que se publica aquello que los interactuadores deciden compartir. Para realizar el proceso de envío, se utiliza una librería de comunicación HTTP llamada ofxHttpUtils, que permite enviar a una aplicación web archivos, siempre que esta aplicación esté preparada para ello. En particular, se desarrolló un programa en Perl que realiza las siguientes tareas:

1.- Recibir las fotos que se envían.

2.- Prepararlas para su correcta visualización en la página.

3.- Insertar en la base de datos la información relativa a la foto.

4.- Enviar un tweet por la cuenta de Twitter de INTIMatic.

5.- Enviar un email avisando que una foto se ha subido.

Problemas en el desarrollo

El desarrollo de las versiones para dispositivos móviles acarreó un problema fundamental: la velocidad de procesamiento de los dispositivos móviles es altamente inferior al de las computadoras personales, con lo que hubo que descartar la utilización de librerías de generación de ruido (blur). Aprovechando la funcionalidad provista por la librería OpenCV, el blur generado se aplicó únicamente a la imagen original obtenida y no al conjunto de la imagen y la banda de píxeles. Por otro lado, el hecho de que la captura de la imagen para ser enviada esté ligada al tamaño de la imagen en pantalla, hizo que las imágenes enviadas por algunos dispositivos móviles fuesen más pequeñas (por ejemplo, un cuadrado de 310px de lado, contra los 611px que envía la aplicación para computadoras personales). Sin embargo, el hecho de que la aplicación tenga la posibilidad de ser distribuída y la instalación continúe en los bolsillos de los interactuadores, resulta mucho más atractivo, estableciendo como diría Félix Gonzalez-Torres, una relación más íntima entre el espectador y la obra.

Conclusiones

Desde principios del siglo XXI, se nos ha presentado una nueva propuesta para aquellas cosas que tengan que ver con la dicotomía privado-público. Ciertas cosas que siempre se mantuvieron en el ámbito personal y privado, pasan casi sin cuestionamientos a un lugar más público, más expuesto. Es el caso del registro fotográfico, las galerías de fotos, las fotos familiares, las que son colgadas de los muros de redes sociales como Facebook, y a las que supuestamente solamente acceden los círculos íntimos. INTIMatic propone una visión diferente del espacio público y el privado, insistiendo en la complejidad del discurso y simulando la situación intencional que hay en el enmascaramiento de las caras para que no se pueda reconocer un testigo reservado, un menor de edad, una identidad a preservar, pero esta vez de forma automática. Si los sistemas de vigilancia de las ciudades están preparados para reconocer automáticamente los rostros con el uso de complejos algoritmos matemáticos de reconocimiento facial, ¿porqué no podemos pensar en sistemas que estén preparados para protegernos automáticamente de eso?

Bibliografía

“{¿Arte?} Generativo. La Emergencia de lo Imprescindible”, Andrea Sosa, 2011

“Tecnopoéticas Argentinas”, Claudia Kozak, 2012

“INTIMIDAD”, Remedios Zafra, 2012, http://www.remedioszafra.net/texto_Intimidad_RemediosZafra_jun2012.pdf

“Somewhere / Nowhere. Algún lugar/ Ningún lugar Félix González-Torres”, Malba, catálogo de exposición, http://www.malba.org.ar/web/exposicion.php?id=82&subseccion=actuales

“El rostro de las redes sociales”, Roberta Bosco y Stefano Caldana, El Arte en la Edad del Silicio, blogs de El País, 2012, http://blogs.elpais.com/arte-en-la-edad-silicio/2012/05/el-rostro-de-las-redes-sociales.html