Introduction: Clasificación De Movimientos Utilizando Edge Impulse Y Smartphone (Machine Learning)

Universidad del Valle

Métodos Numéricos

Keiry Chang 20454

Iván Chávez 20808

Amy Toledo 20241

Introducción al programa:

Mediante Edge Impulse podemos realizar una toma de datos utilizando los sensores internos de algún dispositivo móvil. En este proyecto se pondrá a prueba dicha aplicación para tomar datos y así facilitar la utilización de sensores de movimiento en este caso, pues dentro de las opciones contamos con sensores de sonido y demás. Para dicho proyecto se analizaran tres movimientos cotidianos básicos para poner a prueba las capacidades de Edge Impulse, y así demostrar cuáles son los beneficios de poder contar con un dispositivo móvil y poder utilizarlo como un sensor a nuestra conveniencia.


¿Para que nos serviría Edge Impulse en la vida real?

En nuestra vida cotidiana como ingenieros, podemos utilizar esta fabulosa aplicación en línea para tener una mayor facilidad de toma de datos para alguna acción específica, pues nos permite utilizar nuestro dispositivo móvil para poder accionar dichos sensores que pertenezcan a dicho dispositivo. Con esto nos permite tener mayor accesibilidad para la toma de datos y más allá de eso podemos tomarlos de una manera mas limpia sin depender de un cable o conexiones, ya que si principal ventaja es que dichos datos se conectan por medio de una red WIFI.

Supplies

Antes de comenzar, estos son algunos de los requisitos que se necesitan antes de iniciar la recolección de datos y el entrenamiento del modelo:

  • Cree una cuenta de Edge Impulse (Es gratuita), explorela y familiarícese con las opciones y herramientas que brinda.
  • Tener un teléfono inteligente.
  • Acceso a internet o una red WIFI
  • Tener planificado 3 o más movimientos diferentes.

Step 1: Recolección De Datos

Para este proyecto el primer movimiento serán sentadillas, el segundo será peinarse y el tercer movimiento será barrer. Cada toma de datos debe ser 50 rondas de 10 segundos con el fin de tener un análisis amplio para crear el modelo.

A continuación se presentan los pasos para obtener los datos:

  1. Enlazar el celular con la plataforma de EDGE IMPULSE, en la pestaña de dispositivo se selecciona la opción de "conectar un dispositivo", utilizando un celular.
  2. Se muestra un código QR que se debe escanear.
  3. En el celular seleccione la opción de "recolectar movimiento"
  4. Se coloca el nombre del movimiento a correr, con el tiempo de 10 segundos.
  5. Se comienza a grabar la corrida.
  6. En la pestaña de adquisición de datos se puede encontrar cada corrida que se tendrá desde el celular.

Step 2: Realización Del Modelo

Luego de haber recabado los datos de cada uno de los movimientos, se procede a realizar el modelo que va a identificar la probabilidad de que se esté realizando un movimiento en específico. En este caso solo utilizaremos las opciones Impulse Desing y Model Testing

En Impulse Desing.

En esta opción empezaremos a analizar los impulsos que se obtienen de las muestras realizadas, los impulsos se procesarán, se extraerán sus características y luego se usa un bloque de aprendizaje para clasificar nuevos datos.

  • Se da clic en la opción Impulse Desing, la cual se compone de 3 subdivisiones que se deben completar en el orden que aparecen: Create Impulse, Spectral features, NN Classifier. Al haber completado una, el punto gris que se encuentra al lado se pondrá de un color verde, que indica que se puede proceder a la siguiente subdivisión:

1.1 En Create Impulse:

  • solamente se modificará dos bloques

Add a new processing block: Seleccionar la opción "Spectral Analysis"

Add a leraning block : Seleccionar la opción "Clasification (Keras)", la cual automáticamente mostrará las muestras recabadas en el bloque "Output features"

  • Guardar el impulso seleccionando "Save Impulse" que se encuentra en la parte inferior de la página

1.2 En Spectral features:

