LiteRT para microcontroladores se diseñó para ejecutar modelos de aprendizaje automático en microcontroladores y otros dispositivos con solo unos pocos kilobytes de memoria. El del entorno de ejecución principal cabe en 16 KB en un ARM Cortex M3 y puede ejecutar muchas e implementar modelos automáticamente. No requiere compatibilidad con el sistema operativo, tipos C o C++ estándar bibliotecas o asignación de memoria dinámica.
Por qué son importantes los microcontroladores
Por lo general, los microcontroladores son dispositivos de procesamiento pequeños y de baja potencia incorporadas en hardware que requieren procesamiento básico. Si llevamos el aprendizaje a microcontroladores muy pequeños, podemos potenciar la inteligencia de miles de millones de dispositivos que usamos en la vida, como los electrodomésticos y la Internet de Usa diferentes dispositivos sin depender de hardware costoso ni de una conexión a Internet confiable de red, que a menudo está sujeto a restricciones de ancho de banda y energía, y genera una latencia alta. Esto también puede ayudar a preservar la privacidad, ya que no hay datos sale del dispositivo. Imagina electrodomésticos inteligentes que puedan adaptarse a tu día a día con sensores industriales inteligentes y rutinarios que comprenden la diferencia problemas y el funcionamiento normal, y juguetes mágicos que pueden ayudar a los niños a aprender de manera divertida. de formas encantadoras.
Plataformas compatibles
LiteRT para microcontroladores está escrito en C++ 17 y requiere una arquitectura plataforma. Se probó ampliamente con muchos procesadores basados en Arm Cortex-M Series y se trasladó a otras arquitecturas, como ESP32 El está disponible como una biblioteca de Arduino. También puede generar proyectos para de desarrollo de software, como Mbed. Es de código abierto y se puede incluir en cualquier proyecto de C++ 17.
Se admiten las siguientes placas de desarrollo:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Kit STM32F746 Discovery
- EdgeBadge de Adafruit
- Kit de Adafruit LiteRT para microcontroladores
- Circuit Playground Bluefruit de Adafruit
- ESP32-DevKitC de Espressif
- ESP-EYE de Espressif
- Terminal Wio: ATSAMD51
- Placa de desarrollo Himax WE-I Plus EVB Endpoint AI
- Plataforma de desarrollo de software Synopsys DesignWare ARC EM
- Sony Spresense
Explora los ejemplos
Cada aplicación de ejemplo está en
GitHub
y tiene un archivo README.md
que explica cómo se puede implementar en sus
y plataformas de Google Cloud. Algunos ejemplos también tienen tutoriales de extremo a extremo con un
plataforma como se indica a continuación:
- Hello World: Demuestra los conceptos básicos del uso de LiteRT para Microcontroladores
- Micro-Speech: Captura audio con un micrófono para detectar la palabra "yes". y "no"
- Detección de personas: Capturar datos de la cámara con un sensor de imagen para detectar la presencia o ausencia de una persona
Flujo de trabajo
Los siguientes pasos son necesarios para implementar y ejecutar un modelo de TensorFlow en una microcontrolador:
- Entrena un modelo:
- Genera un pequeño modelo de TensorFlow que se adapte a tu dispositivo de destino y Contiene operaciones compatibles.
- Convierte a un modelo LiteRT con la Convertidor de LiteRT.
- Convierte a un array de bytes en C con herramientas estándar memoria de programa de solo lectura en el dispositivo.
- Ejecuta la inferencia en el dispositivo con el proceso y la biblioteca de C++. los resultados.
Limitaciones
LiteRT para microcontroladores se diseñó para cumplir con las restricciones específicas de y el desarrollo de microcontroladores. Si trabajas en dispositivos más potentes (por ejemplo, ejemplo, un dispositivo Linux incorporado como Raspberry Pi), el estándar Es posible que el framework LiteRT sea más fácil de integrar.
Debes tener en cuenta las siguientes limitaciones:
- Compatibilidad con un subconjunto limitado de Operaciones de TensorFlow
- Compatibilidad con un conjunto limitado de dispositivos
- API de C++ de bajo nivel que requiere la administración manual de la memoria
- No se admite el entrenamiento en el dispositivo
Próximos pasos
- Comienza a usar microcontroladores para probar de ejemplo y aprenderás a usar la API.
- Comprende la biblioteca de C++ para aprender a usarla en tu propio proyecto.
- Crea y convierte modelos para obtener más información sobre el entrenamiento y convertir modelos para su implementación en microcontroladores.