Eye Gaze Movement Detection For Controll - En.es

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Traducido del inglés al español - www.onlinedoctranslator.

com

Detección de movimiento de la mirada para controlar


Cursor en pantalla en tiempo real
Nguyen Manh Quyen Nguyen Thi Cam Huynh Dang Thanh Tin
Facultad de Electricidad y Electrónica Facultad de Electricidad y Electrónica Facultad de Electricidad y Electrónica
Ingenieria Ingenieria Ingenieria
Universidad Tecnológica de la ciudad de Ho Chi Minh Universidad Tecnológica de la ciudad de Ho Chi Minh Universidad Tecnológica de la ciudad de Ho Chi Minh
Ciudad de Ho Chi Minh, Vietnam Ciudad de Ho Chi Minh, Vietnam Ciudad de Ho Chi Minh, Vietnam
[email protected] [email protected] [email protected]

Abstracto—Para las personas con discapacidad manual, Las tecnologías son demasiado caras para llegar a la gran mayoría de los
controlar la computadora con dispositivos periféricos como ratones trabajadores de ingresos modestos, en particular las personas con discapacidades,
o teclados es un gran obstáculo y una de las razones que les impide la mayoría de ellos enfrentan dificultades en asuntos financieros, sin mencionar la
integrarse con el mundo moderno. Junto con el desarrollo de las necesidad de usar la tecnología moderna requiere dispositivos especializados
ciencias de la computación, especialmente la visión por como cámaras con luz infrarroja para capturar la vista. movimientos [7]. El rango
computadora, estamos en el proceso de estudiar el reconocimiento del costo de estos sistemas es de alrededor de 5000 a más de 40000 USD [3].
ocular y la dirección del movimiento de los ojos a través de la
Afortunadamente, existen algunas formas aceptables de reducir el precio total
cámara web, proporcionando un enfoque informático para las
tanto como sea posible [8].
personas con discapacidades mencionadas anteriormente. En el
primer paso del estudio, intentamos crear un software simple en Para adaptar esta demanda inicial, queremos que nuestro proyecto sea más
lenguaje Python que pueda detectar el movimiento de la córnea asequible para todos mediante la creación de una aplicación de creación de texto
para controlar el cursor en pantalla a través de la cámara web de la simple de bajo costo utilizando el método de seguimiento ocular y un teclado
computadora portátil basado en la teoría de la visión por virtual hecho por nosotros mismos. Este documento está organizado en 6
computadora mediante el uso de algún código abierto. paquetes secciones. La sección 2 es para profundizar y aclarar el método que hemos
totalmente disponibles y gratuitos para descargar en línea con seguido. En la Sección 3, presentamos las inferencias que hemos hecho durante el
fines educativos. Por lo tanto,
proceso de investigación. Los algoritmos específicos, así como los diagramas de
bloques de los pasos de implementación, se muestran en la Sección 4. La Sección 5
Palabras clave: visión por computadora, control del cursor, seguimiento ocular,
demuestra los resultados experimentales y las comparaciones, mientras que la
detección del movimiento de la mirada, procesamiento de imágenes en tiempo real,
Sección 6 concluye para todo el artículo.
OpenCV, Python

YoNTRODUCCIÓN II. METROETODLOGÍA PARA miS.M TATROZ

