Recibido: 30 de Julio del 2020
Aceptado: 09 de Octubre del 2020
Disponible: 13 de Noviembre del 2020
En el caso de personas con limitación motriz de miembros superiores, los gestos faciales son la principal forma de comunicarse con el mundo. Sin embargo, las interfaces actuales basadas en gestos no tienen en cuenta la reducción de movilidad que la mayoría de las personas con limitación motriz experimentan durante sus periodos de recuperación. Como alternativa para superar esta limitación, se presenta una interfaz humana-computador basada en técnicas de visión por computador sobre dos tipos de imagen: la imagen del rostro capturada mediante webcam y la captura de pantalla de una aplicación de escritorio en primer plano. La primera imagen es utilizada para detectar, seguir y estimar la pose del rostro con el fin de desplazar y ejecutar comandos con el cursor; la segunda imagen es utilizada para lograr que los desplazamientos del cursor sean realizados a zonas específicas de interacción de la aplicación de escritorio. La interfaz es programada totalmente en Python 3.6 utilizando bibliotecas de código abierto y se ejecuta en segundo plano dentro del sistema operativo Windows. El desempeño de la interfaz se evalúa con videos de personas utilizando cuatro comandos de interacción con la aplicación WhatsApp versión de escritorio. Se encontró que la interfaz puede operar con varios tipos de iluminación, fondos, distancias a la cámara, posturas y velocidades de movimiento; la ubicación y el tamaño de la ventana de WhatsApp no afecta la efectividad de la interfaz. La interfaz opera a una velocidad de 1 Hz y utiliza el 35 % de la capacidad de un procesador Intel Core i5 y 1,5 GB de RAM para su ejecución lo que permite concebir esta solución en equipos de cómputo personales.
Palabras clave: Interfaz humano-computador, detección de rostros, visión por computador, tecnología de asistencia.
People with reduced upper-limb mobility depend mainly on facial gestures to communicate with the world; nonetheless, current facial gesture-based interfaces do not take into account the reduction in mobility that most people with motor limitations experience during recovery periods. This study presents an alternative to overcome this limitation, a human-computer interface based on computer vision techniques over two types of images: images of the user’s face captured by a webcam and screenshots of a desktop application running on the foreground. The first type is used to detect, track, and estimate gestures, facial patterns in order to move and execute commands with the cursor, while the second one is used to ensure that the cursor moves to specific interaction areas of the desktop application. The interface was fully programmed in Python 3.6 using open source libraries and runs in the background in Windows operating systems. The performance of the interface was evaluated with videos of people using four interaction commands in WhatsApp Desktop. We conclude that the interface can operate with various types of lighting, backgrounds, camera distances, body postures, and movement speeds; and the location and size of the WhatsApp window does not affect its effectiveness. The interface operates at a speed of 1 Hz and uses 35 % of the capacity a desktop computer with an Intel Core i5 processor and 1.5 GB of RAM for its execution; therefore, this solution can be implemented in ordinary, low-end personal computers.
Keywords: Human-computer interface, face detection, computer vision, assistive technology.
En la actualidad, el dominio de computadoras se ha vuelto una de las necesidades apremiantes de nuestra sociedad moderna, permitiendo no solo para acceder a información relevante, sino también como una herramienta comunicativa y de socialización [
Se han identificado varios trabajos en la literatura científica que se constituyen en trabajos referentes al aquí desarrollado. En Colombia, por ejemplo, en 2005, en la Universidad Javeriana se reportó el desarrollo de un sistema electrónico capaz de reconocer, en tiempo real, doce gestos realizados por un interlocutor en una escena con iluminación y con fondo controlados. Aun cuando el sistema constituye un gran aporte a la línea aquí investigada, el sistema se limita únicamente a gestos de mano. La interfaz es robusta a rotaciones, translaciones y cambios de escala de la mano del interlocutor en el plano de la cámara, estas características son importantes para tener en cuenta en el caso de utilizar gestos faciales [
En 2009, en la Universidad Nacional Sede Manizales, se trabajó una interfaz hombre máquina que permitía ofrecer una “mano adicional” para controlar la laparoscopia a un cirujano cuando se encuentra desarrollando una intervención quirúrgica de este tipo, lo que a menudo se hace muy necesario ya que la mayor parte del tiempo los cirujanos tienen ambas manos e incluso ambos pies ocupados manipulando instrumentos quirúrgicos. La interfaz utilizaba gestos del rostro, específicamente de la postura de los labios para generar el comando. Se demostró que un cirujano podía, de manera fácil y precisa, controlar el brazo de un robot haciendo gestos faciales sin tener que usar interruptores o comandos de voz para iniciar la secuencia de control. Este tipo de ideas constituye un gran aporte si se piensa en pacientes con capacidad de producir gestos faciales, pero con limitaciones de miembro superior [
La propuesta se caracteriza por estar centrada en el usuario y ser independiente de la aplicación, obteniéndose resultados sobresalientes, principalmente con personas sin limitaciones motrices de miembros superiores [
Por otra parte, en el contexto internacional se encuentran varios desarrollos que en la actualidad son productos comerciales consolidados en la industria de los dispositivos de asistencia tecnológica. Por ejemplo, Facial Mouse es un sistema emulador de ratón basado en el movimiento facial del usuario. Se coloca una cámara web frente al usuario, enfocándose en la cara del mismo. Luego, se utiliza un algoritmo de extracción de movimiento que es independiente del usuario, para extraer el movimiento facial del video. Este movimiento se usa para mover el puntero del mouse que se controla de una manera relativamente similar a los dispositivos de mouse estándar [
Estudiantes del Departamento de Matemáticas e Informática de la Universidad de Las Islas Baleares, en el año 2008, desarrollaron un sistema que permite a las personas con discapacidad motriz acceder a la computadora a través de los movimientos de la cabeza del usuario. El sistema no requiere calibración y detecta automáticamente la cara usando el algoritmo Viola y Jones. A continuación, el método divide la cara en regiones: ojos, cejas, boca y nariz. Se utiliza también un método Gaussiano 3D para detectar la región del color de la piel. Para determinar las regiones de los ojos y las cejas se realiza el umbral de imagen.
El único gesto facial a tener en cuenta es el parpadeo. El movimiento del mouse se realiza mediante la posición de la nariz, y el parpadeo del ojo puede tener diferentes funciones.
De esta manera, las personas sin movimiento en los miembros superiores pueden controlar la computadora [
La mayoría de los trabajos encontrados en la revisión de la literatura hasta ahora asumen que el usuario puede hacer movimientos, aunque sean pequeños, con la cabeza, la mano o los ojos y así controlar la computadora. Desafortunadamente, en algunos casos de limitaciones severas, no hay movilidad de los miembros superiores y en el mejor de los casos se puede contar con movimientos leves del rostro e inclusive solo ciertos músculos faciales pueden moverse, lo que lleva a que la mayoría de los sistemas de interfaz existentes no sean lo suficientemente robustos para que un usuario con limitación motriz de miembros superiores pueda usar para tareas básicas de interacción, como la selección de una zona especial dentro de una interfaz gráfica de usuario. En casos de restricciones extremas de movimiento, las expresiones y movimientos leves faciales son la única alternativa para interactuar con la computadora [
Por lo anteriormente expuesto, en este trabajo se describe el diseño de una interfaz humano-computador que permita a personas con limitación de miembros superiores realizar tareas básicas en una aplicación orientada a internet mediante gestos faciales. La hipótesis de nuestro trabajo se centra en que es posible facilitar la interacción con el computador a las personas con limitación motriz de miembros superiores si, además de los gestos faciales, se identifican zonas de interacción de la aplicación con la que se interactúa, permitiendo un posicionamiento más rápido del cursor.
El desarrollo de dispositivos de asistencia tecnológicas basados en sistemas de visión por computador aumenta día a día. Estos dispositivos de asistencia se pueden utilizar para que las personas con discapacidades físicas interactúen con muchas aplicaciones, tales como la comunicación (teléfonos inteligentes, tabletas, portátiles), el control del entorno en el hogar (control inteligente de electrodomésticos), la educación y el entretenimiento (videojuegos).
En particular, para diseñar un dispositivo de asistencia tecnológica basado en gestos faciales, es fundamental revisar los trabajos de investigación relacionados con los métodos de detección de rostros. En los últimos años, los sistemas de visión por computador para detección de rostros se han orientado más hacia aplicaciones como sistemas biométricos, de seguridad, etc. Los sistemas de detección de rostros se están probando e instalando en aeropuertos para proporcionar un nuevo nivel de seguridad [
Las expresiones de la cara desempeñan un papel importante y complementario o suplementario al que desempeñan por ejemplo las manos en los actuales sistemas de IHC [
La obtención de patrones faciales a partir de imágenes permite detectar y localizar rostros automáticamente en escenas complejas con fondos no controlados [
La detección de rostros [
Este proceso no es tan sencillo como lo haría el sistema visual humano. Según las condiciones en la que se encuentre la imagen durante el proceso de detección puede suponer algunos problemas. En muchos casos la luminosidad no es la adecuada, aparecen elementos extraños, las caras están de perfil, se encuentran tapadas por algún elemento o por alguna otra cara o en un ángulo complicado. Actualmente existen varios métodos para detección de rostros.
Métodos basados en el conocimiento: estos métodos representan las técnicas de detección de rostros que se basan en una serie de reglas previas definidas por la persona que quiere hacer la detección. Se definen una serie de características sobre las caras a detectar (forma de la cabeza, dos ojos, una nariz). Esto puede suponer un problema, y es que, si estas reglas son muy generales, el resultado de una búsqueda en imágenes donde no hay rostros, seguramente el resultado dirá que sí hay rostros y, además, en una cantidad elevada. En el caso en que las reglas establecidas sean muy específicas posiblemente también aparezcan problemas ya que el resultado de la detección será muy bajo [
Métodos basados en características invariantes: estos métodos utilizan como punto de referencia el color de la piel y la textura. El problema radica en que, si en la imagen aparece ruido o diferentes condiciones de iluminación, el algoritmo aplicado no funcionará correctamente. Si se utiliza el color de la piel, los algoritmos que utilizan toda la gama de colores tienen mejor resultado que los que utilizan una escala de grises [
Métodos basados en plantillas: estos métodos modelan geométricamente la forma del rostro. Una vez están definidas las plantillas (círculo, elipse, etc.) se evalúa la correspondencia entre la cara y la plantilla. Las principales técnicas son las plantillas deformables y los contornos activos [
Métodos basados en apariencia: esta técnica en un principio no necesita el conocimiento de las características de la cara de la imagen que se quiere detectar. En los algoritmos utilizados en estos métodos aparecen los conceptos de entrenamiento y de aprendizaje, diferentes métodos para poder realizar la detección de caras por ordenador [
Uno de los algoritmos más populares en la actualidad para la detección de rostros es el algoritmo de Viola Jones [
Por otro lado, para el módulo de control del cursor, la conversión de los parámetros del movimiento del rostro humano a la navegación del cursor del mouse se puede clasificar en modo directo, modo de joystick y modo diferencial. Para el modo directo, se establece un mapeo uno a uno desde el dominio de los parámetros de movimiento hasta las coordenadas de la pantalla mediante una calibración fuera de línea o mediante un diseño basado en el conocimiento previo sobre la configuración del monitor [
En [
El objetivo de este trabajo es utilizar la expresión facial como una forma alternativa de controlar el movimiento del cursor. Es un trabajo muy útil para las personas con limitaciones de miembros superiores. Para ello se utilizará, como en otros trabajos, una cámara web interconectada con la computadora portátil del usuario. El sistema detectará automáticamente el rostro y estimará su orientación en el espacio 3D del usuario mediante el algoritmo de Viola-Jones y un modelo flexible. Mediante un criterio de mínima distancia entre frames consecutivos de las imágenes provenientes de la webcam se seguirán automáticamente los movimientos del rostro y se dará una salida al sistema de operación del cursor. Para hacer más rápido el posicionamiento del cursor y la generación de clic, este sistema operará únicamente sobre un aplicativo orientado a redes sociales y se detectarán mediante técnicas de visión por computador elementos gráficos claves de interacción lo que facilitará su uso.
Para concebir la solución de interfaz gestual, primero se definió el software WhatsApp de Escritorio como aplicación objetivo para comandar, esto con base en una encuesta preliminar sobre la preferencia de aplicación de las personas con limitaciones motrices para comunicarse con el mundo exterior. Las condiciones de interacción se establecen en la Figura 2. Para tener una buena composición en la imagen capturada mediante la cámara integrada en un laptop sobre una mesa, se define una distancia promedio entre 60 a 70 cm medidos desde la pantalla del computador, esta debe estar inclinada no más de 20° respecto a la normal de la superficie de apoyo del computador.
La primera opción para interactuar con WhatsApp es la de controlar la posición del cursor con ayuda de los movimientos del rostro dado que estos pueden ser estimados utilizando la técnica de detección rostro descrita en la sección 3.2; sin embargo, esto puede resultar tedioso para una persona con limitación motriz, ya que debe estar moviendo constantemente la cabeza para seleccionar con el cursor las zonas de interés.
Para hacer más fácil la interacción se propone realizar desplazamientos específicos del cursor aprovechando que en la aplicación WhatsApp existen dos zonas de interacción claramente diferenciadas: zona de contactos, y la zona de chat (o conversación). Por esta razón se propone no solamente procesar la imagen del rostro capturada mediante una webcam sino también la captura de pantalla del computador donde la persona está visualizando WhatsApp.
Adicionalmente, se propone como comandos de interacción: i) activar o desactivar la interfaz gestual con la apertura de la boca, ii) ubicar el cursor en la zona de conversación o en la zona de contactos mediante movimientos laterales y sostenidos del rostro, iii) hacer scroll up/down en cualquiera de estas zonas mediante movimientos verticales y sostenidos del rostro. La activación del scroll up/down en la zona de conversación permite subir y bajar en la conversación que se ha desarrollado entre dos personas o en un grupo personas. En caso de que el scroll up/down se realice en la zona de contactos permitirá seleccionar un contacto a la vez, esto implica emular ‘Ctrl+TAB’ o ‘Ctrl+Shift+TAB’ cada que vez que el cursor se desplaza de forma discreta entre los diferentes contactos.
La solución propuesta contempla tres etapas: preprocesamiento, análisis y generación de eventos (ver Figura 3).
Las técnicas utilizadas en cada una de estas etapas se pueden ver en detalle en la Figura 4.
3.1 Preprocesamiento
La etapa de preprocesamiento tiene dos propósitos fundamentales: reducir la dimensionalidad de los datos y mejorar la relación señal a ruido de las imágenes [
La reducción de dimensionalidad consiste en pasar de imágenes de tres canales, RGB, a imágenes de un solo canal en escala de grises. Esto se realiza tanto en la imagen adquirida por webcam como en la captura de pantalla de la aplicación WhatsApp.
La mejora de la relación señal a ruido se lleva a cabo con la aplicación de un filtrado no lineal tipo mediana estadística el cual conserva los bordes únicamente en la imagen adquirida por la webcam (ver Figura 5). El propósito es mejorar la tasa de detección de rostros, principalmente cuando las condiciones de iluminación se reducen. Se probaron diferentes tamaños de kernel (3x3, 5x5, 7x7 y 9x9) para el filtro de mediana. Para cada uno se estimó que el tiempo promedio de ejecución por imagen son los siguientes: 3x3 (151 ms), 5x5 (185 ms), 7x7 (243 ms) y 9x9 (272 ms). Se seleccionó, finalmente, el de tamaño 3x3, porque se obtuvo la misma efectividad en la detección de rostros comparándola con los demás tamaños, y a que su velocidad de ejecución es la más rápida comparada con el resto.
3.2 Análisis
La detección de rostros [
Como resultado de usar está técnica implementada en esta biblioteca de programación, en cada instante de tiempo se tiene un conjunto de ROI asociadas a todos los rostros detectados en la imagen.
Para realizar el seguimiento de un solo rostro el problema puede simplificarse y lograr una mayor velocidad de ejecución entre frames (imágenes en un video) consecutivos si se fija un ROI con etiqueta cero, su etiqueta puede asociarse al ROI más cercano en el siguiente frame utilizando una distancia euclidiana (1) para ello:
Donde pt es el centroide de coordenadas (xt, yt) del ROI de etiqueta cero en el instante de tiempo t y `p_(t+1)^i` es el centroide del i-ésimo ROI detectado en el instante de tiempo t+1. La etiqueta cero se pasará al i-ésimo ROI cuya distancia di sea la mínima entre las posibles.
Para estimar la pose del rostro, es decir, encontrar los seis números que determinan la ubicación y orientación que tiene el rostro en el espacio se utiliza la implementación encontrada en la biblioteca DLIB [
A partir de este modelo es posible definir algunas relaciones de aspectos que pueden contribuir a determinar por ejemplo si se ha producido un guiño del ojo o una apertura de boca. Para el caso de la boca, el coeficiente de relación de aspecto se denomina MAR (Mouth Aspect Ratio) y está definido a partir de los puntos 61, 62, 63, 64, 65, 66, 67 y 68, ver Figura 7, mediante (2):
En la Figura 8 se muestra el resultado de detección y estimación de pose obtenida con las técnicas descritas anteriormente.
La detección de zonas de interés se realiza primero obteniendo la región de interés de toda la aplicación de WhatsApp en la captura de pantalla del escritorio del computador. Para esto se utiliza una técnica basada en correspondencia de plantillas (template matching). En el procesamiento digital de imágenes la correspondencia por plantilla [
Para localizar las zonas de interacción, primero se obtienen las coordenadas de la ventana de WhatsApp, esquina superior de la ventana (Xw, Yw), y su ancho y alto (Ww, Hw). Estos parámetros son el punto de partida para tener acotado el espacio de detección. Después de analizar los elementos dentro de la ventana, se encontró que el botón de menú podía ser el punto de referencia para separar la ventana en dos zonas y así delimitar las regiones donde se encuentran las zonas de contacto y de conversación. Para encontrar los datos de la posición del botón de menú se toma una muestra del mismo y utilizando la correspondencia por plantillas se obtiene su posición con respecto a la pantalla completa, esto se referenciará al origen de coordenadas de la ventana de WhatsApp para ubicar su posición dentro de la misma, a saber (Xd, Yd, Wd, Hd) (ver Figura 9).
Con base en los datos del botón menú, se logra separar la ventana de WhatsApp en dos zonas, esto se logra a partir del cálculo de la posición de la esquina superior derecha del icono del menú, la cual se obtiene mediante (3):
Se determinó de forma heurística que al valor obtenido anteriormente deben sumarse 16 pixeles para determinar la coordenada en X de la zona Derecha (Xzd), y el borde derecho de la zona izquierda, de esta forma se tiene que (Xzd = Etr+16). Lo anterior permite calcular el ancho de ambas zonas, Wzi y Wzd, de la siguiente forma: (Wzi= Xzd-Xw ) y (Wzd= Ww-Xzd ), Figura 10.
Una vez separadas las dos zonas se procede a identificar dos elementos más en la aplicación de WhatsApp para obtener los ROI finales asociados a la zona de contactos y la zona de interacción. Utilizando nuevamente correspondencia de plantillas se localiza el icono de búsqueda de contactos y con esto se logra delimitar mejor la zona de contactos. Para la zona derecha se localiza el icono de emoticones y seguidamente la zona de conversaciones. Si el ROI del icono de búsqueda es (Xb, Yb, Wb, Hb) y el del icono de emoticón es (Xm, Ym, Wm, Hm), se puede estimar la posición de las otras dos zonas de interacción de la siguiente forma.
Primero, para la zona de contactos se calcula la coordenada Yc sumando del área de búsqueda la coordenada Yb más la altura del área Hb y para la altura de la zona de contactos Hc se usa la altura de la ventana menos la recién calculada coordenada Yc. Con esto se completan los parámetros de la zona de contactos ya que la posición en X (Xc) es igual a Xzi y el ancho es igual a Wzi. Por otro lado, para la zona de conversación se empieza tomando las coordenadas ya conocidas e igualándolas con las que se necesita, ya que las coordenadas en X e Y se igualan de la siguiente forma, Xzc será igual a Xzd, Yzc será igual a Yb y Wzc será igual a Wzd. Para calcular la altura habrá que tomar Ym y restarle Yzc, de esta forma (Hcz = Ym-Yzc ), y así se obtienen las coordenadas de la zona de conversación ver Figura 11
En la Figura 12 se puede observar un ejemplo del resultado en la detección de zonas de interés utilizando la técnica propuesta anteriormente.
3.3 Generación de eventos e Implementación
En esta etapa se utilizan las señales de roll, pitch y yaw, así como los ROI de interacción en WhatsApp detectados y la relación de aspecto de la boca (MAR), por sus siglas en inglés Mouth Aspect Ratio, seguidos en el bloque de análisis.
Se determinó de forma heurística que la mejor forma de posicionar el cursor en el centro del ROI de la zona de conversación debe ocurrir cuando el usuario realice un movimiento en yaw mayor de 15°. Para posicionar el cursor en el centro del ROI de la zona de contactos, el usuario deberá hacer un movimiento en yaw menor de -6°. En caso que el cursor se encuentre en la zona de conversación, con un movimiento en pitch mayor de -5° se interpretará como scroll up y un movimiento en pitch menor de -12° será interpretado como scroll down. En caso que el cursor se encuentre en la zona de contactos, se emulará en ‘Ctrl+TAB’ (siguiente abajo) o ‘Ctrl+Shift+TAB’ (siguiente arriba) para activar la conversación con el contacto inmediatamente superior o inferior, respectivamente.
Para detectar la boca abierta, se estableció de forma heurística un umbral del MAR para la boca cerrada de 0,6, al abrir la boca este valor aumentará. Se determinó que, si el usuario permanece con la boca abierta con el umbral superior a 0,6 y durante 3 frames consecutivos, esto se interpretará como una orden para desactivar (cerrar) la interfaz gestual.
La implementación de los diferentes módulos se realizó utilizando el lenguaje Python 3.6.8; el código fuente quedó disponible en [
Se realizaron pruebas de eficiencia computacional con la interfaz gestual en tres equipos de cómputo de baja (Intel Pentium, 4 GB RAM), media (Intel Core i5, 8 GB RAM) y alta gama (Core i7, 16 GB RAM). También se comparó el tiempo promedio en seleccionar una conversación en la zona de contactos de la aplicación WhatsApp con otras interfaces desarrolladas en otros trabajos. Por otro lado, para evaluar la robustez se estudió el comportamiento de la interfaz frente a cambios de iluminación, presencia de otros usuarios y casos de oclusión tanto del rostro como en la aplicación de WhatsApp. Finalmente, para evaluar la usabilidad en un escenario controlado de pruebas, se solicitó a diez personas que usaran la interfaz durante cinco minutos ejecutando los comandos que fueron previamente enseñados. Durante los dos primeros minutos se instruyó a los sujetos experimentales respecto a los comandos básicos que la interfaz soporta y seguidamente se dejó que los usuarios activaran/desactivaran la interfaz gestual, seleccionaran contactos y navegaran en sus conversaciones. En todos los casos, mediante consentimiento informado, se pidió a los sujetos que abrieran su propia cuenta de WhatsApp para que la navegación fuera más familiar para los mismos.
Es importante mencionar que una evaluación rigurosa de la interfaz desarrollada en este trabajo bajo estándares internacionales es posible siguiendo los criterios establecidos en la ISO 9241-940 [
4.1 Desempeño
Para determinar si la velocidad de ejecución de la interfaz gestual es independiente de la gama del computador que puede utilizar eventualmente una persona con limitación motriz, se seleccionaron tres equipos con características de baja, media y alta gama. Además, se estudió si la velocidad de ejecución de la interfaz es igual ejecutando solo WhatsApp (además del aplicativo de interfaz gestual) y WhatsApp junto con tres aplicaciones más (Microsoft Word, Mozilla Firefox, Reproductor de Windows Media Player).
Se guarda el tiempo ejecución de cada par de imágenes (webcam y captura de pantalla) que pasa por el flujo de ejecución (preprocesado, análisis, generación de eventos) de la interfaz gestual. Este proceso se realiza 525 veces en cada uno de los escenarios descritos arriba, a saber, WhatsApp ejecutándose solo y con tres aplicaciones más. Los valores promedios para cada uno de los tipos de computadores se muestran en la Tabla 1. Se observa que la rapidez de ejecución de la interfaz gestual es aproximadamente 2 segundos más rápida en el computador de media y alta gama comparado con el de baja gama. Se encontró también que en cualquier tipo de computador la interfaz gestual requiere 1,5 GB en RAM para su ejecución y aproximadamente un 35 % de porcentaje de ocupación de la CPU en los computadores de media y alta gama y de 65 % en el computador de baja gama.
Características del PC | Tiempo promedio y desviación estándar de ejecución por frame cuando solo se ejecuta WhatsApp (s) | Tiempo promedio y desviación estándar de ejecución por frame cuando se ejecuta WhatsApp y 3 aplicaciones más (s) |
Intel Pentium, 1.5 GHz, 4 GB RAM (baja gama) | 3.23 (±0.73) | 3.52 (±0.98) |
Intel Core i5, 2.0 GHz, 8 GB RAM (media gama) | 1.14 (±0.41) | 1.17 (±0.38) |
Intel Core i7, 2.5 GHz, 16 GB RAM (alta gama) | 1.05 (±0.25) | 1.00 (±0.26) |
Para determinar si existe una diferencia estadísticamente significativa entre los valores promedios de ejecución por frame, se comprobó primero la normalidad de los datos mediante una prueba de t-Student [
Se encontró que no es posible establecer diferencia de tiempos promedios entre los escenarios donde se ejecuta solo WhatsApp y WhatsApp más tres aplicaciones. Esto se debe principalmente a que en ningún caso el porcentaje de ocupación de la CPU está al 100 %, lo que significa que la aplicación de interfaz gestual puede ejecutarse junto con otras aplicaciones simultáneamente y no afectar el desempeño de la CPU. Por otro lado, se observa que la diferencia de promedios es estadísticamente significativa (p-valor < 0.001) entre el computador de baja gama y los de media gama y alta gama. No se encontró diferencia de tiempos de ejecución promedio entre el computador de media gama y el de alta gama, lo que indica que es posible operar la interfaz con un tiempo de ejecución promedio por frame de aproximadamente 1,2 segundos desde un computador cuyo precio en la actualidad no supera los 1,6 millones de pesos colombianos (este valor se obtuvo consultando los principales proveedores de la ciudad de Santiago de Cali).
Un experimento adicional, realizado con 5 personas, el cual consistió en lograr hacer clic (100 repeticiones) sobre un contacto (en la zona de contactos de WhatsApp, Figura 12), permitió determinar que en promedio nuestra propuesta (hciVisualGesture) es más rápida (p-valor < 0.001) que Camera Mouse [
4.2 Robustez
La interfaz gestual depende de dos técnicas claves para su funcionamiento: la detección de rostros y la detección de zonas de interacción. Por esta razón en este proyecto se estudia la robustez de estos bloques de forma cualitativa.
En la Figura 15 se observa que la detección de rostros es efectiva en diferentes condiciones de iluminación, incluso en completa oscuridad utilizando solo la luz emitida por el computador con el nivel de brillo al máximo. Para este caso el sujeto se ubicó a 80 cm de la pantalla del computador. La técnica falla cuando las condiciones de iluminación son muy bajas.
El criterio de seguimiento de una sola etiqueta permite que la interfaz no sea comandada por un segundo sujeto en presencia de otras personas en la misma escena del sujeto principal (quien debe operar la interfaz). La Figura 16 muestra este hecho.
La detección de rostro funciona bien hasta distancias menores de los 90 cm, después de este valor, aun cuando se detecta el rostro, el algoritmo de detección de pose empieza a fallar debido a que la detección de puntos característicos en el rostro no es tan robusta a esta distancia. Finalmente, cuando la distancia es mayor de los 120 cm el algoritmo de detección de rostros falla completamente (ver Figura 17).
Es importante aclarar que en este caso y para lograr que la interfaz gestual ejecutara rápidamente la imagen de entrada de webcam es redimensionado siempre a 320x340 antes de ser aplicada dentro del flujo de preprocesamiento, análisis y generación de eventos.
Trabajar a una resolución mayor mejorará la efectividad de la detección en distancias superiores a los 120 cm, sin embargo, hará que el aplicativo de interfaz gestual se ejecute más lentamente.
Las oclusiones son críticas en cualquier aplicación de detección de objetos utilizando imágenes, y la detección de rostro no es la excepción; sin embargo, debe resaltarse que durante las pruebas se pudo observar que casos extremos como el uso de mascarillas, ponerse la mano en el rostro o incluso aparecer a medio cara en la imagen son casos en los que la detección del rostro no falla; no obstante, la detección de puntos característicos sobre el mismo sí afectan directamente la etapa de estimación de pose del rostro (ver Figura 18). Poseer cabello largo, el uso de gafas con lentes transparentes e incluso desaparecer parte del rostro en la imagen, siempre que se alcance a ver la nariz y boca, no afectan la detección y estimación de pose del rostro.
En el caso de la detección de zonas de interés en la aplicación de WhatsApp a partir de la captura de pantalla se observó que la detección de dichas zonas es invariante a escala y traslación (ver Figura 19 y Figura 20).
Esto se debe principalmente a que la técnica depende de poder identificar por correspondencia de plantillas los iconos de menú, búsqueda y emoticón. En cualquier caso, que no se logre observar con claridad estos íconos, en la captura de pantalla se tendrá un resultado no deseado, tal y como se evidencia en la Figura 21 y Figura 22.
4.3 Usabilidad
Con el fin de explorar la facilidad de uso de la interfaz gestual propuesta se realizó un experimento con once personas (seis mujeres y cinco hombres) cuyas edades varían de los 12 a los 67 años. Con ayuda de un consentimiento informado se daba cuenta del experimento en que los sujetos iban a participar y, una vez firmado el mismo, se procedía con la explicación del procedimiento experimental, el cual consistía durante los primeros 3 minutos en explicar el uso del mismo. Durante las pruebas las personas abrían su cuenta de WhatsApp para estar más familiarizados con los contactos que iban a seleccionar durante las pruebas.
La prueba consistió en utilizar los comandos de interacción desarrollados en la propuesta de solución, a cada usuario se le solicitó seleccionar 10 contactos personales o grupales de la zona de contactos y que navegara de arriba hacia abajo y de abajo hacia arriba en las conversaciones. La supervisión del experimento siempre se llevó a cabo desde la parte trasera del computador para evitar violar la intimidad de las conversaciones de los sujetos experimentales. El tiempo promedio de interacción con WhatsApp mediante la interfaz gestual fue de 10 minutos. Una vez finalizado el ejercicio de interacción con ayuda de un formulario, Tabla 2, se recogía información sobre la percepción de los usuarios sobre la solución de interfaz gestual propuesta. De las respuestas obtenidas en forma porcentual para cada una de las encuestas se observó que en general la percepción de los sujetos experimentales es que la aplicación de la interfaz gestual es amigable, con una curva rápida de aprendizaje y permite interactuar con WhatsApp de forma efectiva bajo los comandos que actualmente permite la misma. Sin embargo, se percibe que la interfaz no es tan rápida en su ejecución, de hecho, algunos sujetos manifestaron que consideran debe mejorarse esta parte dentro de la interfaz para hacerla más intuitiva.
No. | Encuesta |
1 | La Interfaz detecta el rostro. |
2 | La interfaz detecta y posiciona correctamente el cursor en las zonas de contactos y mensajes en WhatsApp de escritorio. |
3 | La interfaz reconoce todos los comandos de navegación (Mov.Izquierda; Mov.Derecha; Mov.Arriba; Mov.Abajo). |
4 | La interfaz reconoce el comando gestual para salir de la interfaz (boca abierta). |
5 | La ejecución de los comandos en la interfaz es rápida. |
6 | Teniendo en cuenta que la interfaz está pensada para personas con tetraplejia, considera que la herramienta ayuda establecer comunicación con WhatsApp de escritorio. |
7 | La interfaz es de fácil uso para el usuario. |
8 | La interfaz se puede utilizar en cualquier ambiente de iluminación sin interferencia en la detección del rostro. |
9 | La interfaz cumple el objetivo de realizar tareas básicas de navegación en la aplicación WhatsApp desktop. |
10 | Pensando en la necesidad de las personas con limitaciones motrices de miembros superiores, considera que la interfaz es una herramienta que se puede recomendar. |
5. CONCLUSIONES
Se desarrolló una interfaz humano-computador basada en gestos faciales y detección de zonas de interés en una aplicación orientada al internet para personas con limitaciones motrices de miembros superiores. La interfaz permite mediante cinco comandos seleccionar contactos, navegar en las conversaciones de la aplicación WhatsApp de escritorio, así como activar/desactivar la interfaz utilizando únicamente gestos del rostro.
Se determinaron las principales características de una interfaz humano-computador para personas con limitaciones motrices de miembros superiores. La interfaz cuenta con principios ergonómicos para facilitar y optimizar su utilización. También posee una combinación de tecnología, conocimiento y recursos que produjeron resultados deseados en equipos de cómputo con precios inferiores a los 1,5 millones pesos colombianos.
Se implementó una técnica de visión por computador para la identificación de gestos faciales y la detección de zonas de interés en una aplicación de escritorio orientada a internet.
Se logró la detección automática, a partir de una captura de pantalla de la aplicación WhatsApp, de las zonas de contacto y conversaciones mediante una combinación de heurísticas y correspondencia por plantilla de imágenes. La detección de gestos se logró utilizando técnicas robustas de detección de rostros y estimación de pose mediante modelos flexibles.
Se construyó una interfaz software de generación de comandos para una aplicación de escritorio a partir de gestos y zonas de interés detectadas. Esta interfaz es capaz de correr en fondo y no interfiere visualmente con la aplicación WhatsApp. La velocidad de ejecución de la misma es de 1 Hz, y en un equipo de media gama ocupa el 35 % de CPU y 1,5 GB RAM.
Se llevaron a cabo pruebas de desempeño computacional, robustez y de usabilidad.
Primero, las pruebas de desempeño permitieron identificar que en un equipo de media gama es posible trabajar la interfaz gestual y que se pueden tener más aplicaciones ejecutándose simultáneamente sin que esto reduzca la velocidad de ejecución de la misma.
Además, la propuesta desarrollada en este trabajo demostró, mediante un experimento sencillo, ser más rápido que Camera Mouse y Nose Tracking, dos sistemas vigentes en el estado del arte; sin embargo, el uso de la interfaz desarrollada en este trabajo se orienta a una sola aplicación, mientras que Camera Mouse y Nose Tracking permiten comandar cualquier aplicación. Segundo, las pruebas de robustez evidenciaron que la interfaz gestual puede trabajar en variadas condiciones de iluminación y con algunos casos de oclusión tanto a nivel de detección de gestos faciales como detección de zonas de interés. Por último, las pruebas de usabilidad permitieron entender que los usuarios reconocen la funcionalidad de la interfaz implementada, así como su potencial para personas con limitación motriz; sin embargo, sugieren que debe ampliarse el número de eventos y de capacidades de la interfaz para ser completamente útil, además de sugerir una mejora en los tiempos de ejecución para que su manejo sea más fluido.
En general, los autores de este trabajo consideran que los hallazgos encontrados en la ejecución de este proyecto son claves para su aplicación en personas con limitaciones motrices de miembro superior y que deben integrarse a la parte de reconocimiento de voz (el cual es otro proyecto que se está realizando en la Fundación Universitaria Lumen Gentium) para complementar su espectro de aplicación.
Finalmente, con el de fin ampliar el alcance obtenido y de igual forma superar las limitaciones de la solución propuesta en este trabajo de investigación, se propone a futuro i) Incluir más eventos a partir de la identificación de otros gestos del rostro, por ejemplo, los que involucran los ojos, ii) Mejorar el tiempo de ejecución de la interfaz gestual mediante la re-implementación de algunas técnicas de análisis de imágenes para que escalen mejor las capacidades de la CPU, y iii) Integrar reconocimiento por voz para permitir el ingreso de texto utilizando técnicas de procesamiento del lenguaje natural.
A la Fundación Universitaria católica Lumen Gentium y a su Dirección de Investigaciones por el apoyo económico y administrativo brindado al proyecto.
Declaramos no tener ningún tipo de conflicto de intereses, ninguna relación personal, política, interés financiero ni académico que pueda influir en nuestro juicio.
Carlos Ferrin-Bolaños, José Mosquera-De la Cruz y Humberto Loaiza-Correa, contribuyeron significativamente en la conceptualización, diseño y desarrollo de la investigación, así como a la edición y revisión del artículo. John Pino-Murcia, Luis Moctezuma-Ruiz y Jonathan Burgos-Martínez y Luis Aragón-Valencia contribuyeron en la implementación de los diferentes módulos software y en la elaboración y ejecución de las diferentes pruebas experimentales.