Facultad de Ciencias Físicas y Matemáticas
Depto de Ciencias de la Computación
Introducción a la Minería de Datos
Larry González González
Marcos Venegas Álvarez

Descripción del Problema


La revolución digital experimentada alrededor de las últimas décadas ha posibilitado un resurgimiento de la producción de cine 3D. Sin embargo, sus posibilidades estéticas han sido relegadas fundamentalmente al foto-realismo (PR), sin considerar el no foto-realismo (NPR). El filtro NPR (Figura 1) genera una imagen por computadora a partir de un modelo (imagen PR). En este caso particular, el filtro usado sólo genera las siluetas del modelo.


Figura 1: Filtro NPR



Eye Tracking es el proceso de medición de lo que observa una persona. Eye Tracker es un dispositivo que permite realizar esta medición. Existen varias técnicas que permiten realizar esta tarea, siendo la más usada la que usa el reflejo de la córnea y el brillo de la pupila (Figura 2). Una de las mediciones entregadas por el Eye Tracker es el punto de interés (o atención), que corresponde a lo que está mirando un individuo en cierto momento.
En el presente trabajo se estudiará el efecto que producen los filtros No foto-realista (NPR) en el área del cine 3D.


Figure 2: Brillo de la Córnea, Reflejo de la Pupila



Descripción de los datos


Para generar los datos de este estudio se realizó un experimento, en el que a partir de un video 2D foto realista con sonido narrativo se generaron 4 videos:


Estos fueron presentados a 27 individuos, donde cada uno de ellos vio ambos videos en una secuencia aleatoria. En este proceso se usó el monitor LG, LED 55 Full HD Smart TV 3D / 55LB6500 a resolución de 1920 * 1080. Los movimientos oculares se guardaron con el Eye Tracker. The eye Tribe Traker. Por cada par usuario/video se generó un archivo de texto plano (Figura 3), separado por tabuladores que contiene los siguientes campos:


Figura 3 Datos entregado por dispositivo Eye Tracker



Limpieza de los datos


Estos 108 archivos (4 videos, 27 individuos) se unificaron en un csv que incluyó las variables usuario y video. Este dataset contienen 621.872 filas y 9 columnas. En el proceso de calidad de datos se filtraron valores que estaban fuera del rango del monitor y malas capturas, producidas cuando el eye-tracker no logró medir los movimientos oculares. En la figura cuatro se puede ver la cantidad de datos faltantes y fuera de rango.


Figura 4 Datos faltantes y fuera de rango


Cada video contiene 5.433 frames. El dataset anterior se transformó de modo que en vez de considerar el tiempo, se considere el frame correspondiente al video. Además se unificaron las coordenadas x de ambos ojos, así como las coordenadas y. El tamaño pupilar se descartó por estar fuera del alcance del proyecto. En la figura cinco se puede ver una muestra del nuevo dataset.


Figura 5: Dataset Preprocesado


La Figura 6 muestra un histograma de la captura de la coordenada x ojo izquierdo limpiada. Esto quiere decir eliminados los valores fuera de rango de la resolución del monitor.


Figura 6: Captura coordenada x ojo izquierdo


Exploración de datos


Para iniciar la exploracion se trabajó en la visualización de los datos. Las figuras siete y ocho corresponden al frame 839 de los videos uno y dos. Sobre ellos se dibujó los puntos de atención de los usuarios.


Figura 7: Puntos de atención de los usuarios sobre el frame 839 del video 1.



Figura 8: Puntos de atención de los usuarios sobre el frame 839 del video 2


Para cada par video-frame se ejecutó el algoritmo de clustering k-means para k entre dos y el número de capturas correctas. Se guardaron los índices within square sum y between square sum. La figura diez muestra cómo varían estos índices según k para el video dos y el frame 1.000.


Figura 9: Dataset con el mejor k para realizar k-means


Mejores K

Para cada video y cada frame se ejecutó Kmeans para valores de K entre 1 y 20. Se implementaron varias versiones automáticas del método del codo que se grafican en la figura a continuación.


Método del Codo

La figura anterior muestra wl within y between sum of squares. Además, incluye líneas verticales que toman valores de K dependiendo del criterio de selección del mismo. Codo 5% max(w) es el menor k que tiene withinn error menor al 5% del mayor within.

Validación de Clusters.

Se desarrolló una función en R que generara datos aleatorios de forma normal y uniforme. Con estos datos se ejecutó kmeans para ver si la suma de errores al cuadrado en clusters encontrada podía ser generada con datos aleatorios. La figura a continuación muestra la distribución de los withinn sum of squares para datos generados aleatoriamente. La línea roja vertical muestra el valor de dicho indicador para los clusters encontrados en el video 1 y frame 1500.


Validación de Clusters

Resultados.

Visualizaciones

Una ves encontrado los mejores K para ejecutar k-means por frame, estos se plotearons sobre los frames de los videos fotorrealistas y no fotorrealistas.

En los videos anteriores, cada circulo representa un cluster generado con k-means. El radio del circulo es la distancia al elemento más lejano. El Plano_4 es el más relevente, donde se puede ver que nos falta información para determinar si el filtro NPR cambió la persepción del usuario.

P-values.

Bajo la Hipótesis nula de que el filtro NPR no cambia la percepción del usuario, se ejecutó el test estadístico Hottling, entre las distribuciones de los datos Fotorrealistas y No Fotorrealistas. Las figuras 11, 12 y 13 muestran los valores de P, donde se puede ver que hay frames en el cortometraje donde cambió la percepción del usuario.

Figura 11: Valores de P para los frames 0 a 1800



Figura 12: Valores de P para los frames 1900 a 3600



Figura 13: Valores de P para los frames 3700 a 5400


Datos, Videos y Código.

Los datos, videos (originales) y el código implementado en este proyecto aún no puede ser liberado. El código se programó en una mezcla de tres lenguajes (Python, R y Bash) más un Makefile con el objetivo de hacerlo reproducible. Este código está en un repositorio privado de Bitbucket. Sin embargo, pueden solicitar información o acceso al repositorio escribiendo a larryjgonzalez@gmail.com.