scieee AI-readable full text Open interactive document viewer

Redes de aprendizaje profundo para reconocimiento de actividades humanas: framework de pre-procesado y entrenamiento en Tensorflow

Pardo Villalibre, Gonzalo

Abstract

Grado en Ingeniería de Tecnologías de Telecomunicación

Full text

Universidad de Valladolid 1 UNIVERSIDAD DE VALLADOLID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN TRABAJO FIN DE GRADO GRADO EN INGENIERÍA DE TECNOLOGÍAS DE TELECOMUNICACIÓN Redes de aprendizaje profundo para reconocimiento de actividades humanas: framework de pre-procesado y entrenamiento en Tensorflow Autor: D. Gonzalo Pardo Villalibre Tutor: Dr. D. Mario Martínez Zarzuela Valladolid, 5 de septiembre de 2021 Universidad de Valladolid 2 Universidad de Valladolid 3 TÍTULO: AUTOR: TUTOR: DEPARTAMENTO: TRIBUNAL PRESIDENTE: SECRETARIO: VOCAL: SUPLENTE 1: SUPLENTE 2: FECHA: CALIFICACIÓN: Redes de aprendizaje profundo para reconocimiento de actividades humanas: framework de pre-procesado y entrenamiento en Tensorflow D. Gonzalo Pardo Villalibre Dr. D. Mario Martínez Zarzuela Teoría de la Señal y Comunicaciones e Ingeniería Telemática Dra. Da. Miriam Antón Rodríguez Dr. D. Mario Martínez Zarzuela Dr. D. David González Ortega Dr. D. Francisco Javier Díaz Pernas Dr. D. Carlos Gómez Peña Universidad de Valladolid 4 Universidad de Valladolid 5 "You don't understand anything until you learn it more than one way.” Marvin Minsky Me gustaría agradecer al Dr. D. Mario Martínez Zarzuela por su dedicación y consejo en la confección de este Trabajo Fin de Grado. Asimismo, hacer especial mención a todas aquellas personas que me han acompañado en este largo camino: padre, hermana y amigos; y en particular a mi madre que tanto dio para que llegase este momento. Universidad de Valladolid 6 Resumen En esta memoria de Trabajo Fin de Grado se describe la elaboración de un framework especializado en el reconocimiento y clasificación de actividades humanas (problema HAR). Para ello, el autor se ha servido del uso de técnicas avanzas de aprendizaje automático y profundo aplicadas sobre dos bases de datos que contienen información de sensores ópticos (VICON) e inerciales (IMU). Dichos sensores aportarán información sobre la posición (vectores tridimensionales) u orientación (cuaterniones) de los sujetos bajo estudio que será utilizada por las redes neuronales en el proceso de clasificación. Se detalla la construcción del entorno de trabajo, diseñado bajo las máximas de sencillez y versatilidad, capaz de integrar múltiples bases de datos y no sólo aquellas dos utilizadas como fundamento en la confección de este documento 1 . Los resultados obtenidos sobre los conjuntos de datos públicos mencionados anteriormente tras haber sido procesados por el sistema confirman la eficacia del mismo llegando a una solución satisfactoria del problema. Palabras clave Framework, reconocimiento de actividades humanas, aprendizaje automático, aprendizaje profundo, sensores ópticos, sensores inerciales, redes neuronales. 1 Realdisp activity recognition dataset y Hardvard neura sparse dataset. Universidad de Valladolid 7 Abstract This final master thesis describes the development of a framework specialized in the recognition and classification of human activities (HAR problem). To do this, the author has made use of advanced machine and deep learning techniques applied to two databases that contain information from optical (VICON) and inertial (IMU) sensors. These sensors will provide information on the position (threedimensional vectors) or orientation (quaternions) of the subjects under study that will be used by the neural networks in the classification process. The construction of the work environment will be detailed as designed under the maxims of simplicity and versatility, capable of integrating multiple databases and not only those two used as a basis in the preparation of this document. The results obtained on the aforementioned public datasets after being processed by the system confirm its effectiveness, reaching a satisfactory solution to the problem. Keywords Framework, human activity recognition, machine learning, deep learning, ambient sensors, inertial sensors, neural networks. Universidad de Valladolid 8 Universidad de Valladolid 9 Índice general Capítulo 1. Introducción 1.1 Motivación 1.2 Hipótesis y objetivos 1.3 Fases y métodos 1.4 Recursos disponibles 1.5 Estructura de la memoria Capítulo 2. Revisión del estado de conocimiento 2.1 Problema HAR 2.2 Estado del arte 2.3 Análisis del caso de uso concreto Capítulo 3. Framework de pre-procesado y entrenamiento 3.1 Arquitectura Docker 3.3.1 Dockerfiles 3.3.2 Docker-compose 3.3.3 Utilidades transversales: GNU Make y JSON 3.2 Entorno de pre-procesado 3.2.1 Interleaved-dataframe 3.2.2 Image-builder 3.2.3 Image-enricher 3.2.4 Final-dataset 3.2.5 Configuración (JSON) 3.2.6 Uso (Makefile) 3.3 Entorno de entrenamiento 3.3.1 Gestor de entrenamientos individuales 3.3.2 Gestor de K-folds 3.3.3 Configuración de entrenamiento (JSON) 3.3.4 Uso (Makefile) 3.4 Entorno de inferencia 3.4.1 Soporte 3.4.2 Configuración (JSON) Capítulo 4. Integración: Pruebas y resultados 4.1 Harvard Neura Sparse Dataset 4.1.1 Optimización de los datos de entrenamiento 4.1.2 Diseño de modelos avanzados 4.1.3 Aplicación y análisis de los resultados 4.2 Realdisp activity recognition dataset Capítulo 5. Conclusiones y líneas futuras 5.1 Conclusiones 5.2 Líneas futuras REFERENCIAS 14 14 15 16 17 19 20 20 22 24 26 26 27 28 30 31 33 34 36 36 37 39 40 41 48 49 52 53 53 55 57 57 59 62 65 70 72 72 73 75 Universidad de Valladolid 16 1.3 Fases y métodos A lo largo de este TFG el autor ha seguido las siguientes fases: 1. Formación básica en la rama de inteligencia artificial. De cara a afrontar los retos que presenta esta investigación, el autor se formó previamente en el campo de la inteligencia artificial a través de varios cursos on-line en la plataforma Udemy (Gomila Salas, 2020b, 2020a). 2. Elección y análisis del dataset. La base de datos que sirve para plantear la hipótesis inicial fue facilitada por el Dr. D. Mario Martínez Zarzuela. Seguidamente se procedió a un análisis minucioso de la información disponible valorando los posibles fallos que pudiera contener. 3. Diseño e implementación de la solución. Con el marco de trabajo inicial establecido y tras advertir la similitud que presentan entre sí los problemas de tipo HAR, se decide crear una solución general capaz de agilizar el proceso de resolución. 4. Evaluación global de la herramienta. Una vez creada la herramienta, se prosigue con una fase de pruebas cuya finalidad no es obtener resultados relevantes para la investigación, sino asegurar el correcto funcionamiento de la misma. En esta fase se añaden nuevas funcionalidades potenciales y se depuran errores de implementación. 5. Diseño e implementación de redes neuronales. Junto con la tercera fase, es la más extensa de todas: se suceden etapas de diseño de redes neuronales, ajuste de hiperparámetros, reflexión sobre los resultados obtenidos y valoración de posibles alternativas. Además, se decide incluir en la herramienta la capacidad para elaborar métricas de rendimiento a partir de los entrenamientos realizados; de este modo es posible identificar de manera más sencilla y precisa las debilidades y puntos fuertes de cada diseño. 6. Incorporación de datasets alternativos. Con los resultados obtenidos tras integrar la base de datos Neura Sparse se procede con el estudio sobre el conjunto Realdisp, que ya había sido objeto de investigación por parte del alumno Sáez Bombín, S. El objetivo de esta última fase es emular los resultados obtenidos y confirmar el éxito de la herramienta. Universidad de Valladolid 17 1.4 Recursos disponibles 1.4.1 Hardware El presente TFG ha sido desarrollado en su totalidad sobre un ordenador de sobremesa personal que ejecuta un sistema operativo Linux. Dicha máquina consta de: • Procesador CPU Intel® Core™ i7-9700k • Memoria RAM Corsair Vegeance PRO 32 GB a 3200 MHz. • Tarjeta gráfica GPU Nvidia® GeForce NVIDIA RTX 3080. • Disco duro Samsung 970 Evo Plus M.2 de 500 GB. 1.4.2 Software La implementación software del framework es fruto de la cohesión de múltiples tecnologías comúnmente utilizadas en los entornos profesionales más competitivos, pudiendo distinguirse: Arquitectura Referido a la parte más estructural del entorno de trabajo (framework). • Docker: tecnología fundamentada en el uso de “contenedores” que permite generar instancias basadas en Linux y que refleja su máxima expresión bajo el plugin de dockercompose. Su utilidad reside en la capacidad de mantener entornos de desarrollo estables e independientes de la máquina host donde se ejecuta el servicio. Figura 1. Logotipo Docker • Flask: framework desarrollado en Python que facilita la creación de aplicaciones web. Destaca por ser ligero, no necesitar de librerías externas ni requerir el uso de una base de datos. Figura 2. Logotipo Flask Universidad de Valladolid 18 Desarrollo Referido a la parte funcional del entorno de trabajo. • Shell: intérprete de comandos de Linux que permite generar scripts con el fin de automatizar procesos recurrentes. Figura 3. Logotipo bash • Python: es un lenguaje de programación interpretado de alto nivel. Su enfoque general y multiplataforma representa la opción más adecuada de cara a implementar una solución dinámica y adaptativa. Tiene integración total con multitud de utilidades de terceros enfocadas al ámbito de la inteligencia artificial como Tensorflow o Keras. Figura 4. Logotipo Python • TensorFlow: “Es una plataforma de código abierto de extremo a extremo para el aprendizaje automático” (TensorFlow, n.d.). Incorpora toda la instrumentación necesaria para aplicar la amplia mayoría de conocimientos teóricos actuales a soluciones software de aprendizaje profundo. El código fue liberado en 2015 por Google, que lo había creado como segunda generación del proyecto “Google Brain”. Sobre TensorFlow se desarrolló posteriormente Keras, con un nivel mayor de abstracción facilitando la entrada de nuevos desarrolladores. No obstante, aunque algo más complejo, Tensorflow posee mayor versatilidad y, por tanto, es la utilidad que se ha escogido en la elaboración de esta investigación. Figura 5. Logotipo Tensorflow y Keras • Unity: “Unity es una herramienta de desarrollo de videojuegos creada por la empresa Unity Technologies… que también se ha utilizado para crear experiencias de Realidad Virtual interactivas e incluso miniseries” (García, 2019). La herramienta nos facilitará la comprensión y representación tridimensional del problema. Figura 6. Logotipo Unity Universidad de Valladolid 19 1.5 Estructura de la memoria. La presente memoria ha sido dispuesta en múltiples capítulos emulando el orden lógico-temporal sucedido a lo largo de este Trabajo Fin de Grado. En el primer capítulo se ha descrito la naturaleza del problema, y a continuación se ha planteado la hipótesis inicial y la causa que ha motivado el comienzo de la investigación. Finalmente, se ha recopilado el conjunto de medios teóricos y técnicos disponibles a la hora de abordar la tarea. En el segundo capítulo se describe el contexto científico actual que rodea el campo del aprendizaje profundo incidiendo en la resolución del problema de detección y clasificación de movimiento humano. Se evalúan también las técnicas de ML más relevantes que serán utilizadas. Por último, se analizan las bases de datos protagonistas de este Trabajo. A lo largo del tercer capítulo se realiza una detallada descripción del framework desarrollado, al constituir uno de los elementos más trascendentes. Comenzando con la visión arquitectónica del proyecto hasta los fundamentos de software más esenciales, se revisita en esta sección toda la tecnología utilizada por el autor. En el cuarto capítulo se expone el discurso lógico y teórico que guía la toma de decisiones a la hora de diseñar los diferentes modelos de redes neuronales. Se incorporan los resultados más diferenciales intentando motivar la causa-efecto de los mismos y, en definitiva, se manifiesta el progreso efectivo en la resolución del problema. Finalmente, en el quinto capítulo se exponen las conclusiones más notorias y se discuten las posibles líneas futuras objeto de exploración. Adicionalmente se incorporan dos anexos: • ANEXO I: presupuesto del proyecto. • ANEXO II: guía de uso del framework. Escrito en inglés, se trata de un documento técnico que detalla todos los requisitos necesarios para poder utilizar el entorno de trabajo. Asimismo, se incluyen las instrucciones de uso para futuros investigadores. • ANEXO III: en este apartado se muestran las matrices de confusión y las métricas obtenidas tras los entrenamientos con las redes neuronales que se han demostrado más relevantes. Universidad de Valladolid 20 Capítulo 2. Revisión del estado de conocimiento En la última década el reconocimiento de actividades físicas humanas ha suscitado el interés de la comunidad científica, fomentado en gran parte por el auge de la computación ubicua -ubiquitous computin- (Zhang & Sawchuk, 2012) . Enfrentada a la tradicional computación de escritorio (desktop computing), esta nueva corriente engloba “todos aquellos servicios que permiten al usuario interactuar con los sistemas digitales mediante interfaces naturales como el movimiento o la voz sin necesidad de un teclado o un ratón de por medio” (FRACTALIA, 2016). Adicionalmente, otro tipo de motivaciones como la corrección de la postura humana, la detección precoz de hábitos motrices incorrectos o la evaluación del rendimiento de los atletas profesionales se han sumado al mar de aplicaciones que generan la necesidad de abordar el problema de detección y clasificación de movimiento humano (Human activity recognition). 2.1 Problema HAR Desde sus inicios, y como ya se ha mencionado en el presente documento, este problema se fundamenta sobre la posibilidad de identificar el movimiento humano a partir de señales captadas por, generalmente, dos tipos de sensores: sensores ambientales o sensores “vestibles”, también conocidos como on-body sensors. Los sistemas de sensores optoelectrónicos están constituidos esencialmente por una o varias cámaras que se colocan estratégicamente para captar el movimiento de un sujeto. La principal y evidente desventaja reside en la necesidad previa de preparar y mantener la instalación que, además, verá su uso limitado al rango de acción de las propias cámaras. Figura 7. Captura de movimiento vía sensores optoelectrónicos Sobre el vídeo obtenido se aplica típicamente un algoritmo de procesado computacional para extraer exclusivamente la información relativa al movimiento; este proceso suele ser costoso en tiempo y dinero. Además, el contenido original de los vídeos puede incluir información que entre en conflicto con la Ley Orgánica 3/2018, de 5 de diciembre, de Protección de Datos Personales y garantía de los derechos digitales, lo que degrada aún más la eficiencia de este tipo de soluciones. Universidad de Valladolid 21 Frente a ello, los sistemas de sensores vestibles están formados por sensores inerciales y magnéticos que contienen giroscopios, acelerómetros y magnetómetros. La principal ventaja de estas soluciones es que pueden ser fácilmente integradas en dispositivos de uso común como relojes o smartphones; así, su uso resulta transparente para el usuario final y prácticamente ilimitado en cuanto al área geográfica de aplicación. No obstante, con el objetivo de conseguir una representación fidedigna de la realidad con valor suficiente para resolver nuestro problema, es recomendable utilizar varios sensores de manera simultánea, como se muestra en la imagen. Figura 8. Uso de múltiples sensores inerciales Es precisamente la necesidad del uso de múltiples sensores el Talón de Aquiles de estos sistemas; tal y como se describe en el artículo (Banos et al., 2014), la propia colocación de dichos dispositivos genera una serie de errores de medición derivados que, además de tener difícil solución, son complicados de identificar. No obstante -como se concluye en el citado estudio-, a medida que aumente el número de sensores la incorrecta colocación de uno sólo de ellos tendrá un impacto menor en la decisión final. Aunque ambas opciones tienen su desventajas y bondades, los sistemas vestibles se demuestran más populares debido esencialmente a su inferior coste y sencillo mantenimiento. Sin embargo, siempre resultará interesante comparar el desempeño de ambas alternativas para cada situación particular. En cualquier caso, e independientemente del sistema que utilicemos para obtener los datos, el objetivo final del problema HAR será determinar certeramente a partir de las series temporales de datos qué actividad está realizando el protagonista de la acción. Universidad de Valladolid 22 2.2 Estado del arte En todo estudio fundamentado sobre series de datos temporales generados por sensores, la comunidad científica ha coincidido habitualmente en aplicar un esquema de trabajo similar que se ve perfectamente reflejado en la imagen extraída del artículo científico “Recent Progress in Sensing and Computing Techniques for human activity recognition and motion análisis” (Meng et al., 2020). Figura 9. Esquema de resolución común del problema HAR Tras la obtención de los datos es común acometer una fase de segmentación que se encarga de dividir las series temporales obtenidas de forma continua en intervalos más pequeños. El objetivo es generar muestras individuales limitadas en el tiempo que puedan ser procesadas y utilizadas por los distintos sistemas de clasificación. Como se explica en el artículo, el tamaño de la ventana temporal utilizado para dividir los datos influirá de manera determinante en el resultado del problema; es por ello que esta técnica recibe en ocasiones el nombre de sliding window. A continuación, sucede una fase de extracción de características (feature extraction) con el objetivo de resaltar las peculiaridades de los datos obtenidos. En ocasiones dicha fase se reduce a eliminar la información menos relevante de las series de datos y propagar aquella de mayor interés. Sin embargo, a lo largo de los últimos años se han desarrollado multitud de operaciones de preprocesado que se pueden aplicar sobre los datos y que se han demostrado certeras a la hora de facilitar el futuro proceso de clasificación: • Normalización de los segmentos de datos/ventanas temporales: o Eliminación de la media: restar la media a todos los datos. o Z-Score: dividir los datos entre la desviación estándar. o Normalización: dividir cada valor entre la magnitud total del segmento. o Ecualización del histograma. • Obtención de información frecuencial a partir de los segmentos temporales. • Descarte de los instantes con velocidad nula, técnica conocida como eliminación de la actividad nula (Ribeiro et al., 2020). Una vez generadas las muestras finales que se van a utilizar en el proceso de clasificación, se ha de determinar el sistema de clasificación automática a emplear. A pesar del tradicional uso de algoritmos de ML su popularidad ha descendido tras la reciente aparición de las redes neuronales profundas (Deep Learning). Universidad de Valladolid 23 Siguiendo el anterior esquema de trabajo, el documento Deep Convolutional Neural Networks on Multichannel Time Series For Human Activity Recognition (Yang et al., 2015), opta por el uso de redes neuronales convolucionales como sistema de clasificación. Los -quizá no tan alentadoresresultados obtenidos del 86.4% de precisión encuentran su explicación esencialmente en el prematuro estado de la tecnología de redes neuronales en aquel momento y en la precariedad de las operaciones de extracción de características aplicadas. Más tarde, en el artículo Feature extraction for robust physical activity recongnition (Jiadong Zhu, Ruben San-Segundo y José M. Pardo, 2017) se propone una solución para el problema HAR haciendo uso exclusivo de algoritmos de ML sobre de la información contenida en la base de datos REALDISP Activity Recgonition dataset. Figura 10. Esquema de solución propuesto El esquema propuesto por los compañeros de la Universidad Politécnica de Madrid (UPM) coindice, en gran medida y de nuevo, con la “manera de hacer” tradicional que se ha expuesto anteriormente. En este caso los algoritmos de clasificación seleccionados fueron J48 y Random Forest, logrando el segundo resultados del 96,1% de precisión en la clasificación de movimiento. Se ha hecho especial hincapié en el artículo anterior al poseer extrema relación con el estudio realizado por D. Sergio Sáez Bombín ya que ambos hacen uso de la misma base de datos REALDISP Activity Recognition dataset. Por su parte, éste propone una solución que incorpora el uso de redes neuronales profundas novedosas como la combinación CNN+LSTM (red neuronal convolucional seguida de una Long Short Term) en lugar de algoritmos de ML. Los resultados obtenidos en este tercer estudio obtuvieron una precisión similar del 96%, lo que confirma el gran avance de la tecnología desde el primer estudio citado (año 2015). De hecho, las redes neuronales profundas se han demostrado actualmente más eficaces al degradarse la precisión en menor proporción a medida que aumenta el número de actividades a clasificar (en comparación a los algoritmos de ML tradicionales). No obstante, los resultados obtenidos por D. Sergio Sáez Bombín deben aceptados con precaución al no hacer un uso total de la base de datos -a diferencia del primer estudiofiltrando algunas actividades y sujetos problemáticos. En definitiva, independientemente del sistema de clasificación elegido queda patente el esquema de trabajo habitual (Figura 9) que guiará efectivamente el presente Trabajo Fin de Grado. Universidad de Valladolid 24 2.3 Análisis del caso de uso concreto Principalmente este TFG se centra en la resolución del problema HAR empleando los datos proporcionados por el estudio “Replication Data for Estimating Lower Limb Kinematics using a Reduced Wearable Sensor Count” (Sy, 2019). El experimento contiene información de siete sujetos realizando diez actividades distintas para cuya medición se han utilizado tanto el sistema ambiental Vicon Vantage (ocho cámaras rodeando al individuo) como el sistema inercial xSens (7 sensores colocados sobre el cuerpo del sujeto). Como se ha detallado anteriormente el autor empleará sus esfuerzos en el estudio proporcionado por los sensores ambientales Vicon Vantage con el fin de demostrar su valía. Tabla 1. Actividades grabadas en la base de datos En cualquier caso, ambos sistemas proporcionan tablas de datos temporales que aportan información sobre la posición u orientación de puntos estratégicos de la parte inferior del cuerpo humano: Sensores de posición y orientación SENSOR 4D DESCRIPCIÓN qRPV Pelvis qRSK Tibia derecha qLSK Tibia izquierda qRTH Fémur derecho qLTH Fémur izquierdo qRFT Pie derecho qLFT Pie izquierdo SENSOR 3D DESCRIPCIÓN PELV Pelvis RFEP Rodilla derecha LFEP Rodilla izquierda RFEO Tobillo derecho LFEO Tobillo izquierdo LTOE Pie izquierdo RTOE Pie derecho Tabla 2. Universidad de Valladolid 25 Cada sensor genera un valor con la correspondiente posición u orientación con una frecuencia de 100 Hz; estos valores serán almacenados en tablas individuales en función de la actividad, el sujeto o el número de intento realizado. Adicionalmente, se integrará en la herramienta creada la ya mencionada base de datos REALDISP Activity Recognition dataset (UCI Machine Learning Repository, 2014) utilizada en el estudio realizado por la UPM, así como por D. Sergio Sáez Bombín con tres objetivos: • Comprobar cuán fácil es adaptar un modelo adicional de base de datos a la herramienta creada. • Emular los resultados obtenidos por D. Sergio Sáez Bombín. • Comparar la solución del problema HAR en términos de precisión al entrenar las distintas redes neuronales sobre los datos proporcionados por este segundo estudio basado en la medición vía sensores inerciales en contraposición de los sistemas ambientales. En este segundo caso, como se aprecia en la tabla 3, se trata de nueve sensores inerciales colocados a lo largo de todo el cuerpo que plasman los datos de treinta y tres actividades entre las que podemos mencionar saltar a la comba, rotar los hombros o realizar círculos con los brazos abiertos. A diferencia de la primera base de datos, en este caso coinciden los puntos donde se reporta la información de orientación y posición, incluyendo además otros valores como la aceleración o el valor del campo magnético. SENSORES 3D, 4D Y OTROS VALORES DESCRIPCIÓN RLA Inferior brazo derecho RUA Superior brazo derecho BACK Espalda LUA Superior brazo izquierdo LLA Inferior brazo izquierdo RC Pantorrilla derecha RT Fémur derecho LT Fémur izquierdo LC Pantorrilla izquierda Tabla 3. Sensores inerciales REALDISP De nuevo, la información grabada generará tablas de datos con un valor instantáneo cada 50 Hz. En ambos casos, se ha realizado un filtrado de las actividades objeto de clasificación: de aquellas expuestas en la Tabla 1 se han eliminado “Jog” al presentar un número de muestras insuficiente y “5- Minute-Walk” puesto que existe información suficiente relativa a la acción de andar en la propia actividad “Walk”. Por su parte para las actividades en la base de datos RealDisp, al tratarse en este caso un estudio comparativo con el realizado con D. Sergio Sáez Bombín se han tenido en cuenta únicamente las actividades consideradas en su momento. Universidad de Valladolid 32 El investigador deberá realizar un trabajo de adaptación previo uso del framework con el objetivo de adaptar mínimamente su dataset al formato de entrada anteriormente presentado. En la guía de uso (Anexo II) se detallan en profundidad todos los requisitos técnicos. Como complemento, se ha facilitado una muestra de tuneado para dos bases de datos distintas con el fin del ilustrar a los futuros usuarios de la plataforma. Esta fase no es en ningún caso baladí ya que además será imprescindible que los ficheros .csv estén correctamente nombrados identificando el sujeto, la actividad y el trial (intento o número de prueba). Así, el entorno de preprocesado podrá realizar el filtrado de aquellos que sean relevantes de forma automática. En conclusión, este entorno está preparado para trabajar con tablas que contienen series temporales de datos correspondientes al movimiento de un ser humano realizando una determinada actividad. Está distribuido en cuatro módulos pseudo-independientes que aplican diferentes operaciones de manera secuencial sobre los datos de entrada, y se distinguen: • Módulo de “tablas de datos intercaladas” o interleaved-dataframe. • Módulo de “construcción de imágenes” o image-builder. • Módulo de “enriquecido de imágenes” o image-enricher. • Módulo de “dataset final” o final-dataset. Figura 19. Arquitectura del entorno de pre-procesado Universidad de Valladolid 33 3.2.1 Interleaved-dataframe La función de este módulo es reorganizar el formato de los datos originales para representarlos con mayor facilidad en Unity 3D. Dicha representación se realizará a través de varios scripts desarrollados por el Doctor D. Mario Martínez Zarzuela y resultará fundamental en la resolución del problema, ayudando al investigador a analizar visualmente los movimientos grabados y así determinar posibles errores de medición o valorar diferentes hipótesis, como veremos a lo largo del Capítulo 4. Figura 20. Transformación efectuada por el módulo interleaved-dataframe La transformación consiste en trasladar cada sensor perteneciente a un mismo instante temporal a una nueva fila adicional; de este modo, obtendremos finalmente una tabla con tres o cuatro columnas (si estamos usando sensores de posición u orientación respectivamente) y tantas filas como instantes temporales teníamos inicialmente multiplicadas por el número de sensores utilizados. Adicionalmente, se podrá realizar un filtrado del dataset original para discriminar los sujetos, actividades, sensores de posición y sensores de orientación deseados en el estudio. Así, se presenta la posibilidad de atacar también la resolución del problema HAR minimizando el número de sensores usados. Sin embargo, no será posible combinar información de sensores de orientación y movimiento a lo largo del framework ya que se tratarán de forma separada. Universidad de Valladolid 34 Figura 21. Representación de varios movimientos en Unity 3.2.2 Image-builder La primera función de este segundo módulo es recuperar el formato de las tablas de datos originales asegurando además que no existe ningún carácter extraño y transformando la nomenclatura científica a una nomenclatura estándar para facilitar el procesado. Sin embargo, su tarea principal y que da nombre a este bloque es aplicar la técnica de segmentación que se ha descrito en el Capítulo 2. A partir de un determinado fichero que contiene la información de un sujeto realizando una determinada actividad durante N instantes de tiempo, se generarán nuevas tablas de datos con X instantes de tiempo cada una, donde X siempre será inferior a N. Desde ahora momento nos referiremos a estas nuevas subtablas bajo el nombre de imágenes de movimiento. Figura 22. Generación de imágenes a partir de ficheros originales Universidad de Valladolid 35 Cada imagen contendrá, por tanto, una porción de información de los ficheros de movimiento originales y servirá para alimentar a las futuras redes neuronales. A fin de aumentar el número de imágenes final -puesto que se suele trabajar con bases de datos limitadas-, también se puede definir cierta superposición entre los datos incluidos en cada imagen. Figura 23. Generación de imágenes con superposición a partir de ficheros originales A partir de este momento, todas las utilidades estarán determinadas al máximo a facilitar el aprendizaje de las redes neuronales; para ello es esencial disponer de tantas muestras en los conjuntos de entrenamiento, test y validación como sea posible. Además, dichas muestras deberán contener la información más completa y relevante. En ese sentido, cada imagen resultante está nombrada de manera estratégica identificando totalmente su contenido. Por ejemplo, S09-HighKneeJog-Orientationjoints-2-40-0.csv donde cada campo significa respectivamente: • Sujeto que realiza el movimiento: S09. • Actividad: HighKneeJog. • Sensores utilizados: orientación. • Intento/trial: segundo intento. • Número de imagen generada: se trata de la imagen número 40. • Grados de rotación: al haber 0 grados de rotación se trata de una imagen que no proviene de data augmentation, opción que será comentada a continuación. Universidad de Valladolid 36 3.2.3 Image-enricher El tercer módulo tiene como función enriquecer las imágenes previamente creadas habilitando la incorporación de información frecuencial, técnica que se ha descrito en el Capítulo 2 en el apartado de extracción de características. El uso de este recurso es opcional; de hecho, es posible: • Conservar imágenes exclusivamente temporales. • Generar imágenes con contenido exclusivo frecuencial a partir de la FFT 2D calculada sobre las imágenes temporales. • Combinar la información temporal y frecuencial. Figura 24. Generación de imagen enriquecida combinando información temporal y frecuencial Adicionalmente, este módulo permite aplicar data augmentation a través de la rotación vertical de sujetos con el fin de aumentar el número de muestras. El investigador puede detallar una lista con diferentes grados de giro que se aplicarán sobre la imagen temporal original, de suerte que al final obtendrá una simulación del sujeto realizando la actividad en otra dirección. Seguidamente, se calcula la FFT 2D para cada una de las imágenes rotadas generadas inorgánicamente, si así se desea. 3.2.4 Final-dataset Este último módulo es el más sencillo de todos y su única función es filtrar las imágenes que se trasladarán al volumen compartido tras el pre-procesado. Así, se podrá volver a discriminar entre actividades, además de indicar si se desea elegir las imágenes exclusivamente temporales o aquellas generadas en el módulo previo con contenido frecuencial. Universidad de Valladolid 37 3.2.5 Configuración (JSON) Previamente se han mencionado multitud de características dependientes del criterio del investigador, entre las que destacan, por ejemplo, los sensores utilizados, la longitud temporal de las imágenes o los grados de giro en el data augmentation. Surge por tanto la necesidad de dotar al entorno de preprocesado de cierta versatilidad y dar rienda suelta a la “magia” del investigador. Para ello, el entorno posee un fichero de configuración JSON que permite modificar la inmensa mayoría de atributos relevantes. A continuación, se detallan las propiedades modificables de cada módulo. ATRIBUTO TIPO DESCRIPCIÓN enabled boolean Activa el primer módulo subject.list Array<String> Lista de los sujetos incluidos movements.list Array<String> Lista de las actividades incluidas movements.samples Array<String> Lista de los intentos incluidos orientationSensors.enabled boolean Activa el procesado de los sensores de orientación orientationSensors.list Array<String> Lista con los sensores de orientación a procesar positionSensors.enabled boolean Activa el procesado de sensores de posición positionSensors.list Array<String> Lista con los sensores de posición a procesar Tabla 4.Configuración del módulo “interleaved-dataframe” ATRIBUTO TIPO DESCRIPCIÓN enabled boolean Activa el segundo módulo orientationSensors.enabled boolean Activa el procesado de los sensores de orientación positionSensors.enabled boolean Activa el procesado de los sensores de posición images.window-size int Numero de instantes temporales por cada imagen images.overlap int Instantes temporales superpuestos entre imágenes deletePrevious boolean Elimina las tablas intercaladas generadas por el módulo anterior Tabla 5. Configuración del módulo “image-builder” ATRIBUTO TIPO DESCRIPCIÓN deepen-images boolean Activa el enriquecido de imágenes table-images (BETA) boolean BETA dataAugmentationRotation.gradeList Array<Int> Lista de grados de rotación para data augmentation FFT.enabled boolean Activa el cálculo de la FFT 2D FFT.combined boolean Activa la combinación de imágenes temporales y frecuenciales FFT.saveWithoutFFT boolean Activa el guardado de imágenes exclusivamente temporales deletePrevious boolean Elimina las imágenes generadas en el módulo anterior Tabla 6. Configuración del módulo “image-enricher” ATRIBUTO TIPO DESCRIPCIÓN movements.list Array<String> Lista de actividades para mover al volumen compartido FFT-input boolean Selecciona el tipo de imágenes para trasladar al volumen compartido: frecuenciales o temporales. Tabla 7. Configuración del módulo “final-dataset” Universidad de Valladolid 38 Figura 25. JSON de configuración entorno de preprocesado Universidad de Valladolid 39 3.2.6 Uso (Makefile) De manera similar al despliegue del framework, el entorno de preprocesado incorpora un makefile que facilita su uso una vez nos encontramos dentro del propio contenedor. Para ello es imprescindible además que el JSON de configuración haya sido completado correctamente; a continuación, bastará con hacer uso de la utilidad make junto con cualquiera de los siguientes comandos. Figura 26. Opciones make sobre el entorno de preprocesado Se distingue: • build-interleaved-dataframes: generar las tablas intercaladas (primer módulo). • build-images: generar las imágenes (segundo módulo). • enrich-images: enriquecer las imágenes (tercer módulo). • build-final-dataset: trasladar al volumen compartido el resultado final del pre-procesado (cuarto módulo). • build-all: ejecutar secuencialmente los cuatro módulos como se describe en el apartado “uso habitual”. En definitiva, para hacer uso del entorno de preprocesado y obtener el conjunto de datos listo para entrenar se deben seguir los siguientes pasos: 1. Adaptar el dataset original al formato de entrada del framework. 2. Configurar el JSON del entorno con los parámetros deseados. 3. Ejecutar secuencialmente las fases de transformación. De forma adicional, en el Anexo II se incluye una guía de uso en inglés. Universidad de Valladolid 40 3.3 Entorno de entrenamiento Este segundo entorno representa la utilidad más general del framework al habilitar el entrenamiento de redes neuronales siempre y cuando las muestras utilizadas sean ficheros .csv nombrados correctamente y así poder extraer la etiqueta o tag necesario a partir del nombre. Naturalmente, dicha especificación coincide con el formato de salida de los datos tras pasar por el entorno de preprocesado, pero podría ser utilizada para otros múltiples problemas; en el Anexo II, sección “Can I still use this framework if…” se detallan una serie de consejos con este último objeto. En la práctica habitual de resolución del problema HAR el entorno de train tomará las muestras de entrenamiento alojadas en el volumen compartido, es decir, las imágenes generadas por el entorno de preprocesado y, en base a la configuración convenientemente ajustada, comenzará a entrenar sin necesidad de realizar ningún cambio. Figura 27. Arquitectura del entorno de entrenamiento A diferencia del entorno de preprocesado, este marco no está dividido en módulos independientes; sin embargo, se pueden distinguir ciertos bloques lógicos que facilitan la comprensión del sistema. El uso de esta segunda herramienta es ciertamente flexible, aunque, en contraposición al preprocesado, no será sencillo incorporar aptitudes nuevas sobre las ya existentes; en este sentido se trata de un código robusto que requerirá amplios conocimientos de programación y específicamente de Tensorflow para poder elaborar nuevas funcionalidades. Universidad de Valladolid 41 3.3.1 Gestor de entrenamientos individuales El gestor de entrenamientos individuales es la unidad lógica más básica de este contenedor y se ejecutará con cada entrenamiento. Por ello, es preciso comprender correctamente su comportamiento antes de avanzar con la estructura general. Config loader En primer lugar, por cada fichero de configuración albergado directamente en el directorio /framework/toTrain se generará un nuevo evento de entrenamiento independiente utilizando como dataset las muestras alojadas en el volumen compartido (las ya mencionadas imágenes de movimiento). El contenido de los ficheros de configuración de entrenamiento será objeto de análisis en el apartado 3.3.3; en esencia, a través de ellos es posible caracterizar todo lo necesario para realizar un determinado entrenamiento: • Dimensión de las imágenes de entrada. • Modelo de red neuronal deseada. • Actividades/movimientos a clasificar. • Sujetos que queremos incluir en cada conjunto de datos (entrenamiento, test y validación). • Utilizar callbacks o no. • Utilizar imágenes provenientes de data augmentation. • … Dataset Generator A continuación, se ejecutará el generador de datos que acomete principalmente dos funciones: 1. Dividir y discriminar las imágenes de entrenamiento, validación y test. 2. Generar al vuelo batches con estos subconjuntos que alimentarán a la red neuronal en cada fase. Tradicionalmente se suele dividir el conjunto de datos disponible en tres subgrupos independientes: entrenamiento, test y validación. La red neuronal sólo podrá “aprender", es decir, actualizar el valor de los pesos de las neuronas, a partir de la información extraída de las imágenes de entrenamiento, mientras que los conjuntos de validación y test servirán exclusivamente para evaluar el rendimiento de la red neuronal intra-entrenamiento y post-entrenamiento, respectivamente. Idealmente estos tres subgrupos deben tener la misma distribución y han de ser independientes entre sí. Por ello, para el caso particular del problema HAR, se ha considerado óptimo utilizar el sujeto que realiza la acción para discriminar qué imagen se destina a cada set. Como se puede apreciar en la Figura 28, se habilita vía configuración la posibilidad de evitar el uso de datos provenientes de data augmentation para el conjunto de entrenamiento. Por su parte, los conjuntos de validación y test nunca usarán este tipo de datos puesto que las imágenes han sido generadas de manera artificial rotando ficticiamente los sujetos sobre el eje vertical (como se detalló en el apartado 3.2.3). Universidad de Valladolid 48 3.3.2 Gestor de K-folds Como ya se ha dicho, se da la posibilidad de aplicar la técnica de k-fold cross validation. Para determinar los ficheros de configuración de entrenamiento que pertenecen a un mismo k-fold se debe generar una subcarpeta bajo el directorio /framework/toTrain y almacenarlos en ella. De tal modo, además de dispararse un evento de entrenamiento individual para cada uno de ellos, al concluir todos se generará un reporte agregado que contendrá esencialmente: • Matriz de confusión agregada. • Matriz de confusión agregada normalizada. • Tabla de métricas agregada. Figura 35. Matriz de confusión agregada Se puede comprobar cómo la matriz de confusión agregada posee ocho veces más muestras que la matriz de confusión de un entrenamiento individual mostrada en la Figura 32 al corresponder a un 8-Fold. Finalmente cabe destacar que, entre los ficheros de configuración de un mismo K-fold, sólo pueden variar los conjuntos de test, validación y entrenamiento; en otras palabras, solo deben cambiar los sujetos que pertenecen a cada subconjunto. De otro modo, no se aplicaría correctamente la técnica de validación cruzada mediante K-fold. Universidad de Valladolid 49 3.3.3 Configuración de entrenamiento (JSON) Cada entrenamiento está completamente caracterizado a través de su correspondiente fichero de configuración que posee los siguientes atributos: ATRIBUTO TIPO DESCRIPCIÓN neural-network string Modelo de red neuronal seleccionado no-augmentation boolean Deshabilita las imágenes generadas vía data-augmentation para conjunto de entrenamiento movements Array<String> Lista de movimientos que ha de predecir train-subjects Array<String> Lista de sujetos incluidos en el conjunto de entrenamiento validation-subjects Array<String> Lista de sujetos incluidos en el conjunto de validación test-subjects Array<String> Lista de sujetos incluidos en el conjunto de test callbacks.enabled boolean Habilita el uso de callbacks callbacsk.list Array<Object>* Lista con los callbacks configurados input-rows int Filas por imagen input-columns int Columnas por imagen channels 1 o 4 Determina el uso de la canalización 2D o 3D respectivamente. batch-size int Tamaño del batch usado train-steps int Steps por epoch en la fase de entrenamiento validation-steps int Steps por epoch en la fase de validación test-steps int Steps por epoch en la fase de test epochs int Epochs para la fase de entrenamiento (uno por defecto para la fase de test). comments string Comentarios para propagar en el reporte final Tabla 8. Configuración de un entrenamiento *Actualmente la plataforma soporta el uso de dos tipos de callbacks distintos: modelCheckPoint (ModelCheckpoint), que sirve para guardar el estado de la red neuronal en un momento determinado, y earlyStopping (EarlyStopping), utilizado para concluir prematuramente los entrenamientos si se da una determinada condición, típicamente que tras varias épocas la red neuronal no mejore. En las Figuras 36 y 37 se mostrará un ejemplo para la correcta configuración de cada uno de ellos. Universidad de Valladolid 50 Figura 36. Primer ejemplo de configuración del entorno de entrenamiento Se presenta la configuración necesaria para entrenar el modelo de red neuronal N5. No se incluirá data augmentation en el conjunto de datos de entrenamiento. Mientras que los sujetos S04 y S05 serán usados para los conjuntos de validación y test respectivamente, el resto de ellos se incluirán en el de entrenamiento. Además, se incluye el callback denominado modelCheckpoint que sirve para almacenar el estado de la red neuronal cuando ésta ofrezca el resultado con menor pérdida (loss). Adicionalmente se caracteriza la dimensión de las imágenes e hiperparámetros y se completan los comentarios. Universidad de Valladolid 51 Figura 37. Segundo ejemplo En este caso se presenta la configuración utilizada para entrenar el modelo CNN+LSTM-4. No se incluirá data augmentation en el conjunto de datos de entrenamiento. El sujeto S09 será usado para los conjuntos de validación y test, mientras que el resto se incluirán en el de entrenamiento. Además, se incluye el callback denominado modelCheckpoint y earlystop -que sirve para finalizar el entrenamiento de manera prematura si la red no mejora su exactitud en 7 epochs-. Adicionalmente se caracteriza la dimensión de las imágenes e hiperparámetros y se completan los comentarios. Universidad de Valladolid 52 3.3.4 Uso (Makefile) En esta ocasión también se dispone de un pequeño makefile que facilita la interacción con la herramienta; sin embargo, es mucho más sencillo ya que la complicación real de este entorno reside en el correcto diseño tanto de las redes que queramos utilizar como de los ficheros de configuración de entrenamientos. Figura 38. Opciones make sobre el entorno de entrenamiento Se distingue en este caso únicamente el comando train que generará un evento de entrenamiento por cada fichero de configuración que haya bajo el directorio /framework/toTrain; si, como hemos dicho, existe un subdirectorio con varios ficheros de entrenamiento entonces todos serán interpretados como un K-fold. En definitiva, con el objetivo de usar correctamente el entorno de entrenamiento para la resolución del problema HAR el investigador debe acometer exclusivamente los siguientes pasos: 1. Preparar el dataset haciendo uso del entorno de preprocesado. 2. Diseñar el modelo de red neuronal que quiera utilizar (o hacer uso de uno ya desarrollado). 3. Generar un documento de configuración de entrenamiento con todos los atributos correctamente rellenados. 4. Ejecutar el comando make. Universidad de Valladolid 53 3.4 Entorno de inferencia El entorno de inferencia tiene como función exponer un API REST capaz de realizar predicciones/clasificaciones de movimiento humano utilizando un modelo de red neuronal previamente entrenado. En este caso se realizará una clasificación sobre imágenes de movimiento utilizadas a lo largo del presente documento y que deberán coincidir en formato con aquellas usadas para entrenar el modelo seleccionado. En este sentido, el número y tipo (3D o 4D) de sensores usados deberá ser exactamente el mismo, así como el número de time-steps por cada imagen. No obstante, en caso de haber decidido utilizar la técnica de la FFT en el entrenamiento, será el propio API REST quien se encargue de calcular esta operación, facilitando su uso en tiempo real. El API REST está desarrollado sobre la tecnología Flask (Welcome to Flask — Flask Documentation (2.0.X)); se trata de un micro framework basado en Python que permite generar aplicaciones web con pocas líneas de código. Flask no sólo incorpora la funcionalidad necesaria parar generar el servicio sino también agrega un pequeño servidor web para poder realizar el despliegue; no obstante, siguiendo las pautas recomendadas por los propios creadores, este servidor no está preparado para ser desplegado en un entorno de producción y su uso debe limitarse a marcos de desarrollo. Por tanto, el autor del presente documento recomienda alternativamente el uso de un servidor Nginx o un Apache para suplir las carencias del servidor web original en ámbitos comerciales. 3.5.1 Soporte Figura 39. API REST de inferencia El servidor de inferencia expone los siguientes tres endpoints: • api/status: consultar el estado del servidor. • api/config: consultar la configuración actual del servidor, para conocer el modelo de red neuronal utilizada o el tamaño requerido de la imagen de movimiento. • api/inference: realizar una petición de clasificación sobre una determinada imagen. Universidad de Valladolid 54 Figura 40. A continuación, se muestra un ejemplo para cada una de estas operaciones: # Get service status curl localhost:8082/api/status # Reply: {"code":"SUCCESS","message":"Server is online"} # Get service config curl localhost:8082/api/config # Reply: { "in-fo": { "FFT": true, "channels": 1, "columns": 28, "movementsList": [ "FigureofEight", "HighKneeJog", "Jog", "JumpingJacks", "SpeedSkater", "Static", "Zigzag", "Walk" ], "rows": 250, "sensorslist": [ "qRPV", "qRTH", "qRSK", "qRFT", "qLTH", "qLSK", "qLFT" ] }, "nueral-network": "N2-350-28-9-1" } # Request inference curl --location --request POST 'localhost:8082/api/inference' --form 'data_file=@"SOMEWHERE/S10-Zigzag- Orientationjoints-2-103.csv-0"' # Reply: {"code":"SUCCESS","message":"The performed movement is: Zigzag"} Ejemplo de operaciones soportadas sobre el API de inferencia A diferencia de los endpoints de configuración y estado que esperan una interacción a través del método GET, el endpoint de inferencia está preparado para una comunicación vía POST. Ello se debe a la necesidad de enviar la imagen sobre la que queremos realizar la clasificación; ésta deberá ser suministrada en el cuerpo de la petición con el nombre de atributo data-file y en congruencia con el formato utilizado en el entorno de preprocesado y entrenamiento. Asimismo, el API de inferencia contiene numerosos mensajes de error que alertarán al usuario de la mala praxis e impedirán el uso malintencionado de la herramienta. Además, el API per se es fácilmente escalable y resultará casi inmediato incorporar un nuevo recurso o funcionalidad, si fuese necesario. Universidad de Valladolid 55 3.5.2 Configuración (JSON) De manera similar a los dos anteriores, el API de inferencia es configurable a través de un fichero JSON que soporta los siguientes parámetros: ATRIBUTO TIPO DESCRIPCIÓN neural-network String Red neuronal seleccionada info.movementList Array<String> Lista de actividades soportadas info.sensorsList Array<String> Lista de sensores usados Rows Int Filas por imagen Columns Int Columnas por imagen Channels Int Canales por imagen FFT Boolean Valor que indica el uso de la técnica de la FFT. Tabla 9. Parámetros de configuración del API de inferencia Figura 41. JSON de configuración entorno de inferencia Como se aprecia en la figura anterior, al tratarse de un API pensado para ser expuesto públicamente, el contendor soporta varias configuraciones en función del ámbito donde se despliegue; véase LOCAL (desarrollo) o PRO (producción). Universidad de Valladolid 56 Dada la siguiente estructura de ficheros dentro del contenedor de inferencia, el investigador deberá colocar la red neuronal entrenada dentro una nueva carpeta bajo el directorio “nerunalNetworks”. Figura 42. Estructura de directorios entorno de inferencia El nombre de dicha carpeta será el usado en el atributo de configuración neural-network y deberá contener: • Un fichero JSON con el modelo de la red neuronal utilizada con el nombre “model.json”. • Un fichero con el valor de los pesos del modelo nombrado como “model.h5”. A pesar de la complicación que esto parece suponer, la realidad es que el entorno de entrenamiento genera automáticamente ambos ficheros por cada entrenamiento realizado, como se detalla en la sección Generador de reportes del apartado 3.3.1. Así que el proceso se reduce a: • Generar una subcarpeta con el nombre deseado, por ejemplo “Example”. • Copiar los ficheros producidos tras el entrenamiento de la red neuronal. • Modificar el fichero de configuración con el valor “neural-network”: “Example”. Universidad de Valladolid 57 Capítulo 4. Integración: pruebas y resultados En este punto se exponen los resultados obtenidos tras resolver el problema HAR sobre las bases de datos citadas en el Capítulo 2 (con sus consideraciones): • Harvard Neura Sparse Dataset (HNS) • Realdisp activity recognition dataset (RAR) Para la primera, se ha realizado un estudio completo del problema HAR aplicando el esquema de resolución expuesto en el Capítulo 2 y optimizando los recursos necesarios mediante el uso de la herramienta de preprocesado y entrenamiento desglosada en el Capítulo 3. Por su parte, para la segunda base de datos se realiza un estudio comparativo entre los resultados obtenidos (Bombín, 2020) y aquellos alcanzados al replicar el mismo estudio haciendo uso del framework desarrollado. La notación utilizada para caracterizar los modelos de redes neuronales es la siguiente (Ordóñez & Roggen, 2016): • C(F): capa convolucional con F unidades. • R(F): capa recurrente de tipo LSTM. • RG(F): capara recurrente de tipo GRU con F unidades. • DR(d): capa de dropout con probabilidad d. • D(n): capa totalmente conectada con activación no lineal. • Sm: última capa densa de una red convolucional. 4.1 Harvard Neura Sparse Dataset Para comenzar ha sido necesario diseñar varios modelos de redes neuronales sencillos en orden a obtener las primeras conclusiones. En primer lugar, se replica la red neuronal convolucional que mejor resultado había proporcionado sobre la BD RAR (Bombín, 2020) y que será denominada N2 a partir de ahora. Figura 43. Red convolucional N2 Universidad de Valladolid 64 Figura 51. Construcción de una imagen RGB Análogamente, propone este TFG en el uso de sensores de orientación suministrar cada una de las componentes que conforma un cuaternión (W, X, Y, Z) a través de un canal específico (Figura 29). • 5x10 en la Figura 51→ time-steps x número de señores. • RGB en la Figura 51 (3 componentes) → WXYZ en la imagen de movimiento (4 componentes ya que se restringe la propuesta a sensores de orientación). Para ello se hará uso en este caso de estudio del modelo N5 junto con la canalización 3D, tal y como se detalló en el punto 3.3.1, siendo necesario únicamente adaptar la configuración de los entrenamientos individuales como se muestra en la Figura 52: Figura 52. Adaptación al uso de canalización 3D ConvLSTM2D Finalmente, siguiendo a Shah et al., 2021 se incluye el uso de modelos basados en celdas convlstm2D cuya función es idéntica al modelo combinado CNN+LSTM: utilizar la sección convolucional para identificar las características remanentes y aprovechar la habilidad LSTM para reconocer las dependencias a corto plazo de la actividad. Figura 53. Modelo basado en capas convlstm2d Universidad de Valladolid 65 4.1.3 Aplicación y análisis de los resultados A continuación, se ha realizado un entrenamiento 8-Fold -validación cruzada de orden 8- con cada uno de los modelos expuestos hasta el momento (N2, N5, N5-Multicanal, N6, LSTM, CNN+LSTM- 4, CNN+GRU, CON2DLSTM-1) tomando el conjunto de datos de entrenamiento generado a partir de las siguientes conclusiones obtenidas en los apartados 2.3 y 4.1.1: • Ventanas temporales de 352 instantes (4.1.1) con un 75% de superposición entre imágenes (264 time-steps compartidos). • Concatenación horizontal de información temporal y frecuencial a partir de la FFT 2D. (4.1.1) • Uso de data augmentation parcial. o HighKneeJog, JumpingJacks, Static, SpeedSkater. (4.1.1) o Walk, FigureOfEight y ZigZag no serán aumentados. (4.1.1) • Exclusión de los movimientos TUG y 5-Minute-Walk (2.3) El resultado obtenido es el siguiente: Figura 54. Resultados de entrenamientos usando los modelos descritos Como se puede observar en la Figura 54 ninguno de los modelos complejos propuestos en el apartado 4.1.2 ha conseguido mejorar los resultados obtenidos por los diseños más sencillos N5 y CNN+LSTM-4 detallados al comienzo de este capítulo. La hipótesis barajada es que, especialmente para conjuntos de datos pequeños -como es el caso-: “As model complexity increases, performance on the data used to build the model (training data) improves. However, performance on an independent set (validation data) improves up to a point, then starts to get worse” (Wu & Shapiro, 2006); es decir, se produce overfitting. En consecuencia, el análisis de resultados utilizará mayoritariamente aquellos obtenidos por los modelos N5 y CNN+LSTM-4, recomendando el uso de arquitecturas de redes neuronales complejas en aquellos problemas donde se disponga de un conjunto de datos más amplio. Universidad de Valladolid 66 Figura 55. Matrices de confusión CNN+LSTM-4 VS N5 Los resultados confirman dos hipótesis formuladas en el punto 4.1.1. En primer lugar, se da cierta confusión entre los movimientos “dibujar figuras de ocho” y “zigzaguear”, debido, en teoría, a la similitud de dichos movimientos en intervalos cortos de tiempo que son encapsulados dentro de las imágenes de movimeinto (por uso de la ténica de segmentación). En segundo lugar, las redes neuronales tienen dificultad para clasificar la actividad “caminar” al encontrarse supuestamente este movimiento presente en el resto de actividades (lo que entorpece su discriminación particular). El efecto adverso presente en estas tres actividades se reproduce para los entrenamientos sobre los modelos N5 y CNN+LSTM-4, donde su clasifcación no alcanza en ningún lugar la media de precisión obtenida por el modelo, como se aprecia en la Figura 56. Figura 56. Precisión por actividades De hecho, este resultado es prácticamente homogéneo independientemente del diseño utilizado, siendo la precisión de estas tres actividades siempre inferior a la media de cada modelo. Universidad de Valladolid 67 Figura 57. Precisión subóptima de actividades Por otra parte, se reproduce un efecto común a todos los casos de uso del problema HAR conocido como inter-subject variation que consiste en la variación propia que introduce cada sujeto al realizar una acción. Esta característica inherente del problema HAR dificulta en gran medida su resolución puesto que, independientemente del método utilizado, resulta imprescindible a la par de complicado discriminar qué parte de la información corresponde al movimiento propiamente dicho y qué pertenece a la personalidad del sujeto que realiza la acción. Figura 58. Precisión por sujetos Universidad de Valladolid 68 Se aprecia en la Figura 58 cómo destaca la acertada clasificación de los movimientos realizados por el sujeto S05 frente a la pésima clasificación del sujeto S04. Como concluye Yurtman & Barshan, 2012 es de notoriedad que: • No siempre el sujeto con mayor precisión es aquel que realiza mejor el movimiento, sino que el sujeto con mayor precisión suele ser “aquel que realiza una acción de la manera más parecida al resto de sujetos”. • Eliminar la media de los valores aportados por los sensores afecta al resultado final (no necesariamente de manera positiva). Finalmente, nos ayudan a comprender mejor los resultados las métricas de rendimiento extraídas de los dos resultados ganadores. Figura 59. Métricas de rendimiento CNN+LSTM-4 Cita Minnen et al., 2006 “el amplio dominio de estudio que abarca el reconocimiento de actividades fuerza el uso de múltiples métricas a la hora de evaluar el rendimiento de los clasificadores”. El autor de la presente investigación se ha servido principalmente de: accuracy, precisión, sensitivity y F1 Score al representar esta última métrica el perfecto equilibrio entre precisión y sensibilidad (Ping, 2018). Universidad de Valladolid 69 Figura 60. Métricas de rendimiento N5 Universidad de Valladolid 70 4.2 Realdisp activity recognition dataset La BD RAR supone la segunda integración efectiva en el framework de preprocesado y entrenamiento desarrollado. En primer lugar, ha sido necesario realizar un trabajo previo de adaptación del formato original de las mediciones (dispuesto en ficheros .log) al formato de entrada de la herramienta (ficheros .csv correctamente nombrados y con la información sensorial colocada en tablas de manera adecuada). El tiempo transcurrido en desarrollar el script de adaptación ha sido de cuatro horas -sirva de referencia para futuras integraciones-. Posteriormente se ha llevado a cabo un estudio comparativo con los mejores resultados obtenidos en el pasado (Bombín, 2020). Para ello se han utilizado: el modelo N2, ya que es una herencia directa del estudio de referencia; un nuevo modelo de estilo CNN+GRU, C(64)-C(64)-C(64)-DR(0.5)- RG(64)-Sm, también utilizado por Bombín y que es similar al modelo CNN+GRU presentado en el apartado 4.1; y finalmente, se han evaluado también los modelos que mayor precisión ofrecen para la integración de la BD HNS: N5 y CNN+LSTM-4. Los entrenamientos realizados usando los modelos comentados son de tipo k-fold (validación cruzada) con las siguientes características (replicando el estudio previo): • Imágenes de movimiento con 128 time-steps por imagen con un 75% de superposición entre sí (96 time-steps compartidos). • Uso de data augmentation con grados: 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180. • Sujetos: S01, S02, S03, S05, S08, S09, S10, S11, S13, S14, S16, S17. • Actividades: A09, A10, A11, A12, A13, A19, A20, A21, A24, A25, A31. Figura 61. Comparativa de la precisión entre ambos estudios Como se observa en la Figura 61 la red neuronal que ofrece mayor precisión, del 96.27%, es aquella basada en el modelo CNN+GRU presentado por Bombín -estudio previo (color verde)-. Por su parte, la precisión obtenida para el modelo similar en la presente investigación es aproximadamente un 3% menor, del 93.3%. Universidad de Valladolid 71 Sin embargo, en lo que respecta al modelo convolucional N2, el presente TFG ofrece un mejor resultado, del 95.3% frente al 93.28%. Por otra parte, los modelos N5 y CNN+LSTM muestran una precisión en la media de los resultados ya comentados, aunque nos dan “menos juego” puesto que no tenemos modelos similares para comparar en el estudio previo. Figura 62. Matriz de confusión modelo N2 estudio actual: 95.3% El mismatch entre ambos estudios -a pesar de ser ínfimoencuentra su explicación en la siguiente causa: mientras que los datos utilizados a partir de la BD RAR en el presente estudio han sido tomados directamente de los ficheros .log, en la investigación realizada por Bombín se realizó previamente una representación de las actividades en Unity 3D. A través de esta herramienta Bombín calibró las medidas de los sensores y se encargó de limpiar los datos erróneos contenidos en la base de datos; tras dicha limpieza se generaron los datos que sirvieron para entrenar a las redes neuronales. Adicionalmente, Bombín incorporó la normalización de los datos dentro de cada una de las imágenes de movimiento, lo que, como ya se ha citado, determina el resultado obtenido -no necesariamente de manera positiva- (Yurtman & Barshan, 2012). Estas dos razones explican la varianza en los resultados analizados. Por otra parte, cabe destacar el buen rendimiento de los modelos N5 y CNN+LSTM-4 a pesar de haber sido dimensionados en origen para trabajar con imágenes de 352 time-steps, en vez de 128. En cualquier caso, es razonable considerar satisfactoria la integración en la herramienta de la base de datos Neura Sparse, además de constatar la utilidad real del framework, al haber requerido el presente estudio sobre la BD RAR aproximadamente 50 horas, lo que supone un 4.17% del tiempo total utilizado por Bombín (1200 horas). Universidad de Valladolid 72 Capítulo 5. Conclusiones y líneas futuras El acelerado desarrollo de soluciones software específicas para el entrenamiento de redes neuronales profundas, como Tensorflow y Keras, ha hecho posible la construcción del framework de preprocesado y entrenamiento elaborado en este Trabajo Fin de Grado y así avanzar en el estudio sobre la resolución del problema HAR. 5.1 Conclusiones En primer lugar, se evidencia la construcción del framework para la resolución del problema HAR tras haber concluido la integración de las bases de datos HNS y RAR, objetivo principal del presente estudio -Capítulo 1-. Simultáneamente, se logra el segundo propósito, que no es más que la resolución específica del problema sobre la información contenida en la base de datos HNS. Finalmente, después de comparar los resultados obtenidos sobre los datos de la BD HNS (sensores optoelectrónicos) y la BD RAR (sensores inerciales), se constata el uso indistinto de ambos tipos de sensores analizados en el punto 2.1 -tercer objetivo-. La primera conclusión obtenida es la posibilidad efectiva de desarrollar una metodología genérica para la resolución del problema HAR siguiendo la estrategia definida en el punto 2.2, usando en la clasificación redes neuronales profundas frente a algoritmos de ML. Bajo la premisa de utilizar siempre información temporal multicanal, el método es independiente al número de actividades, sensores y sujetos utilizados, aunque mejora sus resultados de manera proporcional a la cantidad de datos disponibles. La segunda conclusión es que si, por el contrario, los datos de partida son escasos, es preferible utilizar modelos de redes neuronales sencillos para evitar el overfitting. En ese sentido se evidencia la facultad de resolver el problema HAR a través de distintas arquitecturas de redes neuronales que arrojarán resultados diferentes en función del caso de uso concreto. La tercera conclusión alcanzada es el buen resultado -en términos de precisiónobtenido a pesar de trabajar, en ambos casos, con ventanas temporales no superiores a 3,5 segundos; intervalo de tiempo relativamente corto. La conclusión final tras analizar los resultados obtenidos es que, en el uso de redes neuronales profundas para la resolución del problema HAR, la clasificación de una actividad no está determinada por el sujeto que mejor realiza un movimiento sino por aquel que lo efectúa de la manera más parecida al resto de sujetos. 5.2 Líneas futuras Una vez copados los objetivos de este Trabajo Fin de Grado se puede plantear una multitud de líneas futuras de cara a mejorar la solución desarrollada, así como los resultados obtenidos. Universidad de Valladolid 73 En cuanto a la herramienta construida se propone la integración de técnicas de normalización de los datos en la fase de preprocesado; como se ha comentado en el punto 4.1.3 dichas técnicas pueden alterar los resultados obtenidos habilitando su mejoría. De cara a mejorar los resultados obtenidos el autor propone: • Realizar una optimización automática de los hiperparámetros replicando los entrenamientos detallados en el Capítulo 4 -frente a la optimización heurística utilizada en este TFG-, haciendo uso, por ejemplo, de pautas como las descritas por Vasco, 2019. • Experimentar con nuevos modelos de redes neuronales. No deben ser necesariamente diseños con capas alternativas a las ya vistas (CNN, LSTM, CONVLSTM2D), sino simplemente redimensiones de las propias arquitecturas ya planteadas. • Eliminar la mitad de las muestras temporales de las actividades contenidas en la base de datos HNS para emular una grabación a 50 Hz (la actual es de 100Hz) y así poder comparar los resultados con la base de datos RAR. Finalmente, y utilizando como punto de partida la tercera propuesta, se plantea la búsqueda de un modelo único válido para la resolución óptima del problema en ambas bases de datos. Se suscita la posibilidad de incluir en dicha búsqueda más bases de datos con características compatibles. Universidad de Valladolid 80 En primer lugar, es preciso conocer el perfil del ingeniero que va a desarrollar el proyecto para calcular el coste de personal asociado. Entre los requisitos se distingue: • Conocimiento fluido de lenguaje de programación Python. • Dominio de herramientas transversales como Make, Docker o Shell scripting. • Conocimientos específicos en el ámbito de la inteligencia artificial, familiarizado con el uso de librerías como Tensorflow y Keras. Por tanto, nos encontramos ante un profesional categorizado tradicionalmente como “Junior” - experiencia laboral entre 2 y 4 añoscon cierto grado de especialización en la materia. En consecuencia, la estimación salarial para el presente proyecto es: Por otra parte, se debe cuantificar el coste material de cada uno de los recursos utilizados. El presupuesto final del proyecto asciende, por tanto, a: Universidad de Valladolid 81 Universidad de Valladolid 82 ANEXO II Guía de uso Se presenta un extracto de primera página de la guía de uso del framework publicada en GitHub (https://github.com/GonzaloPardoVillalibre/TFG). Está escrita en inglés y usa formato Markdown, permitiendo así realizar referencias dinámicas al resto de ficheros del proyecto sobre el propio textorazón por la cual es complicado realizar una copia estática de la propia guía-. En este mismo repositorio público se ha alojado la totalidad del código de la herramienta, de naturaleza open source y disponible para uso no comercial. El uso GitHub permite no solo consultar todas las tareas que se han ido desarrollando a lo largo de la creación del framework, sino también hacer más accesible el desarrollo de futuras funcionalidades. Captura web 1. Captura del proceso de desarrollo de la herramienta vía GitHub Universidad de Valladolid 83 Universidad de Valladolid 84 Captura web 2. Extracto de la guía de uso del framework Universidad de Valladolid 85 Universidad de Valladolid 86 ANEXO III Matrices de confusión y métricas de rendimiento Se presentan en detalle los resultados de los dos entrenamientos 8-fold más relevantes: N5 y CNN+LSTM-4, que han sido analizados en el Capítulo 4. Para cada sujeto del 8-fold se expone la matriz de confusión y su correspondiente matriz de métricas de rendimiento. Finalmente se muestran los resultados agregados. Universidad de Valladolid 87 3.1 Modelo N5 Matriz de confusión 1. Sujeto S01 Métricas de rendimiento 1. Sujeto S01 Universidad de Valladolid 88 Matriz de confusión 2. Sujeto S02 Métricas de rendimiento 2. Sujeto S02 Universidad de Valladolid 89 Matriz de confusión 3. Sujeto S04 Métricas de rendimiento 3. Sujeto S04 Universidad de Valladolid 96 Matriz de confusión 10. Agregada 8-fold Métricas de rendimiento 10. Agregada 8-fold Universidad de Valladolid 97 3.2 Modelo CNN+LSTM-4 Matriz de confusión 11. Sujeto S01 Métricas de rendimiento 11. Sujeto S01 Universidad de Valladolid 98 Matriz de confusión 12. Sujeto S02 Métricas de rendimiento 12. Sujeto S02 Universidad de Valladolid 99 Matriz de confusión 13. Sujeto S04 Métricas de rendimiento 13. Sujeto S04 Universidad de Valladolid 100 Matriz de confusión 14. Sujeto S05 Métricas de rendimiento 14. Sujeto S05 Universidad de Valladolid 101 Matriz de confusión 15. Sujeto S06 Métricas de rendimiento 15. Sujeto S06 Universidad de Valladolid 102 Matriz de confusión 16. Sujeto S07 Métricas de rendimiento 16. Sujeto S07 Universidad de Valladolid 103 Matriz de confusión 17. Sujeto S08 Métricas de rendimiento 17. Sujeto S08 Universidad de Valladolid 104 Matriz de confusión 18. Sujeto S09 Métricas de rendimiento 18. Sujeto S09 Universidad de Valladolid 105 Matriz de confusión 19. Sujeto S10 Métricas de rendimiento 19. Sujeto 10