Skip to main content

EON Tuner - Función Optimizada en Edge Impulse

Introducción

Edge Impulse presentó una función optimizada que puede optimizar modelos de Machine Learning embebidos y el uso de memoria en dispositivos. Al ajustar los parámetros, ayuda a personas que no están familiarizadas con algoritmos de Machine Learning a seleccionar rápidamente el mejor modelo para su aplicación. Mientras tanto, permite que los dispositivos usen menos memoria y menos rendimiento, lo que significa que ayuda a desplegar modelos TinyML en ciertos equipos dentro de las restricciones.

El EON Tuner primero analiza tus datos de entrada, posibles bloques de procesamiento de señal y arquitecturas de redes neuronales. Luego te da una visión general de posibles arquitecturas de modelos que se ajustan a los requerimientos de latencia y memoria del dispositivo elegido. Puedes escoger cualquiera de ellas.

La Posición del EON Tuner

Como puedes ver, la posición del EON Tuner está al lado izquierdo de la página del proyecto Edge Impulse y justo debajo de la clasificación. Cuando termines tus aplicaciones, puedes seleccionar fácilmente el Tuner para mejorar tus proyectos.

La Mejora del EON Tuner

Este es un ejemplo que muestra la diferencia entre usar el EON Tuner y no usarlo.

Primeros Pasos

Aquí vamos a proporcionar un proyecto de clasificación de audio y mostrar el uso del EON Tuner. Si te interesa Usar LoRa para transmitir datos basado en Wio Terminal y Edge Impulse, siempre puedes hacer clic y ver el proyecto ejemplo.

Hardware

Hardware Requerido

En esta demo necesitarás los dispositivos listados a continuación:

Conexión de Hardware

Se conecta a una computadora mediante el cable Type-C.

Software

Software Requerido

Machine Learning con Wio Terminal

Aquí mostraremos cómo usar el Wio Terminal para entrenar un modelo de Machine Learning y usarlo. El proyecto está basado en la plataforma Arduino, lo que significa que se requiere Arduino IDE y varias librerías de Arduino. Si es la primera vez que usas el Wio Terminal, recomendamos la guía rápida para Comenzar con Wio Terminal.

Inicio del Entrenamiento en Edge Impulse

Primero, necesitas tener tu propia cuenta en Edge Impulse y luego crear un proyecto.

  • Paso 2. Crea un nuevo proyecto.

Conexión del sitio web con Wio Terminal

Como indican las guías de Comenzar con Wio Terminal:

Haz doble clic en el botón inferior izquierdo del Wio Terminal (ya conectado a tu PC), verás que aparece un driver (como "Arduino (F:)" abajo) en la computadora. Luego arrastra el firmware wio-terminal-ei-1.4.0.uf2 hacia ese driver. Cuando el driver desaparezca, significa que el firmware se ha programado. Ahora puedes ir al sitio web para conectar el Wio Terminal.

  • Paso 4. Una vez configurado el firmware, haz clic en "connect using WebUSB" para conectar el Wio Terminal al sitio web.

Cuando aparezcan "Device", "Label" y "Sensor" como abajo, significa que la conexión está hecha y se puede activar la adquisición de datos.

Adquisición de Datos

Ahora puedes recolectar datos en Edge Impulse.

  • Paso 5. Ingresa "Label", "Sample length (ms.)" y haz clic en "Start sampling"

    • "Label" significa las categorías que deseas clasificar.
    • "Sample length" es el tiempo durante la muestra.

El proyecto de ejemplo que hacemos aquí es clasificación de audio, así que usaremos el micrófono integrado.

Se recomienda muestrear los datos más de 10 veces. Debido a que la grabación usa SPI Flash que opera borrando, el tiempo que toma suele ser mayor que el configurado (en este proyecto toma alrededor de 7 segundos y el tiempo configurado es de '3 segundos').

Generación del Modelo de Machine Learning

Una vez que los datos han sido recolectados, puedes usarlos para entrenar tu modelo de ML.

  • Paso 6. Después de muestrear los datos, haz clic en "create impulse" para procesar los datos.

Los bloques de procesamiento y aprendizaje seleccionados aquí son Audio(MFE) y Neural Network (Keras). Puedes encontrarlos añadiendo un bloque de procesamiento y un bloque de aprendizaje. Luego, haz clic en "Save Impulse" y continúa.

  • Paso 7. Ve a la página "Spectral features", y luego abajo haz clic en "Save parameters", lo que te llevará automáticamente a la sección "Generate feature". Los datos pueden verse así:

Aquí está la sección "Generate feature", que ayuda a traducir tus datos a las características necesarias en Machine Learning.

Haz clic en "Generate feature" y el resultado debería aparecer a la derecha:

  • Paso 8. Ve a la página "NN Classifier" para usar tus características en el entrenamiento del modelo de Machine Learning. Al final de la página, haz clic en "Start training".

La salida del entrenamiento aparece a la derecha de la página. Cuando veas la salida, significa que el modelo ha sido generado.

Como puedes ver aquí, la salida no es la esperada:

Es opcional volver a recolectar los datos, pero otro método que podemos usar aquí es el "EON Tuner".

Uso del EON Tuner para Optimizar el Modelo de ML

Ahora podemos usar el EON Tuner para optimizar nuestro modelo de Machine Learning embebido.

  • Paso 9. Selecciona "EON Tuner" a la derecha de la página y haz clic en "Start EON Tuner".

Hay muchos modelos generados, los primeros pueden no ser adecuados:

Pero espera unos segundos, los modelos se entrenan cada vez mejor y están listos para ser desplegados:

Haz clic en "Select" y el sitio te preguntará si deseas establecer este modelo como tu modelo principal, luego haz clic en "Yes":

Despliegue del Modelo de Machine Learning

Ahora puedes desplegar tu nuevo modelo de Machine Learning en tu Wio Terminal.

  • Paso 10. Selecciona y haz clic en la columna "Deployment" a la izquierda.

Luego elige "Arduino Library", y abajo selecciona "build" para crear la librería que necesitas en Arduino. Automáticamente se descargará un archivo zip que incluye la librería de terceros.

El nombre de la librería deseada está relacionado con el nombre del proyecto, lo que significa que el nombre que hayas puesto al proyecto en el Paso 2 aparecerá aquí. Esto te ayuda a encontrar el archivo correcto que necesitas.

  • Paso 10. Puedes descargar el código aquí y abrirlo con Arduino IDE. Cambia la librería de terceros por la tuya como se indicó arriba y luego ejecuta el código.

Finalmente, haz clic en "Serial Monitor" en Arduino IDE y pronuncia las palabras que configuraste en "Adquisición de Datos". El monitor te mostrará los resultados y "cuánta confianza tiene el Wio Terminal" sobre el resultado, es decir, la precisión.

Si te interesa ver qué diferencia hace el tuner, puedes saltarte el Paso 9 y luego seguir los mismos pasos para comprobarlo.

Loading Comments...