Diseño e implementación de redes neuronales de aprendizaje profundo para clasificación y análisis de movimientos corporales capturados mediante dispositivos vestibles
Abstract
Grado en Ingeniería de Tecnologías Específicas de Telecomunicación
Full text
UNIVERSIDAD DE VALLADOLID ESCUELA TÉCNICA SUPERIOR INGENIEROS DE TELECOMUNICACIÓN TRABAJO DE FIN DE GRADO GRADO EN TECNOLOGÍAS ESPECÍFICAS DE TELECOMUNICACIÓN: MENCIÓN EN SISTEMAS DE TELECOMUNICACIÓN Diseño e Implementación de Redes Neuronales de Aprendizaje Profundo para Clasificación y Análisis de Movimientos Corporales Capturados Mediante Dispositivos Vestibles Autor: D. David Arévalo González Tutores: Dr. D. Mario Martínez Zarzuela Dra. Dª. Cristina Simón Martínez Valladolid, Septiembre 2021
TÍTULO:Diseño e Implementación de Redes Neuronales de Aprendizaje Profundo para Clasificación y Análisis de Movimientos Corporales Capturados Mediante Dispositivos Vestibles AUTOR:D. David Arévalo González TUTORES:Dr. D. Mario Martínez Zarzuela Dra. Dª. Cristina Simón Martínez DEPARTAMENTO:Departamento de Teoría de la Señal y Comunicaciones e Ingeniería Telemática Tribunal PRESIDENTE:Dr. D. Francisco Javier Díaz Pernas VOCAL:Dr. D. David González Ortega SECRETARIO:Dr. D. Mario Martínez Zarzuela SUPLENTE 1: Dra. Dª. Míriam Antón Rodríguez SUPLENTE 2: Dr. D. Carlos Gómez Peña FECHA:Septiembre 2021 CALIFICACIÓN:
Agradecimientos A mi familia y amigos, por ayudarme a ser la persona que soy hoy y ser un apoyo incondicional a lo largo de toda mi vida, pero sobre todo en estos últimos años. A mis tutores y, en especial a Mario, por la gran ayuda, motivación y apoyo que me ha prestado en la realización de este trabajo. A toda la gente que me ha ayudado durante el desarrollo de este trabajo directa o indirectamente. I
Resumen Este Trabajo de Fin de Grado se centra en el problema del Reconocimiento de Actividades Humanas oHAR empleando Redes Neuronales de Aprendizaje Profundo, que se encuentran dentro de la Inteligencia Artificial y a su vez, del Aprendizaje Automático. En nuestro caso concreto, los datos se han obtenido a través de Sensores Inerciales oIMUs, los cuales registran cuaterniones, indicando la orientación de la parte del cuerpo donde están situados. Con estas grabaciones, se ha llevado a cabo el procesado de los datos y la formación una base de datos con estas grabaciones procesadas. Partiendo de esta base de datos, y empleando redes convolucionales, hemos conseguido llevar a cabo el reconocimiento de actividades humanas. El resultado es la identificación de 13 actividades tanto de tren superior como de tren inferior con gran precisión. Palabras Clave Reconocimiento de Actividades Humanas, Sensores Inerciales, Base de Datos, Aprendizaje Profundo, Redes Neuronales Convolucionales. II
Abstract This project is focused on the Human Activity Recognition or HAR problem using Deep Neural Networks, enclosed in Deep Learning and so they are in Machine Learning. In our case, data was obtained with Inertial Sensor Units or IMUs, which register quaternions, indicating the orientation of the body part they are placed on. These recordings were processed and used to build a database. Using this database and Convolutional Neural Networks, We were successful to achieve the targeted activity recognition. The result was the precise recognition of 13 different activities from both the upper and lower part of the body. Keywords Human Activity Recognition, Inertial Sensor Units, Database, Deep Learning, Convolutional Neural Networks. III
Capítulo 1 Introducción Este capítulo pretende servir como una descripción del marco de trabajo y desarrollo de este documento, así como sus objetivos, métodos y resultados obtenidos a lo largo de la realización del mismo. El presente Trabajo de Fin de Grado se ha llevado a cabo bajo la tutorización del Dr. D. Mario Martínez Zarzuela, perteneciente al Grupo de Telemática e Imagen (GTI) dentro de la Escuela Técnica Superior de Ingenieros de Telecomunicación (ETSIT) de la Universidad de Valladolid (UVa). Las líneas de investigación principales que sigue Mario se centran en el uso de sensórica, tanto infrarroja como sensores inerciales (IMU, Inertial Measurement Unit) empleando sistemas de Aprendizaje Automático (ML) o de Aprendizaje Profundo (DL). Los objetivos finales de sus investigaciones pueden ser evaluar la rehabilitación de pacientes con enfermedades que implican dificultad de movimiento, mejorar la calidad de estas rehabilitaciones en entornos no clínicos y más cómodos para los pacientes, valoración de la ergonomía en puestos de trabajo, etc. También se ha contado con la co-tutorización de la Dra. D. ª Cristina Simón Martínez, fisioterapeuta especializada en rehabilitación basada en entrenamientos cognitivos y nuevas técnicas, neurorehabilitación, biomecánica motora y medicina personalizada en el Haute Ecole Spécialisée de Suisse Occidentale HES SO Valais, de la Universidad de Ciencias Aplicadas y Artes de Suiza Oeste. La Dra. Cristina ha aportado su ayuda y sus conocimientos en lo relativo a los aspectos de biomecánica, y conocimientos de rehabilitación que empleamos en el trabajo. Este proyecto se comenzó en febrero de 2021 y se ha llevado a cabo mediante contactos frecuentes con los tutores a través de correo electrónico, reuniones telemáticas y para el desarrollo práctico del apartado 3.2.4 se emplearon reuniones presenciales a lo largo de una semana para hacer las capturas pertinentes con el fin de la creación de la base de datos propia empleada en este trabajo junto a varios estudiantes, los cuales estaban desarrollando sus respectivos trabajos de fin de estudios. 1
CAPÍTULO 1. INTRODUCCIÓN 1.1. Contexto y Motivación La última tendencia, justificada con la fácil accesibilidad a nuevas tecnologías por el abaratamiento del hardware, es la digitalización. La digitalización es el empleo de herramientas de medida y control para mecanizar o automatizar acciones, procesos o cualquier actividad o simplemente objetivizarlos que, hasta ahora se habían llevado a cabo de manera manual o con intervención directa humana. Puede tener diferentes objetivos, como mejorar la comodidad, optimización de tiempos o facilitar tareas con el fin de ahorrar esfuerzos, tiempo y dinero. En definitiva, es una de las aplicaciones directas de los axiomas de la tecnología y la ingeniería. En la última década, los sistemas de aprendizaje automático y, en concreto, de aprendizaje profundo, han sufrido un desarrollo considerable. Todo ello ha sido provocado por tres agentes: Hardware de procesamiento más potente: como unidades de procesamiento gráfico (Graphic Processing Units, GPUs) o unidades de procesamiento tensorial (Tensorial Processing Units, TPUs) y desarrollo de lenguajes de programación, como Python o R, así como librerías específicas para el procesado de grandes cantidades de datos. Desarrollo del Big Data: creación de bancos, repositorios y bases de datos específicas para problemas de deep learning. Aumento de la capacidad de recogida de datos y generación de información útil. Los avances en este campo han sido beneficiados por el desarrollo de los sistemas del Internet de las Cosas o IoT. Avances en el desarrollo de técnicas de Deep Learning: En la aceptación comercial de nuevas tecnologías se siguen diferentes fases, recogidas en lo que se conoce como ciclo de sobreexplotación, que es un término creado por la empresa Gartner (Figura 1). Este ciclo es una representación gráfica de la madurez, adopción en el mercado y aplicación comercial efectiva [ 1 ]. El estado actual del Deep Learning se sitúa en el comienzo de la estabilización de la curva, esta zona se conoce como rampa de consolidación, y es el estado de la tecnología en cuestión previo a la zona llamada meseta de productividad. El desarrollo conjunto de estos 3 ítems ha desencadenado que vuelva el interés en este campo de investigación para el diseño de sistemas de aprendizaje profundo empleados en tareas en las que la programación clásica no alcanza o se queda corta y mejorar de manera considerable todas las métricas que se han conseguido empleando técnicas de aprendizaje automático clásico. También en la última década, el problema del reconocimiento de actividades (Human Activity Recognition) o HAR ha cobrado especial atención. Esto se debe a la numerosa cantidad de aplicaciones que han comenzado a surgir por el proceso de digitalización en numerosos y diversos campos. Otro motivo para ello es la mejora en la precisión y en la eficiencia de los sistemas empleados en la materia para reconocer acciones ejecutadas por los usuarios o pacientes. La clave de trabajar el HAR es que los movimientos del cuerpo humano, en la realización de cualquier actividad se generan patrones. Estos patrones son fácilmente medibles con sistemas como sensores o cámaras y, por lo tanto, son clasificables por algoritmos de Machine Learning. 2
CAPÍTULO 1. INTRODUCCIÓN Figura 1: Ciclo de sobreexplotación En la actualidad, el reconocimiento de actividades humanas tiene como principales objetivos las aplicaciones en entornos médicos, como evaluaciones o rehabilitaciones de pacientes, preventivas en sujetos sanos; en entornos deportivos para una mejora técnica y su evaluación; o en factorías para el control de la ergonomía. El entorno médico es uno de los campos de aplicación más relevantes, pero está aumentando la demanda de este tipo de sistemas en entornos no clínicos [ 2 ]. Estamos en pleno auge de los smartphones, los cuales cuentan con multitud de sensores. Varios de estos sensores ya se emplean actualmente para llevar a cabo HAR, pero a un nivel menos preciso y exhaustivo como requieren las aplicaciones médicas actuales. También, en un futuro próximo, gracias a la mejora de estos sensores, podremos disponer de métricas sobre nuestra actividad corporal sin necesidad de preocuparnos por el proceso de medición. Comúnmente, los sistemas HAR constan de las siguientes etapas: 1. Medición: Es el proceso de obtención de datos sobre las actividades desarrolladas por los sujetos que posteriormente se utilizarán para la identificación de las propias actividades. Dependiendo del sistema de captación de esta información, se pueden obtener , vídeo, profundidades (vídeo con sensores RGBD), imágenes, aceleraciones, posiciones, etc. 2. Segmentación de los datos: Este paso se centra en llevar a cabo una primera limpieza de los datos, separando las grabaciones de manera que se puedan identificar las actividades que se desean clasificar individualmente. También es necesario que se realice una eliminación de artefactos y/o ruido para dejar la información útil que vayamos a poder usar. 3. Extracción de características: Esta fase del proceso puede ser opcional en función del posterior método de clasificación que empleemos. Las características son mediciones o cálculos aplicados a las grabaciones previamente tratadas. Estas características pueden ser de diferentes tipos atendiendo a la manera en la que los calculemos: Características temporales: Son las calculadas a partir de una secuencia temporal. Características frecuenciales: Son las calculadas a partir de una estimación del espectro de la señal. Estas estimaciones pueden calcularse mediante la FFT (Fast 3
CAPÍTULO 1. INTRODUCCIÓN Fourier Transform), la STFT (Short-Time Fourier Transform), la CWT (Continuous Wavelet Transform)... en función de las características de la señal en el dominio temporal. Algunas de estas características pueden ser el valor medio, la varianza de los datos, correlación cruzada con otras señales, la frecuencia mediana, la frecuencia media, la frecuencia a la que se da el máximo de la energía de la señal, el ancho de banda que ocupa tanto porcentaje del espectro, entre muchos otros. 4. Clasificación: La clasificación es la parte más crítica del proceso. Actualmente es uno de los campos de investigación en auge, ya que se emplean algoritmos y técnicas de Machine Learning yDeep Learning, las cuales están recibiendo mucha atención por los resultados tan prometedores que se están consiguiendo en las publicaciones más recientes [ 2 ]. Esta fase consiste en la identificación automática de los datos capturados tras un proceso de entrenamiento de las redes o sistemas que empleemos. Para este entrenamiento se requiere una gran potencia computacional, ya que para obtener buenos resultados es necesario emplear grandes cantidades de información y muchas iteraciones en los entrenamientos [3]. 5. Post-procesado: Esta fase del proceso depende de cómo se desee mostrar la información sobre el resultado de la clasificación que se ha obtenido. Puede que se requiera representar la información a través de un display o que se trabaje con un software en tiempo real que muestra la información de manera más gráfica, etc. En lo relativo a la medición dentro del proceso de HAR, hay dos grandes tipos de maneras de abordarla: Sistemas basados en imagen, empleando sensores fotoeléctronicos. Sistemas basados en sensórica vestible. Los sistemas que emplean imágenes, recogen datos de sensores como cámaras, videocámaras, sensores RGBD, láseres, etc. Estos sistemas tienen la gran ventaja de que el usuario no requiere llevar puesto ningún complemento, sensor o accesorio para la captación de los datos, pero vulneran la privacidad de los usuarios y estos sistemas se ven muy afectados por las condiciones ambientales de la captación, como la luz, ruido de radiofrecuencia, posición inadecuada del dispositivo de captación o del sujeto del que adquirir los datos, entre otros. En la otra cara de la moneda se encuentran los sistemas que emplean sensores vestibles. Estos sensores son capaces de captar aceleraciones triaxiales, velocidades angulares, presiones o incluso de recogida de señales biomédicas como el electromiograma (EMG), que mide la respuesta eléctrica de los músculos. La ventaja que tienen es que la calidad de los registros (por lo general) no depende de las condiciones ambientales mencionadas en el apartado anterior y las mediciones son muy precisas. También, la transmisión de los datos puede hacerse tanto de manera alámbrica, lo cual limita la movilidad y comodidad de la captura de los datos; o inalámbrica, la cual supone una mayor comodidad, aunque se pueden sufrir las consecuencias de las interferencias de radiofrecuencia con otros sistemas o protocolos de comunicación que 4
CAPÍTULO 1. INTRODUCCIÓN compartan la misma banda de frecuencia. La desventaja de estos sistemas es que pueden generar una mayor incomodidad al usuario, ya que es necesario que éste porte los sensores para llevar a cabo la captación, Como en muchas situaciones, estos sistemas de captación no son excluyentes, y permiten la utilización simultánea de varios, así podemos emplear los sistemas de visión como ayuda para los sistemas vestibles y así conseguir mejorar el desempeño de la clasificación. En nuestro caso, emplearemos un tipo de sensores vestible llamados sensores inerciales (Inertial Measurement Units, IMUs), ya que, según las ideas expuestas, son las que nos aportan más ventajas en el escenario que deseamos trabajar. Este escenario es el análisis de HAR en sujetos sanos por las proyecciones de futuro de este campo investigación hacia un mercado no médico o clínico. Por ello, emplearemos sensores o unidades de medida inercial (IMUs) que han sido desarrollados por el doctorando del grupo de investigación GTI D. Javier González Alonso [4, 5] bajo el nombre de TwynSens. Sensores TwynSens Estos IMUs emplean sensores BNO080 de Bosch. Las mediciones que obtenemos de él en su salida son orientaciones absolutas, velocidades angulares, aceleraciones angulares y aceleraciones lineales a una tasa de hasta 100Hz, medidas sobre el campo magnético a una tasa de 20Hz y la gravedad y la temperatura a una tasa de 1Hz. De todas estas salidas, sólo capturaremos las orientaciones absolutas en forma de cuaterniones. Los sensores emplean un protocolo de comunicaciones inalámbrico, mediante Bluetooth, por lo que usa la banda de los 2.4GHz, lo cual puede suponer una ventaja dependiendo de la ocupación del espectro radioeléctrico por otras tecnologías. Inicialmente, estos sensores estaban pensados para la valoración ergonómica y la evaluación clínica, pero los fines con los que los utilizaremos no son un motivo para descartar su uso. Las mediciones y pruebas llevadas a cabo en [ 5 ] demuestran la validez y fiabilidad de las mediciones llevadas a cabo con estos sensores. 1.2. Hipótesis y Objetivos La hipótesis de este proyecto es, que partiendo de grabaciones capturadas con sensores inerciales desarrollados en [ 5 ], podemos llevar a cabo el reconocimiento de las actividades desarrolladas por unos sujetos empleando redes de aprendizaje automático y de aprendizaje profundo diseñadas por nosotros mismos. Para alcanzar los objetivos expuestos, este trabajo ha seguido las siguientes fases: Crear una base de datos de actividades de la vida cotidiana llevadas a cabo por sujetos 5
CAPÍTULO 1. INTRODUCCIÓN sanos, no padecientes de ninguna patología en formato de cuaterniones provenientes de IMUs. Procesar de los datos capturados para obtener mediciones angulares útiles. Llevar a cabo una comparativa entre nuestro método de adquisición de datos con un sistema de captación basado en vídeo y comprobar la veracidad y fiabilidad de las métricas angulares empleadas. Llevar a cabo diferentes pruebas iniciales diseñando diferentes redes neuronales para clasificación de actividades de tronco superior y tronco inferior. Por aclarar lo expuesto, el objetivo final de este proyecto es crear un sistema como el que se muestra de manera gráfica en la figura 2. Figura 2: Diagrama del sistema propuesto 1.3. Fases y Métodos Para el desarrollo del trabajo, se han seguido el siguiente orden de actividades: 1. Adquisición de conocimientos sobre Machine Learning: Para este trabajo, se partía del conocimiento nulo sobre inteligencia artificial. Por ello, lo primero que se hizo fue completar el curso de Machine Learning impartido por Andrew Ng a través de la plataforma Coursera [ 3 ] para una introducción bastante extendida sobre conceptos básicos y técnicas de Machine Learning clásico. 2. Adquisición de conocimientos sobre Deep Learning: Para expandir los conocimientos en la rama más específica que incumbía al trabajo de una manera práctica, se realizó el 6
CAPÍTULO 1. INTRODUCCIÓN curso Fundamentals of Deep Learning for Computer Vision de NVIDIA Deep Learning Institute [ 6 ]. Finalmente, se empleó el libro [ 7 ] para acercarse a la situación en la que se iba a desarrollar y entrar en materia sobre las posibles soluciones que se pueden aplicar con Deep Learning. 3. Adquisición de conocimientos sobre Python: Para este trabajo se partió del conocimien- to nulo sobre Python, la única experiencia con la programación anterior al trabajo ha sido en las asignaturas cursadas a lo largo de la carrera, empleando C, HTML, CSS, JavaScript, Java y MatLab. Para poder entrar en contacto con el lenguaje de programación Python se leyó el libro [8]. 4. Recolección de información sobre IMUs: Lectura de documentos técnicos sobre Xsens DOT [ 9 ], y asistencia al Webinar: Xsens DOT Developer Conference: Automated Manual Tasks Risk Assessment, a benefit or a distraction? [ 10 ] donde empresas internacionales exponen diferentes necesidades, productos y servicios que desarrollan con los sensores inerciales Xsens DOT. De esta manera podemos ver las aplicaciones más novedosas que se están dando a estos dispositivos. La recolección de datos para la posteriormente mencionada y explicada base de datos se emplearon sensores no comerciales similares a los Xsens DOT desarrollados por el doctorando D. Javier González Alonso [4, 5] 5. Conformación de la base de datos propia: Esta fase se desarrollará con mayor profundidad en el apartado 3.1. 6. Preprocesamiento de los datos: Esta fase se explica en el apartado 3.1.5 y consiste en el tratamiento que ha de dársele a los datos crudos de las grabaciones para poder extraer información útil de ellos. 7. Investigación e implementación de algoritmos para obtención de ángulos a partir de los cuaterniones registrados: Se emplearon ángulos de Euler y desplazamientos angulares. La explicación sobre esta fase se explica en los apartados 3.2.3, 3.2.4 y 3.2.5. 8. Realización de una revisión del Estado del Arte en HAR, DL e IMUs: Para saber cuál es la situación actual en la investigación de HAR, es necesario hacer una revisión de la literatura publicada en los últimos años que traten temas o hagan experimentos relacionados con los que se pretenden desarrollar en este TFG. 9. Realización de la comparativa con sistema de captura de datos mediante vídeo: Para el desarrollo de este apartado, tuvimos que llevar a cabo una reunión con D. Diego Pérez de la Fuente, autor de [ 11 ], un trabajo de investigación sobre comparativas entre diferentes sistemas de captura de datos basados en imagen y vídeo con el fin de conseguir el reconocimiento de actividades. El objetivo de la reunión fue poner ideas en común sobre la estructura, qué contenidos incluir y los puntos importantes que mencionar en la comparación. 10. Aprendizaje sobre el framework de redes neuronales: Se llevaron a cabo diferentes reuniones con D. Gonzalo Pardo Villalibre, autor y desarrollador del framework de entrenamiento de redes neuronales orientadas a HAR. Estas reuniones tuvieron como objetivo explicaciones de las diferentes partes del sistema de entrenamiento que ha desarrollado [12] y resolución de dudas. 11. Diseño y entrenamiento de las redes neuronales: Tras llevar a cabo la adquisición de conocimientos sobre qué tipo de sistemas y algoritmos de Machine Learning y Deep 7
CAPÍTULO 1. INTRODUCCIÓN Learning forman parte del Estado del Arte, es hora de implementarlos y realizar pruebas con diferentes arquitecturas para comprobar si podemos obtener buenos resultados. 1.4. Hardware y Software Empleados En este apartado del primer capítulo nos encargaremos de concretar y enumerar todos los elementos, tanto de hardware como de software, utilizados a lo largo de todo el desarrollo de este proyecto. Los elementos de hardware empleados en el desarrollo de este TFG han sido los siguientes: Ordenador alojado en la ETSIT de la UVa, formado por los siguientes componentes: •CPU: Intel Box Core i9 Processor i9-9900KF 3,60Ghz 16M 1,00 •GPU: VGA Gigabyte GeForce® RTX 2080TI 11GB turbo oc •Placa Base: Gigabyte GA-Z390-MASTER •RAM: 2xCrucial Ballistix Sport 16GB/3000 BLS16G4D30BESB Sensores inerciales XSENS DOT : Empleados en diferentes pruebas previas a la grabación de la base de datos de movimientos [10]. Sensores inerciales TwynSens : Empleados en pruebas previas y para la grabación de la base de datos. Hn sido desarrollados en el grupo de investigación GTI de la ETSIT de la Universidad de Valladolid por el doctorando D. Javier González Alonso [4, 5]. Los elementos de software empleados en el desarrollo de este TFG han sido los siguientes: Python : Este ha sido el lenguaje de programación empleado para el tratamiento de los ficheros de datos generados por los sensores inerciales de la base de datos, así como para generar las gráficas y métricas empleadas en la comparativa. Google Collab : Es la plataforma empleada para la ejecución de los scripts (llamados cuadernos) desarrollados en Python mediante la asignación de una máquina remota bajo el soporte de Google. Unity : Es el motor de juegos empleado para las aplicaciones que graban y reproducen los ficheros de cuaterniones grabados mediante los IMUs. Docker : Es un proyecto de código abierto basado en el desarrollo de aplicaciones sobre contenedores, de tal manera que se independice dichas aplicaciones y la infraestructura en la que corren. En nuestro caso, se emplea en el framework utilizado para los entrenamientos de las redes clasificadoras [12]. 8
CAPÍTULO 1. INTRODUCCIÓN Tensorflow : Es una biblioteca de código abierto empleada para facilitar la programación de programas que resuelven tareas de aprendizaje automático. En nuestro caso, se emplea en el framework utilizado para los entrenamientos de las redes clasificadoras [12]. Keras : Es una librería empleada en la programación de redes neuronales, osea, para Machine yDeep Learning. Se ha empleado esta librería para la programación de las diferentes arquitecturas de las redes neuronales utilizadas en la clasificación. Overleaf : Es un editor de LaTeX basado en la nube. Permite la creación, edición e interpretación de proyectos escritos en LaTeX en línea. Esta plataforma se ha empleado para la redacción completa de la memoria. 1.5. Organización de la Memoria Ahora se hará una descripción de la distribución de los contenidos desarrollados a lo largo de la presente memoria. En el capítulo 2 se ha desarrollado una revisión del Estado del Arte en los temas de Reconocimiento de Actividades Humanas, sistemas de Deep Learning y Sensores Inerciales, haciendo un pequeño resumen sobre las técnicas más novedosas que se están empleando de manera exitosa en diferentes ámbitos o con diferentes objetivos a los nuestros y con diferentes tipos de datos, así como los campos de aplicación del HAR que están surgiendo o se encuentran en desarrollo. En el capítulo 3 se explica todo el proceso de adquisición de la base de datos propia y pretratamiento de los datos; el cálculo de parámetros cinemáticos, como los ángulos de las partes del cuerpo o de las articulaciones; conceptos básicos sobre inteligencia artificial, Aprendizaje Automático y Deep Learning y las propuestas de redes neuronales empleadas para la clasificación. En el capítulo 4 se muestran las similitudes y diferencias entre los resultados obtenidos a nivel de métricas angulares con los sistemas empleados para la grabación de sujetos: sensores inerciales y cámaras de vídeo. Se explica el proceso de obtención de los parámetros que se comparan y los resultado obtenidos de esa comparación. En el capítulo 5 exponemos los experimentos llevados a cabo con las redes neuronales y datos recogidos, ventajas y desventajas que observamos en cada situación y los resultados que se obtienen en cada experimento. Finalmente, en el capítulo 6 hacemos una recapitulación de todas las ideas y conclusiones a las que hemos llegado con la realización de las pruebas y experimentos y se proponen varias lineas de investigación dentro del tema tratado en el trabajo. 9
CAPÍTULO 3. MATERIALES Y MÉTODOS A la llegada de los sujetos: Explicar la pruebas: grabación de movimientos con sensores y cámara. Se mostrará un ejemplo en caso de duda. Grabar 10 movimientos: 4 pruebas de pierna, 6 pruebas unimanuales y 3 pruebas bimanuales, tanto en el plano sagital como en uno oblicuo a 45º aproximadamente. Entregar el guión de las pruebas y consentimiento de los sujetos a la grabación tanto de los movimientos como del vídeo. Rellenar una entrada en el registro de grabaciones con los datos demográficos principales del sujeto que llevó a cabo los ejercicios. Vestir al sujeto con los sensores. Se emplearán sensores de tipo TwynSens. La posición de los sensores TwynSens es con la entrada microUSB mirando hacia arriba tanto en tren superior como inferior con la cara externa transparente del sensor (o cara superior) hacia afuera del segmento corporal. Posteriormente llevar a cabo los 10 ejercicios que se especifican a continuación. En cada ejecución se comprobó la validez de las grabaciones tanto en el formato de cuaterniones como en vídeo. Durante la grabación: Tanto la grabación de sensores como de vídeo comienzan exactamente en el tercer golpe de sincronización realizado de manera manual, mientras que el ejercicio lo hace tras el cuarto. El encargado del vídeo (D. Diego Pérez de la Fuente) llevó el tracking de las pruebas en todo momento, de tal manera que sólo se darán como válidas las pruebas en las que no se detecte tracking, desvanecimientos de la bounding box, o que el sujeto salga del plano de grabación. El encargado de los sensores (D. Javier González Alonso) debe realizar un heading reset siempre antes de colocar los sensores en cada sujeto y cerciorarse de la correcta colocación de los sensores. Los sensores deben ser encendidos en paralelo, alineados con una línea recta como referencia (p.ej. el borde de la mesa) y con el puerto de carga microUSB mirando hacia la pantalla donde está el avatar. Esto es crucial ya que en estos sensores es el momento de encendido el que se toma como Heading Reset. Para el Reset por Software del sistema Unity3D, deberemos colocar el sujeto del mismo modo que vemos al avatar en su estado inicial, con las palmas de las manos apoyadas sobre sus muslos y las piernas levemente separadas. Así, durante el Reset, el sujeto mirará al frente, donde está situada la cámara, pero siguiendo las líneas del suelo La colocación del sujeto, de la silla y de la mesa debe seguir las marcas pertinentes. Se debe informar al sujeto de: • Los pasos deben ser lo más uniformes posibles. • La forma de caminar debe ser lo más natural posible. 16
CAPÍTULO 3. MATERIALES Y MÉTODOS • La posición de inicio de todas las pruebas debe ser la misma en función de la prueba. • Los cambios de dirección, giros o movimientos más bruscos deberán suavizarse y hacerse de una manera más cuidadosa para evitar que no haya inconsistencias en las grabaciones. • Los movimientos bimanuales deben partir y finalizar de la posición inicial. Los ejercicios a realizar son los descritos en los siguientes puntos (Tabla 1): Ejercicios de pierna: A01. Caminar hacia delante: En el plano sagital, el sujeto caminará de frente 3 veces ida y vuelta entre las dos marcas del suelo pertinentes. A02. Caminar hacia atrás: En el plano sagital, el sujeto caminará hacia atrás 3 veces ida y vuelta entre las dos mismas marcas en el suelo de la prueba anterior. Esta actividad consta de 3 repeticiones, contando tanto ida como vuelta. A03. Caminar sobre una recta: A 20 º del plano sagital, el sujeto caminará 3 veces ida y vuelta sobre una recta marcada en el suelo. Se tiene que tener especial cuidado en los cambios de sentido. A04. Levantarse de la silla: En plano a 45 º . Se requiere la silla. El sujeto se levantará y se volverá a sentar en una silla 5 veces intentando ralentizar el movimiento ligeramente y con los brazos al frente. Ejercicios bimanuales: A05 y A06. Mover objeto de posición: En plano a 45 º . Se requiere la silla, la mesa y la botella. Este ejercicio se hará una vez con cada mano. El sujeto llevará la botella de una marca a otra encima de la mesa y la devolverá a su posición inicial 5 veces. A07 y A08. Mover objeto a la boca: En plano a 45 º . Se requiere la silla, la mesa y la botella. Este ejercicio se hará una vez con cada mano. El sujeto llevará la botella desde la marca de la mesa hasta su boca y devolverla a la posición inicial 5 veces. No se deberá mover o inclinar la cabeza o la espalda. A09. Hacer una torre con piezas de construcción: En un plano a 45 º . Se requiere la silla, la mesa y las piezas de construcción. El sujeto cogerá una pieza alternativamente con cada mano y las superpondrá haciendo una torre. Después deshará la torre con la mano contraria a la que puso la última pieza. La torre puede agarrarse al quitar las piezas. A10. Lanzar el balón: En un plano a 45 º . Se requiere el balón. Este ejercicio se hará de pie. El sujeto lanzará el balón con ambas manos a una altura un poco superior a la de su cabeza 10 veces. Se procurará empezar y acabar en la misma posición y no hacer movimientos bruscos. A11 y A12. Alcanzar un objeto alto: En plano a 45 º . Se requiere un bote colgado del techo. Este ejercicio se hará una vez con cada mano. El sujeto levantará la mano y alcanzará el bote 5 veces. A13. Romper un papel: En plano a 45 º . Se requiere una hoja de papel. Partiendo de la posición de reposo, con la hoja en una mano. El sujeto cogerá la hoja de papel con 17
CAPÍTULO 3. MATERIALES Y MÉTODOS ID EJERCICIO TIPO PLANO # REPETICIONES A01 AndarFrenteYVuelta Pierna Sagital 3 A02 AndarHaciaAtrasYVuelta Pierna Sagital 3 A03 AndarSobreLinea Pierna Oblicuo a 20◦3 A04 Sentadillas Pierna Oblicuo a 45◦5 A05 MoverVasoDerecha Unimanual Oblicuo a 45◦5 A06 MoverVasoIzquierda Unimanual Oblicuo a 45◦5 A07 BeberVasoDerecha Unimanual Oblicuo a 45◦5 A08 BeberVasoIzquierda Unimanual Oblicuo a 45◦5 A09 MontarLEGO Bimanual Oblicuo a 45◦1 A10 BalonAlAire Bimanual Oblicuo a 45◦10 A11 CogerBotellaAltaDerecha Unimanual Oblicuo a 45◦5 A12 CogerBotellaAltaIzquierda Unimanual Oblicuo a 45◦5 A13 RomperPapelBola Bimanual Oblicuo a 45◦1 Tabla 1: Ejercicios conformantes de la base de datos ambas manos, la sostendrá con los brazos levantados formando 90 º con el tronco y la romperá a la mitad dos veces. Después, hará una bola con el papel y la lanzará con su mano hábil. Hacia el frente, es decir a 45º. Tras las grabaciones: El encargado de los sensores quitará los mismo, al sujeto. Se anotará en la sección de comentarios los sucesos anormales o situaciones a recalcar de la realización de las pruebas. Se deberá asegurar que todos los vídeos se encuentran en el directorio correspondiente con el etiquetado id.#actividad.mp4 y los archivos de coordenadas id.#actividad.json. Se deberá asegurar que todas las grabaciones en crudo de los sensores se encuentran en el directorio correspondiente con el etiquetado adecuado. La nomenclatura de los ficheros de los sensores seguirá el siguiente modelo: • RAWTwynSensFECHA_HORA.RESET.txt (para el reset, sólo graba en el momento de pulsar el reset, por lo que un mismo archivo de reset será compartido por varias grabaciones RAW) • RAWTwynSensFECHA_HORA.txt (grabación RAW correspondiente al día FECHA (MM-DD) a las HORA (hh-mm-ss)) • TwynSensFECHA_HORA.txt (grabación procesada correspondiente al día FECHA (MM-DD) a las HORA (hh-mm-ss)) En el caso de las grabaciones procesadas se generará también un archivo “Reset” pero este podrá ser ignorado por no aportar información útil. 18
CAPÍTULO 3. MATERIALES Y MÉTODOS 3.1.4. Colocación de los Sensores En esta sección se concreta la posición de cada sensor durante todas las grabaciones de los ejercicios de la base de datos. Esta colocación se tuvo en cuenta antes de las pruebas llevadas a cabo. También, cabe aclarar que tanto para los ejercicios de tren superior como de tren inferior se empleó la cantidad de 5 sensores colocados alternativamente para grabar cada tren por separado. Es decir, para los ejercicios de tren inferior, de A01 a A04, se colocaron los sensores HIPS, RUL, RLL, LUL y LLL. Para los ejercicios de tren superior, de A05 a A13, se colocaron los sensores BACK, RUA, RLA, LUA y LLA. En la figura 3 podemos ver puntos de tres colores diferentes, cuyo significado es el siguiente: Verde: Corresponde con los sensores que registran los ejercicios de brazo. Todos se sitúan en el tren superior. Azul: Corresponde con los sensores que usamos en los ejercicios de pierna. Todos ellos están colocados en el tren inferior. Rojo: Estos puntos no se han empleado para la grabación de los ejercicios, pero aparecen debido a que existía la posibilidad de haber grabado algunos movimientos con sensores colocados en estos puntos del cuerpo. Cada par de sensores de las extremidades debe colocarse verticalmente alineado y asegurarse de la correcta sujeción de los mismo al cuerpo del sujeto. Figura 3: Disposición de los sensores TwynSens En la tabla 2 podemos ver el significado de las siglas de los nombres de los sensores. 19
CAPÍTULO 3. MATERIALES Y MÉTODOS SIGLA PARTE DEL CUERPO SIGLA PARTE DEL CUERPO BACK Espacio interescapular HIPS Caderas LUA Brazo izquierdo RUA Brazo derecho LLA Antebrazo izquierdo RLA Antebrazo derecho LUL Muslo izquierdo RUL Muslo derecho LLL Pantorrilla izquierda RLL Pantorrilla derecha LF Pie izquierdo RF Pie derecho Tabla 2: Sensores y partes del cuerpo 3.1.5. Preprocesado de las Grabaciones En este apartado, se expondrá el tratamiento al que se han sometido las grabaciones antes de formar parte de la base de datos. En el apartado 3.2.2 se define cómo son los ejes de referencia que se utilizan para las grabaciones. Para el entendimiento de este apartado no es necesaria su lectura, pero puede ser de ayuda. Como se especifica en el protocolo de grabación (apartado 3.1.3), al encender los sensores se lleva a cabo un heading reset. Esto quiere decir que los sensores fijan la referencia para las rotaciones que van registrar, es decir, los orígenes de los ejes [x, y, z] . Este es un punto crítico, ya que requiere que todos los sensores se enciendan con la misma orientación, si no, las medidas que tomaran no representarían los movimientos reales que se han adquirido. Tras este paso y antes de comenzar con los ejercicios, se debe tomar un reset con brazos y piernas estirados (Figura 4), espalda recta y mirando al frente. Es algo similar a una calibración, siempre con la misma orientación, hacia x positivas (Figura 5). Con este reset se registran las rotaciones de los sensores en un instante únicamente. Este reset también es un punto crítico. Tras Figura 4: Posición de Reset la grabación, se obtienen ficheros con las rotaciones de los sensores respecto a su posición del heading reset. Esto no es lo que nos interesa, ya que no son representaciones de lo que el sujeto ha hecho realmente. Para conseguir las representaciones reales de los movimientos, es necesario 20
CAPÍTULO 3. MATERIALES Y MÉTODOS SUJETO EJERCICIOS NO DISPONIBLES S01 - S02 - S03 A05-A13 S05 - S29 - S30 - S31 - S32 - S33 - S34 - S35 - S36 A07 S37 - S38 A13 S39 A01-A04 S40 A01-A04 Tabla 3: Contenido Base de Datos definitiva ”restar” la rotación que se ha guardado en el reset. Esta transformación se ha aplicado a todas las grabaciones y son los ficheros que conforman la base de datos. La operación en cuestión se corresponde a la ecuación: qfinal =qoriginal ·qreset.inv() (1) Donde qoriginal es cada cuaternión captado con los sensores, qreset.inv() es el cuaternión del reset que representa la rotación inversa y qfinal es el cuaternión que representa la rotación real desde la posición de reset. 3.1.6. Conformación de la Versión Final de la Base de Datos Tras la reproducción de las grabaciones en la aplicación desarrollada en Unity que se menciona en 3.1.2 para comprobar su corrección y correspondencia con los ejercicios realizados, se procedió a hacer un filtrado de aquellos que no mostraban corresponderse con lo que debería haberse grabado. Después de inspeccionar los ficheros que mostraban algún tipo de fallo, se vio que en todos ellos alguno de los sensores no transmitió datos durante la grabación de alguno de los ejercicios. La tabla 3 recoge la información de los contenidos de la versión final de la base de datos. En la base de datos existe un fichero con extensión .csv por cada ejercicio e intento de realización. La taxonomía seguida a la hora de nombrar los ficheros ha sido la siguiente: SXXAXX-TXX.csv. Los tres primeros dígitos se corresponden con la identificación del sujeto, los tres siguientes se corresponden con la identificación del ejercicio y los tres últimos dígitos del 21
CAPÍTULO 3. MATERIALES Y MÉTODOS nombre se corresponden con el identificador del intento. 3.2. Cálculo de Parámetros Cinemáticos 3.2.1. Introducción a los Cuaterniones Los cuaterniones son una herramienta algebraica creada por Sir William Rowan Hamilton a principios de la década de 1840. Esta herramienta es una extensión a un espacio tridimensional de los números complejos, es decir, un número complejo con tres componentes en su parte imaginaria. Por lo cual, un cuaternión está formado por cuatro componentes, un escalar o parte real y un vector tridimensional o parte imaginaria, que se define con las componentes unitarias imaginarias ˆı, ˆ, ˆ ky las relaciones entre estas unidades imaginarias son [33]: ˆıˆ=ˆ k=−ˆˆı ˆˆ k= ˆı=−ˆ kˆ ˆ kˆı= ˆ=−ˆıˆ k ˆı2= ˆ2=ˆ k2= ˆıˆˆ k=−1 (2) Los cuaterniones son una forma compacta y robusta de representar giros o rotaciones en el espacio tridimensional, ya que podríamos expresar una rotación como el paso de una posición, marcada con un vector, a otro. Esto requeriría seis componentes para representar la misma información que con las cuatro de un cuaternión. También se puede representar un giro como una matriz de rotación, la cual tiene dimensión 3x3, lo que harían 9 componentes necesarias para la especificación de la rotación [33, 34, 35, 36]. Los cuaterniones pueden representarse de diferentes formas: q:= [w,~v]w∈ <,~v ∈ <3 q= [w, [x, y, z]] w, x, y, z ∈ < q= [w, x, y, z]w, x, y, z ∈ < q=w+xˆı+yˆ+zˆ k w, x, y, z ∈ < (3) También podemos representar puntos y vectores en espacios tridimensionales como cuaterniones, siendo la parte real de los mismo nula y las componentes [x, y, z] las correspondientes al punto o vector a representar: P= [Px, Py, Pz]→q= [0, P] = [0, Px, Py, Pz]P∈ <3 ~v = [vx, vy, vz]→q= [0,~v] = [0, vx, vy, vz]~v ∈ <3(4) 22
CAPÍTULO 3. MATERIALES Y MÉTODOS Las operaciones definidas para los cuaterniones son la suma: q1+q1= [w1,~v1]+[w2,~v2] K+q=K+ [w,~v]=[K+w,~v]K∈ < (5) Y el producto: q1q2= [w1,~v1][w2,~v2]=[~v1×~v2+w1~v2+w2~v1, w1w2−~v1·~v2] K·q=K·[w,~v]K∈ < (6) Para terminar de describir los conceptos básicos de los cuaterniones definiremos sus operaciones básicas restantes: Norma o valor absoluto: q= [w, x, y, z] |q|=pw2+x2+y2+z2(7) Normalización: Es la definición de un cuaternión asociado al original con una norma unitaria. Un cuaternión no normalizado representa la misma rotación que su normalización. Los cuaterniones unitarios pueden representarse como una esfera 4D, que geométricamente se traduce en una manera muy simple de representación de las rotaciones en un espacio 3D. q0=q |q|(8) Conjugado: q= [w, x, y, z] q∗= [w, −x, −y, −z](9) Inverso: Esta no es la representación de la rotación inversa al cuaternión original, pero es el cuaternión que cumple con la definición de elemento inverso de la operación producto. El cuaternión que representa la rotación inversa se calcula mediante la transformación a matriz de rotación. q= [w, x, y, z] q−1=q∗ |q|2 (10) 23
CAPÍTULO 3. MATERIALES Y MÉTODOS 3.2.2. Sistemas de Referencia Coordenados A continuación se definirán los ejes coordenados que se generan al llevar a cabo el encendido de los sensores. En la figura 5 podemos ver un esquema de la Sala Lorenzo Torres Quevedo de la ETS de Ingenieros de Telecomunicación de la UVa, donde se realizaron las grabaciones para la base de datos. En la figura se muestran los ejes de referencia que se definen de igual manera para todos los sensores empleados. De esta manera, quedarían definidos: los giros en z serían giros verticales, en el plano XY , los giros en x serían los llevados a cabo en el plano Y Z o plano sagital, y los giros en y son los realizados en el plano XZ . Y el convenio de signos empleado sería el de la mano derecha (Figura 6). Figura 5: Sistema de referencia Twynsens Figura 6: Convenio de signos: Reglas de la mano izquierda y derecha respectivamente 3.2.3. Definición de los Ángulos de Euler: Ángulos de Tait-Bryan El Teorema de la Rotación de Euler propone que un cuerpo rígido tridimensional, al realizar una rotación, hay al menos un eje del cuerpo que permanece fijo (Figura 7). Gracias a este 24
CAPÍTULO 3. MATERIALES Y MÉTODOS teorema, se demostró en 1775 que cualquier rotación tridimensional de un cuerpo sólido podía describirse con 3 componentes y el orden en el que aplicarlas [33]. Figura 7: Teorema de rotación de Euler Estas 3 componentes angulares describen la orientación de un sistema móvil respecto a un sistema de coordenadas fijo. Dependiendo de los ejes que se definan para las tres rotaciones, tenemos dos tipos de rotaciones [37]: Rotaciones intrínsecas: Se aplican a los ejes del sistema móvil o rotado ( Ej. [Z, Y, X] ). El sistema de coordenadas de la siguiente rotación es relativo al de la rotación previa. Rotaciones extrínsecas: Se aplican a los ejes del sistema fijo (Ej. [x, y, z] ). El sistema de coordenadas de la siguiente rotación pertenece al sistema de coordenadas fijo. Una rotación intrínseca es equivale a una rotación extrínseca que emplee el orden de rotación inverso y viceversa, es decir: [x, y, z]≡[Z, Y, X]. Los ángulos de Euler se refieren a las tres componentes angulares que se emplean para definir una rotación de un cuerpo tridimensional. Hay diferentes definiciones de estos ángulos, pero las representaciones de los ángulos de Euler más extendidas son los Ángulos Propios de Euler y, sobre todo, los Ángulos de Tait-Bryan (en aeronáutica, y computación gráfica...). Su definición es muy similar, pero los Ángulos de Tait-Bryan son los que hemos empleado en el desarrollo de este trabajo. La principal diferencia entre ambas definiciones es que los Ángulos Propios de Euler emplean rotaciones en únicamente dos ejes (Ej. [z, x, z] ), mientras que los Ángulos de Tait-Bryan utilizan tres ejes (Ej. [z, y, x]) [35]. Una rotación en forma de ángulos de Euler tiene la forma [ψ, θ, ϕ] , pudiendo tomar los valores: ψ∈[−π, π] θ∈[−π/2, π/2] ϕ∈[−π, π] (11) Para la definición de los anteriores ángulos contamos con: Un sistema de referencia fijo [x, y, z]. 25
CAPÍTULO 3. MATERIALES Y MÉTODOS Métodos probabilísticos: En esta rama, los sistemas inteligentes llevan a cabo razonamientos con incertidumbre. Esta incertidumbre es en parte por el conocimiento parcial sobre las cosas y es parte de las limitaciones del pensamiento humano. Computación evolutiva: Las soluciones que se proponen se inspiran en la evolución biológica humana. Teoría del caos: Son técnicas que se emplean para modelar comportamientos de sistemas que con una pequeña variación en las condiciones iniciales produce una salida muy diferente. Sistemas difusos: Estos sistemas se basan en que la verdad no es exacta, sino que está definida en una región difusa. 3.3.2. Fundamentos de Aprendizaje Automático Alrededor de los años 50, el paradigma de programación empleado por programadores para hacer ”máquias inteligentes” había sido la programación simbólica. Este paradigma consiste en la definición explícita de reglas lógicas que el programa seguirá para llevar a cabo sus tareas. Esto funciona muy bien para situaciones en las que el programa trabajará en acciones con esas reglas lógicas muy bien definidas, pero en los casos que se necesiten acciones basadas en respuestas cognitivas, intuiciones o experiencia, este paradigma se queda corto [7]. Esta es la motivación para emplear un nuevo paradigma de programación, el machine learning. El machine learning da la vuelta a la forma de trabajar que tenía la programación simbólica, ya que a partir de unos datos de entrada y las respuestas esperadas para esos datos, el sistema inteligente te genera las reglas que se deben seguir [ 7 ]. Es decir, el ML se basa en el reconocimiento de patrones dentro de los datos de entrada del sistema para posteriormente aplicarlo a toma de decisiones, hacer predicciones o incluso minería de datos [ 48 ]. Este reconocimiento de patrones en base a grandes cantidades de datos es una solución que en la gran mayoría de casos es hecha a medida. En definitiva, los sistemas de Machine Learning aplican transformaciones a los datos de entrada para conseguir representaciones más significativas de los mismos. Este proceso se considera ”aprendizaje” y se lleva a cabo mediante la exposición de la red a ejemplos [ 7 ]. Su funcionamiento principal es hacer predicciones con cada ejemplo al que es expuesto el sistema y evaluar una función de de coste. Esta función de coste mide el grado de penalización según la predicción diste del resultado esperado. El ejemplo más típico de función de coste puede ser el error cuadrático medio. Hay tres tipos de sistemas de ML principales: Aprendizaje supervisado: En este tipo de problemas, los datos que se introducen en el sistema están identificados con una etiqueta. El objetivo del sistema es asignar a cada ejemplo el valor de la etiqueta. En una terminología más técnica, los sistemas supervisados, deben obtener una distribución predictiva p(t|x) para el valor de la etiqueta t , dado un input 32
CAPÍTULO 3. MATERIALES Y MÉTODOS x . Dependiendo de la naturaleza de los inputs se pueden distinguir diferentes problemas, por ejemplo, clasificación si las etiquetas toman valores discretos, o regresiones si toman valores continuos. Aprendizaje no supervisado: Este problema se basa en aprender propiedades de los ejemplos de entrada. De esta manera se puede conseguir clustering o agrupamiento de inputs similares, reducción de dimensionalidad para representar los datos en un espacio más manejable según conveniencia, etc. Aprendizaje por refuerzo: Recientemente está recibiendo mucha atención debido a los desarrollos en plataformas de herramientas que apoyan este tipo de métodos de aprendizaje. En el aprendizaje por refuerzo, un agente recibe información sobre el entorno y aprende las acciones necesarias para maximizar las recompensas. Actualmente, los sistemas que emplean este tipo de aprendizaje está en desarrollo e investigación [7]. Para realizar con éxito el correcto entrenamiento de un sistema de Machine Learning, es necesario dividir los datos disponibles en tres grupos: Set de entrenamiento: Ronda entre el 60-70 % de la totalidad de los datos. Son los inputs de los sistemas y se emplean para hacer que los algoritmos aprendan. Set de validación: Constituyen aproximadamente el 20% de los datos disponibles. Este set se emplea para extraer métricas y ajustar los hiperparámetros de los sistemas de ML a lo largo del desarrollo del entrenamiento de los mismos. Estas métricas se pueden extraer cada ciertas iteraciones, al igual que la modificación de los hiperparámetros. Set de test: Constituye el 20 % restante de las muestras de la base de datos. Se utiliza para comprobar cómo es capaz el modelo entrenado para generalizar, es decir, clasificar datos que no ha visto con anterioridad. Dependiendo de las técnicas empleadas de ML en la resolución de los problemas, existen diferentes tribus o ramas: Simbolistas: Esta rama se centra en la lógica. Emplean el paradigma de AI simbólica, explicado anteriormente. Son algoritmos simples bastante rígidos que se basan en reglas de decisión para elegir caminos dentro de su algoritmo. Algunos algoritmos simbolistas pueden ser los árboles de decisión (DT) o los bosques de decisión aleatorios (RFo). Conectivistas: Son algoritmos o sistemas cuya arquitectura se basa en la propia arquitectura del cerebro. Esto quiere decir que las unidades básicas de las arquitecturas se llaman neuronas, que a partir de varias entradas, aplican una función conocida como función de activación y genera una salida. El funcionamiento de estas neuronas simula el de las neuronal cerebrales. Algunos modelos conectivistas son las Redes Neuronales Artificiales o las Redes de Aprendizaje Profundo. El tema de este TFG se centra en esta rama del Machine Learning, por lo que se desarrollará en el apartado 3.3.3. Evolutistas: Esta rama toma el ML desde un pensamiento más cercano a la biología, es decir, ver cuál es el crecimiento, las mutaciones y las variaciones de los sistemas, al igual que se puede hacer en cualquier organismo vivo. 33
CAPÍTULO 3. MATERIALES Y MÉTODOS Bayesianos: Este acercamiento emplea la estadística. Por ello, las salidas de los sistemas de ML se pueden tomar como una probabilidad, es decir, que todas las salidas posibles tienen cierta probabilidad de aparecer, pero ninguna está determinada. Un algoritmo Bayesiano pueden ser los modelos de Markov ocultos. Analogistas: Los algoritmos analogistas se centran en reconocer similaridades entre las entidades de las diferentes clases que se definen en cada problema. Estos algoritmos son muy empleados en el aprendizaje no supervisado en sistemas del Estado del Arte (apartado 2.3), como el algoritmo K vecinos más próximos (KNN) y las máquinas de vector de soporte (SVM). 3.3.3. Fundamentos de Aprendizaje Profundo A continuación, introduciremos los conceptos teóricos básicos más relevantes sobre Deep Learning para comprender las decisiones y las acciones llevadas a cabo en este trabajo. Se pretenden introducir conceptos generales y necesarios de conocer para el entendimiento de las arquitecturas de red que se emplearán en el presente TFG. Perceptrón Multicapa La arquitectura más identificativa y de las más sencillas del DL es el Perceptrón Multicapa (MLP) (Figura 12) o Feedforward Neural Networks. Como cualquier algoritmo de DL, su objetivo es hallar una función f(x) que mapee un dato de entrada x a una categoría y , es decir, conseguir clasificarlo. Con el entrenamiento de esta red mediante la exposición de la misma a ejemplos y sus etiquetas, conseguimos definir unos parámetros Θ , llamados pesos, de tal manera que obtenemos y=f(x; Θ) como mejor función de aproximación a los datos que deseamos clasificar. El conjunto de la red es una composición de capas y, a su vez, las capas están formadas por neuronas. La cantidad de capas que posea la red es la profundidad de la misma. La primera capa se conoce como input layer o capa de entrada, la última como output layer o capa de salida y todas las demás capas intermedias son hidden layers o capas ocultas, debido a que no se conoce la información que fluye entre ellas a su entrada y su salida. El motivo por el que este tipo de redes se conozcan como neuronales puede deberse a que su estructura recuerde a la estructura del cerebro humano, donde en diferentes zonas se procesa la información obteniendo conceptos cada vez más complejos o también a que las unidades que conforman las capas, llamadas neuronas, recuerdan al funcionamiento de una neurona cerebral (Figura 13). 34
CAPÍTULO 3. MATERIALES Y MÉTODOS Figura 12: Perceptrón Multicapa Figura 13: Neurona cerebral (superior) y neurona en Deep Learning (inferior) Forward Propagation El nombre con el que se conoce a las redes feedforward se refiere al sentido que recorre la información dentro de la red, desde la entrada, a través de todas las capas ocultas y hasta la salida. En la fase de entrenamiento y de test las redes son alimentadas con ejemplos para predecir la clase a la que éstos pertenecen. El principio de procesamiento de las neuronas en DL de la figura 14 es el siguiente: cada neurona de la capa recibe tantas entradas [x1, x2, ..., xn] como salidas tiene la capa anterior, multiplica a cada entrada por el peso o una ponderación [w1, w2, ..., wn] de la conexión correspondiente y suma los valores, generando el valor z=x·wT+b . Tras esto, se le aplica a z una función de activación g(z) , que es la encargada de introducir no-linealidades en las redes. El resultado de la aplicación de estas operaciones es la salida de la neurona y=g(x·wT+b) . La 35
CAPÍTULO 3. MATERIALES Y MÉTODOS concatenación de estas operaciones a lo largo de todas las capas de la red, producen en la salida la predicción de la red [49]. Figura 14: Acciones de la neurona en forward propagation Backpropagation Las predicciones de las redes tienen parte de error, que se encarga de medir la función de coste o de error J(Θ) , haciendo algo similar a la diferencia entre el valor esperado y el valor predicho. En función del valor de esta función de coste, es necesario cambiar los pesos Θ de forma proporcional a la derivada de la función de error sobre la red para que, en las iteraciones posteriores, la predicción que haga sea más afinada. De esto se encarga el algoritmo backpropagation. Este algoritmo indica la manera en la que se computa el gradiente de la función de coste, el cual es, por lo general, computacionalmente caro. El funcionamiento de back propagation (Figura 15) describe cómo computar ∇ΘJ(Θ) , siendo Θ el tensor de los pesos de la red. Llevando a cabo esta operación, se ajustan los pesos de la red y se consigue reducir el valor de la función de coste hasta alcanzar el mínimo global de J(Θ) [50]. El cómputo de las derivadas parciales (ignorando los efectos de la posible regularización) necesarias para llevar a cabo la disminución de la función de error sería: ∂J(Θ) ∂Θl ij =al j·δl+1 i(16) Siendo J(Θ) la función de coste de la red, Θl ij el valor del peso de la neurona ij de la capa l , al j la salida de la función de activación de la neurona j en la capa l y δl+1 i la diferencia entre el valor predicho por la neurona ide la capa l+ 1 y su valor esperado [3]. Funciones de activación Estas funciones son operaciones que introducen no-linealidades [ 49 ] en las neuronas de las redes, nombradas como g(z) en la figura 14. Las funciones de activación son muy variadas, pero las más empleadas son las siguientes. 36
CAPÍTULO 3. MATERIALES Y MÉTODOS Figura 15: Ejemplo de backprogapation ReLU: La función unidad lineal rectificada (Figura 16) es una suposición del funcionamiento real de las neuronas cerebrales. Su definición es la siguiente: g(z) = m´ax(0, x)(17) Esta función de activación es la más empleada en redes de DL, ya que evita la activación de tantas neuronas como las funciones Sigmoide o Tangente Hiperbólica. Además es computacionalmente más barata y mejora la convergencia de la red. Como la derivada de la ReLU es la función escalón, evita que la red alcance el mínimo local, pero evita el problema del desvanecimiento de gradiente, el cual se explicará posteriormente [49]. Figura 16: Función de activación ReLU Sigmoide: La definición de la función Sigmoide es la siguiente: g(z) = 1 1 + e−z(18) 37
CAPÍTULO 3. MATERIALES Y MÉTODOS Esta función tiene la forma que se expone en la figura 17.Su uso tan extendido debido a que su derivada es muy sencilla de calcular, lo que facilita el proceso de back propagation que caracteriza a las redes neuronales. Esta función de activación sufre el problema del desvanecimiento del gradiente cuando se emplea en redes con varias capas, aproximadamente en redes con más de cinco capas. Uno de los problemas de la función sigmoide es la rápida saturación que tiene, haciendo muy difícil el entrenamiento de las redes donde es empleada [49]. Figura 17: Función de activación Sigmoide Tanh: La definición de la tangente hiperbólica es la siguiente: g(z) = sinh z cosh z=ez−e−z ez+e−z= 2 ·sigmoid(2x)−1(19) La diferencia entre las anteriores funciones de activación y esta es que el rango de valores de salida alcanza desde -1 hasta 1 y sus valores de salida son simétricos respecto al origen de coordenadas. Esta simetría hace que la media de los valores de entrada en la capa siguiente esté entorno a cero, lo que les hace tener una ventaja respecto a la función sigmoide. Otra ventaja es que las redes neuronales que emplean la tangente hiperbólica son capaces de alcanzar la convergencia mucho más rápido que las que usan la funciópn sigmoide, consiguiendo a mayores un error de clasificación menor. La contraparte de su uso es que es más compleja computacionalmente y también sufre de desvanecimiento de gradiente [49]. Estas funciones de activación, como hemos visto, tienen sus desventajas, las cuales se han ido solventando con la mejora de los mismos. Se han propuesto modificaciones de estas funciones, como por ejemplo, LReLU, PReLU, RReLU, ELU, MPELU [49]. Desvanecimiento y explosión del gradiente Estos problemas se dan en los sistemas que emplean redes neuronales con ajuste de los pesos basado en descenso de gradiente y backpropagation, que son los sistemas más básicos y los que 38
CAPÍTULO 3. MATERIALES Y MÉTODOS Figura 18: Función de activación Tangente Hiperbólica se han explicado y empleado en este trabajo. Como se ha explicado en apartados anteriores, la actualización de los pesos se hace proporcionalmente a la derivada parcial de la función de coste J(Θ). El caso del desvanecimiento del gradiente, sucede cuando la derivada parcial de la función de coste es demasiado pequeña, evitando una actualización efectiva de los pesos y, en casos extremos, evita que la red aprenda. Este problema también puede afectar en mayor o menos medida según la función de activación que empleemos. Las funciones de activación empleadas son de vital importancia, ya que la actualización de los pesos es proporcional a su derivada. Según los valores más altos que la derivada alcance, puede llegar a darse el problema de la explosión del gradiente. Esto provoca que las actualizaciones de los pesos son mucho más grandes de lo necesario y, por ende, evita que la red neuronal nunca llegue a converger. Algunas de las soluciones para evitar sendos problemas relativos al gradiente pueden ser: emplear mejoras de la función de activación ReLU, hacr que la arquitectura de la red no tenga tantas capas, en redes recurrentes, emplear celdas LSTM, regularización de los pesos, etc. 3.3.4. Control del Overfitting y del Underfitting El overfitting o sobreajuste y el underfitting o subajuste (Figura 19) son problemas que pueden ocurrir en todos los sistemas de ML. Se dan cuando hay un desequilibrio entre la optimización y la generalización de las redes. La optimización se refiere a cómo de bien se ajusta el modelo a los datos con los que se ha entrenado la red, mientras que la generalización se refiere a cómo de bien se desenvuelve la red al clasificar datos con los que no se ha entrenado. En los comienzos de los entrenamientos siempre tendremos tasas de pérdida más elevadas tanto en datos de entrenamiento como en datos de test. Esta situación es el momento en el que la red no se ajusta suficientemente a los datos que se pretenden clasificar, es decir, underfitting. Tras varias iteraciones o épocas de entrenamiento, la red consigue a ajustarse bien a los datos, 39
CAPÍTULO 3. MATERIALES Y MÉTODOS aumentando la optimización, pero la generalización comienza a empeorar. Esto se debe a que la red empieza a memorizar los ejemplos con los que se ha entrenado, mostrando tasas de pérdida de entrenamiento muy bajas y tasas de pérdida de test elevadas [7]. Figura 19: Underfitting y Overfitting Estos problemas cuentan con diferentes mecanismos para solucionarlos. Mientras el underfitting puede arreglarse con tan solo aumentar el periodo de entrenamiento, número de iteraciones o épocas o la cantidad de datos con la que entrenamos a la red o el tamaño de la red. Por otro lado, el overfitting tiene más variedad y complejidad a la hora de tratarlo. Disminución de la capacidad de la red: Esta es la solución más sencilla y directa. La red comienza a sufrir overfitting cuando empieza a memorizar los ejemplos con los que se le entrena. Para evitar esto, podemos hacer que a la red le cueste más aprender, y la manera más sencilla de conseguirlo es reduciendo la dimensión de la red y, por consiguiente, la capacidad de la misma. Regularización de los pesos: La principal idea de la regularización de los pesos es simplificar el modelo que entrenamos con la red neuronal para evitar que suceda el overfitting. Esto se consigue imponiendo restricciones a los pesos de la red para limitar el rango de valores que éstos puedan tomar. La regularización de pesos se implementa añadiendo un término de coste Ω(Θ) en la función de pérdidas de la red ˜ J(Θ; X;y) = J(Θ; X;y)+αΩ(Θ) , siendo α un hiperparámetro que controla cuánto afecta la regularización a la función de pérdidas. Este término de coste puede definirse de diferentes maneras: •Regularización L1:La regularización toma un valor proporcional al valor absoluto de los pesos. Ω(Θ) = 1 2|| ω||1=1 2X i |ωi|(20) •Regularización L2: La regularización toma un valor proporcional al cuadrado del valor absoluto de los pesos. A este tipo de regularización también se le conoce como 40
CAPÍTULO 3. MATERIALES Y MÉTODOS weight decay o decaimiento de pesos. Ω(Θ) = 1 2|| ω||2 2(21) Early Stop: Esta técnica se basa en almacenar la información de los hiperparámetros o configuraciones de la red cuando se detecte que el error del set de validación comienza a aumentar durante la duración del entrenamiento y parar el entrenamiento. Al terminar los entrenamientos, se obtienen los parámetros que mejores resultados de error hayan dado, no los últimos empleados. Es una técnica muy utilizada como método de regularización debido a su efectividad y simplicidad [50]. Dropout: Es un algoritmo que mejora notablemente el coste computacional para llevar a cabo una regularización [ 51 ]. Esta técnica consiste en la desactivación de múltiples neuronas de las capas ocultas de la red. Este ”apagado” de unidades resulta en k subredes generadas a partir de la original 20, cuyo entrenamiento resultará en k modelos, con diferentes métricas de error. Para entrenar estas subredes se emplean mini-lotes del set de entrenamiento original. Normalización del batch: Es un tipo de capa que normaliza las salidas de una capa de la red de manera adaptativa en función de su media y varianza según evoluciona el entrenamiento. Gracias a ello, conseguimos poder emplear redes mucho más profundas sin alcanzar una situación de overfitting [52]. Gradient Clipping: Orecorte del gradiente es un método de optimización del gradiente se emplea cuando se tienen en cuenta dependencias de larga duración, como en redes recurrentes que emplean celdas LSTM o GRU. Al emplear funciones de activación con derivadas que pueden tomar tanto valores muy elevados como muy reducidos, las actualizaciones de la función de coste puede tomar valores desmesurados o simplemente no actualizarse. Este algoritmo, consigue que las actualizaciones de la función de coste tomen valores similares, fijando un valor máximo en su actualización. Si || g||> ν : g0=g·ν || g|| (22) Siendo gel valor del gradiente, || g|| su norma y νel valor del umbral. 3.3.5. Redes Neuronales Empleadas En este apartado del trabajo expondremos las ideas principales detrás de las diferentes arquitecturas de redes neuronales que emplearemos para llevar a cabo el reconocimiento de actividades. En concreto, explicaremos Las redes convolucionales, las recurrentes, y las recurrentes basadas en celdas LSTM. 41
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO Pelvis Meñique pie der. Muñeca izq. Cadera izq. Talón izq. Muñeca der. Cadera der. Talón der. Nudillo meñique izq. Torso Nariz Nudillo meñique der. Rodilla izq. Ojo izq. Punta corazón izq. Rodilla der. Ojo der. Punta corazón der. Cuello Oreja izq. Nudillo índice izq. Tobillo izq. Oreja der. Nudillo índice der. Tobillo der. Hombro izq. Punta pulgar izq. Pulgar pie izq. Hombro der. Punta ulgar der. Pulgar pie der. Codo izq. Meñique pie izq. Codo der. Tabla 5: Nombre de los Keypoints 4.1. Motivación En el campo de Computer Vision o Visión Artificial también han sido considerables los avances que se han producido recientemente, y puesto que el HAR es un campo de investigación también complementario a ella, no conviene pasar por alto la gran utilidad que suponen este tipo de herramientas en la fase de captura de movimientos. Teniendo la posibilidad de trabajar en proyectos con convergencia en algunos puntos de la investigación puede servir de apoyo para contrastar los resultados obtenidos por ambos proyectos y la captura de datos es uno de esos puntos de convergencia. Es por esto que resulta conveniente llevar a cabo una comparativa entre los ángulos que se han obtenido con el procesado de la información capturada a través de vídeo con los capturados a través de sensores inerciales. Ambas recogidas de información se han llevado a cabo bajo el mismo protocolo o criterio de captura, descrito en 3.2.5. 4.2. Métodos 4.2.1. Sistema de Captura de Datos Mediante Vídeo Para llevar a cabo el registro de información mediante vídeo, se ha utilizado una cámara digital de alta resolución y la herramienta BodyTrack, disponible dentro del paquete de aplicaciones del proyecto NVIDIA Maxine: Augmented Reality Software Development Kit (NVIDIA AR SDK) [ 53 ]. Este sistema permite hacer un seguimiento o tracking 3D en tiempo real a partir de vídeo a un sujeto simultáneo. BodyTrack es capaz de asignar hasta 34 keypoints identificando articulaciones o partes del cuerpo concretas recogidas en la tabla 5. En la figura 25 podemos ver un ejemplo de las zonas del cuerpo donde se asignan los keypoints y los segmentos corporales que identifica BodyTrack, identificando la parte derecha 48
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO del cuerpo de color rojo, la izquierda de azul y la cabeza y zona central del tronco de verde. Figura 25: Ejemplo de asignación de Keypoints con BodyTrack La información obtenida con esta aplicación son las coordenadas [x, y, z] predichas de cada keypoint, siendo el origen de las coordenadas medidas la posición de la cámara. La frecuencia de generación de datos en el fichero de salida por el programa es de 30Hz 4.2.2. Procesado de las Señales El procesado de las señales es una parte fundamental para poder extraer la información útil de los sistemas de captura de movimientos. En este apartado explicaremos todos los pasos que se han seguido para la extracción directa de información. Con la información original de vídeo, se ha calculado el ángulo de las articulaciones deseadas mediante el producto escalar. Para poder aplicar el producto escalar, se han tenido que definir los vectores que emplear como diferencia entre las posiciones de dos keypoints. Es decir, para el ángulo del hombro se han empleado los keypoints de la cadera, el del hombro y el del codo; para el ángulo del codo se han empleado el keypoint del hombro, del codo y de la muñeca; y finalmente, para el ángulo de las rodillas se han empleado los keypoints de la cadera, la rodilla y del talón. El software que se ha empleado ha sido Google Colab, que permite la ejecución de programas escritos en Python de manera remota en servidores de Google. El procesado de cada fuente de datos se ha llevado a cabo en diferentes cuadernos de Google Colab, ya que requieren diferente tratamiento, como se muestra en la figura 26. Para ser capaces de obtener métricas angulares identificativas de cada actividad hemos 49
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO Figura 26: Diagrama de bloques del procesado aplicado las ecuaciones de los productos interiores adaptadas a la forma de cada tipo de dato. En el procesado de los sensores, comenzamos con la extracción de los cuaterniones, aplicando la ecuación descrita en 3.2.5 para calcular el desplazamiento angular y para el procesado de las posiciones de los keypoints aplicamos la definición de producto interior para vectores de <3: cos θ=~u ·~v |~u | · | ~v |(23) Tras este paso es necesario llevar a cabo un diezmado a las señales de los sensores para igualar sus longitudes a las señales de vídeo y poder llevar a cabo operaciones y cálculos sobre ellas. Esta descompensación de longitudes se debe a que las señales originales han sido adquiridas a diferentes frecuencias, siendo 70Hz la frecuencia de muestreo de los sensores y 30Hz la de vídeo. La tasa de diezmado empleada no ha sido constante en las diferentes actividades analizadas. Esto de debe a la desincronización de las grabaciones. A la hora del comienzo de la grabación, empleamos señales auditivas para sincronizarnos, pero a la hora de finalizar, no fue así. Por ello, ha habido que realizar ajustes en las señales antes del diezmado y en la propia tasa de diezmado. Y finalmente, se ha sometido a todas las señales a un filtrado para eliminar ruido para las frecuencias más altas y hacer que las señales tengan una forma más suave. Para ello, se ha empleado un filtro de media móvil o moving average de longitud de ventana M= 5 muestras., cuya ecuación es: y[n] = 1 M M−1 X k=0 x[n−k] = 1 5 4 X k=0 x[n−k](24) En sensórica es común que haya diferencias de medición. Esto se debe, por lo general, a las diferencias entre métodos de cálculo empleados. Este error de medición se da incluso en dispositivos iguales, lo cual es debido a diferencias o desajuste en la calibración de los dispositivos. En definitiva, para cualquier medida tomada con dos sensores, va a haber un error, por lo que en este caso, empleando diferentes tipos de sistemas de medida, está claro que se van a dar diferencias entre la información obtenida. La métrica que se ha empleado para medir los errores en la medición ha sido la raíz cuadrada del error cuadrático medio o RMSE, definido 50
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO Figura 27: Ejemplo cualitativo del efecto del filtrado como: RMSE =v u u t1 N N X i=1 (ysensor i−yvideo i)2(25) 4.3. Comparativa Intra-sujeto En este apartado de la memoria, se presentan las señales angulares obtenidas mediante los procesos y métodos definidos en los apartados anteriores. En las gráficas que se muestran a continuación podemos observar dos señales, siendo la de color verde la obtenida mediante los IMUs y la azul la obtenida mediante vídeos. En el eje abscisas u horizontal se representa el tiempo, medido en segundos [s]; mientras que en el eje de ordenadas o vertical se representan los ángulos medidos en grados sexagesimales [º] en el rango de 0º a 180º. Las comparativas se hacen con la información extraída del sujeto llamado S05, viendo las diferencias en cada articulación analizada para las mediciones con IMU y las mediciones con vídeo: Las figuras 28 y 29 representan los ángulos de las rodillas izquierda y derecha respectivamente adquiridos con los IMUs y con vídeo. Podemos observar seis conjuntos de picos, que se corresponden con las 3 idas y las 3 vueltas del ejercicio A01. También observamos que los picos coinciden con los pasos que el sujeto da en el total de un recorrido, siendo por lo general tres. Vemos que las señales están perfectamente sincronizadas al inicio y al final de la grabación, produciéndose un pequeño desajuste entre el tercer y quinto conjunto de picos. También, en los periodos de giro, entre conjuntos de picos, se dan las mayores diferencias. Esto se debe a que para los sensores, al medir las diferencias de rotaciones relativas entre dos IMUs, no tienen problema al medir todas las componentes de las rotaciones. Por el contrario, para el sistemas de vídeo, al grabar el ejercicio en un plano sagital respecto a la cámara, tiene mucho más complicado el apreciar las medidas de profundidad, es decir, la componente z, que es la que más relevancia 51
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO Figura 28: Comparativa S05-A01: AndarFrenteYVuelta - Rodilla izquierda Figura 29: Comparativa S05-A01: AndarFrenteYVuelta - Rodilla derecha tiene en los giros. El RMSE para estas figuras ha sido de 10.53 y 11.68 respectivamente, lo cual quiere decir que, por lo general, hay una diferencia de unos 10 entre lo medido con IMUs y lo medido con vídeo. Es observable que las principales diferencias entre las dos señales se dan en los giros, y no así en los ciclos de caminar. Las RMSE tienen un valor similar, lo cual indica que apenas hay diferencias entre las mediciones del lado izquierdo y el lado derecho. Visualmente podemos apreciar que el valor del RMSE puede deberse a los periodos de giro y las desincronizaciones. Las figuras 30 y 31 representan los ángulos de las rodillas izquierda y derecha respectivamente adquiridos con los IMUs y con vídeo. Podemos observar cinco valles en la forma de onda, que se corresponden con la posición de piernas estiradas (de pie) del ejercicio A04. En las grabaciones de este ejercicio vemos que la sincronización se mantiene a lo largo de toda la señal, a diferencia del ejercicio anterior. También apreciamos a simple vista que las diferencias entre los sensores y el vídeo es muy superior a la de A01. Este hecho se ve reflejado en las RMSE, con valor de 13.33 y 24.77 respectivamente. Esta diferencia tan grande puede deberse a diferentes motivos: 52
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO Figura 30: Comparativa S05-A04: Sentadillas - Rodilla izquierda Figura 31: Comparativa S05-A04: Sentadillas - Rodilla derecha La diferencia entre las señales de vídeo: Grabación del ejercicio en un plano oblicuo. Como hemos mencionado, el sistema de vídeo, puede tener problemas en la captación de las componentes de profundidad, es por esto que puede haber tanta diferencia tanto entre sensores y vídeo como entre lado izquierdo y derecho. La diferencia entre sensores y vídeo: Desviación del Keypoint de la cadera. Para el cálculo de la rodilla, se especificó la utilización de los keypoints de la cadera, de la rodilla y del talón. También, se puede apreciar en la figura 25 que la colocación del keypoint de la cadera en el programa BodyTrack que se hace en la parte más superficial de la zona, no teniendo en cuenta la profundidad real a la que se encuentra la articulación. Esto puede llevar a la reducción del ángulo medido por el sistema de vídeo. Las figuras 32 y 33 representan los ángulos de los codos izquierdo y derecho respectivamente adquiridos con los IMUs y con vídeo. Podemos observar cuatro de cinco realizaciones completas del ejercicio porque una de las grabaciones se corto unos segundos antes de la finalización del ejercicio. Entre las dos gráficas, apreciamos la consistencia en las mediciones de los sensores, y no así 53
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO Figura 32: Comparativa S05-A08: BeberVasoIzquierda - Codo izquierdo Figura 33: Comparativa S05-A07: BeberVasoDerecha - Codo derecho en el vídeo. Esto es consistente con el problema de la grabación en un plano oblicuo, ya que el lado izquierdo del cuerpo no estaba al descubierto y el sistema de vídeo es normal que tuviera problemas en la asignación correcta de los keypoints. A mayores de este problema también se sufre algo de desincronización entre las señales en el lado izquierdo. También el problema de la mala estimación de la profundidad por parte del sistema de vídeo hace que las diferencias entre los ángulos calculados sean bastante considerables. Con estas observaciones tenida en cuenta, los RMSE de 23.41 y 24.55 respectivos, es esperable que tengan un valor tan elevado, pero genera algo de sorpresa que en el lado derecho haya un RMSE mayor. Realmente, tiene sentido, ya que, aunque la grabación de vídeo del lado derecho, pese a tener un parecido mayor con la señal de sensores, las diferencias son mayores que en el lado izquierdo. Las figuras 34 y 35 representan los ángulos de los hombros izquierdo y derecho respectivamente adquiridos con los IMUs y con vídeo. Podemos observar cuatro de cinco realizaciones completas del ejercicio porque una de las grabaciones se corto unos segundos antes de la finalización del ejercicio. 54
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO Figura 34: Comparativa S05-A08: BeberVasoIzquierda - Hombro izquierdo Figura 35: Comparativa S05-A07: BeberVasoDerecha - Hombro derecho En estas gráficas sigue existiendo una diferencia entre los lados izquierdo y derecho de las grabaciones de vídeo, mientras que los sensores mantienen rangos muy similares. Los problemas de sincronización no son significativos en este caso. Los RMSE obtenidos para la articulación del hombro son 16.61 y 22.92 respectivamente. SOn valores bastante altos, aunque en el lado izquierdo es ligeramente inferior al resto de ejercicios en general. La diferencia entre ambos RMSE es visualmente apreciable, ya que en las gráficas del hombro izquierdo mantienen una diferencia entre ellas menor que las del hombro derecho. En resumen, vemos que los IMUs son una herramienta más consistente en las medidas que realiza, dando rangos de valores muy similares y congruentes en los ejercicios examinados. En la adquisición de vídeo, hacen presencia algunas de las desventajas que se mencionan en el capítulo 1, como la dependencia del entorno donde se graba o el ángulo de grabación. Pese a haber diferencias notables entre la información obtenida entre ambos sistemas de adquisición de datos, las capturas con vídeo puede ser igual de válidas para llevar a cabo el reconocimiento de actividades. 55
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO EJERCICIO - EXTREMIDAD S05 S37 A01-RodillaIzquierda 10.53 11.67 A01-RodillaDerecha 11.68 11.19 A04-RodillaIzquierda 13.33 6.13 A04-RodillaDerecha 24.77 7.18 A08-CodoIzquierdo 23.41 17.39 A07-CodoDerecho 24.55 37.85 A08-HombroIzquiero 16.61 11.18 A08-HombroDerecho 22.92 16.02 Tabla 6: RMSE de los sujetos S05 y S37 4.4. Comparativa Inter-sujeto En este apartado, se presentarán una gráficas similares a las que se encuentran en el apartado anterior, pero esta vez han sido extraídas del sujeto S37. Esta vez se hablará sobre las diferencias entre los valores de la RMSE obtenidas para ambos sujetos (S05 y S37) y ver cómo son los valores entre ambos sujetos a nivel de ángulos obtenidos y de medida del RMSE. La elección estos sujetos se ha basado en la existencia de ambos en las bases de datos tanto de los IMUs como de vídeo, ya que esto no sucede para todos los sujetos. La tabla 6 contiene un resumen con los cálculos del RMSE realizados sobre los ejercicios analizados en la comparativa. En ella podemos apreciar que los ejercicios de tren inferior tienen un valor del RMSE inferior en comparación a los ejercicios de tren superior. Esta diferencia puede deberse a que los ángulos medidos en los ejercicios de tren inferior tienen un rango de valores menor al que tienen los de tren superior. Podemos ver en la actividad A04 para S05 que el error es comparable al obtenido en los ejercicios de tren superior. Finalmente, podemos decir que estos valores del error son normales y lo más seguro es que se deban a la dificultad de la cámara para captar profundidad, lo cual produce la asignación imprecisa de los keypoints y, por consiguiente, de las mediciones de los ángulos particulares. Como excepción, tenemos la actividad A07 del sujeto S37, donde tenemos un error muy superior, que se discutirá en este apartado. Las figuras 36 y 37 representan los ángulos de las rodillas izquierda y derecha respectivamente adquiridos con los IMUs y con vídeo. Podemos observar ocho conjuntos de picos, que se corresponden con las tres idas y las tres vueltas del ejercicio A01. En estas figuras podemos ver que la sincronización entre las señales es bastante malas pero la forma de las ondas es similar a las del S05. Es apreciable que, para los sensores, el valor de los picos es considerablemente inferior, y pueda deberse a que los sensores se hayas desplazado tras el reset. El valor del RMSE es de 11.67 y 11.19 respectivamente, lo cual es consistente con los valores adquiridos de el sujeto S05. Estos valores tan bajos de error pueden deberse a que el rango 56
CAPÍTULO 4. COMPARATIVA CON SISTEMA DE CAPTURA DE DATOS MEDIANTE VÍDEO Figura 36: Comparativa S37-A01: AndarFrenteYVuelta - Rodilla izquierda Figura 37: Comparativa S37-A01: AndarFrenteYVuelta - Rodilla derecha angular de este ejercicio es menor que el rango angular de las demás actividades analizadas en esta comparativa. Las figuras 38 y 39 representan los ángulos de las rodillas izquierda y derecha respectivamente adquiridos con los IMUs y con vídeo. Podemos observar cuatro valles en la forma de onda, que se corresponden con la posición de piernas estiradas (de pie) del ejercicio A04. En estas gráficas vemos que los cálculos de los sensores y de la cámara son muy parecidos. No hay problemas de sincronización ni diferencias en los niveles máximos de las señales. Esto contradice la suposición del error en el S05 debido a la colocación del keypoint de la cadera. Esto nos lleva a pensar que la explicación de la diferencia entre los ángulos del S05 sea que la constitución del sujeto a analizar afecta en el sistema de vídeo a la hora de colocación de los keypoints, por lo que el ángulo variará inevitablemente de una persona a otra. La RMSE obtenida es 6.13 y 7.18 respectivamente. Es algo que visualmente se podía intuir, ya que las señales son muy similares. Es cierto que los máximos de la rodilla derecha son ligeramente menores y más inestables, lo que explica que la RMSE sea algo superior. 57
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO notables, ya que los ejercicios suelen tener una duración más equiparable, a excepción de A12 y A13 que tienen una duración media un 30 % inferior al resto de los ejercicios. Este desbalanceo del número de ejemplos entre actividades puede propiciar un aumento del overfitting en los entrenamientos. Entorno de entrenamiento En este entorno se lleva a cabo el entrenamiento de la red, especificando todos los hiperparámetros que se pueden modificar de la misma manera que en el entorno de preprocesado. También permite generar automáticamente métricas del desempeño de la red, así como matrices de confusión y guardar los datos del modelo entrenado. Algunos de los hiperparámetros configurables pueden ser: la red neuronal basada en Tensorflow que deseamos emplear, los diferentes ejercicios que se van a clasificar, especificar los sujetos de entrenamiento, validación y test, el tamaño de las imágenes de entrada, diferentes callbacks, el número de canales, el número de steps de entrenamiento, validación y test o las épocas. Inicialmente disponíamos de un número limitado de muestras y de sujetos. Gracias a los métodos de data augmentation se ha solventado en cierta medida el problema de las muestras de ejemplo limitadas. Para solucionar el problema del número de sujetos limitado, existe el procedimiento k-fold cross validation o la validación cruzada k-fold, el cual está implementado en el framework que vamos a usar. K-Fold Cross Validation es una forma de evaluar los modelos de aprendizaje automático dado un conjunto limitado de muestras, la cual es nuestra situación. Es un método muy empleado en estos casos debido a su simplicidad y estimaciones no optimistas. El procedimiento consiste en los siguientes pasos [50]: 1. Las muestras se separan en kgrupos. 2. Dentro de cada grupo: a) Se seleccionan las muestras que forman el conjunto de test, y el conjunto de entrenamiento. b) Se entrena una red neuronal con el conjunto de entrenamiento recién formado y se evalúa el modelo con el conjunto de test. c) Se almacenan las métricas de desempeño y se descarta el modelo. 3. Finalmente, la precisión del modelo conjunto es la media aritmética de las precisiones de los entrenamientos individuales. 64
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO ID EJERCICIO TIPO PLANO # REPETICIONES A05 MoverVasoDerecha Unimanual Oblicuo a 45◦5 A06 MoverVasoIzquierda Unimanual Oblicuo a 45◦5 A07 BeberVasoDerecha Unimanual Oblicuo a 45◦5 A08 BeberVasoIzquierda Unimanual Oblicuo a 45◦5 A09 MontarLEGO Bimanual Oblicuo a 45◦1 A10 BalonAlAire Bimanual Oblicuo a 45◦10 A11 CogerBotellaAltaDerecha Unimanual Oblicuo a 45◦5 A12 CogerBotellaAltaIzquierda Unimanual Oblicuo a 45◦5 A13 RomperPapelBola Bimanual Oblicuo a 45◦1 Tabla 7: Ejercicios para clasificación de tren superior 5.2. HAR en actividades de tren superior En este apartado del capítulo se exponen las diferentes pruebas que se han llevado a cabo con el framework mencionado anteriormente de entrenamiento para las actividades que emplean el tren superior. Estas actividades son las 9 recogidas en la tabla 7. Por otra parte, sólo es posible emplear los sujetos que tienen al menos un ejercicio de tren superior, es por esto que se han utilizado 15 de ellos: S01, S02, S05, S29, S30, S31, S32, S33, S34, S35, S36, S37, S38, S39 y S40. Durante los entrenamientos llevados a cabo, tanto para tren superior como inferior, se han aplicado 2 callbacks. Los callbacks son objetos que realizan diferentes acciones en las distintas fases de un entrenamiento de redes neuronales. Nosotros hemos empleado los siguientes: ModelCheckpoint : Este callback permite almacenar el modelo en un punto del entrenamiento concreto. Nosotros lo configuramos para que guardara los pesos del modelo cuando éste alcanzara su mayor precisión en el entrenamiento. EarlyStopping : Este callback permite acelerar el tiempo de entrenamiento, haciendo que éste finalice cuando una métrica no mejore a lo largo de varias épocas. En nuestro caso, elegimos la precisión como métrica decisoria y le otorgamos un valor de 7 épocas a la paciencia. Estos callbacks se han mantenido a lo largo de todas las pruebas, tanto en entrenamientos individuales como en los entrenamientos de validación cruzada con k-fold. Se han llevado a cabo los siguientes entrenamientos individuales: 00. En el preprocesado se estableció el tamaño de ventana a 512 muestras y un overlap de 496 muestras, es decir, compartiendo un 95 % de las muestras correspondientes a la ventana 65
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO anterior. También, se empleó data agumentation añadiendo a las imágenes finales la FFT bidimensional. En lo relativo al entrenamiento, se eligieron entrenamientos de 90 épocas, batches de 90 imágenes y steps de 95 imágenes. La arquitectura de la red neuronal empleada es una red convolucional conformada por 4 capas convolucionales (convolución 2D + Max Pooling) de 64, 64, 128 y 256 mapas de características respectivamente y una capa densa. 01. Para este entrenamiento sólo se modificó la arquitectura de la red, añadiendo capas de normalización del batch en cada capa convolucional. 02. Para este entrenamiento sólo se modificó la arquitectura de la red, cambiando el número de mapas de características de las capas de la red anterior pasando de ser 64, 64, 128 y 256 a 64, 64, 64 y 128. 03. La siguiente prueba se hizo modificando la red empleada en 01, pero añadiendo capas de dropout de tasas 0.1, 0.1, 0.15 y 0.2 respectivamente. 04. Los cambios introducidos en esta prueba comienzan con los parámetros de entrenamiento, pasando a considerar batches de tamaño 128 imágenes en vez de 90 y steps de tamaño 62 en vez de 95. Esta decisión se llevó a cabo para que el número total de ejemplos disponibles sea el producto entre el tamaño del batch y el número de steps. Además, sobre la anterior arquitectura de la red, se eliminó la última capa, pasando a ser 3 capas convolucionales formadas con una convolución 2D, una capa de max pooling, una de batch normalization y una capa de dropout. 05. Para esta prueba se mantuvo la anterior arquitectura de la red. El cambio aplicado se produjo en el preprocesado, en concreto, en el tamaño del overlap, que pasó de 496 muestras (95%) a 410 muestras (80 %). Esta decisión se tomó debido a que en todas las pruebas llevadas a cabo hasta este momento, la red era capaz de aprender los ejemplos y, por consiguiente, se producía overfitting. Con la modificación del overlap se consigue reducir la correlación entre las muestras y que le cueste un poco más aprenderlas. Seguramente, el problema del overfitting también se produzca porque no tuviéramos un número suficiente de ejemplos. Como consecuencia de la modiciación dle preprocesado, para mantener la relación entre batch ysteps se modificaron también sus valores a 64 y 21 respectivamente. 06. El cambio aplicado en esta prueba afecta a la arquitectura de la red, a la que eliminó la última capa. 07. En este entrenamiento, se aumentó la tasa de las capas de dropout, que actualmente tenía un valor de 0.1 y pasó a ser de 0.2 para ambas. 08. En esta prueba se aumentó de nuevo la tasa de las capas de dropout, que pasó a ser de 0.5 para ambas capas de la red. 09. Para la siguiente prueba, se llevó a cabo otro algoritmo de data augmentation ya mencionado anteriormente, que es la rotación de los cuaterniones de las imágenes. Los ángulos empleados para rotar las imágenes fueron 0 º , 15, º 30 º , 45 º , 60 º , 75 º , 90 º , 105 º , 120 º , 135 º , 165 º y 180 º . Debido a que el número de ejemplos aumentó, se tuvieron que modificar los 66
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO # ENTRENAMIENTO VALIDACIÓN TEST PÉRDIDA PRECISIÓN PÉRDIDA PRECISIÓN PÉRDIDA PRECISIÓN 0 0.1228 0.9542 5.8737 0.428 4.9073 0.4039 1 0.0001 0.9998 4.0563 0.6685 2.5723 0.7097 2 0.0001 1 5.1876 0.7792 4.3526 0.772 3 0.0624 0.9836 4.3535 0.7763 5.6867 0.7639 4 0.002 0.9995 8.8789 0.6065 12.1525 0.6245 5 0.0579 0.9878 17.5594 0.7151 16.3545 0.6556 6 0.2611 0.9984 41.0579 0.8647 11.5851 0.8548 7 0.1367 0.9817 33.4847 0.7821 18.2697 0.7983 8 0.5917 0.9927 32.1857 0.7094 37.0151 0.7697 9 0.0001 0.9999 18.0396 0.83 17.2637 0.8203 10 0.0186 0.9944 5.9646 0.8095 14.7375 0.8384 Tabla 8: Resultados entrenamientos individuales tren superior parámetros de entrenamiento, siendo ahora el tamaño de batch 128 muestras y el tamaño de los steps de 133 muestras. 10. El cambio que se aplicó en la última prueba fue la modificación de la tasa de las capas de dropout, que era de 0.5 y pasó a ser de 0.2. Los resultados obtenidos en los entrenamientos individuales explicados anteriormente se recogen en la tabla 8, la cual muestra para cada entrenamiento individual las métricas de pérdida y precisión en las fases de entrenamiento validación y test. Con respecto a las decisiones tomadas a lo largo de las pruebas para el problema de HAR en los ejercicios de tren superior podemos observar según las métricas expuestas en la tabla 8 lo siguiente: partiendo de la prueba llamada 00, la adición de la capa de normalización del batch supuso una mejora de más de un 30 % de precisión en los ejemplos de test. Otra mejora sustancial fue propiciada por la reducción del número de mapas de características propuesto en 02 y la reducción del tamaño de la red a únicamente 2 capas, aplicado en 06. En las pruebas mencionadas anteriormente, conseguimos un buen valor de la métrica de precisión alcanzando valores superiores al 80 %, pero con un valor de las pérdidas muy elevado, que ya en la prueba 10 se consigue reducir con un aumento en el número de ejemplos y retoques en las tasas de las capas de dropout. A partir del último entrenamiento individual, llamado 10, llevado a cabo. Se procedió con un entrenamiento K-fold cross validation, explicado en el apartado 5.1, debido a que se consideró que era una red que respondía con buenas métricas para nuestra situación. En estos entrenamientos se prepararon todas las configuraciones posibles cumpliendo las siguientes condiciones: Sólo se tomará un sujeto para test y validación, que coincidirán. 67
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO En cada grupo, sólo se emplearán como sujetos de test, aquellos que cuenten con todos los ejercicios de tren superior disponibles, quedándonos con S01, S02, S05, S29, S30, S31, S32, S33, S34, S35, S37, S39 y S40; es decir, 13 sujetos. Se llevaron a cabo los siguientes entrenamientos de k-fold: 00. Para el primer entrenamiento con k-fold decidimos emplear la mitad de los entrenamientos individuales disponibles, es decir, 7 entrenamientos. Con esta situación, al ejecutar el entrenamiento en el framework, sucedió un error inesperado que imposibilitó la terminación del entrenamiento. Este error pudo deberse a la saturación de la memoria empleada por el framework. 01. Para el segundo entrenamiento empleando k-fold, queríamos evitar que sucediera de nuevo el error de la prueba anterior, por lo que limitamos el número de entrenamientos individuales llevando a cabo un 6-fold con la red empleada en el entrenamiento individual 10: una red de dos capas formadas por una convolución bidimensional de 64 mapas de características, una capa de max pooling, una capa de normalización de batch y una de dropout con tasa 0.2. Este entrenamiento consiguió una precisión del 98 % en las muestras de test. La matriz de confusión y las métricas agregadas de este entrenamiento con k-fold pueden observarse en las figuras 44 y 45. Sobre la matriz de confusión normalizada de la figura 44 cabe destacar que el modelo que hemos obtenido es capaz de clasificar con una gran exactitud los ejercicios que se le presentan. Las actividades que más problemas tiene a la hora de la clasificación son la A06 o MoverVasoIzquierda, que lo confunde ligeramente con A10 o BalonAlAire; la A09 o MontarLEGO, que lo confunde ligeramente con A05 o MoverVasoDerecha; y la A13 o RomperPapelBola, que lo confunde ligeramente con A09 o MontarLEGO. En lo respectivo a las métricas de la figura 45 vemos que son muy prometedoras con datos medios como sensitividad y especificidad de valores 89 % y 99 % respectivamente o un valor de precisión de la clasificación del 98%. A continuación, analizaremos los entrenamientos individuales del k-fold de tren superior que más problemas han tenido, expuestas en la figura 46: Para el primero de ellos: tras ver sus desempeños, hemos observado un entrenamiento que consigue un 76.18 % de precisión en los ejemplos de test. Atendiendo a su matriz de confusión normalizada vemos que los ejercicios con los que tiene más problemas identificando correctamente son A06 (MoverVasoIzquierda), que lo confunde completamente con A10 (BalonAlAire) y A13 (RomperPapelBola); A08(BeberVasoIzquierda), que lo confunde notablemente con A06; y A12(CogerBotellaAltaIzquierda), que lo confunde completamente con A08 y A13. Para el segundo de ellos, con un 76.94% de precisión con los ejemplos de test: Vemos en su matriz de confusión normalizada que, los ejercicios con los que tiene más problemas 68
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO Figura 44: Matriz de confusión normalizada ejercicios tren superior 69
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO Figura 45: Matriz de métricas ejercicios tren superior 70
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO ID EJERCICIO TIPO PLANO # REPETICIONES A01 AndarFrenteYVuelta Pierna Sagital 3 A02 AndarHaciaAtrasYVuelta Pierna Sagital 3 A03 AndarSobreLinea Pierna Oblicuo a 20◦3 A04 Sentadillas Pierna Oblicuo a 45◦5 Tabla 9: Ejercicios para clasificación de tren inferior a la hora de la clasificación son A09 (MontarLEGO), que lo confunde mucho con A05 (MoverVasoDerecha); A10, que lo confunde con A11 (CogerBotellaAltaDerecha); y A13, que lo confunde notablemente con A05. Vemos que los ejercicios con los que tiene mayor problema contienen algunos gestos similares a los ejercicios con los que los confunde, por lo que es algo aceptable. Aunque por otro lado, no ocurre con los mismos gestos hechos con ambas manos. Es decir, el ejercicio A09, contiene gestos similares a A05 y A06, pero no sucede que confunda simultáneamente A09 con A05 y A09 con A06. 5.3. HAR en actividades de tren inferior En este apartado del capítulo se exponen las diferentes pruebas que se han llevado a cabo con el framework mencionado anteriormente de entrenamiento para las actividades que emplean el tren inferior. Estas actividades son las 4 recogidas en la tabla 9. Por otra parte, sólo es posible emplear los sujetos que tienen al menos un ejercicio de tren superior, es por esto que se han utilizado 14 de ellos: S01, S02, S03, S05, S29, S30, S31, S32, S33, S34, S35, S36, S37, S38. Las pruebas que se han llevado a cabo para conseguir el reconocimiento de las actividades de tren inferior han sido las siguientes: 00. En la primera prueba de los entrenamientos individuales se mantuvo la configuración empleada en el preprocesado de los ejercicios de tren superior: imágenes de 512 muestras con un overlap de 410 muestras (80%). De la misma manera, se mantienen las configuraciones de entrenamiento anteriores, siendo el tamaño del batch 128 imágenes, el tamaño de los steps 133 imágenes y el número de épocas 35. Para la arquitectura de la red, comenzamos probando la última configuración que se probó en los ejercicios de tren superior, ya que había dado buenos resultados. Esta red consiste en dos capas convolucionales formadas por: una capa de convolución bidimensional con 64 mapas de características, una capa de max pooling, una de normalización del batch y una capa de dropout de tasa 0.2. Tras las capas convolucionales hay una capa densa para obtener las salidas de la red. 01. En la primera prueba, la red sufría de overfitting, por lo que probamos reduciendo el número de capas a 1 y reduciendo el número de mapas de características a 32, manteniendo todo lo 71
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO Figura 46: Matrices de confusión de los peores entrenamientos individuales del k-fold 72
CAPÍTULO 5. CLASIFICACIÓN DE ACTIVIDADES CON APRENDIZAJE PROFUNDO # ENTRENAMIENTO VALIDACIÓN TEST PÉRDIDA PRECISIÓN PÉRDIDA PRECISIÓN PÉRDIDA PRECISIÓN 0 0.0353 0.9917 14.876 0.5095 7.6556 0.5135 1 0.0277 0.9986 90.0371 0.4759 52.9993 0.4383 2 0.0298 0.9994 108.4739 0.4478 103.9126 0.4753 3 0.1751 0.983 9.5061 0.5618 9.2662 0.5749 4 0.0463 0.9944 13.0071 0.6025 8.0246 0.5996 Tabla 10: Resultados entrenamientos individuales tren inferior demás tal y como estaba. Esta acción se llevó a cabo pese a que las redes neuronales con menos de 2 capas no se consideren profundas, pero queríamos comprobar los resultados de esta nueva red. 02. En la siguiente prueba de entrenamiento individual probamos a mantener la arquitectura anterior, pero aumentando la tasa de dropout de 0.2 a 0.25. Pese a estas decisiones, veíamos que se seguía produciendo overfitting, aunque en menos medida que en el primer caso. 03. Para la siguiente prueba, se tomó como base la red empleada en 01. El cambio que se llevó a cabo fue emplear canales. Los canales en las redes convolucionales suponen tratar las imágenes al igual que se tratan las imágenes en formato RGB. Esto supone que las entradas pasan a ser tensores, compuestos por las imágenes iniciales bidimensionales de cada componente de los cuaterniones [ w, x, y, z ] ”apiladas”. También, esto supone que los mapas de características y los filtros empleados ganan una dimensión más de tamaño el número de canales que empleamos. En nuestro caso, como los cuaterniones cuentan con 4 componentes, emplearemos 4 canales. De esta manera, conseguimos que cada componente de los cuaterniones se trate de una forma más independiente del resto de componentes, lo cual puede beneficiar a la identificación de patrones de movimiento dentro de los ejercicios que deseamos clasificar. 04. Finalmente, en la última prueba individual, partiendo de la arquitectura usada en el entrenamiento anterior, se redujo el número de mapas de características de 32 a 16, manteniendo todas las demás configuraciones de preprocesado, entrenamiento y arquitectura de la red convolucional. Los resultado obtenidos en los entrenamientos individuales que acaban de ser descritos se han recogido en la tabla 10, donde se muestras las métricas de pérdida y precisión de los entrenamientos individuales en los sets de entrenamiento, validación y test. A partir de los resultados expuestos en la tabla 10 y de las decisiones tomadas en cada una de las pruebas, podemos ver que, partiendo de la red neuronal que dio los mejores resultados para la clasificación individuales en tren superior, sólo obtenemos un 51.35 % de precisión. Hemos pasado de tener 9 ejercicios a 4, pero también es verdad que A01 (AndarFrenteYVuelta) y A03 (AndarSobreLinea) contienen gesto muy similares, lo que puede hacer que éstos se confundan con facilidad. Además, Debido a el aumento de datos mediante las rotaciones de los 73
CAPÍTULO 6. CONCLUSIONES, PRESUPUESTO Y LÍNEAS FUTURAS la conclusión de que han sido unas 500 horas aproximadamente. Según el Boletín Oficial del Estado, para el año 2021, los sueldos base para ingenieros son de 1.799,68 C mensuales, lo que, con una jornada laboral de 40 horas mensuales, hace un total de 11,25C a la hora. 6.3. Líneas Futuras Para finalizar, queremos dejar constancia en este apartado de las diferentes posibilidades de continuación y mejora tras el desarrollo de este proyecto. Inicialmente, lo más inmediato podría ser intentar mejorar las métricas de los entrenamientos haciendo modificaciones de las redes que hemos usado en el proyecto, dado que hemos contado con un tiempo reducido para hacerlas y no hemos podido hacer todas las que nos hubiera gustado. También podría ser interesante ver si podríamos hacer entrenamientos de k-fold con todos los conjuntos posibles, analizar cada uno de los entrenamientos de los k-fold o incluso intentar conseguir un único modelos para clasificar tanto actividades de tren superior como inferior. En posteriores pruebas, podría también utilizarse el framework empleando como inputs vectores tridimensionales, los cuales contendrían los ángulos de Euler extraídos a partir de los ficheros de la base de datos empleando las técnicas explicadas en 3.2.4 y 3.2.5. Una de las líneas de trabajo pudiera ser el empleo de otro tipo de redes neuronales, como las recurrentes e incluso emplear celdas LSTM o GRU, dado que las empleadas en las primeras pruebas (CNN) no suponen ninguna novedad dentro de todos los tipos de arquitecturas de redes neuronales utilizadas actualmente. Otra línea podría ser la utilización de redes GAN (Generative Adversary Network) para aumentar los ejemplos con los que alimentar a las redes de datos para ver si podemos mejorar el desempeño de las redes, sobre todo en la clasificación de ejercicios de tren inferior. Finalmente, podríamos plantear ampliar la base de datos con un mayor número de sujetos, dado que con 14, no son un gran número. Además, podría buscarse una solución al problema de desbalanceo controlando el tiempo de duración de los ejercicios, aunque podría haber diferentes soluciones. 80
Glosario AI Artificial Intelligence | Inteligencia Artificial. 30, 31, 33 AR Agumented Reality | Realidad Aumentada. 48 CNN Convolutional Neural Network | Red Neuronal Convolucional. 12, 13, 78, 80 CSS Cascading Stylesheets | Hoja de Estilos en Cascada. 7 CWT Continuous Wavelet Transform | Transformada de Wavelet Continua. 4 DL Deep Learning | Aprendizaje Profundo. 1, 7, 13, 30, 34, 35, 37 DRNN Deep Recurrent Neural Network | Red Neuronal Recurrente Profunda. 12 DT Decision Tree | Árbol de Decisión. 11, 12, 33 EMG Electromyogram | Electromiograma. 4 ETS - | Escuela Técnica Superior. 15, 79 ETSIT - | Escuela Técnica Superior de Ingenieros de Telecomunicación. 1, 8 FFT Fast Fourier Transform | Transformada Rápida de Fourier. 3, 63, 66, 78 GPU Graphic Processing Unit | Unidad de Procesamiento Gráfico. 2 GRU Gated Recurrent Unit | Unidad Recurrente con Puertas. 41, 45, 80 GTI - | Grupo de Telemática e Imagen. 1, 5, 8, 15, 79 HAR Human Activity Recognition | Reconocimiento de Actividades Humanas. 2–4, 7, 9–12, 14, 42, 47, 48, 62, 67, 78, 79 HTML Hypertext Mark Language | Lenguaje de Marcas en Hipertexto. 7 IMU Inertial Measurement Unit | Unidad de Medida Inercial. 1, 5–8, 10–12, 14, 15, 42, 47, 51–54, 56–59 81
Glosario IoT Internet of the Things | Internet de las Cosas. 2 KNN K-Nearest Neighbors | K Vecinos más Próximos. 11, 34 LLA Left Lower Arm | Antebrazo Izquierdo. 19 LLL Left Lower Leg | Pantorrilla Izquierda. 19, 29 LR Logistic Regression | Regresión Logística. 13 LSTM Long Short-Term Memory | Memoria Grande a Corto Plazo. 12, 13, 39, 41, 44, 45, 80 LUA Left Upper Arm | Brazo Izquierdo. 19 LUL Left Upper Leg | Muslo Izquierdo. 19, 29 ML Machine Learning | Aprendizaje Automático. 1, 12, 13, 30, 32, 33, 39 MLP Multi-Layer Perceptron | Perceptrón Multicapa. 34 PSD Power Spectral Density | Densidad Espectral de Potencia. 12 ReLU Rectified Linear Unit | Unidad Lineal Rectificada. 37, 39 RFo Random Forest | Bosque de Decisión Aleatorio. 12, 33 RGBD Red-Green-Blue-Depth | Rojo-Verde-Azul-Profundidad. 4 RLA Right Lower Arm | Antebrazo Derecho. 19 RLL Right Lower Leg | Pantorrilla Derecha. 19 RMSE Root Mean Square Error | Raíz del Error Cuadrático Medio. 50, 52, 54–59, 61 RNN Recurrent Neural Network | Red Neuronal Recurrente. 12, 13, 44, 45 RUA Right Upper Arm | Brazo Derecho. 19 RUL Right Upper Leg | Muslo Derecho. 19 SDK Software Development Kit | Kit de Desarrollo de Software. 48 STFT Short-Time Fourier Transform | Transformada Rápida de Fourier. 4, 12 SVM Support Vector Machine | Máquina de Vector de Soporte. 11, 12, 34 TFG - | Trabajo de Fin de Grado. 7, 8, 10, 31, 33, 34, 79 TPU Tensorial Processing Unit | Unidad de Procesamiento Tensorial. 2 UVa - | Universidad de Valladolid. 1, 8 82
Bibliografía [1] X. Chen and T. Han, “Disruptive Technology Forecasting based on Gartner Hype Cycle,” 2019 IEEE Technology & Engineering Management Conference (TEMSCON), 2019. [2] Z. Meng, M. Zhang, C. Guo, Q. Fan, H. Zhang, N. Gao, and Z. Zhang, “Recent Progress in Sensing and Computing Techniques for Human Activity Recognition and Motion Analysis,” Electronics, vol. 9, no. 9, p. 1357, 2020. [3] A. Ng, “Machine Learning on Coursera,” 2011. [4] J. González Alonso and M. Martínez Zarzuela, “ Periféricos basados en Arduino para interacción con sistemas médicos de simulación y rehabilitación,” tech. rep., Universidad de Valladolid, 2017. [5] J. González Alonso and M. Martínez Zarzuela, “Diseño y evaluación de un sistema vestible para captura de movimientos orientado a aplicaciones de evaluación ergonómica y monitorización de terapias de rehabilitación física,” tech. rep., Universidad de Valladolid, 09 2018. [6] “Quaternions Visualisation,” 2021. [7] F. Chollet, Deep Learning with Python. Manning Publications, 2017. [8] E. Matthes, Python Crash Course. Amsterdam, Países Bajos: Amsterdam University Press, 2019. [9] Xsens Technologies B.V.", “Xsens DOT User Manual,” Tech. Rep. XD0502P, Xsens Technologies B.V.", 12 2020. [10] “Xsens DOT Developer Conference: Automated Manual Tasks Risk Assessment, a benefit or a distraction?,” 2021. [11] D. Pérez de la Fuente and M. Martínez Zarzuela, “ Análisis y clasificación de movimientos en actividades humanas a partir de vídeo 2D: adquisición de base de datos propia y comparativa de técnicas con aprendizaje profundo,” tech. rep., Universidad de Valladolid, 2021. [12] G. Pardo and M. Martínez Zarzuela, “Redes de Aprendizaje Profundo para reconocimiento de actividades humanas: framework de pre-procesado y entrenamiento en TensorFlow,” tech. rep., Universidad de Valladolid", 2021. 83
[13] S. Jung, M. Michaud, L. Oudre, E. Dorveaux, L. Gorintin, N. Vayatis, and D. Ricard, “The Use of Inertial Measurement Units for the Study of Free Living Environment Activity Assessment: A Literature Review,” Sensors, vol. 20, no. 19, p. 5625, 2020. [14] D. Au, A. G. Matthew, P. Lopez, W. J. Hilton, R. Awasthi, G. Bousquet-Dion, K. Ladha, F. Carli, and D. Santa Mina, “Prehabilitation and acute postoperative physical activity in patients undergoing radical prostatectomy: a secondary analysis from an RCT,” Sports Medicine - Open, vol. 5, no. 1, 2019. [15] L. Carcreff, C. N. Gerber, A. Paraschiv-Ionescu, G. De Coulon, C. J. Newman, K. Aminian, and S. Armand, “Comparison of gait characteristics between clinical and daily life settings in children with cerebral palsy,” Scientific Reports, vol. 10, no. 1, 2020. [16] K. ELLIS, J. KERR, S. GODBOLE, J. STAUDENMAYER, and G. LANCKRIET, “Hip and Wrist Accelerometer Algorithms for Free-Living Behavior Classification,” Medicine & Science in Sports & Exercise, vol. 48, no. 5, pp. 933–940, 2016. [17] L. Fiorini, M. Bonaccorsi, S. Betti, D. Esposito, and F. Cavallo, “Combining wearable physiological and inertial sensors with indoor user localization network to enhance activity recognition,” Journal of Ambient Intelligence and Smart Environments, vol. 10, no. 4, pp. 345–357, 2018. [18] Y. J. Kim, K. D. Kim, S. H. Kim, S. Lee, and H. S. Lee, “Golf swing analysis system with a dual band and motion analysis algorithm,” IEEE Transactions on Consumer Electronics, vol. 63, no. 3, pp. 309–317, 2017. [19] F. Dadashi, G. Millet, and K. Aminian, “Gaussian process framework for pervasive estimation of swimming velocity with body-worn IMU,” Electronics Letters, vol. 49, no. 1, pp. 44–45, 2013. [20] Y. Wang, M. Chen, X. Wang, R. H. M. Chan, and W. J. Li, “IoT for Next-Generation Racket Sports Training,” IEEE Internet of Things Journal, vol. 5, no. 6, pp. 4558–4566, 2018. [21] Z. Fu, X. He, E. Wang, J. Huo, J. Huang, and D. Wu, “Personalized Human Activity Recognition Based on Integrated Wearable Sensor and Transfer Learning,” Sensors, vol. 21, no. 3, p. 885, 2021. [22] A. Ayman, O. Attalah, and H. Shaban, “An Efficient Human Activity Recognition Framework Based on Wearable IMU Wrist Sensors,” 2019 IEEE International Conference on Imaging Systems and Techniques (IST), 2019. [23] X. Li, Y. Wang, B. Zhang, and J. Ma, “PSDRNN: An Efficient and Effective HAR Scheme Based on Feature Extraction and Deep Learning,” IEEE Transactions on Industrial Informatics, vol. 16, no. 10, pp. 6703–6713, 2020. [24] A. Gumaei, M. Al-Rakhami, H. AlSalman, S. Md. Mizanur Rahman, and A. Alamri, “DLHAR: Deep Learning-Based Human Activity Recognition Framework for Edge Computing,” Computers, Materials & Continua, vol. 65, no. 2, pp. 1033–1057, 2020. 84
[25] A. Syed, Z. Sherhan, and A. Khalil, “Continuous Human Activity Recognition in Logistics from Inertial Sensor Data using Temporal Convolutions in CNN,” International Journal of Advanced Computer Science and Applications, vol. 11, no. 10, 2020. [26] S. Wan, L. Qi, X. Xu, C. Tong, and Z. Gu, “Deep Learning Models for Real-time Human Activity Recognition with Smartphones,” Mobile Networks and Applications, vol. 25, no. 2, pp. 743–755, 2019. [27] C. Phyo, T. Zin, and P. Tin, “Deep Learning for Recognizing Human Activities Using Motions of Skeletal Joints,” IEEE Transactions on Consumer Electronics, vol. 65, no. 2, pp. 243–252, 2019. [28] P. Agarwal and M. Alam, “A Lightweight Deep Learning Model for Human Activity Recognition on Edge Devices,” Procedia Computer Science, vol. 167, pp. 2364–2373, 2020. [29] S. Sáez Bombín and M. Martínez Zarzuela, “ Reconocimiento de actividades físicas con sensores inerciales y Redes Neuronales de Aprendizaje Profundo,” tech. rep., Universidad de Valladolid, 2018. [30] S. Sáez Bombín and M. Martínez Zarzuela, “ Sistema de Aprendizaje Profundo para reconocimiento de actividades con sensores de captura de movimientos,” tech. rep., Universidad de Valladolid, 2020. [31] L. Sy, “Replication Data for Estimating Lower Limb Kinematics using a Reduced Wearable Sensor Count,” 2019. [32] O. Banos, A. Toth, and O. Amft, “REALDISP Activity Recognition Dataset Data Set,” 2014. [33] P. Kelland and P. Tait, Introduction to Quaternions, by P. Kelland and P.G. Tait. University of Edinburgh, 1881. [34] D. Rowenhorst, A. D. Rollett, G. S. Rohrer, M. Groeber, M. Jackson, P. J. Konijnenberg, and M. De Graef, “Consistent representations of and conversions between 3D rotations,” Modelling and Simulation in Materials Science and Engineering, vol. 23, no. 8, p. 083501, 2015. [35] A. C. Robinson, “On the Use of Quaternions in Simulation of a Rigid-Body Motion,” tech. rep., Aeronautical Research Laboratory, 12 1958. [36] J. Winans, “Quaternion Physical Quantities,” Foundations of Physics, vol. 7, no. 5-6, pp. 341–349, 1977. [37] S. L. Altmann, Rotations, Quaternions, and Double Groups. Dover Publications, 2013. [38] T. Jespersen, “quat2eul.m MATLAB Function Implementation,” 2020. [39] M. Tincknell, “Class Quaternion on MatLab,” 2017. [40] D. Eberly, “Euler Angle Formulas,” tech. rep., Geometric Tools, 12 1999. 85
[41] H. Kurokawa, “A Geometric Study of Single Gimbal Control Moment Gyros,” Tech. Rep. 175, Agency of Industrial Technology and Science, Ministry of International Trade and Industry, Japan, 6 1997. [42] K. Shoemake, “Animating rotation with quaternion curves,” Proceedings of the 12th annual conference on Computer graphics and interactive techniques - SIGGRAPH ’85, 1985. [43] K. Shoemake, “Quaternions,” Department of Computer and Information Science. University of Pennsylvania, 1992. [44] Real Academia Española", “Diccionario de la lengua española,” 1780. [45] S. Russell and P. Norvig, Artificial Intelligence. Pearson, 2016. [46] Stanford University. a nd JMcCarthy, “WHAT IS ARTIFICIAL INTELLIGENCE?,” tech. rep., Stanford University, 11 2004. [47] D. Dobrev, “A Definition of Artificial Intelligence,” tech. rep., Institute of Mathematics and Informatics: Sofia, BG, 2005. [48] O. Simeone, “A Brief Introduction to Machine Learning for Engineers,” Foundations and Trends® in Signal Processing, vol. 12, no. 3-4, pp. 200–431, 2018. [49] B. Ding, H. Qian, and J. Zhou, “Activation functions and their characteristics in deep neural networks,” 2018 Chinese Control And Decision Conference (CCDC), 2018. [50] S. R. S. I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning. MIT Press, 2016. [51] N. Srivastava, G. Hinton, A. Krizhevsky, I. Sutskever, and R. Salakhutdinov, “Dropout: A Simple Way to Prevent Neural Networks from Overfitting,” The Journal of Machine Learning Research, 2014. [52] S. Ioffe and C. Szegedy, “Batch normalization: Accelerating deep network training by reducing internal covariate shift,” Proceedings of the 32nd International Conference on Machine Learning, vol. 37, pp. 448–456, 07–09 Jul 2015. [53] NVIDIA", “NVIDIA Maxine Documentation,” 2020. 86