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 (2019)
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.