Dirigirse a la opción "Parameters":

  • Se muestra la gráfica de una de las muestras
  • Seleccionar el cuadro blanco y arrastrarlo hasta la mitad del gráfico o donde se considere que el gráfico muestra la mejor forma del movimiento
  • No se modifica otro parámetro y seleccionar "Save parameters"
  • Cambiar la muestra en una pestaña que se encuentra en la parte superior de los gráficos
  • Repetir con cada una de las muestras

Dirigirse a la opción "Generate features":

  • Seleccionar la opción "Generate features" que se encuentra en un cuadro verde en el bloque training set

1.3 En NN Classifier:

  • Se muestran los parámetros pero en este caso no se modifican (Si se desean modificar, solo dirigirse al parámetro sin hacer clic y se da una pequeña definición del parámetro)
  • Seleccionar la opción "Start training"
  • Esperar a que se complete el entrenamiento y el punto esté en verde (Generalmente no debe tardar mucho, pero si ese es el caso, cancelar el entrenamiento y verificar que los pasos anteriores o las muestras estén correctos)
  • Luego de completar el entrenamiento, dirigirse al bloque "Model" y verificar el porcentaje obtenido en la precisión del modelo. Esto dependerá de la complejidad de los movimientos o la calidad con la que se recabaron

Step 3: Probando El Modelo

En esta opción se pondrá a prueba el modelo que ya procesó los datos y se entrenó en los pasos anteriores. Esto enumera todos los datos de las pruebas.

En Model Testing:

  • Verificar que el teléfono esté conectado con la computadora en el mismo enlace
  • En las opciones del teléfono, seleccionar la opción "Switch to classification mode"
  • Esperar que el teléfono compile el modelo que se acaba de entrenar
  • Al terminar, el teléfono mostrará el mensaje de "Sampling" que indica que ya está tomando los movimientos para poder clasificarlos

En un periodo de 6 segundos, el modelo estará verificando la probabilidad (0 a 1) de que se esté realizando un movimiento, y lo mostrará en la pantalla del teléfono.

*Verificar que el teléfono se esté colocando de la misma forma en que se colocó para la toma de las muestras.

Step 4: Conclusiones

¿Qué problemas resuelve?

Los movimientos que se presentaron forman parte de las actividades básicas de una rutina diaria como lo que es; la limpieza, el cuidado personal o realizar ejercicio. El modelo es capaz de detectar un movimiento e indica la probabilidad (en porcentaje) de cual de los tres movimientos analizados se esta realizando. Con estos modelos se logra incrementar una toma de datos mucho más rápida y eficiente.

¿Qué sensores utiliza?

Dentro de nuestro celular contamos con un sensor conocido como sensor giroscopio, el cual detecta la velocidad angular, también se conoce como el sensor silencioso puesto que no produce ningún tipo de ruido y depende de los movimientos que se ejercen dentro del dispositivo móvil. Junto con un acelerometro el cual permite la rotación de la pantalla, podemos obtener cooredanas polares las cuales son plasmadas dentro de Edge Impulse convirtiendo así a nuestro dispositivo en un sensor de movimiento para proyectos como este.

¿Cuáles son los resultados?

Al entrenar el modelo en NN Classifier se obtuvo una precisión del 100%, para todas las muestras de los tres movimientos, lo que quiere decir que el modelo será completamente preciso en detectar el movimiento que se está realizando. También se observa que la tabla que muestra la probabilidad de confusión entre los tres movimientos y se observa que no hay coincidencias entre un movimiento y otro.

Al realizar los movimientos en físico utilizando el teléfono, se diferenció con una probabilidad entre 1 y 0.98 cada movimiento en específico, por lo que el modelo supo clasificar de manera correcta qué movimiento se estaba realizando en ese momento.

El modelo apareció como se esperaba, pero en las primeras pruebas del modelo, sí hubo confusión de los movimientos, causa de esto es que el teléfono no se colocó de la misma manera en que se habían tomado las muestras al inicio, por lo que los Los datos que obtenía el modelo coincidían con las otras muestras al haber cambiado el eje de coordenadas del teléfono cuando se realizaban los movimientos.