El campo de la investigación del seguimiento ocular ha contribuido hasta ahora con muchas
La mayoría de nuestros métodos de implementación se basan
aplicaciones prácticas a la humanidad. Hay una variedad de direcciones de investigación de seguimiento
en el algoritmo starburst [3] que se había estudiado antes. La
ocular que sirven para diferentes propósitos, al igual que en la publicidad y los medios, utilizan un sistema
dirección de la mirada se calcula desde el centro de la córnea y la
no invasivo para registrar la mirada y analizar el área de visión del cliente o usuario de la computadora [1],
pupila [9] (ver figura 1). Hay dos tipos comunes de métodos de
o la investigación del uso de FOV sistema para navegar por el ojo con el fin de detectar la posición de la
imágenes para rastrear el ojo: imágenes de espectro visible e
mirada del ojo [2]. Esta investigación se lleva a cabo para evitar el movimiento de la cabeza y las personas
imágenes de espectro infrarrojo [10]. En nuestra investigación, solo
estudiamos en imágenes de espectro visible. Este método se basa
no necesitan usar ningún dispositivo de seguimiento. La introducción de la monitorización del movimiento
en el reflejo de la luz ambiental del ojo. Este método no parece
ocular ha sido la premisa de muchas aplicaciones que ayudan a crear interacción entre personas y
óptimo por el método de infrarrojos. Sin embargo, tiene la ventaja
máquinas a través del movimiento ocular en lugar de hacerlo manualmente, como es la tradición para
de no incrementar el costo durante la construcción del sistema,
controlar las interfaces [3]. Por ejemplo, hay una gran cantidad de software que se ha construido para este
además de poder usarse en un ambiente de luz interior normal con
propósito, como los sistemas que pueden hacer dibujos siguiendo el ojo de los usuarios para mover el
una precisión aceptable.
puntero en la pantalla [4], la aplicación que rastrea la coordinación ocular para esperar que el punto de

vista de los usuarios seleccione carácter en el teclado virtual [5], que es el reemplazo de la escritura con El algoritmo starburst se concentra principalmente en la técnica de
teclado físico como de costumbre. Además de ayudar a las personas con discapacidades, estas técnicas pupila oscura del seguimiento ocular infrarrojo [3], pero sigue siendo muy
también admiten el uso común de la interfaz, ya que si el usuario desea seleccionar el icono en la pantalla, útil para nuestra investigación gracias a sus efectos prácticos y rápidos. El
mirará ese icono y la técnica de seguimiento ocular puede acelerar la selección [6]. que es el reemplazo de algoritmo starburst realiza la tarea de montar en función de características
la escritura con teclado físico como de costumbre. Además de ayudar a las personas con discapacidades, (detectar la posición del ojo y localizarlo) con base en modelo (encontrar el
estas técnicas también admiten el uso común de la interfaz, ya que si el usuario desea seleccionar el icono modelo más adecuado que se adecue a la imagen).
en la pantalla, mirará ese icono y la técnica de seguimiento ocular puede acelerar la selección [6]. que es el

reemplazo de la escritura con teclado físico como de costumbre. Además de ayudar a las personas con A. Reducción de ruido
discapacidades, estas técnicas también admiten el uso común de la interfaz, ya que si el usuario desea El ruido de la imagen se divide en dos tipos: ruido de disparo y ruido de
seleccionar el icono en la pantalla, mirará ese icono y la técnica de seguimiento ocular puede acelerar la línea. El ruido de disparo se reduce aplicando un filtro gaussiano. En nuestro
selección [6]. proyecto no hay demasiado ruido de línea por lo que podemos ignorarlo.

Aunque la tecnología de detección de movimiento ocular va en aumento


y satisface cada vez más las necesidades de la humanidad, estos
En su lugar, usamos OpenCV (Open Source Computer Vision)
[12]. Es una biblioteca de software de código abierto que involucra más de 250
algoritmos basados en visión por computadora y aprendizaje automático
construido con el propósito de sentar las bases para acelerar el procesamiento de
imágenes del sistema. Todos los algoritmos soportan el uso de seguimiento de
objetos en movimiento, reconocimiento facial, detección de ojos… en tiempo real a
través de la imagen tomada por la cámara. Se puede decir que esta biblioteca de
código abierto ha contribuido en gran medida a los logros actuales de la visión por
computadora gracias a sus poderosas capacidades de procesamiento de
imágenes. Las siguientes subsecciones proporcionan detalles de todas nuestras
ideas sobre el diseño de aplicaciones.

A. Detección de la mirada del ojo

