Sistema de seguimiento de la mirada
Desde hace una década los sistemas de detección mediante computadora han avanzado a pasos agigantados, llegando a incluirse con gran aceptación en diversos aspectos de la vida cotidiana como puede ser el reconocimiento de matrículas, en biometría o simplemente para que un escáner convierta un documento escrito a mano en uno digital mediante el reconocimiento de los caracteres.
Gracias a los grandes avances en hardware de los últimos tiempos es posible integrar fácilmente estos sistemas sin tener que pagar un precio elevado por ello. En este progreso han ayudado las tecnologías de clasificación de patrones, como las redes neuronales, que combinadas con técnicas como Adaboost alcanzan unas altas cotas de reconocimiento con bajas probabilidades de falsos positivos. Sin embargo para algunos casos concretos en los que la generalización de la imagen no es tan clara debido a que la resolución de la cámara con la que se capturan las imágenes es baja se puede optar por utilizar transformadas matemáticas como la de Hough para encontrar los objetos deseados.
Con estas premisas estamos desarrollando un sistema cuyo objetivo es mover el ratón de nuestro PC con la mirada. Los componentes físicos son:
-Una cámara web con sensibilidad al infrarrojo
-Dos emisores de infrarrojos (IR)
La primera fase de nuestro sistema de detección de la mirada consiste en aplicar las técnicas mencionadas anteriormente para desarrollar un detector facial/ocular en tiempo real, el cual proporciona con alto porcentaje de acierto la imagen y posición de uno de nuestros ojos, de los cuales se extraerán las posiciones de los reflejos de los emisores IR en ellos.
Como los movimientos del ojo requieren una rapidez de detección muy alta, hemos desarrollado un algoritmo para optimizar este proceso:
1. Primero nos centramos en obtener la cara del sujeto, para ello utilizamos el algoritmo de Viola-Jones, una explicación básica de lo que hace este algoritmo es esta:
1.1 Se transforma la imagen a escala de grises
1.2 Recorre la imagen a procesar mediante ventanas de 24×24 pixeles a diferentes escalas.
1.3 Para cada una de estas imágenes obtiene una serie de características, que son los resultados de la diferencia de los valores de sus pixeles entre áreas.
1.4 Las características de cada una de estas imágenes se procesan en un sistema de varios clasificadores que están puestos en cascada para que así si una imagen no es válida (no es cara) descarte dicha imagen y pase a la siguiente. Si el ultimo clasificador la valida, será considerada como cara.
Este sistema de clasificadores dispuestos en cascada son el verdadero motor del algoritmo, ya que cada uno de ellos ha sido entrenado mediante el algoritmo “Adaboost” con una serie de miles de imágenes de caras, y su rapidez a la hora de descartar imágenes consiste en “endurecer” cada clasificador de la jerarquía dispuesta, es decir, si una imagen que no se parece nada a una cara llega al primer clasificador de la jerarquía, este la descartará inmediatamente, pero en cambio una imagen que se parezca a una cara irá pasando por la jerarquía de clasificadores hasta que uno la descarte. Esta disposición nos ahorra mucho tiempo ya que los clasificadores menos “duros” requieren muy poco tiempo de procesamiento.
2. Una vez obtenida la cara del sujeto nos centraremos en procesar la imagen de la cara para obtener la posición del ojo. Para ello utilizaremos nuevamente el algoritmo de Viola-Jones anteriormente mencionado pero entrenado en este caso para detectar el ojo humano. A la imagen ocular aplicaremos una transformada matemática llamada “transformada de Hough”, con ello obtenemos los círculos de la imagen, de la cual el más oscuro corresponde a la pupila y los mas claros a los brillos de los emisores IR. Con estas referencias se concluye la fase 1.
Cabe destacar que hasta ahora el tiempo de procesamiento ha sido mínimo, y se ha conseguido mantener un framerate estable de 30fps (frames por segundo).
La segunda fase consiste en calibrar en sistema para que ubique la posición y las marcas de los emisores IR respecto de la pantalla en la cual queremos detectar donde mira el sujeto. Esta calibración se realiza instando a la persona que utiliza el sistema a mirar una serie de puntos en momentos determinados. Una vez calibrado, el sistema triangula los datos (posición de pupila, posiciones de brillos IR en el ojo) y consigue la detección de la mirada.
En este punto se nos surge una problemática, que ha sido la falta de precisión, ya que el sistema tiende a perder su calibración si la cara se mueve de sitio o no mantiene una distancia constante respecto a la pantalla. Para solucionarlo extraemos las características SURF (caracteristicas que se obtienen de manera parecida a las que utilizamos en la parte de reconocimiento facial) de la imagen de la cara para poder triangular mediante ellas la posición en las tres coordenadas de la ubicación del usuario. Estas características se obtienen con una rapidez muy alta.
Las aplicaciones que puede tener este sistema son muy variadas:
– Ayudar a personas incapacitadas para manejar de manera convencional un PC a hacerlo mediante la vista
– En publicidad:
Estadisticas de areas visualizadas en pantalla
Orden de visita de contenidos dentro de una página web o cualquier documento en pantalla (periodicos digitales, etc …)
Puede resultar muy util saber cuando y que áreas visita un potencial cliente para realizar un analisis y asi poder perfeccionar una pagina web, un periodico digital, una publicación, etc …)
– Observar las reacciones de la pupila ante diferentes situaciones ( medicina, seguridad vial, etc …)
Para mas información:
Papers:
Viola-Jones
http://research.microsoft.com/en-us/um/people/viola/Pubs/Detect/violaJones_IJCV.pdf
Caracteristicas SURF
http://www.vision.ee.ethz.ch/~surf/eccv06.pdf
Webs sobre tracking:
http://en.wikipedia.org/wiki/Eye_tracking
http://eyetrackingupdate.com/2010/12/07/eye-tracking-research-delves-eye-detection-algorithm/
1 Comment
Entradas recientes
- Sonificación de datos para la supervisión de procesos en tiempo real / 1
- Tratamiento del Lenguaje Natural en Medicina mediante técnicas de IA. Caso de Uso de Hedai.
- El Futuro en Blockchain: IA & Semántica & Blockchain.
- «Semantic Learning» en Salud. Un ejemplo de Minería sobre Estructuras Semánticas
- Ibermática desarrolla un Sistema de Soporte a la Decisión Clínica para pacientes con cáncer de mama
I do trust all the ideas you’ve presented on your post. They are very convincing and can definitely work. Still, the posts are too brief for novices. Could you please extend them a bit from next time? Thanks for the post.