Desarrollo de un sistema de ayuda visual inteligente basado en smart glasses para personas con baja visión Development of an intelligent visual aid system based on smart glasses for people with low vision. Trabajo de Fin de Máster Curso 2023–2024 Autor Jonathan José Jiménez Jiménez Director Joaquín Recas Piorno María Guijarro Mata-García Máster en Internet de las Cosas Facultad de Informática Universidad Complutense de Madrid Desarrollo de un sistema de ayuda visual inteligente basado en smart glasses para personas con baja visión Development of an intelligent visual aid system based on smart glasses for people with low vision. Trabajo de Fin de Máster en Internet de las Cosas Departamento de Arquitectura de computadores Autor Jonathan José Jiménez Jiménez Director Joaquín Recas Piorno María Guijarro Mata-García Convocatoria: Septiembre 2024 Calificación: 10 Máster en Internet de las Cosas Facultad de Informática Universidad Complutense de Madrid 24-09-2024 Dedicatoria A mi amada familia, especialmente a mis sobrin@s Gloria, Connor, Tirsa, Eli y Aysel, y a nuestros queridos perritos Hunter y Cooper v Agradecimientos A mi amada familia, por su amor infinito. Gracias por apoyarme siempre. A mis tutores María Guijarro Mata-García y Joaquín Recas Piorno por darme la opor- tunidad de desarrollar este proyecto y guiarme en el proceso. A la Cátedra-Once y al proyecto IRISEMP, por aportar los recursos necesarios para el desarrollo. vii Resumen Desarrollo de un sistema de ayuda visual inteligente basado en smart glasses para personas con baja visión La baja visión es una deficiencia significativa de la capacidad visual que afecta tanto la agudeza visual como el campo visual, y que no mejora con tratamiento convencional. Diversos estudios proyectan un aumento moderado en el número de personas que padecerán baja visión en los próximos años. Las ayudas tradicionales no tecnológicas para baja visión, como prismas, gafas de aumento, telescopios o lupas, pueden distorsionar y producir saltos en la imagen. Tras un estudio exhaustivo sobre la baja visión y las soluciones tecnológicas basadas en dispositivos montados en la cabeza, como las smart glasses, se concluye que estas soluciones deben ser multifuncionales. Es decir, deben ser óptimas tanto en situaciones estáticas como en movimiento, y proporcionar una adecuada agudeza visual tanto para visión lejana como cercana, entre otros aspectos. Otro hallazgo relevante es que las soluciones deben ser personalizables, ya que los estudios afirman que, aunque dos personas tengan la misma patología, cada condición visual es diferente. Un aspecto clave es el diseño de los dispositivos montados en la cabeza, ya que, aunque la solución sea efectiva y útil, muchos pacientes deciden no emplearla debido a la estigmatización social que se deriva de llevar dispositivos aparatosos y poco discretos. Sobre la interacción de los pacientes con la ayuda existen menos estudios pero es un aspecto crucial dadas sus limitaciones visuales. En este trabajo se desarrolla un sistema IoT basado en smart glasses y una aplicación Android como ayuda para la baja visión. El sistema permite la interacción mediante ges- tos empleando modelos de inteligencia artificial personalizados con datos recogidos con la propia aplicación, para ajustar parámetros como brillo y zoom de la imagen proyectada en las smart glasses en tiempo real. El sistema permite guardar estos parámetros personalizados en un servidor en la nube y recuperarlos en tiempo real para su aplicación automática. Además, el sistema implementa una funcionalidad que describe los objetos visibles a través de las smart glasses. También incluye un módulo que envía los datos de los sensores de las smart glasses a un servidor, desde donde pueden ser analizados. En conclusión, este proyecto demuestra el potencial del IoT combinado con smart glas- ses y el desarrollo de una aplicación, creando una ayuda visual, recopilando datos y apli- cando inteligencia artificial. Este proyecto establece las bases para evolucionar hacia una plataforma Health-IoT donde un especialista en baja visión pueda monitorear la ayuda visual, analizar datos, programar rutinas de rehabilitación y crear modelos de inteligencia artificial personalizados. ix Palabras clave Health-IoT, Android, Baja Visión, Smart Glasses, Inteligencia Artificial Abstract Development of an intelligent visual aid system based on smart glasses for people with low vision. Low vision is a significant deficiency in visual capacity that affects both visual acuity and the visual field, and does not improve with conventional treatment. Various studies project a moderate increase in the number of people who will experience low vision in the coming years. Traditional non-technological aids for low vision, such as prisms, magnifying glasses, telescopes, or handheld magnifiers, can distort images and cause visual jumps. After an exhaustive study on low vision and technological solutions based on head- mounted devices, such as smart glasses, it is concluded that these solutions must be mul- tifunctional. That is, they should be effective in both static and dynamic situations and provide adequate visual acuity for both near and far vision, among other aspects. Another relevant finding is that these solutions need to be customizable, as studies indicate that even if two people have the same condition, each visual impairment is different. A key aspect is the design of head-mounted devices, as many patients choose not to use them despite their effectiveness and usefulness due to the social stigma associated with wearing bulky and conspicuous devices. There are fewer studies on patient interaction with these aids, but this is a crucial aspect given their visual limitations. This work develops an IoT system based on smart glasses and an Android application as an aid for low vision. The system enables interaction through gestures by using artificial intelligence models personalized with data collected by the application itself, allowing adjustments to parameters such as brightness and zoom of the image projected in the smart glasses in real-time. The system allows these personalized parameters to be stored on a cloud server and retrieved in real-time for automatic application. Additionally, the system implements a functionality that describes visible objects through the smart glasses. It also includes a module that sends the smart glasses’ sensor data to a server, where it can be analyzed. In conclusion, this project demonstrates the potential of IoT combined with smart glasses and application development, creating a visual aid, collecting data, and applying artificial intelligence. This project lays the foundation for evolving into a Health-IoT platform where a low vision specialist can monitor the visual aid, analyze data, program rehabilitation routines, and create personalized artificial intelligence models. xi Keywords Health-IoT, Android, Low Vision, Smart Glasses, Artificial Intelligence Índice 1. Introducción 1 1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3. Plan de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Estado de la Cuestión 5 2.1. Baja visión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1. Degeneración macular . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2. Glaucoma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.3. Retinopatía diabética . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.4. Retinosis pigmentaria . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.5. Retos en baja visión . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2. Ayudas visuales tradicionales . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3. Head Mounted Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.1. Smart Glasses en la baja visión . . . . . . . . . . . . . . . . . . . . . 10 2.3.2. Realidad aumentada en baja visión . . . . . . . . . . . . . . . . . . . 10 2.3.3. Sistemas de ayuda visual comercializados . . . . . . . . . . . . . . . 10 2.3.4. Ayudas visuales no comercializadas . . . . . . . . . . . . . . . . . . 13 2.3.5. Aplicaciones móviles . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4. Tecnologías para un sistema IoT en baja visión . . . . . . . . . . . . . . . . 14 2.4.1. IoT y sistemas de ayuda visual . . . . . . . . . . . . . . . . . . . . . 14 2.4.2. Mediapipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.3. Firebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.4. ML Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4.5. Open CV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5. Técnicas de Inteligencia Artificial . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.1. Aprendizaje automático . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.2. Random Forest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.5.3. TensorFlow Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3. Planificación y recursos 21 3.1. Modelo de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 xiii 3.2. Recursos Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.1. Smart Glasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.2. Rokid SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.3. Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3. Recursos Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3.1. Kotlin Vs Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3.2. Corutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.3. ViewModels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.4. LiveData y MutableLiveData . . . . . . . . . . . . . . . . . . . . . . 26 3.4. Android Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5. Firebase Real Time Database . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.1. Firebase servicio de Machine Learning . . . . . . . . . . . . . . . . . 27 3.6. Modelos mediapipe de Machine Learning . . . . . . . . . . . . . . . . . . . . 28 3.6.1. Modelo de mediapipe Hand Gresture Classification . . . . . . . . . . 28 3.6.2. Modelos de mediapipe detección de puntos de referencia . . . . . . . 28 3.7. Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.8. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4. Desarrollo del proyecto y resultados 31 4.1. Integración del SDK de Rokid con la aplicación . . . . . . . . . . . . . . . . 31 4.1.1. Conexión mediante USB-C . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.2. Uso de la cámara de las Smart Glasses . . . . . . . . . . . . . . . . . 31 4.2. Firebebase Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3. Integración de mediapipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3.1. Procedimiento y normalización de coordenadas . . . . . . . . . . . . 34 4.3.2. Funcionalidad de brillo . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4. Funcionalidad de zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.5. Interacción mediante botón físico . . . . . . . . . . . . . . . . . . . . . . . . 34 4.6. Integración con Firebase y modelo de datos . . . . . . . . . . . . . . . . . . 35 4.6.1. Conexión con la aplicación . . . . . . . . . . . . . . . . . . . . . . . . 35 4.6.2. Modelo de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.7. Vistas del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.7.1. Sensores SG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.7.2. Ayuda visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.8. Estados de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.9. Integración del narrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.10. Funcionalidad Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . 41 4.11. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.12. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.12.1. Herramientas para el análisis de los resultados . . . . . . . . . . . . . 42 4.12.2. Automatización para la creación de un dataset personalizado . . . . 42 4.12.3. Modelos iniciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.12.4. Análisis exploratorio con segundo dataset . . . . . . . . . . . . . . . 44 4.12.5. Resultados Red neuronal Fully Connect . . . . . . . . . . . . . . . . 45 4.12.6. Resultados Con Random Forest . . . . . . . . . . . . . . . . . . . . . 45 4.12.7. Resultados support vector machines . . . . . . . . . . . . . . . . . . 49 4.12.8. Conclusiones de los resultados . . . . . . . . . . . . . . . . . . . . . . 49 5. Conclusiones y Trabajo Futuro 51 5.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6. Introduction 53 6.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 6.2. Project Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.3. Workplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.4. Document structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 7. Conclusions and Future Work 57 7.1. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 7.2. Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Bibliografía 59 Índice de figuras 2.1. Visión de un paciente con degeneración macular (Alcocer Optica, 2024). . . 6 2.2. Visión de un paciente con Glaucoma (Alcocer Optica, 2024). . . . . . . . . . 6 2.3. Visión de un paciente con retinopatía diabética (Alcocer Optica, 2024). . . . 7 2.4. Visión de un paciente con retinosis pigmentaria (Alcocer Optica, 2024). . . . 7 2.5. Ayudas visuales tradicionales (ZooMax, 2024). . . . . . . . . . . . . . . . . . 9 2.6. LVES fue el primer sistema basado en HMD para baja visión. . . . . . . . . 9 2.7. Sistema Iris Vision Inspire. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.8. Sistema Orcam My Eye. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.9. Sistema Acesight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.10. Sistema eSight 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.11. Sistema Retiplus 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.12. Puntos de referencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.13. SVM esquema (Tasmay Pankaj Tibrewal, 2024) . . . . . . . . . . . . . . . . 19 3.1. Tablero de tareas del desarrollo del proyecto. . . . . . . . . . . . . . . . . . 22 3.2. Diagrama de Gantt primer cuatrimestre. . . . . . . . . . . . . . . . . . . . . 22 3.3. Diagrama de Gantt segundo trimestre. . . . . . . . . . . . . . . . . . . . . . 23 3.4. Diagrama de Gantt tercer trimestre. . . . . . . . . . . . . . . . . . . . . . . 23 3.5. Smart Glasses Rokid Air Pro empleadas para el desarrollo. . . . . . . . . . . 24 3.6. Compatibilidad entre el Modelo Rokid Air Pro y SDK (Rokid, 2024b). . . . 25 3.7. Consola de Firebase donde se observa la funcionalidad de modelos persona- lizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.1. Listener que avisa cuando las gafas se conectan y desconectan. . . . . . . . 31 4.2. Comandos mediante gestos para cambiar en tiempo real parámetros de las smart glasses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3. Valor de los puntos de referencias normalizados tomados con las smart glasses. 34 4.4. Vistas de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.5. Estados de la aplicación en la ayuda visual. . . . . . . . . . . . . . . . . . . 40 4.6. Arquitectura de la aplicación. . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.7. Visualización predicciones con una red neuronal fully connected. . . . . . . . 43 4.8. Gesto ok abierto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.9. Distribución etiquetas del dataset. . . . . . . . . . . . . . . . . . . . . . . . 45 4.10. Predicciones red neuronal fully connect con 10 epochs. . . . . . . . . . . . . 46 4.11. Matriz de confusión con 100 estimadores. . . . . . . . . . . . . . . . . . . . 47 xvii 4.12. Matriz de confusión con el mejor modelo. . . . . . . . . . . . . . . . . . . . 48 4.13. Variación de la precisión media en la validación en función del número de estimadores y la profundidad máxima. . . . . . . . . . . . . . . . . . . . . . 48 4.14. Matriz de confusión obtenida con el mejor modelo elegido a través de los parámetros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Índice de tablas 3.1. Tabla comparativa de sistemas de ayuda en la baja visión. . . . . . . . . . . 29 4.1. Tabla comparativa red fully connect. . . . . . . . . . . . . . . . . . . . . . . 45 xix Capı́tulo 1 Introducción La baja visión (Salud Vision, 2024) es una deficiencia significativa de la capacidad visual, afectando aspectos como el campo visual, y sin tratamiento. Esta pérdida notable de visión provoca dificultades para realizar actividades de la vida diaria, como leer, hacer deporte, viajar o moverse. En Europa, 20 millones de personas padecen baja visión, y en España, 1,8 millones. En el presente trabajo se desarrolla un sistema Internet of Things (IoT) utilizando smart glasses, cuyo objetivo es proporcionar asistencia visual y mejorar la calidad de vida de personas con baja visión. En este proyecto se implementarán diversas técnicas propias del IoT, como la recopilación de datos, el envío de datos a la nube, la descarga, el análisis y la creación de modelos de inteligencia artificial en un servidor utilizando estos datos. Las principales funcionalidades del proyecto incluyen la interacción mediante gestos del paciente, permitiendo que este pueda modificar en tiempo real parámetros como el zoom o el brillo de lo que proyectan sus smart glasses. Otra funcionalidad consiste en guardar esos parámetros en una base de datos en la nube, de modo que el paciente pueda recuperarlos posteriormente y establecerlos automáticamente en la proyección de sus smart glasses. Además, la aplicación contará con inteligencia artificial para describir, mediante la pulsación de un botón en las smart glasses, los elementos que aparecen en una escena captada por la cámara de estas. El sistema también estará dotado de una funcionalidad que permite al paciente generar modelos de gestos personalizados y parametrizarlos para que realicen modificaciones en sus smart glasses. La aplicación también contará con un módulo que recopilará los datos de los sensores integrados en las smart glasses, específicamente del giroscopio, acelerómetro y magnetó- metro, y los enviará a una base de datos en la nube, donde podrán ser almacenados, descargados y analizados en un servidor. Esta investigación y desarrollo pretende ser un primer paso y una prueba de concepto hacia un sistema Health-IoT más robusto, donde se recopile la información de todos estos pacientes para su posterior análisis con la ambición de crear soluciones que se puedan ajustar de forma automática, inteligente y personalizada en poco tiempo a cada condición visual. 1 2 Capítulo 1. Introducción 1.1. Motivación Los dispositivos móviles y su uso se han normalizado y forman parte de nuestro día a día. Lo mismo pretende conseguir la Realidad Aumentada (RA) y mixta, ya que en los últimos años, este nuevo paradigma de interacción y tratamiento de la información está ganando peso en la sociedad. Las empresas tecnológicas apuestan cada vez más por esta nueva forma de interacción; un ejemplo actual es que Apple ha lanzado este año al mercado las Apple Vision Pro (Apple, 2024). La WHO (Organización Mundial de la Salud) (WHO, 2023) estima que en el mundo hay 2200 millones de personas con problemas de visión y sus previsiones son de crecimiento, debido principalmente al aumento de la esperanza de vida, ya que la edad es una de las principales causas que provocan problemas de visión. En el caso de la baja visión, numerosos estudios estiman un aumento moderado del número de pacientes. Varios estudios y datos también reflejan una alta tasa de ansiedad y depresión en personas con deficiencias visuales (Demmin y Silverstein, 2020; Rainey et al., 2016). En el ámbito económico, estas deficiencias visuales suponen un coste de 411 billones de dólares debido a la pérdida de productividad (WHO, 2023; Binns et al., 2012). Dado que el objetivo de este trabajo es mejorar la calidad de vida de las personas con baja visión, se investigará y explicará en qué consiste la baja visión y cuáles son las principales patologías que la provocan. Motivado por este contexto, el presente trabajo pretende investigar soluciones que mejo- ren la calidad de vida de las personas con baja visión empleando smart glasses. Se realizará una investigación integral, primero conociendo estas enfermedades, el perfil de los pacientes y sus principales limitaciones visuales, y se analizarán algunas soluciones actuales basadas en RA. Posteriormente, se investigará sobre el software y hardware que mejor se adapten a la solución y se desarrollará una ayuda visual. También se analizarán las posibilidades que tiene la RA en el ámbito de la baja visión para evolucionar e integrarse como un sistema Health-IoT (H-IoT). Este trabajo se va a realizar gracias al hardware y recursos proporcionados por la cátedra ONCE-Tiflotecnología y motivado por el proyecto IrisEmpower PLEC2022-009261. 1.2. Objetivos El principal objetivo de este trabajo es desarrollar un sistema IoT integrado con unas gafas de realidad aumentada y una aplicación Android, con el fin de mejorar la calidad de vida de personas con baja visión. Desde los años 90, se han propuesto soluciones basadas en Head-Mounted Display (HMD) (Massof et al., 1994) para el ámbito de la baja visión. Actualmente, gracias a los avances tecnológicos, estas soluciones han demostrado ser efica- ces para mejorar las capacidades visuales de esta población y su calidad de vida (Wittich et al., 2018; Amore et al., 2023). La aplicación se centrará en la interacción mediante gestos del paciente, permitiéndole configurar en tiempo real parámetros de la imagen proyectada, como el zoom, contraste o brillo. Además, la aplicación incluirá un módulo para recoger los valores de los sensores (giroscopio, acelerómetro, magnetómetro) de las gafas inteligentes y enviarlos a un servidor en la nube. Los parámetros de configuración se enviarán y almacenarán en una base de datos en la nube para su posterior recuperación por parte de los usuarios. Asimismo, se integrará la aplicación con frameworks de Inteligencia Artificial (IA) para dispositivos móviles, añadiendo funcionalidades de IA como el reconocimiento de 1.3. Plan de trabajo 3 objetos, con el objetivo de investigar la viabilidad de estas soluciones en términos de funcionalidades, hardware y rendimiento. También se investigará la manera de implementar una funcionalidad para generar modelos de gestos personalizados, asegurando que cada vez que se entrene y actualice el modelo en un servidor, éste se mantenga actualizado en la aplicación de forma automática. Los objetivos específicos de este trabajo son los siguientes: 1. Conocer las limitaciones visuales de estos pacientes y cómo es su resto visual, con el fin de comprender su comportamiento, su interacción y sus limitaciones. 2. Conocer e investigar las soluciones actuales para identificar líneas de mejora o aspec- tos no tratados. 3. Investigar el hardware que mejor se ajuste a este problema, teniendo en cuenta a los pacientes objetivo. 4. Una vez seleccionado el hardware, estudiar sus librerías, SDKs, módulos o softwa- re para poder llevar a cabo la implementación de un sistema IoT que permita su implementación. 5. Investigar y desarrollar una solución que permita almacenar valores en un servidor en la nube. 6. Investigar sobre librerías, frameworks y soluciones de IA para el desarrollo, especial- mente en el ámbito del desarrollo para móviles. 7. Investigar sobre la automatización para la generación de modelos personalizados y mantener el modelo de la aplicación móvil actualizado. 8. Desarrollar la aplicación que contenga toda la funcionalidad descrita. 1.3. Plan de trabajo Para cumplir con los objetivos, primero se llevará a cabo una investigación sobre la baja visión, con el fin de entender cómo es la visión de estos pacientes, su resto visual, sus principales limitaciones y cómo la tecnología puede mejorar su calidad de vida. Posteriormente, se analizarán los métodos tradicionales utilizados antes de la irrupción de las tecnologías modernas, basados principalmente en prismas (Apfelbaum y Peli, 2015). Se estudiarán y evaluarán las tecnologías actuales basadas en HMD y smart glasses que abordan este problema para identificar líneas de mejora y posibles innovaciones. Se con- siderarán tanto productos comercializados como estudios clínicos que avalen su eficacia, además de revisarse trabajos o implementaciones no comercializadas desarrolladas para smart glasses de uso común. Con la base adquirida en la etapa anterior, se evaluará el hardware más adecuado que mejor se adapte a la finalidad del proyecto. También se investigará el software, frame- works y librerías disponibles. Se prestará especial atención a las herramientas basadas en inteligencia artificial y la viabilidad de su integración en este proyecto. Además, se explorará cómo el IoT puede aplicarse en este ámbito. Con este conocimiento y el hardware seleccionado, el siguiente paso será realizar las primeras pruebas, integraciones de librerías e implementaciones para obtener los prime- ros resultados. Después de esta fase, se habrán descartado el software y las soluciones no 4 Capítulo 1. Introducción viables, filtrando así los planteamientos y desarrollos con mejores resultados y más prome- tedores. Finalmente, se desarrollará la aplicación, siguiendo el siguiente orden: Integración del SDK de las gafas con Android. Manipulación de la imagen proyectada, cambiando zoom y brillo. Integración de la interacción gestual para cambiar parámetros en tiempo real. Integración con la base de datos para guardar parámetros y su posterior recuperación. Acceso a través del API del SDK de las smart glasses a los valores de los distintos sensores. Integración de inteligencia artificial en la aplicación con el fin de ayudar a los usuarios. Automatizar el pipeline de aprendizaje automático para que genere modelos de gestos personalizados y mantenga estos modelos actualizados en la aplicación Android. Este proceso será iterativo y, en caso de ser necesario, se cambiará el diseño o imple- mentación del sistema. 1.4. Estructura del documento Este documento se estructura de la siguiente forma: En el Capítulo 2, ”Estado de la Cuestión”, se estudia el estado del arte y se realiza un análisis sobre la baja visión y las personas que la padecen. Se evalúan las soluciones comerciales actuales y los estudios clínicos que ratifican su eficacia, así como el hardware utilizado tanto en estas soluciones como en otras no comercializadas. Además, se examina el software, las librerías, las plataformas, las soluciones basadas en IA y las bases de datos que se aplicarán en el proyecto. Finalmente, se enumeran las conclusiones. En el Capítulo 3, ”Planificación y Recursos”, se detalla la planificación del proyecto, se describen los recursos de hardware seleccionados y el motivo de su elección, los SDKs empleados, las librerías para la integración de inteligencia artificial en las aplicaciones móviles y los entornos de desarrollo que se utilizarán. En el Capítulo 4, ”Desarrollo del Proyecto y resultados”, se presenta el desarrollo del proyecto, detallando cómo se implementa cada una de las funcionalidades y su integración con las herramientas y software seleccionados. En el Capítulo 5, ”Conclusiones y trabajo futuro”, se exponen los resultados obtenidos, las conclusiones del estudio y se enumeran las posibles líneas de trabajo futuro. Capı́tulo 2 Estado de la Cuestión En este capítulo se definirán las principales patologías que causan la baja visión, des- cribiendo cómo es la visión de estos pacientes. También se definirán los retos en la baja visión, los distintos métodos que ayudan a estas personas, y se analizarán las principales herramientas tecnológicas que se pueden emplear para mejorar la vida de esta población, desde bases de datos en tiempo real hasta librerías de inteligencia artificial. Se realizará una búsqueda de las soluciones tecnológicas actuales, describiendo su hard- ware, funcionalidades y limitaciones. Este capítulo se organiza de la siguiente manera: 1) primero, se describen las principales patologías que provocan la baja visión; 2) se definen las principales ayudas tradicionales para la baja visión; 3) se describen las ayudas basadas en dispositivos montados en la cabeza y se presentan algunas aplicaciones móviles que pueden emplearse en la baja visión; 4) se detallan las tecnologías que se emplearán en el sistema IoT para baja visión; 5) se enumeran las técnicas de inteligencia artificial que se utilizarán en este proyecto para entrenar modelos, comparándose los resultados; 6) se exponen las conclusiones. 2.1. Baja visión Una persona padece baja visión si tiene una agudeza visual menor a 0.3 en el ojo con mejor visión o cuando el campo visual es inferior a 20º. Las causas de la baja visión se deben principalmente a patologías como la Degenera- ción Macular Asociada a la Edad (DMAE), retinosis pigmentaria, retinopatía diabética o glaucoma. A continuación, se describen en detalle estas patologías. 2.1.1. Degeneración macular La degeneración macular afecta a la mácula central y es la principal causa de pérdida de visión irreversible. Esta condición afecta la nitidez visual, y sus principales limitaciones son la lectura y el reconocimiento facial (Palanker et al., 2022). Se estima que el número de pacientes con esta condición aumentará de 196 millones en 2020 a 288 millones en 2040 (Wong et al., 2014). En la Figura 2.1 se representa cómo es la visión de esta población. 5 6 Capítulo 2. Estado de la Cuestión Figura 2.1: Visión de un paciente con degeneración macular (Alcocer Optica, 2024). 2.1.2. Glaucoma Esta enfermedad afecta al nervio óptico, al campo visual, a la sensibilidad al contraste, al deslumbramiento, y a los tiempos y grado de adaptación a la oscuridad (Enoch et al., 2020). Se estima que el número de personas con esta enfermedad aumentará de 53 millones en 2020 a 111 millones en 2040 (Tham et al., 2014). En la Figura 2.2 se muestra cómo es la visión de una persona con glaucoma. Figura 2.2: Visión de un paciente con Glaucoma (Alcocer Optica, 2024). 2.1. Baja visión 7 2.1.3. Retinopatía diabética La retinopatía diabética (RD) es una complicación de la diabetes que puede ocasionar problemas visuales llegando a la ceguera. De la diabetes se espera un crecimiento desde los 451 millones de personas en 2017 a los 693 millones en 2045 (Cho et al., 2018). Por otro lado, de la RD, se estima que en Estados Unidos solamente en 2050 se alcancen los 3 millones (Khalil, 2017). En la Figura 2.3 se muestra la visión de un paciente con retinopatía diabética. Figura 2.3: Visión de un paciente con retinopatía diabética (Alcocer Optica, 2024). 2.1.4. Retinosis pigmentaria Esta enfermedad causa progresivamente perdida de visión y afecta a más de un millón de personas en el mundo, los primeros síntomas son la pérdida de visión nocturna, de la agudeza visual, y estrechamiento del campo visual (Cross et al. (2022), (Verbakel et al., 2018)). En la Figura 2.4 aparece como es la visión de una persona con retinosis pigmentaria. Figura 2.4: Visión de un paciente con retinosis pigmentaria (Alcocer Optica, 2024). 2.1.5. Retos en baja visión A continuación se describen y enumeran los retos y dificultades en el ámbito de la baja visión. 8 Capítulo 2. Estado de la Cuestión 2.1.5.1. Personalización Estudios como (Ruffieux et al., 2023) denotan la necesidad de ajustar y personalizaar cada ayuda visual a cada condición visual. La Organización mundial se la salud (WHO, 2023) recalca que aunque dos pacientes tengas la misma patología, su condición visual es diferente. En (Deemer et al., 2018) proponen además que cada ayuda visual de este tipo debe ser preescrita por un especialista en baja visión. 2.1.5.2. Deambulación con seguridad Esta población, dadas sus condiciones, tiene un alto riesgo de sufrir caídas y fracturas (Dhital et al., 2010). Proporcionar seguridad en la deambulación supone un reto. Además al proporcionar seguridad al caminar se consigue aumentar la calidad de vida de estas personas. Las ayudas en este aspecto son escasas y deambular por escaleras supone un reto particularmente difícil para esta población (Zhao et al., 2018). 2.1.5.3. Multifuncionalidad En las primeras investigaciones y desarrollos de esta clase de soluciones, la evaluación con estudios clínicos resaltó la necesidad del desarrollo de una ayuda que sea óptima en varias tareas y no particularmente útil en una específica. Por ejemplo, las ayudas tienen que aportar buenas soluciones en estático, deambulación, agudeza visual lejana, intermedia y próxima así como contraste (Culham et al., 2004). 2.1.5.4. Diseño El diseño en sistemas basados en HMD para ayudas visuales es importante. El estu- dio (MP Hoogsteen et al., 2020) investiga la relación entre la funcionalidad y la estética concluyendo que el diseño es fundamental para la adopción de estas soluciones para evitar caer en desuso a causa de una posible estigmatización (Lam y Leat, 2013). En (Sivakumar et al., 2020) se concluye que aunque el sistema ayuda al paciente, si el diseño no es discreto y adecuado, esta población no empleará la ayuda. 2.1.5.5. Interacción Para la interacción se han planteado soluciones mediante comando de voz para perso- nas con baja visión (Schipor y Aiordăchioae, 2020). La mayor parte de la interacción se realiza de forma física pulsando botones. En este área hay menos investigación y estudios clínicos considerándose fundamental. En este proyecto se propone una solución empleando interacción mediante gestos. 2.2. Ayudas visuales tradicionales Dentro de las ayudas visuales tradicionales nos encontramos con telescopios inverti- dos, prismas de fresnel peli (Apfelbaum y Peli, 2015) o telescopios TS (Bowers et al., 2005). Estas ayudas tradicionales tienen como inconveniente que reducen la agudeza visual y hacen percibir deformidades de la imagen. Tampoco son configurables en tiempo real (zoom, brillo, contraste) (Apfelbaum y Peli, 2015). En la Figura 2.5 se observan algunas ayudas tradicionales como lupas y telescopios. Además, su estética no es buena generando estigmatizacióm y desuso en algunos de ellos. 2.3. Head Mounted Displays 9 Figura 2.5: Ayudas visuales tradicionales (ZooMax, 2024). 2.3. Head Mounted Displays En esta sección se presentan las principales ayudas tecnológicas dedicadas a la baja visión, principalmente los sistemas basados en head-mounted display (HMD). Los HMD son dispositivos portátiles que se colocan sobre la cabeza y presentan imá- genes directamente en los ojos de los usuarios. Estos dispositivos pueden ser binoculares o monoculares. Pueden estar equipados con audio, sensores, pantallas LCD u OLED, conec- tividad WIFI, Bluetooth y diferentes sensores como giroscopios, acelerómetros o profun- didad. Algunas aplicaciones comunes de estos dispositivos son la Realidad Aumentada y Realidad Virtual. Las ayudas visuales basadas en HMD tuvieron sus primeros desarrollos en los años 90 siendo el pionero el sistema Low Vison Enhancement Sytem (LVES) (Massof et al., 1994), el cual proyectaba imágenes en blanco y negro. En la Figura 2.7 se observa una imagen de este sistema. Figura 2.6: LVES fue el primer sistema basado en HMD para baja visión. En 1999 se realizó el primer estudio sobre estas ayudas visuales (Harper et al., 1999), siendo la capacidad tecnológica la principal limitación ya que los dispositivos eran pesados, aparatosos, tenían resoluciones de baja calidad, problemas de portabilidad y problemas de batería. 10 Capítulo 2. Estado de la Cuestión 2.3.1. Smart Glasses en la baja visión En el estudio (MP Hoogsteen et al., 2020), se investigó sobre la relación entre la funcio- nalidad y la estética de estas soluciones cuya conclusión fue que las discreción en el diseño es un factor crítico para su adopción por temor a un desuso a causa de la estigmatización social. 2.3.2. Realidad aumentada en baja visión La realidad aumentada captura y procesa el entorno físico en tiempo real y añade elementos virtuales a este entorno. Su continua evolución proporciona a las personas con problemas de baja visión unas herramientas y funcionalidades que pueden ayudar a mejorar su calidad de vida a través de una ayuda visual e interacción inteligente (Ro et al., 2018). En (Coughlan y Miele, 2017) se acuña el término Augmented Reality for Visual Impairment (ARFVI) y se denota el potencial que tiene la RA en este ámbito. La realidad aumentada permite actuar directamente sobre la escena visual vista por el paciente en tiempo real y modificar elementos como el zoom, brillo, contraste o reducir o ampliar el campo visual dando como resultado una percepción de la imagen enriquecida (Chen et al., 2019). 2.3.3. Sistemas de ayuda visual comercializados Para esta labor se realizó una investigación en bases de datos científicas y en webs para identificar soluciones basadas en HMD, con especial interés sobre las que se hayan realizado estudios clínicos. 2.3.3.1. Sistema Iris Vision Inspire Emplea sus propias SG, proporciona zoom, magnificación x10, audio-lectura, controles por voz (Iris Vision, 2024). Esta solución no presenta la posibilidad de personalización. Su diseño es discreto y presenta baja estigmatización, pero aún así supone que el paciente lleve consigo más dispositivos. El precio está en torno a los 4000€. Esta solución no aporta información técnica sobre las SG que emplea. Figura 2.7: Sistema Iris Vision Inspire. 2.3. Head Mounted Displays 11 2.3.3.2. Sistema Orcam MyEye Este sistema no emplea SG, se vale de un dispositivo que se ajusta a las gafas. Permite la lectura, el reconocimiento facial, además proporciona información por voz en tiempo real, identifica colores, productos y elementos cotidianos como billetes. Funciona en tiempo real y sin necesidad de conexión. Tiene un peso de 22.5 gramos, dispone de altavoz integrado y puede guardar hasta 100 caras para ser reconocidas. Con un precio es de 4.500$, cuenta con cámara de 13 píxeles, batería de 320mAH nominal, 3,7VCD. El estudio (Amore et al., 2023) realizado sobre 100 pacientes, evidenció que este sistema mejora significativamente tareas cotidianas como leer periódicos, pantallas digitales o reconocimiento de personas. Figura 2.8: Sistema Orcam My Eye. 12 Capítulo 2. Estado de la Cuestión 2.3.3.3. Sistema AceSight Para el sistema AceSight se realizó un estudio clínico (Xu et al., 2024), en este estudio se midieron el campo visual, la habilidad de búsqueda, el tiempo para anticipar obstáculos en tiempo real, la deambulación y las sensaciones de cada paciente. El estudio demostró que más de los 57 pacientes encontró útil la ayuda, sobre todo mostró mejoras en la anticipación de obstáculos y en la ampliación del campo visual. En particular, los jóvenes encontraron más útil la ayuda, sin embargo, la pruebas de búsqueda de objetos y deambulación no mejoraron respecto a no llevar el sistema. Además los pacientes reportaron la necesidad de un diseño más portable y más parecido a unas gafas corrientes. Entre sus especificaciones técnicas encontramos, 60Hz de refresco y cámara de 8 megapíxeles. En la Figura 2.9, se observa este sistema donde se denota que su diseño es poco discreto. Su precio es de 4.295$. Figura 2.9: Sistema Acesight. 2.3.3.4. Sistema eSight Este sistema proporciona imágenes en tiempo real mejoradas. En el estudio (Wittich et al., 2018), se evidencia que eSight mejora las capacidades visuales como la lectura, el reconocimiento facial o la sensibilidad al contraste. Entre sus especificaciones presenta dos pantallas OLED independientes, cámara de 18 megapíxeles, 3 altavoces integrados, conectividad Wifi y Bluetooth. Precio 6,950$. En la Figura 2.10 se observa el sistema cuyo diseño no es discreto, lo que hace que sea un dispositivo aparatoso y pueda provocar que el paciente no lo use debido a una posible estigmatización. Figura 2.10: Sistema eSight 4 2.3. Head Mounted Displays 13 2.3.3.5. Retiplus 1 El sistema Retiplus 1 es la apuesta española por la baja visión basada en sistemas HMD. Su sistema es novedoso ya que desde el diseño apuesta por añadir a los especialistas en baja visión como parte del ecosistema de la ayuda. Su solución se basa en el desarrollo de una aplicación para el especialista, en la cual se pueden evaluar las condiciones visuales del paciente proyectando virtualmente optotipos digitales y funcionalidades para determinar el campo visual y la capacidad de movimiento ocular conocido también como rastreo ocular. Para estas evaluaciones la tablet y las SG se conectan vía Bluetooth. También permite crear vistas personalizadas y programar rutinas adaptadas. Para la parte de ayuda visual emplea las Epson Moverio BT-350 (Epson, 2024). Este modelo tiene 23º de campo de visión, resolución 1280x 720, displays Si-Oled, cámara de 5 megapíxeles, sensores GPS, brújula, giroscopio, CPU Intel Atomx5 2GB de RAM, conectividad Wifi y Bluetooh, batería de 2950 mAH. Figura 2.11: Sistema Retiplus 1 2.3.4. Ayudas visuales no comercializadas Sobre algunas smart glasses comerciales, también se han implementado ayudas para personas con baja visión. En el trabajo presentado en (Stearns et al., 2018), se presenta una solución basada en la magnificación y en la lectura con las Smart Glasses Mircrosoft HoloLens. Una solución sobre las smart glasses Epson Moverio BT-200 SG, empleando algoritmos de deep learning para detectar y clasificar objetos en movimiento fue realizado en (Younis et al., 2019). Adicionalmente se introdujo una compensación de movimiento previa a la detección de objetos para evitar falsos desplazamientos provocados por el movimiento generado por la cámara. En la solución (Rao et al., 2021) utilizan servicios cloud para describir las escenas, esta solución esta limitada por la conectividad a internet lo que provoca una latencia variable. La solución expuesta en (Hwang y Peli, 2014) sirve como una herramienta para resaltar los bordes de la escena. Para estas dos últimas soluciones se utilizaron las Google Smart Glasses. 14 Capítulo 2. Estado de la Cuestión 2.3.5. Aplicaciones móviles El presenta trabajo se basa en el desarrollo de una aplicación móvil, por lo que se investigó sobre aplicaciones dedicadas a la ayuda de personas que padecen baja visión. Ninguna de las siguientes aplicaciones incorporan HMD. Aplicaciones móviles para Android e iOS para esta finalidad encontramos ScanLife ( Scanbuy Inc, 2024) la cual lee códigos de barra y QR para extraer la información del producto haciendo una foto. La aplicación móvil Magnify (Mácula Retina, 2024) cuya función es magnificar lo que captura por la cámara y lo muestra por pantalla. Otra aplicación es Be My Eyes (Avila et al., 2016), la cual interconecta a personas con problemas de visión con personas voluntarias para asistir en tiempo real. Seeing AI (Granquist et al., 2021) es una aplicación de Microsoft, la cual tiene funcionalidades de text-to-speech, identificación de productos mediante códigos QR y descripción de escenas, rostros y emociones. 2.4. Tecnologías para un sistema IoT en baja visión En este apartado se describen las tecnologías, como bases de datos, librerías o fra- meworks, que se emplearon en este proyecto para implementar un sistema IoT para baja visión. 2.4.1. IoT y sistemas de ayuda visual El internet de las cosas (IoT), se refiere a la interconexión de los dispositivos físicos que son capaces de recopilar información y compartir datos a través de internet (Gubbi et al., 2013). Uno de los objetivos es crear un entorno inteligente donde los dispositivos se comuniquen entre si. El Health-IoT trata de la aplicación de las tecnologías del IoT en el ámbito de la salud, enfocado en la personalización y la monitorización de los pacientes, la toma de decisiones en base a un análisis de los datos recolectados y la reducción de costes (Gubbi et al., 2013). En la literatura revisada no se encontró ningún sistema IoT con esta finalidad. Sin embargo, se encontraron trabajos en otros ámbitos como en la agricultura, en la telemedi- cina y en la salud para el monitoreo de personas con epilepsia. En (Alonso et al., 2020), se desarrolla e implementa una plataforma Edge-IoT para el monitoreo del ganado y cul- tivos en la ganadería. Para la implementación del edge, se utilizaron dispositivos como la Raspberry Pi3 Model B. Este trabajo resultó tener un costo menor para el envío de datos debido a la incorporación del edge computing o computación en el borde (Varghese et al., 2016), liberando recursos de computo, almacenamiento y red en la nube. Mejoró la fiabili- dad de la transmisión a la nube, ayudó en la detección de datos duplicados y permitió la aplicación de machine learning en el edge, además de reducir el tráfico de datos y el alma- cenamiento en la nube. Una solución basada en Edge computing puede aplicarse también en el tratamiento de datos en el ámbito de la baja visión. Un ejemplo se sistema H-IoT para monitorear a personas epilépticas lo encontramos en (Gupta et al., 2019), donde este sistema almacena en la nube datos de electroencefalograma, enviando los datos a los expertos en tiempo real para que puedan predecir posibles ataques o puedan dar feedback. Estos trabajos basados en IoT aportan soluciones y enfoques que se pueden aplicar en la baja visión. 2.4. Tecnologías para un sistema IoT en baja visión 15 2.4.2. Mediapipe En la revisión del estado del arte, no se encontró ningún enfoque basado en la interacción por gestos. Esta es una solución con potencial, ya que permite el control y configuración empleando gestos con las manos. Después de una revisión de las herramientas disponibles, se decide realizar el desarrollo con mediapipe, debido a que presenta soluciones para Android, iOS y Web y permite la personalización. Mediapipe (Google AI, 2024) es un framework desarrollado por Google que aporta soluciones y herramientas para aplicar de forma rápida inteligencia artificial y machine learning a las aplicaciones. Permite la personalización y adaptación de estas soluciones y esta disponible para las principales plataformas, Android, Web, Python, iOS. Entre las soluciones que aporta y que se pueden aplicar a la finalidad de este trabajo son: 1. Detección de objetos permitiendo crear modelos personalizados. 2. Detección de puntos de referencia de la mano, solución de especial interés pues permite crear modelos a gusto de los pacientes para poder personalizarlos y etiquetar un determinado gesto. 3. Reconocimientos de gestos, esta solución ya aporta modelos entrenados con gestos predefinidos. 4. Puntos de referencia de pose, permite crear modelos de pose para etiquetar poses personalizados, como personas de pie, personas caminando, personas levantando una mano, o modelos para el lenguaje corporal. 5. Puntos de referencia faciales, esto permite crear modelos en base a esos puntos de referencia para poder etiquetar expresiones faciales o se puede investigar la viabilidad de emplear estos puntos para reconocimiento de personas. 2.4.2.1. Funcionalidad de reconocimiento de gestos Permite en tiempo real reconocer gestos. Como parte del resultado, también aporta los puntos de referencia. Los benchmarks de esta funcionalidad o tarea tienen una latencia de 16.76ms en CPU y 20.87ms en GPU sobre un dispositivo Pixel 6. Esta solución permite la personalización de modelos empleando la librería MediaPipe Model Marker. Figura 2.12: Puntos de referencia. 2.4.2.2. HaGRID Hand Gesture Recognition Image Dataset (HaGRID) (Kapitanov et al., 2024) es un dataset con más de medio millón de imágenes de gestos, cuya finalidad son sistemas de 16 Capítulo 2. Estado de la Cuestión videoconferencia, automatización de sistemas del hogar o sector del automóvil entre otras. Dispone de 18 gestos etiquetados y una característica interesante es que podría permitir la detección de gestos dinámicos como deslizamientos de mano a la derecha o izquierda o detectar el gesto de stop, aplicando las técnicas adecuadas. Este dataset tiene bastante po- tencial para poder entrenar modelos de gestos y poder añadirlos en sistemas que requieran interacción mediante gestos. 2.4.3. Firebase Tras el estudio de la baja visión, se observa que todavía no se están aplicando técnicas de análisis de datos ni recolección de este tipo de información en este campo. Por esta razón, en este trabajo se propone una solución para el almacenamiento de datos y su posterior análisis. En la búsqueda de soluciones, dentro del desarrollo móvil destaca especialmente Firebase de Google. Con el fin de poder almacenar y recuperar información, se decidió incluir en el proyecto Firebase (Firebase Google, 2024). Específicamente, se utilizó Firebase Realtime Data- base, una base de datos NoSQL en la nube. Los datos se sincronizan con todos los clientes en tiempo real y se almacenan en formato JSON. Sus funciones clave son: estar diseñada para aplicaciones móviles en tiempo real, permitir la sincronización de los datos, es decir, si se modifica algún dato, todos los clientes conectados a esta base de datos reciben la actualización. Esta característica es de especial interés para el IoT, ya que desde una base de datos se pueden cambiar parámetros en tiempo real. Además, permite el trabajo sin conexión; en caso de no tener conexión, los datos persisten en disco y, cuando se recupera la conexión, los clientes correspondientes reciben los datos faltantes y se sincronizan con el servidor. En cuanto al acceso y seguridad, se pueden aplicar reglas de acceso basadas en expresiones que se activan cuando se lee o se escribe en la base de datos. Firebase se emplea en varios proyectos IoT, como en la detección de fallos en una línea eléctrica, enviando señales a esta base de datos en tiempo real (Goswami y Agrawal, 2020). Otro ejemplo se encuentra en (Ahmed et al., 2020), donde se implementa un sistema de vigilancia en tiempo real para Android, utilizando Firebase para interpretar los datos y enviar alertas instantáneas. En (Le et al., 2021) se presenta un caso de uso para el control de actuadores y monitoreo en tiempo real de un área extensa, utilizando esta base de datos y una aplicación móvil. 2.4.3.1. Firebase Machine Learning Algunos sistemas de ayuda visual han mostrado resultados positivos al aplicar inteli- gencia artificial, y estos resultados han sido avalados por estudios clínicos, como en el caso del sistema Orcam. Siguiendo esta línea y buscando la personalización, en este trabajo se pretenden añadir modelos personalizados de interacción mediante gestos para cada condi- ción visual con el sistema de ayuda visual. Para ello, cada usuario, mediante la aplicación, podrá generar datos de un determinado gesto, etiquetándolo con una acción específica, como brillo o zoom. Posteriormente, se podrá entrenar un nuevo modelo que incorpore este nuevo gesto. Para esta tarea, se ha llevado a cabo una investigación que permite modificar los modelos de manera dinámica, es decir, sin necesidad de actualizar la aplicación, y con rapidez en entornos Android, además de proporcionar un lugar para su almacenamiento y modificación. Android presenta algunas limitaciones en este sentido, ya que la carpeta “assets”en la que se suelen almacenar los modelos y otros ficheros no permite modificación dinámica. De igual manera, la caperta “ml” donde se almacenan por defecto los modelos Tensor FLow Lite Model solo permite ser modificada cuando se actualiza la aplicación. 2.4. Tecnologías para un sistema IoT en baja visión 17 Investigando, se llega a Firebase ML Custom Models, funcionalidad que permi- te actualizar los modelos empleados por las aplicaciones sin necesidad de actualizar las aplicaciones. Se trata de un SDK que aporta funcionalidades en el ámbito del machine learning de una forma sencilla. Una funcionalidad de interés para este proyecto es que aporta una API para tratar modelos personalizados, tanto para iOS, como para Android. Permite añadir modelos e ir actualizándolos en Firebase y descargarlos en la forma y momentos que se requiera. A la hora del descargar el modelo, la descarga puede ser de tres tipos: LOCAL MODEL, con este modo se emplea el modelo guardado localmente en el dispositivo. LOCAL MODEL UPDATE IN BACKGROUND, con este modo se obtiene el modelo local y se empieza la descarga del modelo en segundo plano, si no hay modelo nuevo, el local es el último. LATEST MODEL Obtiene el último modelo, si el modelo actualmente empleado por la aplicación es el último, emplea ese. En caso contrario se bloquea hasta que se descarga la última versión. Una limitación del API encargada de la descarga de modelos es que solo se puede emplear para descargar modelos alojados en el alojamiento Firebase Machine Learning. 2.4.4. ML Kit ML Kit (Google ML Kit, 2024) es un framework de desarrollo de machine learning de Google, que simplifica la integración de aprendizaje automático a las aplicaciones móviles y web, pudiéndose emplear tanto en Android como en iOS. Aporta modelos preentrenados para reconocimiento de texto, puntos de referencia faciales o escaneo de código de barras. Se puede aplicar en el ámbito de la salud como en (Eroğlu y Abou Harb, 2023), donde se emplea para evaluar la dislexia. En concreto este novedoso estudio no invasivo para los pacientes, emplea los puntos de referencia faciales para detectar expresiones y movimientos asociados a las dificultades propias de la dislexia. El estudio concluye que ML Kit logró una mejor precisión entre los métodos probados y recalcan el potencial del machine learning en la detección de la dislexia. Entre las funcionalidades que este framework ofrece y que se están empezando a incluir con resultados positivos en el ámbito de la salud, y son de interés para nuestra finalidad de mejorar la calidad de vida de personas con baja visión, encontramos: Reconocimiento de texto, entre los lenguajes que reconoce tenemos, chino, japones, y lenguajes con caracteres latinos. Identificación de puntos de referencia de la cara y reconocimiento de expresiones faciales. Etiquetado de imágenes (Image Labeling), esta API permite detectar y extraer in- formación sobre elementos que aparecen en una imagen, pudiendo detectar objetos comunes, lugares, actividades, animales o productos. Todas estas funcionalidades no requieren conexión a internet. 18 Capítulo 2. Estado de la Cuestión 2.4.4.1. Clase RemoteModelManager de ML Kit Dentro del API de ML Kit (Google ML Kit, 2024) se encuentra la clase Remote Model Manager, que permite gestionar modelos alojados remotamente, incluidos los modelos alojados en Firebase ML. Esta solución permite descargar modelos desde distintas fuentes, no solo desde Firebase, sino también desde Google Cloud Storage o URLs específicas. En esta clase no es necesario especificar la forma de descarga, ya que automáticamente verifica si el modelo almacenado es el más reciente. 2.4.5. Open CV Open Computer Vision (OpenCV) (OpenCV Org, 2024), es una biblioteca de visión artificial y aprendizaje automático con soporte multiplataforma incluido Android, escrito en C++ y se emplea en múltiples áreas como robótica, realidad aumentada o filtrado de imágenes. En (Bai et al., 2020) se realiza una implementación para dispositivos móviles de detección de bordes en tiempo real. Los SKDs de las smart glasses mayoritariamente disponen de funcionalidades por de- fecto de zoom, brillo o contraste. Esta librería se empleará a modo de comparación con las funcionalidades del SDK para elegir la que mejor se ajuste a la funcionalidad y mejor rendimiento tenga. 2.5. Técnicas de Inteligencia Artificial Uno de los objetivos de este proyecto es integrar inteligencia artificial en el sistema, por ejemplo, para la interacción mediante gestos con la ayuda visual. Por lo tanto, se investigaron diversas técnicas para entrenar y comparar modelos, así como herramientas que puedan contribuir a este propósito. 2.5.1. Aprendizaje automático El aprendizaje automático (ML) (Mitchell y Mitchell, 1997) se engloba dentro de la inteligencia artificial y su objetivo es la creación de modelos que permitan a los sistemas aprender a partir de la experiencia y los datos. Se pueden distinguir varias modalidades de aprendizaje: Aprendizaje Supervisado: en este enfoque, los modelos se entrenan con datos etique- tados. Es ampliamente utilizado en la clasificación de imágenes, reconocimiento de voz y medicina. Aprendizaje No Supervisado: en este caso, los modelos se entrenan con datos sin etiquetar. Se aplica en análisis de mercado, análisis de redes sociales y detección de anomalías. Aprendizaje por Refuerzo: el sistema aprende a tomar decisiones interactuando con el entorno. El sistema recibe recompensas o castigos en función de las acciones que realiza, lo que guía su aprendizaje. 2.5.1.1. Redes neuronales Las redes neuronales (Abdi et al., 1999; Schmidhuber, 2015) son sistemas computacio- nales inspirados en la estructura y funcionamiento del cerebro humano. Están compuestas 2.5. Técnicas de Inteligencia Artificial 19 por unidades interconectadas llamadas neuronas, organizadas en capas, que procesan in- formación de manera colaborativa para resolver tareas complejas como clasificación, regre- sión y reconocimiento de patrones. Las redes neuronales son fundamentales en el campo del aprendizaje profundo (LeCun et al., 2015), una subdisciplina del aprendizaje automá- tico, que se enfoca en el uso de arquitecturas profundas para modelar y entender datos complejos. Una red neuronal típica incluye una capa de entrada, una o más capas ocultas y una capa de salida. Las neuronas en estas capas están conectadas mediante pesos, que se ajustan durante el proceso de entrenamiento utilizando algoritmos de optimización como el descenso de gradiente. Las funciones de activación no lineales, como ReLU (Rectified Linear Unit) o sigmoide, permiten a las redes neuronales capturar relaciones complejas en los datos. El backpropagation es una técnica clave que permite ajustar los pesos de la red minimizando el error entre las predicciones y los valores reales. 2.5.1.2. Support Vector Machine Support Vector Machine (Pisner y Schnyer, 2019), se enmarcan dentro del aprendizaje supervisado y se utilizan para abordar problemas de regresión y clasificación. La finalidad de esta técnica es encontrar un hiperplano que separe las clases, creando un entorno mul- tidimensional. Uno de los elementos clave son los márgenes, que son las distancias entre la línea delimitadora y los elementos más próximos. El objetivo de los SVM es maximizar este margen mientras se mantiene la precisión en la clasificación. Otro concepto importante son los kernels, que permiten encontrar un hiperplano de se- paración en el espacio de características elevado sin calcular las coordenadas directamente, utilizando funciones que devuelven la similitud entre dos puntos. Existen kernels lineales, polinomiales y sigmoidales. Un hiperparámetro crucial en SVM es el gamma, que representa la no linealidad del modelo. A mayor valor de gamma, existe un mayor riesgo de sobreajuste. Otro hiperpará- metro en los modelos SVM es el Soft Margin C, que indica la tolerancia a ciertos errores en la clasificación. Es decir, determina la importancia que se le da a la correcta clasificación frente a la maximización del margen. SVM también es válido para soluciones que no se pueden separar linealmente. En la Figura 2.13, se observan gráficamente los principales elementos de esta técnica. Figura 2.13: SVM esquema (Tasmay Pankaj Tibrewal, 2024) 2.5.2. Random Forest Random Forest (Liaw et al., 2002) es una técnica supervisada de aprendizaje automático utilizada para clasificación y regresión. Combina múltiples árboles de decisión para realizar 20 Capítulo 2. Estado de la Cuestión las predicciones. La técnica se basa en crear subconjuntos de entrenamiento aleatorios; cada subconjunto se entrena de manera independiente. Durante el entrenamiento, cada nodo del árbol se divide utilizando un subconjunto aleatorio de características y genera un resultado. Cada uno de estos subconjuntos se denomina Bootstrap sample. Para la clasificación, el resultado se obtiene mediante la votación mayoritaria de estos árboles. En el caso de la regresión, el resultado es el promedio de las predicciones de los árboles. Este último paso, en el que se combinan las salidas, se conoce como agregación. 2.5.3. TensorFlow Lite TensorFlow (TensorFLow Org, 2024), es una plataforma de machine learning creada inicialmente por Google para desarrollar modelos de aprendizaje automático. Se integra con Keras, una API para construir redes neuronales. TensorFlow incluye en su ecosistema herramientas como TensorFlow Lite para la creación y entrenamiento de modelos adaptados a implementaciones en dispositivos móviles, microprocesadores integrados y entornos donde se requiere bajo consumo y memoria, como en el IoT. Existen aplicaciones destacadas que utilizan TensorFlow Lite. Por ejemplo, en (Handha- yani y Hendryli, 2022), se emplea para la clasificación de basura, obteniendo una precisión del 95.39 %, y cuyo modelo se integró en una aplicación Android. En (Fadlilah et al., 2021), se utiliza TensorFlow Lite para crear modelos que ayudan al reconocimiento del lenguaje de signos indonesio mediante el entrenamiento con imágenes de gestos. En el trabajo (Adi y Casson, 2021), se utiliza para el reconocimiento de actividades humanas, logrando una precisión del 92.8 %. 2.6. Conclusiones Las soluciones comerciales analizadas no incluyen análisis de datos ni recopilan infor- mación de uso, ni tampoco hacen uso de los sensores de las gafas. Además, algunos diseños son poco discretos para su uso en exteriores. Ninguna de las soluciones investigadas emplea la interacción por gestos. Las conclusiones que extraemos en este apartado son que el diseño del sistema debe ser discreto y debe integrarse con herramientas de uso común, como un teléfono móvil. El sistema debe ser multifuncional, permitir la personalización y actualizarse con relativa facilidad. La interacción debe ajustarse a las capacidades visuales del usuario, por lo que la interacción mediante gestos es una opción válida. El sistema debe recolectar información de los sensores para un posible análisis y almacenarla en un servidor. Además, debe permitir guardar información de parámetros de configuración y facilitar la integración de modelos de IA personalizados para cada paciente. Capı́tulo 3 Planificación y recursos En esta sección se abordará la planificación para la elaboración de este proyecto y se enumerarán los recursos elegidos y disponibles. Basándonos en las conclusiones de la sección anterior, se analizarán los recursos que nos proporcionan las herramientas necesarias para cubrir las necesidades identificadas. Para satisfacer la necesidad de utilizar una solución basada en una herramienta de uso común y discreta, se decidió emplear un teléfono móvil mediante el desarrollo de una aplicación. Esta solución es bien aceptada, por lo que en esta sección se estudiarán los recursos de hardware, software y almacenamiento de datos relacionados con el desarrollo de una aplicación móvil. El código del proyecto esta disponible en un repositorio en Github (TFM repositorio link). También esa disponible en Google Drive a través del enlace (Google Drive código link). 3.1. Modelo de desarrollo Para este proyecto se sigue la metodología ágil Scrum (Hayat et al., 2019) utilizando Trello (Atlassian Trello, 2024), una herramienta que nos proporciona las funcionalidades necesarias para el desarrollo del proyecto. En concreto emplea tableros y tarjetas para gestionar tareas con una interfaz simple y fácil de usar. En la figura 3.1 se observa el tablero con algunas tareas. En nuestro caso, las tareas que van surgiendo se apilan en el backlog y se etiquetan como; “investigación, documentación, desarrollo o testing”. A medida que se completan algunas tareas de investigación y documentación, se crean sprints para finalizar una tarea dentro de un rango de tiempo determinado, recibir feedback y evaluar los resultados. Por ejemplo, cuando se recibió el hardware, se investigó sobre su integración con Andro- id. Una vez finalizada esta fase de investigación y documentación, se estableció un sprint para poner en funcionamiento las smart glasses con una aplicación Android. Al finalizar el sprint, se evaluaron los resultados de la integración. También, se emplearon diagramas de Gantt (Geraldi y Lechter, 2012) con el fin de tener una visión y control general de los avances del proyecto. Los hitos del proyecto se dividieron trimestralmente. En la Figura 3.2, se muestra la planificación del primer trimestre, este periodo tuvo una fuerte carga de investigación, sobre todo de la baja visión y de las herramientas aptas para el desarrollo del proyecto. En la Figura 3.3, se observa el cronograma del segundo cuatrimestre, cuya trabajo se enfocó en el desarrollo e integración del SDK con Android y de distintas funcionalidades como la implementación de brillo y zoom mediante gestos. El último trimestre Figura 3.4 se centro en la integración con la base 21 https://github.com/jotajjjj/TFMIoT_SmartGlasses https://drive.google.com/drive/folders/1YmmssmC3ONzbCfIeHTmstBlsi8Wedd8g 22 Capítulo 3. Planificación y recursos Figura 3.1: Tablero de tareas del desarrollo del proyecto. de datos, en la inteligencia artificial personalizada y en la escritura de esta memoria. En el final de cada trimestre se realizarón pruebas del software implementado para identificar fallos y mejoras. Figura 3.2: Diagrama de Gantt primer cuatrimestre. 3.1. Modelo de desarrollo 23 Figura 3.3: Diagrama de Gantt segundo trimestre. Figura 3.4: Diagrama de Gantt tercer trimestre. 24 Capítulo 3. Planificación y recursos 3.2. Recursos Hardware Después de la primera etapa de investigación sobre la baja visión y las soluciones actuales, se concluye que el diseño de las gafas seleccionadas debe ser discreto y ligero para evitar su desuso, y lo más similar posible a unas gafas de uso corriente. El potencial de usabilidad debe ser alto, y para lograrlo, el hardware seleccionado y su diseño juegan un papel determinante. 3.2.1. Smart Glasses El modelo seleccionado son las Rokid Air Pro (Rokid, 2024a), son unas gafas de realidad aumentada que pesan 83g. Proporcionan un campo visual de 43º. Disponen de aceleróme- tro, giroscopio y magnetómetro. Además disponen de un botón físico mediante el cual se puede interactuar. Son unas gafas binoculares cuyos displays son Micro OLED. Ratio de refresco de 75HZ. Cámara de 8 MP resolución de 1920x1080 en cada display. No disponen de fuente de alimentación propia, trabajan conjuntamente con un dispositivo móvil el cual se encarga de proporcionar la alimentación y el procesamiento. Figura 3.5: Smart Glasses Rokid Air Pro empleadas para el desarrollo. 3.2.2. Rokid SDK Rokid proporciona una API y SDK para desarrollar en dispositivos Android (Rokid, 2024b). Para el desarrollo de este proyecto se emplea el AXR SDK, que se compone de tres módulos: AXR Phone SDK-glassdevice, AXR Phone SDK-glasscamera y AXR Pho- ne SDK-glassvoice. El primer módulo es el más importante y, entre sus características y funcionalidades, ofrece acceso a los sensores, obtención de eventos como el pulsador del botón, control del brillo y obtención de los datos del micrófono. El segundo módulo está dedicado a la cámara y proporciona información, configuración y control de la cámara, permitiendo grabar vídeos y tomar fotos. El tercer módulo se centra en funcionalidades de reconocimiento de comandos por voz. En la Figura 3.6, podemos ver la compatibilidad entre el SDK y el modelo de smart glasses Rokid seleccionado. 3.2.3. Controlador El modelo de smart glasses (SG) seleccionado requiere una fuente de procesamiento y alimentación. Dado el potencial de las aplicaciones móviles y considerando que los pacientes seguramente llevarán uno en su bolsillo, se opta por un dispositivo móvil con sistema 3.3. Recursos Android 25 Figura 3.6: Compatibilidad entre el Modelo Rokid Air Pro y SDK (Rokid, 2024b). operativo Android. Este dispositivo debe cumplir con los requisitos de las SG y tener capacidades de cómputo suficientes para desarrollar la aplicación. Como dispositivo de procesamiento y teniendo en cuenta las recomendaciones de las SG y sus compatibilidades (Rokid, 2024b), se opta por un OPPO Find X5. Las principales especificaciones son: 1. Procesador Qualcomm Snapdragon 888, RAM 8GB LPDDR5. 2. Batería 4800 mAh. 3. Conectividad WiFi, Bluetooth 5.2 4. Sensores GPS, NFC. 5. Precio <500€ aproximadamente. 3.3. Recursos Android Una vez decidido el sistema operativo del controlador, se investigan los lenguajes de programación adecuados para implementar la aplicación. Dado que la aplicación debe estar transmitiendo constantemente en los displays de las smart glasses (SG), se realiza una bús- queda de los recursos y metodologías de Android que permitan desarrollar una aplicación eficiente. 3.3.1. Kotlin Vs Java Para el desarrollo de la aplicación se ha decidido emplear Kotlin (JetBrains, 2024). La aplicación estará siempre proyectando la imagen captada en los displays de las smart glasses, por lo que el manejo de la concurrencia y los hilos para la programación asíncrona 26 Capítulo 3. Planificación y recursos es de suma importancia. En comparación con Java (Oracle, 2024), Kotlin y sus coroutines ofrecen una solución que simplifica esta tarea, según la documentación. Las características que ofrece Kotlin para la programación asíncrona son de especial interés en el proyecto, ya que la aplicación deberá proyectar la imagen constantemente, tener un narrador, aplicar zoom y brillo en tiempo real, y realizar inferencias de modelos de inteligencia artificial en tiempo real. 3.3.2. Corutines Son similares a los Threads de Java, con la diferencia de que no están ligadas a ningún hilo en particular. Una coroutine puede suspender su ejecución en un hilo y reanudarse en otro. Tienen menos peso que los hilos tradicionales de Java, por lo que se pueden crear más, superando en escalabilidad a los threads de Java. Cada coroutine tiene un ámbito específico, lo que facilita su manejo. Además, en comparación con los threads de Java, las coroutines utilizan menos memoria. 3.3.3. ViewModels Para el diseño de la aplicación se decide emplear la arquitectura basada en ViewModels. Esta funcionalidad tiene la finalidad de separar las vistas del usuario del modelo de datos, de esta manera si se produce un cambio en la visualización, los datos de la interfaz no se pierden por que están almacenados en el modelo. 3.3.4. LiveData y MutableLiveData La clase LiveData es un recurso que permite almacenar datos y notificar a un obser- vador cuando estos valores cambian. De esta forma la actividad será notificada cuando el valor cambie. La clase MutableLiveData es una subclase de la primera y añade métodos para modificar el valor que guardan y para obtenerlo. Estas clases son de especial interés y se emplearán en el proyecto para mejorar la reactividad cuando se cambien valores. En este proyecto se emplean entre otras funcionalidades para el zoom y brillo, consiguiendo que los datos que se muestran al usuario se mantengan actualizados. 3.4. Android Studio Para el desarrollo de la aplicación se empleó el entorno Android Studio Flamengo 2022.2.1 lanzado en abril del 2023. Esta versión de este Integrated Development Envido- ment (IDE) desarrollado por Google para el sistema operativo Android, añade mejoras para el diseño de la UI y mejoras en la reproducción de errores frente a versiones anterio- res. Otro aspecto interesante de este IDE es que aporta una herramienta para el análisis del tráfico de red de las aplicaciones en desarrollo Network Inspector traffic interception, de especial utilidad para analizar las interacciones de red 1. 1https://developer.android.com/studio/releases/past-releases/as-flamingo-release-notes https://developer.android.com/studio/releases/past-releases/as-flamingo-release-notes 3.5. Firebase Real Time Database 27 3.5. Firebase Real Time Database Para este proyecto se empleará el plan gratuito llamado Spark Plan 2 Los recursos de esta base de datos son los siguientes con el plan gratuito. Permite hasta 100 conexiones simultáneas. Permite 1GB de transferencia de datos por mes. Permite 1GB de almacenamiento límite. Permite 1000 operaciones de escritura por segundo. 3.5.1. Firebase servicio de Machine Learning Se trata de un SDK que cuya finalidad es dotar a las aplicaciones móviles de las funcionalidades de Machine Learning. En particular, aporta las API´s necesarias para poder customizar modelos de TensorFlow Lite. Estos modelos pueden ser modificados en dinámico y descargados de la nube provista por Firebase (Firebase Documentation, 2024). En la Figura 3.7 observamos como es la consola de este servicio, en ella podemos ver los modelos alojados. Los recursos de los que disponemos con el plan Spark (Free) con esta funcionalidad son los siguientes, la documentación oficial no especifica estos límites pero en otras fuentes no oficiales tenemos: Cada modelo tiene un peso límite de 100 MB Cada proyecto Firebase puede tener alojados 5 modelos. El límite en espacio en total para proyecto es de 250MB. Permite 1000 descargas por día. Figura 3.7: Consola de Firebase donde se observa la funcionalidad de modelos personali- zados 2https://firebase.google.com/pricing https://firebase.google.com/pricing 28 Capítulo 3. Planificación y recursos 3.6. Modelos mediapipe de Machine Learning Con la finalidad de poder implementar modelos personalizados y realizar las primeras pruebas, se utilizarán modelos ya entrenados. El primero que se presenta, constituye ya un modelo con 7 gestos preentrenados listo para su uso. El segundo es un modelo que como resultado final nos aporta los puntos de referencia de la mano. 3.6.1. Modelo de mediapipe Hand Gresture Classification Esta solución utiliza un pipeline de dos modelos: el primero detecta la presencia y geometría de las manos, mientras que el segundo reconoce gestos basados en la geometría obtenida del primero. Está especialmente diseñada para aplicaciones de realidad aumentada y control mediante gestos manuales. El modelo ha sido entrenado con aproximadamente 30,000 imágenes. Este proyecto utiliza la API para Android, la cual admite soluciones tanto para imá- genes estáticas como para vídeo y transmisión en directo. Este modelo se utilizó para las primeras pruebas de desarrollo de cambio de parámetros en tiempo real, con el fin de verificar que los parámetros se cambian. 3.6.2. Modelos de mediapipe detección de puntos de referencia Este modelo detecta los puntos de referencia de la mano en una imagen. Se trata de un pipeline que primero detecta la presencia de la mano y determina la zona donde se encuentra dentro de la imagen. La arquitectura de este modelo es un detector Single-shot. Posteriormente, sobre esta zona recortada, se generan los puntos de referencia utilizando otro modelo de regresión. Estos puntos de referencia y este modelo son la base para crear modelos personalizados. 3.7. Servidor El presente proyecto tiene como finalidad poder generar gestos personalizados, por lo que es necesario tener capacidad de computo para entrenar estos modelos. Pera el entrena- miento de los modelos, la descarga de los datos de la nube y la actualización de los modelos, se utilizo un ordenador portátil MacBook Pro con un procesador 3,1 GHz Dual-Core Intel Core i5 y memoria de 16GB 2133MHz LPDDR3. 3.8. Conclusiones 29 3.8. Conclusiones Para el desarrollo de este proyecto se requiere un teléfono móvil y unas smart glasses Rokid Air Pro, cuyo precio es aproximadamente 450€. En cuanto a los recursos en la nube, no se incurrirá en gastos adicionales ya que se utilizará el plan gratuito SPARK de Firebase, que es suficiente para el desarrollo del proyecto. La solución propuesta, que incluye un teléfono móvil Android de gama media-alta de 550€ (que puede ser el que el paciente utilice en su día a día) y las smart glasses, tiene un coste aproximado de 1000€. En la tabla 4.1 se observa una comparativa de la solución propuesta frente a las solu- ciones comercializadas más relevantes. Sistema Kit Precio Iris Vision Inspire (Iris Vision, 2024) Smart Glasses + controlador 4000€ Orcam My Eye (OrCam, 2024) Dispositivo controlador 4500$ AceSight (Acesight, 2024) Smart Glasses 3900€ eSight (eSight, 2024) Smart Glasses 6950€ TFM Smart Glasses + teléfono movil 1000€ Tabla 3.1: Tabla comparativa de sistemas de ayuda en la baja visión. Capı́tulo 4 Desarrollo del proyecto y resultados En esta sección de describirá como se fueron integrando las diferentes funcionalidades del proyecto, los desarrollos, la arquitectura final y los resultados obtenidos. También se hablará sobre el diseño interno de la aplicación e interacción de los usuarios. 4.1. Integración del SDK de Rokid con la aplicación Para esta tarea de añaden los repositorios maven del SDK al proyecto y las depen- dencias de compilación según se indica en la SDK Access Guide. También en el fichero Manifest.xml se añaden los permisos necesarios para acceder a la cámara, audio e internet. 4.1.1. Conexión mediante USB-C Las diferentes funcionalidades del SDK se habilitarán cuando las smart glasses estén co- nectadas al dispositivo. Para esta labor se utiliza el listener OnGlassDeviceConnectLis- tener del API. Esta función detecta y notifica cuando las gafas están conectadas y cuando se desconectan. En la Figura 4.1 se observa la implementación de este listener. Figura 4.1: Listener que avisa cuando las gafas se conectan y desconectan. 4.1.2. Uso de la cámara de las Smart Glasses Para el empleo de la cámara se emplean funciones del SDK de Rokid como openCa- mera(), startPreview(), la primera para habilitar la cámara y la segunda para inicializar la visualización. 31 32 Capítulo 4. Desarrollo del proyecto y resultados 4.2. Firebebase Machine Learning Con esta funcionalidad se puede descargar el modelo almacenado en Firebase Machi- ne Learning de manera que, si se actualiza en la nube, se descargue el modelo actualizado. En caso de que no haya conexión a Internet o la descarga falle, se empleará el último modelo almacenado internamente que se utilizó con esta funcionalidad. 4.3. Integración de mediapipe Se emplearon dos soluciones de mediapipe, la primera Gesture recognition para las primeras pruebas, ya que dispone de un modelo entrenado para reconocer gestos. Esta solución fue útil para las primeras aproximaciones en el cambio de parámetros en tiempo real y observar el comportamiento. Los gestos que se emplearon son los que se muestran en la Figura (4.2) para aumentar zoom (4.2a), reducir zoom (4.2b), aumentar brillo (4.2c) y reducir brillo (4.2d). La segunda solución fue Hand landmark detection, que genera los puntos de referencia de la mano. Nos centraremos en esta segunda solución ya que se emplearán estos puntos para poder personalizar gestos. Este procedimiento se explica en el siguiente apartado. Para su integración, lo primero que hay que hacer es añadir las dependencias al pro- yecto. Luego, hay que configurar la solución estableciendo que la detección se realizará en modo Live Stream. Posteriormente, se ajustan los parámetros para este modo de manera que se adecuen a nuestra solución. El número de manos a detectar se establece en una, que es el modo predeterminado. También es necesario definir los umbrales de detección de los modelos (minHandDetectionConfidence, minHandPresenceConfidence, min- TrackingConfidence). El primero establece el umbral mínimo para considerar que se ha detectado con éxito una palma de la mano para el modelo de detección de palma de la mano. El segundo establece el umbral mínimo para la presencia de una mano para el mo- delo de puntos de referencia de la mano. El tercero establece el umbral mínimo para que el seguimiento de la mano se considere aceptado. Estos tres umbrales para el proyecto se establecieron a 0.6 en un rango de 0 a 1, pero se pueden ajustar a las necesidades de los usuarios. También es necesario definir y establecer funciones para la obtención de los resultados y otra para capturar los errores en caso de que los haya. En estas funciones se incluyen los resultados con la información referente a si la mano detectada es la izquierda o la derecha y su probabilidad, los 21 puntos de referencia normalizados, cuya representación son las coordenadas x e y normalizadas a lo ancho y alto, respectivamente, y la coordenada z que representa la profundidad. Esta solución también devuelve los 21 puntos de referencia en su representación en el mundo real Figura (4.3). Otros valores que devuelve son el tiempo de inferencia. 4.3. Integración de mediapipe 33 (a) Con el pulgar arriba se au- menta el zoom (b) Con el pulgar hacia abajo se reduce el zoom (c) Con la mano abierta se au- menta el brillo (d) Con la mano cerrada se quita brillo Figura 4.2: Comandos mediante gestos para cambiar en tiempo real parámetros de las smart glasses. 34 Capítulo 4. Desarrollo del proyecto y resultados 4.3.1. Procedimiento y normalización de coordenadas De la salida del modelo, nos quedamos con los 21 puntos de referencia en su representa- ción en el mundo real dados en coordenadas. Siguiendo el trabajo de (Kazuhito Takahashi, 2024) convertimos estas coordenadas a coordenadas relativas, calculadas tomando como base el punto cero ver Figura 2.12. Finalmente se crea una lista unitaria y se normaliza en función del valor máximo de esta lista. En la Figura 4.3 se observa el resultado final cuyos puntos pueden representar un gesto. Estos puntos se almacenaran en forma de lista única en la nube. Figura 4.3: Valor de los puntos de referencias normalizados tomados con las smart glasses. 4.3.2. Funcionalidad de brillo Para esta funcionalidad se emplea el SDK de rokid por los buenos resultados obtenidos. Se emplea la función setBrightness(Int value) del API. Por ejemplo, cuando se detecta el gesto de mano abierta, se aumenta el brillo, y cuando se detecta puño cerrado se reduce el brillo. 4.4. Funcionalidad de zoom Tras las pruebas iniciales, se descarta realizar el zoom con la funcionalidad que aporta el SDK de Rokid por tener poco alcance. En su lugar, se optó por implementar el zoom con Open CV. Se desarrolló una función llamada cropAndZoom, esta función primero recorta la imagen y posteriormente la amplia con las dimensiones originales en base a un parámetro, permitiendo mejorar el zoom perdiendo cierta calidad. 4.5. Interacción mediante botón físico Una de las formas de interacción se realizará mediante el botón físico del que disponen las smart glasses en la varilla derecha. Para este botón, se distinguen tres eventos. El primer evento se basa en pulsar el botón una única vez. El segundo evento se basa en pulsar el botón dos veces seguidas. Para el tercer evento, hay que mantener pulsado el botón varios segundos, soltarlo y volver a pulsar. Para este proyecto nos valdremos de esos tres eventos. 4.6. Integración con Firebase y modelo de datos 35 Para añadir esta funcionalidad, primero utilizamos la función de su API setRkKey- Listener(), la cual se activará cuando se pulse el botón. Para distinguir los eventos, so- breescribimos la función del API onPowerKeyEvent(Type of event), esta función nos indicará cuál de los tres eventos se ha activado. Como veremos a continuación, emplearemos estos eventos para que el usuario cambie de funcionalidad e interactúe con la aplicación mediante el cambio de estados en la misma. Los tres tipos de interacción que utilizaremos en este proyecto con el botón físico de las gafas son: Interacción 1, pulsar el botón una única vez. Interacción 2, pulsar el botón dos veces seguidas. Interacción 3, mantener el botón pulsado varios segundos, después soltar e inme- diatamente volver a pulsar. 4.6. Integración con Firebase y modelo de datos Esta base de datos se utilizará para almacenar en tiempo real los valores de los sensores de las smart glasses (acelerómetro, giroscopio, magnetómetro). También se empleará para guardar la información de los parámetros de configuración ajustados por los pacientes (zoom, brillo), de manera que puedan recuperarlos posteriormente. Además, se usará para almacenar los puntos de referencia normalizados, para su posterior descarga por parte del servidor. 4.6.1. Conexión con la aplicación Para integrar Firebase con la aplicación lo primero que hay que hacer es crear un proyecto. Durante el proceso de creación de un proyecto, la consola de Firebase genera un fichero para su integración con Android Studio llamado google-services.json. Este fichero se debe pegar en la carpeta del proyecto al mismo dentro de la carpeta app del proyecto en Android Studio. Para poder acceser al SDK de Firebase es necesario añadir sus dependencias al proyecto. 4.6.2. Modelo de datos Para almacenar la información de los pacientes, se diseñó un modelo que permite añadir parámetros de configuración. Este modelo se puede observar en el (Listing 1). En la clave "pacientes", se pueden añadir más pacientes; cada una de las entradas en "parámetros- epresenta una "vista"guardada por el paciente, que posteriormente puede establecer en sus smart glasses para que se proyecte con estos parámetros. Por ejemplo, si un paciente está utilizando la ayuda por la noche, puede cambiar entre vistas hasta encontrar una que haya guardado con el parámetro de brillo al máximo. O, si el paciente necesita una vista con zoom para leer, puede seleccionar una vista guardada cuyo zoom sea el adecuado. También se observa el modelo para los valores de los sensores. Dentro de la entrada "sensores", encontramos el identificador de los pacientes (paciente id), y dentro de cada paciente, tenemos los valores de los sensores: acelerómetro, giroscopio y magnetómetro. La clave de estos valores representa el timestamp en el que se tomaron las medidas. Estos valores se podrán analizar e incluso crear modelos de interacción en un trabajo futuro. 36 Capítulo 4. Desarrollo del proyecto y resultados Además, el modelo de datos contiene la entrada "datos", que a su vez incluye "valores", los cuales representan los puntos de referencia de la mano personalizados obtenidos con las smart glasses, ver Listing 1. La clave de tipo timestamp representa el momento en el que fueron capturados, y el valor es un string que contiene, primero, la etiqueta del gesto (por ejemplo, un 8), seguido de los 42 puntos de referencia normalizados. 4.6. Integración con Firebase y modelo de datos 37 1 { 2 "pacientes": { 3 "datos": { 4 "valores": { 5 "137301394": "[8, 0.0, 0.0, 0.07897791,-0.13203776 6 ,0.117748216, -0.32637587, 0.13912983, -0.4865349, 7 0.17956413, -0.5944391, -0.007033667, -0.52888083, 8 -6.1737934E-5,-0.72631603,2.104144E-4,-0.8586557, 9 -0.0036630007,-0.96955645, -0.076992154, 10 -0.50772184, -0.10994884,-0.7303773, -0.13226587, 11 -0.87659967,-0.15297274,-1.0, -0.13230935, 12 -0.43111408, -0.17316985,-0.6445334,-0.19467843, 13 -0.78678674, -0.21267174,-0.9142508, -0.17541386, 14 -0.30955985, -0.24511376,-0.4242951, -0.2902439, 15 -0.50707483, -0.32906193,-0.5976754]" 16 } 17 }, 18 "paciente_12345": { 19 "parametros": { 20 "2024-05-31 18:36:06": { 21 "brillo": 20, 22 "fecha": "2024-05-31 18:36:06", 23 "zoom": 0.7600002288818359 24 } 25 } 26 } 27 }, 28 "sensores": { 29 "paciente_12345": { 30 "valores": { 31 "acelerometro": { 32 "1120808230000": "X:0,621174,Y:9,763589,Z:1,171506", 33 "1123360359000": "X:0,621174,Y:9,786305,Z:1,132649", 34 "1125433396000": "X:0,621772,Y:9,749840,Z:1,109932" 35 }, 36 "giroscopio": { 37 "1121307757000": "X:0,003731,Y:0,000862,Z:0,002397", 38 "1122324976000": "X:0,004953,Y:-0,000359,Z:0,001176", 39 "1122860832000": "X:0,003731,Y:0,002084,Z:-0,000046", 40 "1123882592000": "X:0,006174,Y:0,000862,Z:-0,002490" 41 }, 42 "magnetometro": { 43 "1121809555000": "X:37,580269,Y:-26,078247,Z:-2,695273" 44 } 45 } 46 } 47 } 48 } Listing 1: Esquema de datos para los pacientes y sus parámetros 38 Capítulo 4. Desarrollo del proyecto y resultados 4.7. Vistas del proyecto La aplicación Android dispondrá de vistas a través de las cuales se podrá acceder a las funcionalidades. En la vista principal Figura 4.4a, pulsar los botones de la aplicación nos llevará a las diferentes funcionalidades. 4.7.1. Sensores SG Pulsado el botón SENSORES SG de la vista principal, nos llevara a la vista Figura 4.4b. A través de esta vista, podremos tener acceso a los valores de los sensores de las smart glasses. Estos valores se enviarán automáticamente a la base de datos en la nube cada segundo, aunque la base de datos tiene capacidad para recibirlos en tiempo real, esto es de especial interés para un trabajo futuro. 4.7.2. Ayuda visual Pulsando el botón AYUDA VISUAL de la vista principal, nos llevará a la vista de ayuda visual. Esta vista es la encargada del manejo de la cámara y donde se implementa la ayuda visual. Cuando se pulsa el botón, las smart glasses empiezan a proyectar. 4.7. Vistas del proyecto 39 (a) Pantalla de inicio (b) Valores de los sensores Figura 4.4: Vistas de la aplicación 40 Capítulo 4. Desarrollo del proyecto y resultados 4.8. Estados de la aplicación Pulsando el botón AYUDA VISUAL el usuario puede realizar varias acciones y navegar entre varios estados, empleando las tres interacciones vistas anteriormente, para acceder a una determinada funcionalidad como se observa en la Figura 4.5. La interacción 1 se presenta con un 1 dentro de un círculo, la interacción 2 con un 2 dento de un círculo y la interacción 3 con un 3 dentro de un círculo. Los estados son: Estado INICIO, en este estado se proyectará en los displays de las smart glasses lo que se captura por su cámara. Estado CONTROL POR GESTOS, en este estado el usuario puede cambiar pará- metros en tiempo real como brillo y zoom mediante gestos. Dentro de este estado, si el paciente realiza la interacción 3 con el botón, guarda los parámetros que actualmente tiene establecidos en la nube. Estado CAMBIAR VISTAS, en este estado, el usuario recupera las vistas que haya guardado en el estado GESTOS de la nube, y puede ir cambiando de una vista a otra en las vistas mediante la interacción 1. Estado MACHINE LEARNING, en este estado, si el usuario presiona el bo- tón, la aplicación a través del narrador enumera los elementos que están presentes, describiendo la escena de lo que ve. Estado TRAINING, en este estado, se abre un prompt en el que el usuario etiqueta un gesto y lo relaciona con una acción de la ayuda. Posteriormente las SG capturan los puntos de referencia del gesto y lo guardan en la nube. Figura 4.5: Estados de la aplicación en la ayuda visual. 4.9. Integración del narrador Cuando el usuario cambia de un estado a otro, un narrador a través de los altavoces de las smart glasses le dice al usuario a que estado cambia. Para esta labor se emplearon las clases TextoSpeech, TSSListener y AudioMamager de Android. 4.10. Funcionalidad Machine Learning 41 4.10. Funcionalidad Machine Learning En este estado, la aplicación, mediante la presión de un botón, describirá la escena vista, indicando los elementos presentes. Para esta tarea, el modelo se descarga de Firebase ML; si no se dispone de conexión a internet, se emplea el último modelo guardado internamente en la aplicación. Para esta funcionalidad se utiliza la API Image Labeler de ML Kit. Para esta implementación se utiliza Firebase como host del modelo, y para gestionar la descarga se opta por la clase Remote Model Manager de la API de ML Kit. De esta forma, la aplicación podrá descargar modelos de diversas fuentes y no limitarse a Firebase. Para ligar la fuente de descarga con origen en Firebase al Remote Model Manager se emplea la clase FirebaseModelSource. De esta forma, el manager sabe que el modelo se descarga de Firebase. Las clases que intervienen son: FirebaseModelSource, que construye la fuente del modelo alojado remotamente y recibe como parámetro el nombre del modelo alojado; Cus- tomModel, que construye el modelo y recibe como parámetro la fuente creada anterior- mente; RemoteModelManager, que descarga el modelo y cuyos listeners comprobarán si la descarga tuvo éxito; y ImageLabeling de ML Kit, que se encarga de la inferencia y requiere del modelo descargado para su construcción. 4.11. Arquitectura El la Figura 4.6 se observa la arquitectura del proyecto. El teléfono móvil se conectará por usb-C a las smart glasses, el terminal servirá de fuente de alimentación a las smart glasses. Para guardar las vistas y los valores de los sensores de las SG es necesario tener conexión a internet. También es necesaria la conexión para descargar los modelos y los datos al servidor. Figura 4.6: Arquitectura de la aplicación. En el servidor, se produce la descarga de los datos de la nube y se entrenan los modelos de gestos personalizados. Una vez entrenados, se guardan en la nube. 42 Capítulo 4. Desarrollo del proyecto y resultados 4.12. Resultados El primer resultado obtenido de este trabajo es la creación de una funcionalidad en la aplicación capaz de generar un dataset con gestos personalizados a través de una interfaz. Este dataset se irá incrementando cada vez que se utilice la funcionalidad. Además, con el fin de personalizar la ayuda visual, la aplicación es capaz de crear mode- los personalizados utilizando estos datos. Estos modelos fueron evaluados para determinar cuál aporta los mejores resultados. En esta sección, primero se presentan los resultados ob- tenidos con un dataset inicial que sirvió como punto de partida para verificar la viabilidad de la funcionalidad. Este dataset inicial también fue evaluado para obtener los primeros resultados. Una vez verificada la funcionalidad, se creó otro dataset más robusto con más gestos. Este dataset fue explotado y evaluado con diferentes técnicas de aprendizaje auto- mático para medir la precisión de los modelos obtenidos. 4.12.1. Herramientas para el análisis de los resultados GridSearchCV (Bergstra y Bengio, 2012) es una técnica de optimización de hiperpa- rámetros utilizada para evaluar y seleccionar el mejor modelo de aprendizaje automático. Consiste en realizar una búsqueda exhaustiva a través de un conjunto especificado de hi- perparámetros, evaluando el rendimiento del modelo mediante validación cruzada. Scikit-learn (Pedregosa et al., 2011) es una biblioteca de aprendizaje automático en Python que proporciona herramientas simples y eficientes para la minería de datos y el análisis de datos. Está construida sobre NumPy, SciPy y matplotlib, y ofrece una amplia gama de algoritmos de clasificación, regresión, agrupamiento y reducción de dimensiones, así como funciones para la evaluación de modelos y la preprocesamiento de datos. 4.12.2. Automatización para la creación de un dataset personalizado Este proceso se inicia con la obtención de puntos de referencia captados con la cámara de las smart glasses, los cuales se normalizan y se envían a la base de datos en la nube. Una vez que el usuario haya enviado los gestos que desea, el servidor descarga los datos de la nube, entrena el modelo con el algoritmo de machine learning que mejor rendimiento ofrezca, lo convierte a forma TensorFLow Lite, lo almacena en la nube y, al abrirse nuevamente, la aplicación verifica si existe una nueva versión del modelo. En caso de haber una nueva versión, la aplicación hará uso de este nuevo modelo. 4.12.3. Modelos iniciales Para las primeras pruebas y toma de contacto, se creó un dataset personalizado para los gestos de pulgar arriba, pulgar abajo, mano abierta y mano cerrada. Las condiciones en las que se tomaron los datos fueron homogéneas y casi sin variación: el mismo lugar, con las mismas condiciones ambientales, mismo fondo, con la misma mano y persona. Este dataset inicial constó de 997 elementos, cada fila representando puntos de referencia repartidos de forma similar entre los cuatro gestos. Se entrenó el modelo en TensorFlow utilizando redes neuronales artificiales con una arquitectura simple: una única capa oculta con 10 neuronas y 10 epochs, consiguiendo una precisión del 99 %. También se probó con una arquitectura Fully Connected Networks con una estructura (128, 64, 32), obteniendo una precisión del 99 %. 4.12. Resultados 43 En la Figura 4.7, se muestran visualmente las predicciones para estas clases. Cada uno de los cuatro gestos se representa con los números 0, 1 ,2 y 3, la etiqueta “Pred” es el valor predicho por el modelo y la etiqueta “True” representa el valor verdadero. Se predicen correctamente todos los elementos, cada cuadrado representa en escala de grises cada una de las 42 características. Figura 4.7: Visualización predicciones con una red neuronal fully connected. También see probó con el algoritmo Random Forest, obteniendo un 100 % de precisión. La sensibilidad (recall) del modelo fue del 100 %. 44 Capítulo 4. Desarrollo del proyecto y resultados 4.12.4. Análisis exploratorio con segundo dataset Con el fin de obtener modelos más robustos y comparar sus precisiones con modelos cuyos datos fueron tomados en un ambiente homogéneo y sin movilidad, se creó otro dataset. Este dataset se generó a partir del primero, añadiendo más gestos y en condiciones de la mano cambiantes, como en deambulación, con giros y cambios bruscos de posición de la cámara. Este dataset contiene los gestos “Like”, “Dislike”, “Puño”, “Abierta”, “OK”, “OK abierto”, “Puntero” y “Paz”. De esta forma, se consiguen puntos de referencia en condiciones variables. Estos gestos de corresponden con los gestos que aparecen en las imágenes de (Kapitanov et al., 2024) “Like”, “Dislike”, “fist”, “palm”,“ok”,“one” y“peace”. El gesto “OK abierto” no aparece en el anterior listado y se corresponde con el de la Figura 4.8. Figura 4.8: Gesto ok abierto. En este segundo dataset, las etiquetas se distribuyen como se observa en la Figura 4.9, la dimensión count representa el número de elementos de cada gesto. Se observa que hay más elementos del gesto “OK abierto”. Recalcar que este segundo dataset de gestos al igual que el primero, fue recolectado con la propia aplicación para un usuario determinado. 4.12. Resultados 45 Figura 4.9: Distribución etiquetas del dataset. 4.12.5. Resultados Red neuronal Fully Connect Una red neuronal totalmente conectada (fully connected neural network), también co- nocida como red neuronal densa, es un tipo de red en la cual cada neurona de una capa está conectada a todas las neuronas de la capa siguiente. Esta red neuronal fue creada con TensorFlow y se basa en un modelo secuencial de Keras. Consta de 4 capas densas: la capa de entrada con 42 características y 128 neuronas, una primera capa oculta con 64 neuronas, una segunda capa oculta con 32 neuronas y la capa de salida. Con este modelo se obtuvo una precisión del 98.5 % y una pérdida de 0.048 con los datos de prueba y 10 epochs. Con 50 epochs, se obtuvo una pérdida (Test Loss) de 0.149 y una precisión (Accuracy) de 96.1 %, lo que indica sobreajuste al aumentar los epochs. En la Figura 4.10 se observan algunas predicciones gráficamente. Nº Epochs Perdida Precisión 10 0.048 98.5 % 25 0.051 98.8 % 50 0.149 96.1 % Tabla 4.1: Tabla comparativa red fully connect. 4.12.6. Resultados Con Random Forest Para implementar los modelos con Random Forest, se utilizó la librería sklearn, en concreto la clase RandomForestClassifier. Con esta clase, se pueden configurar los siguientes hiperparámetros: n estimators, este parámetro especifica el número de árboles en el bosque, un au- mento mejora la precisión a la vez que aumenta el tiempo de computo. max depth, indica la máxima profundidad que se puede alcanzar en el árblol. min samples split, indica el número mínimo de muestras necesarias para dividir un nodo. min samples leaf, el número mínimo de muestras en una hoja. 46 Capítulo 4. Desarrollo del proyecto y resultados Figura 4.10: Predicciones red neuronal fully connect con 10 epochs. bootstrap, booleano que indica si se debe usar muestreo con reemplazo (bootstrap samplig) Con este algoritmo y configurándolo con 100 estimadores se obtuvo una precisión del 98.74 %. En la Figura 4.11, se observa la matriz de confusión. Reseñable que el gesto “OK” lo confunde y lo predice como “OK abierto” 7 veces. Par determinar los hiperparámetros que aportan el mejor resultado se empleo la técnica de Grid Search. Los parámetro que se evaluaron se muestran en la siguiente definición de variable. param_gridRF = { ' n_estimators ' : [ 1 0 , 50 , 100 ] , 'max_depth ' : [ None , 10 , 2 0 ] , ' min_samples_split ' : [ 2 , 5 ] , ' min_samples_leaf ' : [ 1 , 2 ] , 4.12. Resultados 47 Figura 4.11: Matriz de confusión con 100 estimadores. ' bootstrap ' : [ True , Fa l se ] } Los resultados obtenidos con este método fue la siguiente configuración: bootstrap a False, max depth a None, min samples leaf a 1, min samples split a 2, n estimators a 50. Con esta configuración se obtuvo un 99.13 % de precisicón. El tiempo que tardo la maquina en obtener el mejor resultado dada la anterior configuración fue de 3 minutos y 8 segundos. En la Figura 4.12, se observa la matriz de confusión obtenida con los mejores paráme- tros. El modelo mejora ligeramente en la predicción entre el gesto “OK” y “OK abierto”. 48 Capítulo 4. Desarrollo del proyecto y resultados Figura 4.12: Matriz de confusión con el mejor modelo. Para comprender como varía la precisión media en función del número de estimadores y la profundidad máxima del árbol se elaboró la gráfica de la Figura 4.13. En esta figura se observa como el pico de precisión se alcanza en torno a los 50 estimadores y con profundidad máxima de los árboles de 20. A partir de los 50 estimadores la precisión decrece ligeramente sin importar la profundidad de los árboles. Figura 4.13: Variación de la precisión media en la validación en función del número de estimadores y la profundidad máxima. 4.12. Resultados 49 4.12.7. Resultados support vector machines Para generar los resultados aplicando SVM, se aplicó el método de grid search con la siguiente variable de configuración. param_gridSVM = { 'C ' : [ 0 . 0 1 , 0 . 1 , 1 , 10 , 100 ] , ' kerne l ' : [ ' l i n e a r ' , ' poly ' , ' rbf ' , ' sigmoid ' ] , "gamma" : [ 0 . 0 1 , 0 . 1 , 1 , 10 , 100 ] } La combinación de parámetros que mejor resultados aportó en la precisión fue de 99.45 %. Los mejores parámetros fueron, un C de 0.01, kernel polinomial y gamma igual a 10. El tiempo para generar el resultado fue de 5 minutos y 41 segundos. En la Figura 4.14 se observa la matriz de confusión obtenida con el mejor modelo. Esta figura muestra la eficacia del modelo donde casi no se muestran fallos en la predicción. Figura 4.14: Matriz de confusión obtenida con el mejor modelo elegido a través de los parámetros. 4.12.8. Conclusiones de los resultados Los modelos generan buenos resultados, todos por encima del 95 % de precisión. La mejor precisión se obtuvo aplicando SVM, estos modelos tienen que ser convertidos a un formato válido para que se puedan ejecutar en Android. Los modelos que actualmente se emplean son los generados con TensorFlow convertidos a TensorFlow Lite. Se estudió la precisión de los modelos de TensorFlow en su transformación TensorFlow Lite y no se experimentó pérdida de precisión. Se compararon los aciertos y errores entre ambos modelos cuyo resultado no mostró diferencias en la precisión. Para medir la precisión del 50 Capítulo 4. Desarrollo del proyecto y resultados modelo generado con TensorFLow Lite, los datos de entrada se transformaron de float64 a float32. Capı́tulo 5 Conclusiones y Trabajo Futuro 5.1. Conclusiones Este proyecto se enfocó en el desarrollo de un sistema IoT de ayuda visual basado en smart glasses para mejorar la calidad de vida de personas con baja visión. Primero, se investigó sobre esta patología para conocer el tipo de paciente y su baja visión. Posteriormente, se estudiaron y analizaron las soluciones existentes en este campo. Se evaluaron tanto las soluciones tradicionales que no emplean tecnología como las basadas en dispositivos electrónicos montados en la cabeza (HMD), como por ejemplo smart glasses. Como resultado de este análisis, se identificaron puntos de mejora y se encontró el hardware adecuado para el desarrollo del proyecto. El resultado fue una aplicación multifuncional que permite ajustar parámetros como brillo y zoom en tiempo real mediante gestos. La aplicación permite guardar parámetros personalizados de configuración en una base de datos en la nube para que el usuario pueda recuperarlos posteriormente. Además, añade inteligencia artificial para enumerar los objetos que están presentes en una escena mediante un narrador. El modelo utilizado para la interacción mediante gestos es personalizado y entrenado con datos generados por la propia aplicación, se descarga de la base de datos en la nube, y en caso de no haber conexión a internet, se emplea el modelo guardado localmente. El modelo se actualiza automáticamente si hay una nueva versión disponible en la base de datos. También incluye un módulo que envía los datos de los sensores de las smart glasses a un servidor para su descarga y análisis como trabajo futuro. Este trabajo demostró el enorme potencial que tiene la combinación del desarrollo de una aplicación móvil con smart glasses y el IoT para ayudar a personas con baja visión. 5.2. Trabajo futuro Se pueden añadir más parámetros en el guardado, como por ejemplo el contraste y la opción de guardar la imagen con bordes. Otro punto de interés es combinar los valores de los sensores del teléfono móvil con los de las gafas, para poder monitorear a los pacientes mediante los valores del GPS del teléfono móvil cuando el paciente esté caminando. También se pueden analizar los datos de los sensores de las gafas almacenados para realizar un análisis y crear patrones de movimiento, o desarrollar un sistema de interacción personalizado mediante los datos de estos sensores (acelerómetro, giroscopio, magnetóme- 51 52 Capítulo 5. Conclusiones y Trabajo Futuro tro). En el ámbito de la aplicación de machine learning, se pueden añadir modelos persona- lizados para que el usuario pueda cambiar entre ellos, como por ejemplo uno para texto a voz, otro para reconocimiento facial y otro para reconocimiento de obstáculos mien- tras deambula. Se puede mejorar la funcionalidad de descripción de la escena añadiendo o combinando estos modelos personalizados. El sistema puede evolucionar hacia una plataforma Health-IoT robusta donde un es- pecialista en baja visión pueda monitorear en tiempo real al paciente y el uso que está haciendo del sistema. De esta forma, el especialista podría remotamente modificar los pa- rámetros de las gafas. Asimismo, este sistema puede recolectar datos de uso y los valores de los sensores de las smart glasses para aplicar técnicas de inteligencia artificial que ayuden en la toma de decisiones. Si la colección de datos continúa, se pueden aplicar técnicas de Big Data en este ámbito. También es necesario realizar un análisis de rendimiento y consumo de este tipo de aplicaciones debido a su alta demanda de recursos, e investigar en técnicas de computación y rendimiento que mejoren las capacidades de estas aplicaciones, como la paralelización de tareas para el procesamiento de imágenes. Chapter 6 Introduction Low vision (Salud Vision, 2024) is a significant deficiency in visual capacity, affecting aspects such as the visual field, and is not improved with treatment. This notable loss of vision causes difficulties in performing daily activities, such as reading, playing sports, traveling, or moving around. In Europe, 20 million people suffer from low vision, and in Spain, 1.8 million. In this work, an Internet of Things (IoT) system is developed using smart glasses, aimed at providing visual assistance and improving the quality of life for people with low vision. This project will implement various IoT techniques, such as data collection, data transmission to the cloud, downloading, analysis, and the creation of artificial intelligence models on a server using this data. The main functionalities of the project include patient interaction through gestures, allowing them to modify parameters such as zoom or brightness in real-time in what is projected by their smart glasses. Another functionality consists of saving these parameters in a cloud database so that the patient can later retrieve them and automatically set them in the projection of their smart glasses. Additionally, the application will include artificial intelligence to describe, by pressing a button on the smart glasses, the elements that appear in a scene captured by their camera. The system will also be equipped with a functionality that allows the patient to generate personalized gesture models and parameterize them to make modifications in their smart glasses. The application will also feature a module that will collect data from the sensors inte- grated into the smart glasses, specifically from the gyroscope, accelerometer, and magne- tometer, and send them to a cloud database, where they can be stored, downloaded, and analyzed on a server. This research and development aims to be a first step and proof of concept towards a more robust Health-IoT system, where information from all these patients is collected for further analysis with the ambition of creating solutions that can be automatically, intelligently, and quickly adjusted to each visual condition. 6.1. Motivation Mobile devices and their use have become normalized and are now an integral part of our daily lives. Augmented Reality (AR) and Mixed Reality aim to achieve the same level of integration, as in recent years, this new paradigm of interaction and information 53 54 Chapter 6. Introduction processing has been gaining traction in society. Technology companies are increasingly investing in this new form of interaction; a current example is Apple’s launch of the Apple Vision Pro this year (Apple, 2024). The World Health Organization (WHO) (WHO, 2023) estimates that there are 2.2 billion people worldwide with vision problems, and these numbers are expected to grow, mainly due to the increase in life expectancy, as age is one of the primary causes of vision problems. In the case of low vision, numerous studies estimate a moderate increase in the number of patients. Several studies and data also reflect a high rate of anxiety and depression among people with visual impairments (Demmin y Silverstein, 2020; Rainey et al., 2016). Economically, these visual impairments result in a cost of $411 billion due to lost productivity (WHO, 2023; Binns et al., 2012). Given that the goal of this work is to improve the quality of life for people with low vision, an investigation will be conducted to explain what low vision is and what the main pathologies causing it are. Motivated by this context, the present work aims to explore solutions that improve the quality of life for people with low vision using smart glasses. A comprehensive investigation will be conducted, first by understanding these conditions, the profile of the patients, and their main visual limitations, and then analyzing some of the current AR-based solutions. Subsequently, research will be carried out on the software and hardware that best suit the solution, leading to the development of a visual aid. The potential of AR in the field of low vision will also be analyzed to evolve and integrate as a Health-IoT (H-IoT) system. This work is made possible by the hardware and resources provided by the ONCE- Tiflotecnología Chair and motivated by the IrisEmpower project PLEC2022-009261. 6.2. Project Objectives The main objective of this work is to develop an IoT system integrated with augmented reality glasses and an Android application, aimed at improving the quality of life for people with low vision. Since the 1990s, Head-Mounted Display (HMD)-based solutions have been proposed (Massof et al., 1994) for the field of low vision. Currently, thanks to technological advances, these solutions have proven effective in enhancing the visual capabilities of this population and improving their quality of life (Wittich et al., 2018; Amore et al., 2023). The application will focus on patient interaction through gestures, allowing them to configure image parameters in real-time, such as zoom, contrast, or brightness. Addition- ally, the application will include a module to collect sensor data (gyroscope, accelerometer, magnetometer) from the smart glasses and send it to a cloud server. Configuration param- eters will be sent and stored in a cloud database for subsequent retrieval by users. Furthermore, the application will be integrated with Artificial Intelligence (AI) frame- works for mobile devices, adding AI functionalities such as object recognition, with the goal of investigating the feasibility of these solutions in terms of functionalities, hardware, and performance. The project will also explore ways to implement a feature for generating personalized gesture models, ensuring that each time the model is trained and updated on a server, it remains automatically updated in the application. The specific objectives of this work are as follows: 1. Understand the visual limitations of these patients and their remaining visual capac- ity in order to comprehend their behavior, interaction, and limitations. 6.3. Workplan 55 2. Identify and investigate current solutions to pinpoint areas for improvement or un- addressed aspects. 3. Research the hardware that best fits this problem, considering the target patients. 4. Once the hardware is selected, study its libraries, SDKs, modules, or software to implement an IoT system that enables its integration. 5. Investigate and develop a solution that allows values to be stored on a cloud server. 6. Explore AI libraries, frameworks, and solutions for development, particularly in the realm of mobile development. 7. Investigate the automation of personalized model generation and ensure the mobile application’s model remains up-to-date. 8. Develop the application that contains all the described functionality. 6.3. Workplan To achieve these objectives, an initial investigation into low vision will be conducted to understand the visual capabilities of these patients, their remaining vision, their main limitations, and how technology can enhance their quality of life. Subsequently, traditional methods used prior to the advent of modern technologies, primarily based on prisms (Apfelbaum y Peli, 2015), will be analyzed. Current technologies based on HMD and smart glasses that address this issue will be studied and evaluated to identify areas for improvement and potential innovations. Both commercial products and clinical studies supporting their effectiveness will be considered, in addition to reviewing non-commercialized works or implementations developed for commonly used smart glasses. With the foundation established in the previous stage, the most suitable hardware for the project’s goals will be evaluated. Software, frameworks, and available libraries will also be investigated, with special attention given to AI-based tools and the feasibility of integrating them into this project. Furthermore, the potential applications of IoT in this field will be explored. With this knowledge and the selected hardware, the next step will be to conduct initial tests, library integrations, and implementations to obtain preliminary results. After this phase, non-viable software and solutions will have been eliminated, filtering out the most promising approaches and developments. Finally, the application will be developed in the following order: Integration of the glasses’ SDK with Android. Manipulation of the projected image, adjusting zoom and brightness. Integration of gesture interaction to modify parameters in real-time. Integration with the database to save parameters and retrieve them later. Accessing sensor data through the smart glasses’ SDK API. Integration of artificial intelligence into the application to assist users. Automating the machine learning pipeline to generate personalized gesture models and keep these models updated in the Android application. 56 Chapter 6. Introduction This process will be iterative, and if necessary, the system’s design or implementation will be adjusted. 6.4. Document structure This document is structured as follows: In Chapter 2, "State of the Art," the state of the art is studied and an analysis of low vision and the people who suffer from it is conducted. Current commercial solutions and clinical studies that confirm their effectiveness, as well as the hardware used in these and other non-commercialized solutions, are evaluated. Additionally, the software, libraries, platforms, AI-based solutions, and databases that will be applied in the project are exam- ined. Finally, the conclusions are listed. In Chapter 3, "Planning and Resources," the project planning is detailed, the selected hardware resources and the reasons for their choice are described, as well as the SDKs used, the libraries for integrating artificial intelligence into mobile applications, and the development environments that will be utilized. In Chapter 4, "Project Development and Results," the project development is pre- sented, detailing how each of the functionalities is implemented and its integration with the selected tools and software. In Chapter 5, "Conclusions and Future Work," the results obtained are presented, the study’s conclusions are drawn, and possible future work directions are outlined. Chapter 7 Conclusions and Future Work 7.1. Conclusions This project focused on the development of an IoT-based visual aid system using smart glasses to improve the quality of life for people with low vision. First, research was conducted on this condition to understand the type of patient and their low vision. Subsequently, existing solutions in this field were studied and analyzed. Both traditional non-technological solutions and those based on electronic head-mounted devices (HMD), such as smart glasses, were evaluated. As a result of this analysis, areas for improvement were identified, and the appropriate hardware for the project development was found. The outcome was a multifunctional application that allows real-time adjustment of parameters such as brightness and zoom through gestures. The application enables the saving of personalized configuration parameters in a cloud database, so the user can retrieve them later. Additionally, it incorporates artificial intelligence to enumerate objects present in a scene through a narrator. The model used for gesture interaction is customized and trained with data generated by the application itself; it is downloaded from the cloud database, and if there is no internet connection, the locally stored model is used. The model is automatically updated if a new version is available in the database. The application also includes a module that sends sensor data from the smart glasses to a server for future download and analysis. This work demonstrated the immense potential of combining mobile application devel- opment with smart glasses and IoT to assist people with low vision. 7.2. Future Work Additional parameters can be included in the saved settings, such as contrast and the option to save images with edges. Another point of interest is combining the sensor values from the mobile phone with those from the smart glasses to monitor patients by using the GPS values from the mobile phone when the patient is walking. The stored smart glasses sensor data can also be analyzed to create movement patterns or to develop a customized interaction system using data from these sensors (accelerometer, gyroscope, magnetometer). In the realm of machine learning applications, personalized models can be added to 57 58 Chapter 7. Conclusions and Future Work allow the user to switch between them, such as one for text-to-speech, another for facial recognition, and another for obstacle detection while navigating. The scene description functionality can be enhanced by adding or combining these personalized models. The system can evolve into a robust Health-IoT platform where a low vision specialist can monitor the patient and their use of the system in real-time. In this way, the specialist could remotely modify the smart glasses’ parameters. Additionally, this system can collect usage data and smart glasses sensor values to apply artificial intelligence techniques that assist in decision-making. If data collection continues, Big Data techniques can be applied in this field. It is also necessary to conduct a performance and consumption analysis of these types of applications due to their high resource demand, and to investigate computing and per- formance techniques that enhance the capabilities of these applications, such as task par- allelization for image processing. Bibliografía Scanbuy Inc. Scanbuy inc. 2024. Disponible en https://apps.apple.com/us/app/ scanlife-powershopper/id285324287 (último acceso, accessed: 15.06.2024). Abdi, H., Valentin, D. y Edelman, B. Neural networks. 124. Sage, 1999. Acesight. Acesight. 2024. Disponible en https://retiplus.com/product/acesight/ (último acceso, accessed: 30.07.2024). Adi, S. E. y Casson, A. J. Design and optimization of a tensorflow lite deep learning neural network for human activity recognition on a smartphone. En 2021 43rd An- nual International Conference of the IEEE Engineering in Medicine & Biology Society (EMBC), páginas 7028–7031. IEEE, 2021. Ahmed, T., Nuruddin, A. T. B., Latif, A. B., Arnob, S. S. y Rahman, R. A real-time controlled closed loop iot based home surveillance system for android using firebase. En 2020 6th International Conference on Control, Automation and Robotics (ICCAR), páginas 601–606. IEEE, 2020. Alcocer Optica. ¿quÉ enfermedades oculares pueden producir baja visiÓn? y ¿cÓmo ven las personas con baja visiÓn? 2024. Disponible en https://bajavisionvalencia. es/patologias-adultos/#1528987863019-16f573bb-df09 (último acceso, Accessed: 2024-03-06). Alonso, R. S., Sittón-Candanedo, I., García, Ó., Prieto, J. y Rodríguez- González, S. An intelligent edge-iot platform for monitoring livestock and crops in a dairy farming scenario. Ad Hoc Networks, vol. 98, página 102047, 2020. Amore, F., Silvestri, V., Guidobaldi, M., Sulfaro, M., Piscopo, P., Turco, S., De Rossi, F., Rellini, E., Fortini, S., Rizzo, S. et al. Efficacy and patients’ satisfaction with the orcam myeye device among visually impaired people: a multicenter study. Journal of Medical Systems, vol. 47(1), página 11, 2023. Apfelbaum, H. y Peli, E. Tunnel vision prismatic field expansion: challenges and re- quirements. Translational vision science & technology , vol. 4(6), páginas 8–8, 2015. Apple. Apple vision pro. 2024. Disponible en https://www.apple.com/ apple-vision-pro/ (último acceso, 16.07.2024). Atlassian Trello. Trello brings all your tasks, teammates, and tools together. 2024. Disponible en https://trello.com/en (último acceso, 30.07.2024). 59 https://apps.apple.com/us/app/scanlife-powershopper/id285324287 https://apps.apple.com/us/app/scanlife-powershopper/id285324287 https://retiplus.com/product/acesight/ https://bajavisionvalencia.es/patologias-adultos/#1528987863019-16f573bb-df09 https://bajavisionvalencia.es/patologias-adultos/#1528987863019-16f573bb-df09 https://www.apple.com/apple-vision-pro/ https://www.apple.com/apple-vision-pro/ https://trello.com/en 60 BIBLIOGRAFÍA Avila, M., Wolf, K., Brock, A. y Henze, N. Remote assistance for blind users in daily life: A survey about be my eyes. En Proceedings of the 9th ACM International Conference on PErvasive Technologies Related to Assistive Environments, páginas 1–2. 2016. Bai, J., Li, Y., Lin, L. y Chen, L. Mobile terminal implementation of image filtering and edge detection based on opencv. En 2020 IEEE International Conference on Advances in Electrical Engineering and Computer Applications (AEECA), páginas 214–218. IEEE, 2020. Bergstra, J. y Bengio, Y. Random search for hyper-parameter optimization. Journal of machine learning research, vol. 13(2), 2012. Binns, A. M., Bunce, C., Dickinson, C., Harper, R., Tudor-Edwards, R., Woodhouse, M., Linck, P., Suttie, A., Jackson, J., Lindsay, J. et al. How effective is low vision service provision? a systematic review. Survey of ophthalmology , vol. 57(1), páginas 34–65, 2012. Bowers, A. R., Apfelbaum, D. H. y Peli, E. Bioptic telescopes meet the needs of drivers with moderate visual acuity loss. Investigative Ophthalmology & Visual Science, vol. 46(1), páginas 66–74, 2005. Chen, Y., Wang, Q., Chen, H., Song, X., Tang, H. y Tian, M. An overview of augmented reality technology. En Journal of Physics: Conference Series, vol. 1237, página 022082. IOP Publishing, 2019. Cho, N. H., Shaw, J., Karuranga, S., Huang, Y., da Rocha Fernandes, J., Ohl- rogge, A. y Malanda, B. Idf diabetes atlas: Global estimates of diabetes prevalence for 2017 and projections for 2045. Diabetes research and clinical practice, vol. 138, páginas 271–281, 2018. Coughlan, J. M. y Miele, J. Ar4vi: Ar as an accessibility tool for people with visual impairments. En 2017 IEEE International Symposium on Mixed and Augmented Reality (ISMAR-Adjunct), páginas 288–292. IEEE, 2017. Cross, N., van Steen, C., Zegaoui, Y., Satherley, A. y Angelillo, L. Current and future treatment of retinitis pigmentosa. Clinical Ophthalmology (Auckland, NZ), vol. 16, página 2909, 2022. Culham, L. E., Chabra, A. y Rubin, G. S. Clinical performance of electronic, head- mounted, low-vision devices. Ophthalmic and Physiological Optics, vol. 24(4), páginas 281–290, 2004. Deemer, A. D., Bradley, C. K., Ross, N. C., Natale, D. M., Itthipanichpong, R., Werblin, F. S. y Massof, R. W. Low vision enhancement with head-mounted video display systems: are we there yet? Optometry and vision science: official publication of the American Academy of Optometry , vol. 95(9), página 694, 2018. Demmin, D. L. y Silverstein, S. M. Visual impairment and mental health: unmet needs and treatment options. Clinical Ophthalmology , páginas 4229–4251, 2020. Dhital, A., Pey, T. y Stanford, M. R. Visual loss and falls: a review. Eye, vol. 24(9), páginas 1437–1446, 2010. BIBLIOGRAFÍA 61 Enoch, J., Jones, L., Taylor, D. J., Bronze, C., Kirwan, J. F., Jones, P. R. y Crabb, D. P. How do different lighting conditions affect the vision and quality of life of people with glaucoma? a systematic review. Eye, vol. 34(1), páginas 138–154, 2020. Epson. Moveiro-bt-350 specifications. 2024. Disponible en https://neoverio. com/wp-content/uploads/2019/10/EPSON-MOVERIO-RANGE-BRO1119-MIDRES.pdf (úl- timo acceso, 06.09.2023). Eroğlu, G. y Abou Harb, M. R. Assessing dyslexia with machine learning: A pilot study utilizing google ml kit. En 2023 Medical Technologies Congress (TIPTEKNO), páginas 1–4. IEEE, 2023. eSight. esight pricing. 2024. Disponible en https://esighteyewear.com/ wp-content/uploads/2022/06/eSight_pricing_USA-new-2022.pdf (último acceso, accessed: 30.07.2024). Fadlilah, U., Handaga, B. et al. The development of android for indonesian sign lan- guage using tensorflow lite and cnn: an initial study. En Journal of Physics: Conference Series, vol. 1858, página 012085. IOP Publishing, 2021. Firebase Documentation. Firebase machine learning. 2024. Disponible en https: //firebase.google.com/docs/ml (último acceso, 06.06.2024). Firebase Google. Firebase real time databse. 2024. Disponible en https://firebase. google.com/docs/database?hl=es-419 (último acceso, 15.06.2024). Geraldi, J. y Lechter, T. Gantt charts revisited: A critical analysis of its roots and implications to the management of projects today. International Journal of Managing Projects in Business, vol. 5(4), páginas 578–594, 2012. Google AI. Mediapipe. 2024. Disponible en https://ai.google.dev/edge/mediapipe/ solutions/guide (último acceso, (accessed: 30.07.2024)). Google ML Kit. Ml kit. 2024. Disponible en https://developers.google.com/ml-kit (último acceso, 06.06.2024). Goswami, L. y Agrawal, P. Iot based diagnosing of fault detection in power line trans- mission through google firebase database. En 2020 4th International Conference on Trends in Electronics and Informatics (ICOEI)(48184), páginas 415–420. IEEE, 2020. Granquist, C., Sun, S. Y., Montezuma, S. R., Tran, T. M., Gage, R. y Legge, G. E. Evaluation and comparison of artificial intelligence vision aids: Orcam myeye 1 and seeing ai. Journal of Visual Impairment & Blindness, vol. 115(4), páginas 277–285, 2021. Gubbi, J., Buyya, R., Marusic, S. y Palaniswami, M. Internet of things (iot): A vision, architectural elements, and future directions. Future generation computer systems, vol. 29(7), páginas 1645–1660, 2013. Gupta, A. K., Chakraborty, C. y Gupta, B. Monitoring of epileptical patients using cloud-enabled health-iot system. Traitement du Signal , vol. 36(5), páginas 425–431, 2019. https://neoverio.com/wp-content/uploads/2019/10/EPSON-MOVERIO-RANGE-BRO1119-MIDRES.pdf https://neoverio.com/wp-content/uploads/2019/10/EPSON-MOVERIO-RANGE-BRO1119-MIDRES.pdf https://esighteyewear.com/wp-content/uploads/2022/06/eSight_pricing_USA-new-2022.pdf https://esighteyewear.com/wp-content/uploads/2022/06/eSight_pricing_USA-new-2022.pdf https://firebase.google.com/docs/ml https://firebase.google.com/docs/ml https://firebase.google.com/docs/database?hl=es-419 https://firebase.google.com/docs/database?hl=es-419 https://ai.google.dev/edge/mediapipe/solutions/guide https://ai.google.dev/edge/mediapipe/solutions/guide https://developers.google.com/ml-kit 62 BIBLIOGRAFÍA Handhayani, T. y Hendryli, J. Leboh: An android mobile application for waste clas- sification using tensorflow lite. En Proceedings of SAI Intelligent Systems Conference, páginas 53–67. Springer, 2022. Harper, R., Culham, L. y Dickinson, C. Head mounted video magnification devices for low vision rehabilitation: a comparison with existing technology. British journal of ophthalmology , vol. 83(4), páginas 495–500, 1999. Hayat, F., Rehman, A. U., Arif, K. S., Wahab, K. y Abbas, M. The influence of agile methodology (scrum) on software project management. En 2019 20th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), páginas 145–149. IEEE, 2019. Hwang, A. D. y Peli, E. 23.4: Augmented edge enhancement for vision impairment using google glas. En SID Symposium Digest of Technical Papers, vol. 45, páginas 305–307. Wiley Online Library, 2014. Iris Vision. Bring life back into focus. 2024. Disponible en https://irisvision.com/ irisvision-inspire/ (último acceso, 2024-03-06). JetBrains. Kotlin docs. 2024. Disponible en https://kotlinlang.org/docs/home.html (último acceso, 30.07.2024). Kapitanov, A., Kvanchiani, K., Nagaev, A., Kraynov, R. y Makhliarchuk, A. Hagrid – hand gesture recognition image dataset. En Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV), páginas 4572–4581. 2024. Kazuhito Takahashi. Hand gesture recognition using mediapipe. 2024. Disponible en https://github.com/Kazuhito00/hand-gesture-recognition-using-mediapipe? tab=readme-ov-file (último acceso, 23.06.2024). Khalil, H. Diabetes microvascular complications—a clinical update. Diabetes & Metabolic Syndrome: Clinical Research & Reviews, vol. 11, páginas S133–S139, 2017. Lam, N. y Leat, S. J. Barriers to accessing low-vision care: the patient’s perspective. Canadian Journal of Ophthalmology , vol. 48(6), páginas 458–462, 2013. Le, G. T., Tran, N. M. y Tran, T. V. Iot system for monitoring a large-area envi- ronment sensors and control actuators using real-time firebase database. En Intelligent Human Computer Interaction: 12th International Conference, IHCI 2020, Daegu, South Korea, November 24–26, 2020, Proceedings, Part II 12 , páginas 3–20. Springer, 2021. LeCun, Y., Bengio, Y. y Hinton, G. Deep learning. nature, vol. 521(7553), páginas 436–444, 2015. Liaw, A., Wiener, M. et al. Classification and regression by randomforest. R news, vol. 2(3), páginas 18–22, 2002. Massof, R. W., Rickman, D. L., Lalle, P. A. et al. Low vision enhancement system. Johns Hopkins APL Technical Digest , vol. 15(2), páginas 120–125, 1994. Mitchell, T. M. y Mitchell, T. M. Machine learning , vol. 1. McGraw-hill New York, 1997. https://irisvision.com/irisvision-inspire/ https://irisvision.com/irisvision-inspire/ https://kotlinlang.org/docs/home.html https://github.com/Kazuhito00/hand-gesture-recognition-using-mediapipe?tab=readme-ov-file https://github.com/Kazuhito00/hand-gesture-recognition-using-mediapipe?tab=readme-ov-file BIBLIOGRAFÍA 63 MP Hoogsteen, K., A. Osinga, S., LPA Steenbekkers, B. y FA Szpiro, S. Functio- nality versus inconspicuousness: Attitudes of people with low vision towards ost smart glasses. En Proceedings of the 22nd International ACM SIGACCESS Conference on Computers and Accessibility , páginas 1–4. 2020. Mácula Retina. Magnify: Una lupa digital equipada con lin- terna. 2024. Disponible en https://www.macula-retina.es/ magnify-una-lupa-digital-equipada-con-linterna/ (último acceso, 15.06.2024). OpenCV Org. Opencv. 2024. Disponible en https://opencv.org/ (último acceso, 06.06.2023). Oracle. Java for mobile devices documentation. 2024. Disponible en https://docs. oracle.com/javame/mobile/mobile.html (último acceso, 30.07.2024). OrCam. Orcam myeye 3 pro. 2024. Disponible en https://www.orcam.com/en-us/ orcam-myeye-3-pro (último acceso, accessed: 30.07.2024). Palanker, D., Le Mer, Y., Mohand-Said, S. y Sahel, J.-A. Simultaneous perception of prosthetic and natural vision in amd patients. Nature communications, vol. 13(1), página 513, 2022. Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V. et al. Scikit-learn: Machine learning in python. the Journal of machine Learning research, vol. 12, páginas 2825–2830, 2011. Pisner, D. A. y Schnyer, D. M. Support vector machine. Machine Learning: Methods and Applications to Brain Disorders, página 101, 2019. Rainey, L., Elsman, E. B. M., van Nispen, R. M. A., van Leeuwen, L. M. y van Rens, G. H. M. B. Comprehending the impact of low vision on the lives of children and adolescents: a qualitative approach. Quality of Life Research, vol. 25, páginas 2633–2643, 2016. Rao, S. U., Ranganath, S., Ashwin, T., Reddy, G. R. M. et al. A google glass based real-time scene analysis for the visually impaired. IEEE Access, vol. 9, páginas 166351–166369, 2021. Ro, Y. K., Brem, A. y Rauschnabel, P. A. Augmented reality smart glasses: Defini- tion, concepts and impact on firm value creation. Augmented reality and virtual reality: Empowering human, place and business, páginas 169–181, 2018. Rokid. Rokid air pro specs. 2024a. Disponible en https://air.rokid.com/product (último acceso, 15.06.2024). Rokid. Rokid sdk. 2024b. Disponible en https://rokid.yuque.com/ouziyq/tvgpgk/ zdas30 (último acceso, 23.06.2024). Ruffieux, S., Hwang, C., Junod, V., Caldara, R., Lalanne, D. y Ruffieux, N. Tailoring assistive smart glasses according to pathologies of visually impaired individuals: an exploratory investigation on social needs and difficulties experienced by visually im- paired individuals. Universal Access in the Information Society , vol. 22(2), páginas 463–475, 2023. https://www.macula-retina.es/magnify-una-lupa-digital-equipada-con-linterna/ https://www.macula-retina.es/magnify-una-lupa-digital-equipada-con-linterna/ https://opencv.org/ https://docs.oracle.com/javame/mobile/mobile.html https://docs.oracle.com/javame/mobile/mobile.html https://www.orcam.com/en-us/orcam-myeye-3-pro https://www.orcam.com/en-us/orcam-myeye-3-pro https://air.rokid.com/product https://rokid.yuque.com/ouziyq/tvgpgk/zdas30 https://rokid.yuque.com/ouziyq/tvgpgk/zdas30 64 BIBLIOGRAFÍA Salud Vision. ¿qué es la baja visión? 2024. Disponible en https://www.baja-vision. es/que-es-la-baja-vision/ (último acceso, Accessed: 2024-12-06). Schipor, O.-A. y Aiordăchioae, A. Engineering details of a smartglasses application for users with visual impairments. En 2020 International Conference on Development and Application Systems (DAS), páginas 157–161. IEEE, 2020. Schmidhuber, J. Deep learning in neural networks: An overview. Neural networks, vol. 61, páginas 85–117, 2015. Sivakumar, P., Vedachalam, R., Kannusamy, V., Odayappan, A., Venkatesh, R., Dhoble, P., Moutappa, F. y Narayana, S. Barriers in utilisation of low vision assistive products. Eye, vol. 34(2), páginas 344–351, 2020. Stearns, L., Findlater, L. y Froehlich, J. E. Design of an augmented reality mag- nification aid for low vision users. En Proceedings of the 20th international ACM SI- GACCESS conference on computers and accessibility , páginas 28–39. 2018. Tasmay Pankaj Tibrewal. Support vector machines (svm): An intuitive explanation. 2024. Disponible en https://medium.com/low-code-for-advanced-data-science/ support-vector-machines-svm-an-intuitive-explanation-b084d6238106 (último acceso, 30.07.2024). TensorFLow Org. An end-to-end platform for machine learning. 2024. Disponible en https://www.tensorflow.org/ (último acceso, 30.07.2024). Tham, Y.-C., Li, X., Wong, T. Y., Quigley, H. A., Aung, T. y Cheng, C.-Y. Global prevalence of glaucoma and projections of glaucoma burden through 2040: a systematic review and meta-analysis. Ophthalmology , vol. 121(11), páginas 2081–2090, 2014. Varghese, B., Wang, N., Barbhuiya, S., Kilpatrick, P. y Nikolopoulos, D. S. Challenges and opportunities in edge computing. En 2016 IEEE international conference on smart cloud (SmartCloud), páginas 20–26. IEEE, 2016. Verbakel, S. K., van Huet, R. A., Boon, C. J., den Hollander, A. I., Collin, R. W., Klaver, C. C., Hoyng, C. B., Roepman, R. y Klevering, B. J. Non- syndromic retinitis pigmentosa. Progress in retinal and eye research, vol. 66, páginas 157–186, 2018. WHO, W. H. O. Blindness and vision impairment. 2023. Wittich, W., Lorenzini, M.-C., Markowitz, S. N., Tolentino, M., Gartner, S. A., Goldstein, J. E. y Dagnelie, G. The effect of a head-mounted low vision device on visual function. Optometry and vision science, vol. 95(9), página 774, 2018. Wong, W. L., Su, X., Li, X., Cheung, C. M. G., Klein, R., Cheng, C.-Y. y Wong, T. Y. Global prevalence of age-related macular degeneration and disease burden pro- jection for 2020 and 2040: a systematic review and meta-analysis. The Lancet Global Health, vol. 2(2), páginas e106–e116, 2014. Xu, D., Yu, M., Zheng, C., Ji, S. y Dai, J. The effects of an electronic head-mounted display in vision rehabilitation for patients with tunnel vision. International ophthalmo- logy , vol. 44(1), página 109, 2024. https://www.baja-vision.es/que-es-la-baja-vision/ https://www.baja-vision.es/que-es-la-baja-vision/ https://medium.com/low-code-for-advanced-data-science/support-vector-machines-svm-an-intuitive-explanation-b084d6238106 https://medium.com/low-code-for-advanced-data-science/support-vector-machines-svm-an-intuitive-explanation-b084d6238106 https://www.tensorflow.org/ BIBLIOGRAFÍA 65 Younis, O., Al-Nuaimy, W., Alomari, M. H. y Rowe, F. A hazard detection and tracking system for people with peripheral vision loss using smart glasses and augmented reality. Int. J. Adv. Comput. Sci. Appl , vol. 10(2), páginas 1–9, 2019. Zhao, Y., Kupferstein, E., Tal, D. y Azenkot, S. ït looks beautiful but scary"how low vision people navigate stairs and other surface level changes. En Proceedings of the 20th International ACM SIGACCESS Conference on Computers and Accessibility , páginas 307–320. 2018. ZooMax. How to choose the right lo vision reading device? 2024. Disponible en https://www.zoomax.com/low-vision-information/ how-to-choose-the-right-low-vision-reading-device/ (último acceso, 2024- 03-06). https://www.zoomax.com/low-vision-information/how-to-choose-the-right-low-vision-reading-device/ https://www.zoomax.com/low-vision-information/how-to-choose-the-right-low-vision-reading-device/ Página de Título Índices Tabla de Contenidos Índice de figuras Índice de tablas Introducción Motivación Objetivos Plan de trabajo Estructura del documento Estado de la Cuestión Baja visión Degeneración macular Glaucoma Retinopatía diabética Retinosis pigmentaria Retos en baja visión Ayudas visuales tradicionales Head Mounted Displays Smart Glasses en la baja visión Realidad aumentada en baja visión Sistemas de ayuda visual comercializados Ayudas visuales no comercializadas Aplicaciones móviles Tecnologías para un sistema IoT en baja visión IoT y sistemas de ayuda visual Mediapipe Firebase ML Kit Open CV Técnicas de Inteligencia Artificial Aprendizaje automático Random Forest TensorFlow Lite Conclusiones Planificación y recursos Modelo de desarrollo Recursos Hardware Smart Glasses Rokid SDK Controlador Recursos Android Kotlin Vs Java Corutines ViewModels LiveData y MutableLiveData Android Studio Firebase Real Time Database Firebase servicio de Machine Learning Modelos mediapipe de Machine Learning Modelo de mediapipe Hand Gresture Classification Modelos de mediapipe detección de puntos de referencia Servidor Conclusiones Desarrollo del proyecto y resultados Integración del SDK de Rokid con la aplicación Conexión mediante USB-C Uso de la cámara de las Smart Glasses Firebebase Machine Learning Integración de mediapipe Procedimiento y normalización de coordenadas Funcionalidad de brillo Funcionalidad de zoom Interacción mediante botón físico Integración con Firebase y modelo de datos Conexión con la aplicación Modelo de datos Vistas del proyecto Sensores SG Ayuda visual Estados de la aplicación Integración del narrador Funcionalidad Machine Learning Arquitectura Resultados Herramientas para el análisis de los resultados Automatización para la creación de un dataset personalizado Modelos iniciales Análisis exploratorio con segundo dataset Resultados Red neuronal Fully Connect Resultados Con Random Forest Resultados support vector machines Conclusiones de los resultados Conclusiones y Trabajo Futuro Conclusiones Trabajo futuro Introduction Motivation Project Objectives Workplan Document structure Conclusions and Future Work Conclusions Future Work Bibliografía