Deteccion del parpadeo de los ojos mediante OpenCV

OpenCV es una biblioteca libre de visión artificial originalmente desarrollada por Intel. Desde que apareció su primera versión alfa en el mes de enero de 1999, se ha utilizado en infinidad de aplicaciones. Desde sistemas de seguridad con detección de movimiento, hasta aplicativos de control de procesos donde se requiere reconocimiento de objetos. Esto se debe a que su publicación se da bajo licencia BSD, que permite que sea usada libremente para propósitos comerciales y de investigación con las condiciones en ella expresadas.

Open CV es multiplataforma, existiendo versiones para GNU/Linux, Mac OS X y Windows  conteniendo  más de 500 funciones que abarcan una gran gama de áreas en el proceso de visión, como reconocimiento de objetos (reconocimiento facial), calibración de cámaras, visión estérea y visión robótica.

El proyecto pretende proporcionar un entorno de desarrollo fácil de utilizar y altamente eficiente. Esto se ha logrado, realizando su programación en código C y C++ optimizados, aprovechando además las capacidades que proveen los procesadores multi núcleo. OpenCV puede además utilizar el sistema de primitivas de rendimiento integradas de Intel, un conjunto de rutinas de bajo nivel específicas para procesadores Intel.

Veamos algunos ejemplos que usan esta biblioteca:

http://www.youtube.com/watch?v=v0UNbB_vyrM

Esta fantástica  aplicación creada  por  Martin Polak  es capaz de detectar parpadeo de los ojos mediante el cálculo de flujo óptico en la zona de los ojos dentro de la imagen estabilizada de cabeza. Cuando el usuario  ha cerrado los ojos durante más de 5 segundos, la aplicación comienza a sonar para despertarlo . El algoritmo hace uso de OpenCV, una biblioteca de la visión por ordenador de código abierto y el software de aprendizaje automático.

Esta aplicación  se podría  usar   utilizar dentro de los vehículos para evitar permitir dormir  al conductor detrás del volante u otras aplicaciones

bblinking

Por otro lado la aplicación  Eye Location, disponible gratuitamente en Google play aqui  intenta localizar los centros de los ojos de una persona que la cámara está capturando en tiempo real. Se basa en un algoritmo de visión por ordenador que explota la información de crominancia del ojo y la simetría radial del iris con el fin de localizar los centros de los ojos. El algoritmo hace tambien uso de OpenCV, una biblioteca de la visión por ordenador de código abierto y el software de aprendizaje automático. La detección de la cara se realiza utilizando una función de detector de rostro del OpenCV. La aplicación funciona de manera óptima en ambientes bien iluminados, donde se capturan las imágenes con buenos niveles de contraste.

Acceso en Google Play

ÁREAS DE APLICACIÓN DE ESTE TIPO DE APLICACIONES DE RECONOCIMIENTO

•Tipificación de ojos :La función de la tipificación del ojo utiliza la dirección de la mirada y del ojo parpadea para componer mensajes o realizar otras acciones. El objetivo final es ayudar a las personas con ELA, lock-in síndrome, tetraplejia o cualquier otra persona que sólo puede mover los ojos con el uso de su dispositivo de mano para comunicarse, navegar por Internet o facilitar otras tareas cotidianas.
Desplazamiento inteligente : Similar a la característica del Samsung Smart Scroll, que actualmente se basa en el reconocimiento de rostros y de inclinación (http://mashable.com/2013/03/14/smart-scroll/), desplazamiento inteligente puede optimizarse aún más al detectar el cambio de la dirección de la contemplar.
• Spoof prueba cara de desbloqueo:  La característica de la cara de desbloqueo se puede suplantar por lo general usando una foto de el propietario (http://www.geek.com/android/android-face-lock-feature-spoofed-by-photograph-1440953/). Desbloqueo facial puede hacerse más fiable mediante la introducción de un «cheque liveness ‘: una vez a la cara se verifica, el usuario está obligado a seguir un punto en movimiento al azar con sus ojos.
• Estimación de la dirección de la mirada de asistencia al conductor:Al montar el teléfono móvil en el salpicadero de un vehículo, una aplicación de estimación mirada podría supervisar y evaluar la vigilancia del conductor, determinando si el foco del conductor de atención está en el camino.
Evaluaciones de usabilidad:Los movimientos oculares y fijaciones proporcionan una indicación de la cantidad de procesamiento cognitivo requiere una pantalla y por lo tanto lo fácil que es para procesar, lo que conduce a la posible utilización de seguimiento de los ojos de contribuir a la evaluación de la usabilidad de las interfaces de usuario.

 

Para poder crear proyectos haciendo uso de esta librería con Visual Studio , se deben seguir los siguientes pasos:

  1. Bajar OpenCV desde aquí (por ejemplo  la 2.4.0
  2. Hacer doble click al ejecutable. Esto descomprimirá los archivos. Elegir una ubicación para OpenCV y descomprimir (Yo elegí C:\, pero pueden elegir cualquier otra, por lo cual de ahora en  más me referiré a esa ruta elegida como INSTALL_PATH, pero esto debe ser reemplazado SIEMPRE por la ruta que eligió.
  3. Ir a Inicio y escribir en la barra de búsqueda «Variables del sistema». Click en el resultado que aparece como «Editar las variables de entorno del sistema».
  4. Dentro de la pestaña ‘Opciones Avanzadas’ ir a ‘Variables de Entorno’.
  5. En la nueva ventana, buscar dentro del segundo listado (variables del sistema) una variable llamada Path. Seleccionarla y hacer click en editar.
  6. Ir al final del textbox ‘Valor de la variable’, agregar un punto y coma, y agregar las siguientes dos ubicaciones, también separadas por un punto y coma:
    • INSTALL_PATH\opencv\build\x86\vc10\bin
    • INSTALL_PATH\opencv\build\common\tbb\ia32\vc10

    donde
    *ia32 es en caso de tener Windows x32, sino ingresar a intl64.
    *vc10 es en caso de tener Visual C 2010. En caso de tener Visual C 2008, elegir vc9.

Luego, abrir un proyecto existente que utilice OpenCV (éste, por ejemplo), seleccionarlo en el ‘Explorador de soluciones’ y hacer click derecho para seleccionar ‘Propiedades’.

En propiedades dirigirse a:

  • C/C++
    Agregar los siguientes directorios en Additional Include Directories:

    • INSTALL_PATH\opencv\build\include\opencv
    • INSTALL_PATH\opencv\build\include
  • Linker->General
    Agregar el siguiente directorio en Additional Library Directories:

    • INSTALL_PATH\opencv\build\x86\vc10\lib
  • Linker->Input
    Agregar el siguiente listado, tendiendo en cuenta que

    • debe reemplazarse el número por la versión de OpenCV que se utiliza. Por ejemplo, 242 para la versión 2.4.2 o 240 para la 2.4.0.
    • debe quitarse la letra ‘d’ final, si se trata de un Release Project.

opencv_core240d.lib
opencv_imgproc240d.lib
opencv_highgui240d.lib
opencv_ml240d.lib
opencv_video240d.lib
opencv_features2d240d.lib
opencv_calib3d240d.lib
opencv_objdetect240d.lib
opencv_contrib240d.lib
opencv_legacy240d.lib
opencv_flann240d.lib

Si se tratara de una solución, y no de un proyecto simple, repetir esto en cada proyecto.

 

Más información aquí

Un comentario sobre “Deteccion del parpadeo de los ojos mediante OpenCV

Deja una respuesta