1) reconocimiento facial
Basado en el archivo de datos que contiene puntos de referencia
Figura 1. Sección transversal del globo ocular humano. faciales llamado shape_predictor_68_face_landmarks.dat [13], tenemos
todos los puntos de referencia faciales que son muy útiles para localizar una
B. Detección, localización y eliminación de reflejos corneales
región de interesados en el reconocimiento facial. Por lo tanto,
Al utilizar la técnica de pupila oscura, el reflejo de la córnea es demostraremos los siguientes pasos:
compatible con una de las regiones más brillantes después de
• Al principio, después de obtener las imágenes de la cámara web de la
establecer el umbral de la imagen. Se aplica una técnica de umbral en
computadora, volteamos las imágenes de acuerdo con el eje X para
cada fotograma para optimizar la claridad entre las áreas blancas y
que correspondan adecuadamente con nuestro próximo proceso.
negras. El reflejo corneal se establece en una región cuadrada para
limitar la búsqueda. Al principio, la imagen binaria se crea a través del
• Posteriormente, convertimos el color del formato BGR (azul -
verde - rojo) al formato de escala de grises.
umbral máximo. La posición central de la córnea se estima mediante la
relación entre el área de la región de reflexión corneal de los • Luego, mediante la aplicación del Desenfoque Gaussiano, podemos

candidatos más grandes y el promedio de otra región. La coordenada eliminar los ruidos de disparo que se presentan en las imágenes.

se identifica por el centro geométrico (XC, yC), calculado por la relación • Finalmente, el resultado puede ser utilizado por
mencionada anteriormente. shape_predictor_68_face_landmarks.dat para
reconocer la cara frontal.
C.Detección del contorno de la pupila

En lugar de detectar el contorno de la pupila con enfoques ordinarios


que provocan un desperdicio de recursos informáticos de la memoria
porque no todos los bordes son la forma agradable del contorno de la
pupila, detectan bordes a lo largo de un número limitado de rayos que se
extienden desde un centro de mejor conjetura. En el primer cuadro, se elige
una ubicación y se extiende el primer rayo hasta el borde de la pupila.
Continúa extendiendo N rayos en fotogramas posteriores con derivadas.∆
hasta que se exceda un umbral del anillo cerrado (también llamado
contorno) alrededor del borde de la pupila.

D. Ajuste elipse
Durante el proceso de encontrar la elipse más apropiada para ajustarse
al contorno de la pupila, hay algunos puntos característicos que no están en
el contorno de la pupila y eliminarán la precisión del proceso de detección
del contorno para superar el nivel inaceptable. Para evitar este problema,
utilizan el paradigma de consenso de muestras aleatorias (RANSAC) [11]. El
RANSAC solo utiliza los subconjuntos de datos para ajustar el modelo. Por lo
tanto, pueden encontrar la elipse que se ajuste más preferiblemente al
contorno de la pupila.

III. OVER VISTA DESIGN Fig. 2. Puntos de referencia faciales [13].


Nuestro proyecto se compila a partir de varios métodos que hemos
2) Detección de la posición de los ojos
encontrado y referenciado en línea, pero la mayoría de las
Nuestro siguiente gran paso es localizar el marco del ojo en la cara del
investigaciones y la implementación se basan en el algoritmo starburst
usuario utilizando el archivo de datos de puntos de referencia faciales (ver
que discutimos en la sección anterior. Sin embargo, no seguimos
completamente el contenido y la secuencia de ese algoritmo. La mayor figura 2). Como se muestra en la figura, los ojos se especifican mediante los
diferencia que se puede mencionar es que no usamos el consenso de puntos marcados que representan la posición del ojo en la cara. Por tanto,
muestra aleatoria (RANSAC) como ellos. cuando combinemos estos puntos, se convertirán en el marco que cubre los
ojos. Con los puntos 36, 37, 38, 39, 40, 41 tenemos
el marco del ojo izquierdo mientras que el 42, 43, 44, 45, 46, 47 nos dan el marco Para reducir el riesgo de recibir el número inválido de la
del ojo derecho. fórmula de CX y Cy (cuando M00 = 0), configuramos una declaración
3) Encontrar el contorno corneal condicional para devolver el "centro fijo del ojo" que se mencionará
Nuestro proyecto utiliza especialmente las imágenes del ojo izquierdo para más adelante en la parte "Detección de movimientos".
analizar, por lo que capturamos su número de puntos y creamos un pequeño
B. Movimientos
rectángulo circundante. El contorno de la córnea se encontrará en esta zona.
1) Consigue un centro ocular fijo

