Aplicación para teléfono móvil con sistema operativo Android que permita detectar somnolencia y emitir una alarma sonora a conductores de automóvil mediante procesamiento de imágenes
Fecha
Fecha
2019-09-18
Director
Colaboradores
Título de la revista
ISSN de la revista
Título del volumen
Editor
Altmetric
Descripción
En el presente documento se muestra la metodología e implementación de una solución a un problema en concreto que es dar alerta temprana a conductores que se encuentren en estado de somnolencia, esto con el fin de evitar o disminuir los accidentes viales provocados por esta causa. Se desarrolló un aplicativo para teléfono móvil que mediante el procesamiento digital de imágenes permitirá dar un estimado del estado de somnolencia del conductor mediante el análisis de los ojos, y en dependencia de éste dar una alerta sonora al usuario. La aplicación móvil se desarrolló en el entorno de desarrollo Android Studio, y se implementaron las librerías de procesamiento de imágenes Opencv, y Dlib.
Para el desarrollo del aplicativo móvil en primera instancia se realizó una contextualización teórica de los tipos de algoritmos implementados para la detección de somnolencia con ello se realizó una preselección de los más convenientes a implementar, posteriormente se realizó una subdivisión del sistema total a implementar, en donde de determinaron 4 etapas secuenciales críticas presentes las cuales son: detección del rostro del usuario, detección de los ojos y detección de somnolencia. Siguiendo la secuencia de las 4 etapas descritas se seleccionó como métodos para realizar la detección del rostro el algoritmo de Viola Jones, y el HOG (Histograms of oriented gradients), para la detección de los ojos se seleccionó el algoritmo de viola jones, y la detección de landmarks, posteriormente para detectar parpadeos se implementó el método de densidad de píxeles, Viola Jones por ausencia de detección y el índice EAR, y finalmente para detectar la presencia de somnolencia se usó PERCLOS (porcentaje de ojos cerrados).
Con base en los algoritmos seleccionados para cada una de las 4 etapas mencionadas con anterioridad se realizaron 3 aplicativos móviles que fueron estructurados del siguiente modo:
El primer aplicativo utilizó el algoritmo de VJ para detección del rostro, la detección de los ojos se realizó igualmente mediante VJ y para la detección de parpadeos se implementó el análisis de densidad de pixeles. Para el segundo se implementó como método para la detección del rostro el algoritmo de Viola Jones (VJ), para detectar los ojos nuevamente el algoritmo de Viola Jones y para la detección de parpadeos se hizo uso de un algoritmo de Viola Jones caracterizado por solo detectar ojos abiertos. Por último, para el tercer aplicativo se realizó la detección del rostro mediante HOG, mediante landmarks se detectaron los ojos y se implementó el índice EAR para la detección de parpadeos. Finalmente, para los tres aplicativos implementados se usó como método de detección de somnolencia PERCLOS
Teniendo las tres aplicaciones desarrolladas se realizaron pruebas teniendo como parámetros tiempos de procesamiento, estabilidad en ambientes de luz no controlados y cantidad de aciertos y errores en la detección de somnolencia. Posteriormente se seleccionaron los métodos más eficientes y con base en ellos se desarrolló el aplicativo final, el cual terminó estructurado del siguiente modo: La detección del rostro se realizó mediante el algoritmo de VJ, se realizó la detección de los ojos mediante Landmarks, se detectaron los parpadeos mediante EAR y se estimó el estado de somnolencia mediante PERCLOS. Se implementó una alerta sonora que se activará cuando el índice se somnolencia PERCLOS sea mayor al 80%.
Se realizaron pruebas de funcionamiento del aplicativo en el entorno de aplicación (vehículo), en donde se estimó la correcta ubicación del dispositivo móvil para un óptimo funcionamiento del aplicativo, así como el rango de iluminación en donde este funciona de manera óptima. Posteriormente se estimó el funcionamiento de la aplicación atendiendo a características del usuario tales como género, presencia de rasgos faciales como la presencia de barba, y el uso de accesorios como anteojos. Se hallaron límites en el correcto funcionamiento de la aplicación en usuarios con anteojos.
El aplicativo móvil se diseñó para orientación del celular en modo Portrait (portarretrato), con una resolución de imagen de 640x480 píxeles, la versión de Android mínima requerida para el funcionamiento del aplicativo es de Android 4.0. En la interfaz gráfica de usuario se pueden visualizar parámetros como la detección del rostro, el índice PERCLOS, y dos botones que permite realizar la calibración de la aplicación para su óptimo funcionamiento.
Resumen
This document shows the methodology and implementation of a solution to a specific problem that is to give early warning to drivers who are in a state of sleepiness, this in order to avoid or reduce road accidents caused by this cause. A mobile phone application was developed that, through digital image processing, will allow an estimate of the state of sleepiness of the driver through the analysis of the eyes, and depending on the latter, give the user an audible alert. The mobile application was developed in the Android Studio development environment, and Opencv and Dlib image processing libraries were implemented.
For the development of the mobile application in the first instance, a theoretical contextualization of the types of algorithms implemented for the detection of drowsiness was carried out, with this a preselection of the most convenient to implement was made, subsequently a subdivision of the total system to be implemented was carried out, in where they determined 4 critical sequential stages present which are: user face detection, eye detection and sleepiness detection. Following the sequence of the 4 stages described, the Viola Jones algorithm was selected as methods to perform the face detection, and the HOG (Histograms of oriented gradients), for the detection of the eyes the viola jones algorithm was selected, and the detection of landmarks, subsequently to detect flickering the pixel density method, Viola Jones was implemented due to lack of detection and the EAR index, and finally to detect the presence of drowsiness PERCLOS (percentage of closed eyes) was used.
Based on the algorithms selected for each of the 4 stages mentioned above, 3 mobile applications were made that were structured as follows:
The first application used the VJ algorithm for face detection, eye detection was also performed using VJ and for the detection of flickering the pixel density analysis was implemented. For the second, the Viola Jones algorithm (VJ) was implemented as a method for face detection, to detect the Viola Jones algorithm again and for the detection of flickers, a Viola Jones algorithm characterized by only detecting was used Open eyes. Finally, for the third application, face detection was performed using HOG, eyes were detected using landmarks and the EAR index was implemented for the detection of flickering. Finally, for the three applications implemented, it was used as a method of detecting sleepiness PERCLOS
Having all three applications developed, tests were carried out with parameters such as processing times, stability in uncontrolled light environments and number of successes and errors in the detection of drowsiness. Subsequently, the most efficient methods were selected and based on them the final application was developed, which ended up structured as follows: Face detection was performed using the VJ algorithm, eye detection was performed using Landmarks, they were detected the blinking by means of EAR and the state of sleepiness was estimated by PERCLOS. A sound alert was implemented that will be activated when the PERCLOS sleepiness index is greater than 80%.
Functional tests of the application were carried out in the application environment (vehicle), where the correct location of the mobile device was estimated for optimum operation of the application, as well as the range of lighting where it works optimally. Subsequently, the operation of the application was estimated according to user characteristics such as gender, presence of facial features such as the presence of a beard, and the use of accessories such as glasses. Limits were found in the correct operation of the application in users with glasses.
The mobile application was designed for cell orientation in Portrait mode (closeup), with an image resolution of 640x480 pixels, the minimum Android version required for the operation of the application is Android 4.0. In the graphical user interface you can display parameters such as face detection, the PERCLOS index, and two buttons that allow you to perform the application calibration for optimum operation.
Palabras clave
Analisis de Imagen, Somnolencia, OpenCv, Dlib, EAR, Android, Landmarks, PERCLOS