13.6. Edge Impulse¶
Edge Impulse es una plataforma integral para crear modelos de aprendizaje automático que se ejecutan en microcontroladores: recopila y etiqueta datos, diseña y entrena un modelo en el navegador, y consíguelo optimizado para caber en un dispositivo medido en kilobytes. Se implementa directamente en OpenMV: con unos pocos clics un modelo entrenado se convierte en archivos listos para ejecutarse en la cámara. La propia documentación de Edge Impulse profundiza en cada paso.
13.6.1. Introducir los datos¶
Un modelo rinde mejor con el tipo de imágenes con las que se entrenó, así que captura el conjunto de datos con la cámara que lo va a ejecutar. El editor de conjuntos de datos del IDE está hecho exactamente para esto: crea carpetas de clases, captura imágenes etiquetadas desde el búfer de fotogramas (frame buffer) en vivo y luego sube el conjunto de datos directamente a un proyecto de Edge Impulse desde el submenú Export (inicia sesión primero en tu cuenta allí). A partir de ahí trabajas en Edge Impulse Studio.
Ver también
La propia guía de configuración de la OpenMV Cam de Edge Impulse para instalar las herramientas y conectar la cámara.
13.6.2. Entrenamiento¶
El entrenamiento sucede por completo en el navegador: diseña un impulse (los bloques de entrada, procesamiento y aprendizaje), entrénalo y comprueba la precisión con los datos de prueba reservados.
Dos tipos de modelo se adaptan a la cámara. Un clasificador de imágenes genera una lista de puntuaciones por clase, que lees directamente de la salida del modelo, sin necesidad de posprocesador. FOMO, un detector de objetos rápido diseñado para microcontroladores, necesita un paso de decodificación, y la cámara incluye un posprocesador para él (ml.postprocessing.edgeimpulse), de modo que esos modelos también se ejecutan sin código adicional.
13.6.3. Implementar en la cámara¶
Cuando termine el entrenamiento, abre la página Deployment del proyecto, elige el destino OpenMV Library y haz clic en Build. La descarga es un zip que contiene el modelo entrenado (trained.tflite), sus etiquetas (labels.txt) y un script de ejemplo. El modelo está cuantizado en enteros. Edge Impulse cubre esto y la alternativa de firmware personalizado en su guía para ejecutar en OpenMV.
Añade el archivo .tflite a la cámara con el editor de ROMFS del IDE, que lo convierte para la NPU de la placa cuando dispone de una, y cárgalo en un script con ml.Model. Los modelos también se ejecutan desde la unidad flash de la cámara: copia los archivos y apunta ml.Model a la ruta, pero ROMFS es el mejor hogar: los modelos allí se ejecutan directamente desde la memoria flash sin una copia en RAM.
Ver también
El capítulo de aprendizaje automático para ejecutar modelos con el módulo ml: la carga, la canalización de inferencia y la decodificación de la salida.