Al principio, cree el umbral en las imágenes que teníamos después de Para navegar por las direcciones de movimiento de la córnea, establecemos el

los tratamientos mencionados anteriormente para realizar una imagen centro del ojo fijo que se basa en los puntos de referencia para compararlo con el

binaria moderada (solo píxeles en blanco y negro). Este proceso requiere centroide de la córnea en movimiento.

algunas pruebas de ejecución para lograr los datos deseados y el método de Gracias a los puntos de referencia faciales, tomamos "la parte superior

umbral más adecuado. Luego, el contorno de la córnea se capturará central" de los dos puntos número 37, 38 y "la parte inferior central" de dos

fácilmente usando “cv2.findContours” a través de OpenCV, que también es el puntos número 40, 41. Después de eso, el punto medio creado por estos dos

objeto más significativo en nuestros datos manejados. centros que podemos obtener fácilmente es el centro del ojo fijo.

4) Centroide del contorno: 2) Comparación de ojo fijo y centroide para determinar


Hasta donde sabemos, encontrar el centro de algunas formas la dirección
básicas como el círculo, el cuadrado o el triángulo es aplicar la Si bien la posición del ojo central fijo prácticamente no cambia
geometría y las fórmulas simples. Ahora estamos tratando con una en la región del ojo, el centroide que tenemos siempre está en
forma arbitraria que es el contorno, por lo que el método sería un poco movimiento. Por lo tanto, podemos comparar su posición con el
diferente. ojo central fijo. La distancia entre estos dos puntos especificados se
utiliza como instrumento para predecir la tendencia del
movimiento corneal.
3) Detección de parpadeo
Teniendo en cuenta la elección de las letras en el teclado virtual,
hemos propuesto una opción: cuando los usuarios parpadeen con
ambos ojos, el sistema recibirá una información similar a un clic del
mouse sobre el personaje activo en ese momento. Para averiguar el
parpadeo, hemos descubierto la relación entre la longitud de la línea
horizontal y la longitud de la línea vertical del marco del ojo. Cuando el
valor de la relación alcanza el número aceptable, lo que demuestra que
el ojo está cerrado durante la experimentación, el sistema registrará y
exportará ese carácter al cuadro de texto. Además, hemos desarrollado
una función de extensión que requiere la detección del parpadeo tanto
Fig. 3. Centroide de forma arbitraria [14]. de los ojos como del individuo para demostrar acciones adicionales.
Para resolver este enorme problema en nuestro proyecto, debemos Estos procesos se explicarán detalladamente en la sección 4 a
buscar varias definiciones aritméticas y algoritmos para encontrar esta continuación.
solución adaptativa [14]: El centroide de la forma es la mediana aritmética de
IV. TÉL SSISTEMA ARQUITECTURA Y COMBINACIÓN
varios puntos en el tamaño de una forma. Suponga que hay n puntos
individuales x1, X2, X3, …, Xnorte entonces el centroide (c) es: • Entrada: imágenes capturadas a través de la cámara web de la computadora
  • Resultado: cifras esenciales para evaluar el rendimiento de
1
= ∑x   la aplicación
  Al ejecutar el archivo ejecutable (.exe), la aplicación nos brindará
=1
En el concepto de visión por computadora, cada forma está formada por una interfaz gráfica de usuario que se configura en la posición
numerosos píxeles, lo que hace que el centroide sea el promedio de todos los conveniente de la pantalla de la computadora para brindar una mejor
píxeles de la forma. interacción con los usuarios. Hay tres botones en la interfaz gráfica de
El siguiente paso es la utilización de "momentos de imagen" en usuario (GUI): botón de inicio; botón de pausa y botón de salida.
OpenCV que determinan la media de las intensidades de píxeles de la La posición inicial del cursor se establece en el medio
imagen para descubrir algunas propiedades específicas de una imagen del teclado virtual, que es la letra "G".
(radio, centroide, área). El centroide del contorno viene dado por esta Después de presionar el botón de inicio, la aplicación recopila la
fórmula: entrada y comienza a analizar y evaluar las acciones (cursor de control;
CX =  10 , la coordenada x detección intermitente; acciones condicionales) del sistema en función de la
 00
