Interfaz humano-computador para personas con limitación motriz de miembros superiores basada en gestos faciales
Resumen
El lenguaje corporal es importante para comunicarse fluidamente con las personas. En el ámbito de la interacción con máquinas, existen sistemas para reconocer automáticamente gestos faciales. En el caso de personas con limitación motriz de miembros superiores los gestos faciales son la única forma de comunicarse con el mundo, sin embargo, las interfaces actuales no tienen en cuenta las reducciones de movilidad que la mayoría de las personas con limitación motriz experimenta durante sus periodos de recuperación. Para contribuir a la solución de este problema, se presenta una interfaz humana máquina que mediante técnicas de visión por computador detecta, sigue y estima la pose de un rostro a partir de imágenes de capturas mediante webcam, para así generar comandos en una aplicación de WhatsApp. Con el fin de evitar fatiga, el sistema detecta de forma automática, utilizando capturas de pantalla y técnicas de reconocimiento de patrones, las regiones de interacción clave dentro de WhatsApp como son la zona de selección de conversación y la de chat. La interfaz es complementada con módulos para configurar su funcionamiento y controlar un cursor. La programación se realiza en Python 3.6.8 y utiliza las librerías OpenCV Versión 4.2.0, DLIB Versión 19.8.1 para procesar imágenes, PyAutogui Versión 0.9.42 para capturar la pantalla del computador, emular eventos de teclado y cursor, y la biblioteca Qt Versión 4.8 para exponer una interfaz de usuario sencilla. El desempeño se evalúa con videos de personas utilizando cuatro comandos de interacción con WhatsApp. En las pruebas se utilizan varios tipos de iluminación, fondos, distancias a la cámara, posturas y velocidades de movimiento. Los resultados muestran que el algoritmo detecta, sigue y estima la pose del rostro en 85 % de los casos. Se producen fallas cuando hay fuentes de luz frente a la cámara, oscuridad o movimiento detrás del rostro. El programa se ejecuta a 1 FPS y utiliza el 35% de un procesador Intel Core i5 y 1.5 GB de RAM. La plataforma es capaz de distinguir rostros de variados tonos, y es muy robusto a cambios de iluminación, presencia de otras personas y oclusiones parciales del rostro en la aplicación WhatsApp. La facilidad de interacción y la rápida curva de aprendizaje, así como su conexión directa con el aplicativo orientado al internet permiten prever que la interfaz desarrollada fortalecerá los procesos de inclusión de más personas con limitación de miembros superiores como los tetrapléjicos y las personas con accidente cerebro vascular en los contextos sociales y de transformación digital.
Abstract
Body language is important to communicate fluently with people. In the area of machine interaction, there are systems to automatically recognize facial gestures. In the case of people with motor limitation of upper limbs, facial gestures are the only way to communicate with the world, nonetheless current interfaces do not take into account the mobility reductions that most people with motor limitations experience during their periods of recovery. In order to contribute to the solution of this problem, a human machine interface is here described. Our solution uses computer vision techniques to detect, track and estimate head pose from images acquired by a webcam to generate commands into WhatsApp application. For avoiding user fatigue, the system automatically detects key interaction regions within WhatsApp such as the conversation selection area and the chat selection area by using desktop screenshots and pattern recognition techniques. The interface is complemented with modules to configure its operation and commanding computer cursor. Programming is realized through Python 3.6.8, OpenCV Version 4.2.0 and DLIB Version 19.8.1 libraries to process and analyze webcam images, PyAutogui Version 0.9.42 to acquire computer screen, emulate keyboard and cursor events, and Qt library Version 4.8 to expose a simple user interface. Performance is assessed by videos of people using four interaction commands with WhatsApp. Various types of lighting, backgrounds, camera distances, postures, and movement speeds are used during testing. The results show that the algorithm detects, tracks and estimates head pose in 85% of cases. Failures occur when there are light sources in front of the camera, darkness, or movement behind the face. Our application executes at 10 FPS of speed and uses 16% of an Intel Core i5 processor and 2 GB out of 8GB RAM. The platform is able to distinguish faces of similar skin tone, however is not very tolerant to background movements. The ease of interaction and the fast learning curve allow to conceive the interface developed for applications with upper-limb disabled people, such as tetraplegics and people with stroke.