salida.
Todos los procesos se detendrán después de que presionemos el botón de
Cy =  01 , la coordenada y salida.
 00

M muestra el momento.
Comienzo

Control parpadeando

Iniciar cámara e hilos LBR> 6.2


BR> 6 y RBR <6

Extraer fotogramas de la cámara web


Empezar de nuevo Pausar "Ponerse en acción"

después de ser y elige


Elige letra
"Pausa" "carta" procesos
Utilice puntos de referencia faciales para el reconocimiento facial
(ampliar) (ampliar)

Figura 5. Diagrama de flujo del programa "Control por parpadeo".

Encuentra parpadeando

proporción de ambos
Localizar a la izquierda o LBR: Relación de parpadeo izquierdo RBR:

ojos
región del ojo o Relación de parpadeo derecho BR: Relación

o de parpadeo de ambos ojos

V. EXPERIMENTAL RESULTADOS
Consigue un centro de ojos fijo Las pantallas de los portátiles suelen estar inclinadas en un ángulo de
unos 10 grados con respecto al eje vertical. La aplicación funciona mejor
cuando la distancia del ojo y la cámara web va desde los 25cm hasta los 45
Encontrar el centroide corneal
cm. Debido al uso del archivo de datos
shape_predictor_68_face_landmarks.dat para reconocer la cara
frontal, la cara solo puede rotar en una diferencia de 20 grados
Compare las posiciones del centro del ojo fijo
desde la cámara perpendicular para garantizar que el sistema
y centroide corneal (distancia_x)
pueda reconocer todos los puntos de referencia.

Calcular distancia_x: [relación de escala * corneal


centroide (x)] - centro del ojo fijo (x)

distancia_x <0 distancia_x> 100


Ponte en acción
Fig. 6 Imagen de la zona del ojo izquierdo utilizando un tratamiento de umbral inverso binario (a
la intensidad de luz de 74 lux).

No se puede negar que el algoritmo funciona bien en algunos entornos


adecuados y nos brinda imágenes estables para crear el contorno de la
córnea y la futura detección del centroide. La siguiente tabla ayuda a
demostrar la influencia de la intensidad de la luz en la eficiencia de
Izquierda Centrar Derecha detección ocular del sistema. Las cifras que queremos descubrir son la
proporción de parpadeo para detectar el parpadeo de los ojos; la
distancia entre el centro del ojo fijo y el centroide corneal para evaluar
la acción para controlar el cursor del teclado virtual y la imagen de
Cursor Cursor Cursor umbral que presenta el algoritmo.
mover a mover a
permanece TABLA I. TLOS DATOS DE RESULTADOS EXPERIMENTALES
la derecha
la izquierda
sin alterar
Valores en diferentes ambientes de iluminación
Componentes
30 Lux 74 Lux

Proporción de parpadeo de ojos 6.24 6.0


Distancia máxima a la izquierdaa - 85 - 60
Control parpadeando
Distancia máxima a la derechaa 185 180
Fig. 4. Diagrama de flujo del programa principal. Distancia superior máximaa (inestable) (inestable)

Distancia máxima inferiora (inestable) (inestable)

una. La distancia entre el centro fijo del ojo y el centroide corneal.


Con un poco más de detalle, existen algunas diferencias entre 2 [5] P. Majaranta, K. Raiha, “Veinte años de tipado ocular: problemas de sistemas y diseño”,
en: Simposio de investigación y aplicaciones de seguimiento ocular de ACM, Nueva
condiciones de iluminación. La distancia en el eje horizontal se calcula
Orleans, Luisiana, EE. UU., 2002, págs. 15-22.
mejor y devuelve un número más confiable en un ambiente más
[6] L. Sibert y R. Jacob, “Evaluación de la interacción de la mirada”, en la conferencia
brillante. Sin embargo, los valores inestables de las distancias superior SIGCHI sobre factores humanos en sistemas informáticos, La Haya, Países
e inferior fueron causados por el límite del algoritmo en la captura del Bajos, abril de 2000, págs. 281–288.
proceso del centroide corneal y la longitud vertical del ojo, no por las [7] Majaranta P., Bulling A. (2014) “Eye Tracking and Eye-Based Human-Computer
condiciones de iluminación. Por lo tanto, solo podemos hacer uso de la Interaction”. En: Fairclough S., Gilleade K. (eds) Advances in Physiological
Computin. Serie Interacción persona-computadora. Springer, Londres.
distancia horizontal para evaluar y realizar acciones para nuestra
aplicación. [8] Kumar, Manu, "Reducir el costo de los sistemas de seguimiento ocular". Edificio, 4.
Citeseer, 2006.
[9] C. Morimoto, A. Amir, M. Flickner, “Detectar la posición del ojo y la mirada
desde una sola cámara y 2 fuentes de luz”, en: Proceedings. 16ª Conferencia
Internacional sobre Reconocimiento de Patrones, 2002, págs. 314-317.
[10] D. Hansen, A. Pece, “Seguimiento ocular en la naturaleza”, Visión por computadora y
comprensión de la imagen 98 (1) (2005) 155-181.
[11] M. Fischler, R. Bolles, "Consenso de muestra aleatoria: un paradigma para el ajuste
de modelos con aplicaciones de análisis de imágenes y cartografía automatizada",
Comunicaciones del ACM 24 (6) (1981) 381-395.
a) B)
[12] “OpenCV”, [en línea]. Disponible:https://opencv.org/about/. [Consultado el 20 de
junio de 2019].
[13] Sergio Canu, "Detección de ojos: teclado controlado por mirada con Python y
OpenCV", pysource.com 7 de enero de 2019. [En línea]. Disponible:https://
pysource.com/2019/01/07/eye-detection-gaze-controlledkeyboard-with-
python-and-opencv-p-1/. [Consultado el 17 de junio de 2019].
[14] Krutika Bapat, "Encuentra el centro de una gota (centroide) usando OpenCV (C
++ / Python)", Learnopencv.com 19 de julio de 2018. [En línea]. Disponible:
https://www.learnopencv.com/find-center-of-blob-centroid-using-
C) D) opencv-cpp-python /. [Consultado el 19 de junio de 2019].

Fig. 7. La interfaz gráfica de usuario muestra el estado de la dirección de movimiento de la córnea


izquierda (a, b, c) y el parpadeo detectado (d).

VI. CONCLUSIÓN
Después de la investigación en el dominio de la visión por computadora,
especialmente el OpenCV, hemos creado una aplicación simple y económica
escrita en lenguaje Python que ayuda a los usuarios a controlar el cursor en
el teclado virtual, así como a exportar letras en pequeños patrones de texto
mediante el seguimiento de las córneas.
Esta aplicación inicial parece rudimentaria y solo funciona
eficazmente en determinadas condiciones de iluminación ambiental.
Sin embargo, creemos firmemente que, en vista de las perspectivas
futuras, continuaremos con la investigación y actualizaremos esta
aplicación con nuevas funciones desarrolladas.
Nuestro próximo objetivo es brindar a la sociedad, en particular a las
personas con discapacidad, un software más avanzado que tenga una mayor
precisión en la determinación del movimiento de la mirada, con el fin de
interactuar mejor con los usuarios.

REFERENCIAS
[1] Schiessl, M., Duda, S., Thölke, A. y Fischer, R. "Eye tracking and its
application in usability and media research". MMI-interaktiv Journal,
junio de 2003, págs. 1-10.
[2] D. Beymer y M. Flickner, "Seguimiento de la mirada con un cabezal estéreo
activo", 2003 IEEE Computer Society Conference sobre Computer Vision and
Pattern Recognition, 2003. Proceedings., Madison, WI, EE. UU., 2003, págs. II
-451.
[3] Dongheng, Li y J. Derrik Parkhurst. "Starburst: un algoritmo robusto para el
seguimiento ocular basado en video". Actas del Taller IEEE Vision for Human-
Computer Interaction. 2005.
[4] AJ Hornof, A. Cavender, R. Hoselton, “Eyedraw: Un sistema para dibujar
imágenes con movimientos oculares”, en: Conferencia ACM SIGACCESS
sobre Computadoras y Accesibilidad, Atlanta, Georgia, 2004, págs. 86-93.

También podría gustarte