¿Cuáles son los principales marcos de aprendizaje automático para microcontroladores?

El aprendizaje automático (ML) es cada vez más importante para los microcontroladores porque permite la toma de decisiones inteligentes y autónomas en sistemas integrados. Las numerosas aplicaciones del Internet de las cosas (IoT), a menudo denominadas “dispositivos inteligentes”, sólo se vuelven inteligentes gracias al aprendizaje automático.

Los microcontroladores se utilizan comúnmente en dispositivos informáticos de alta gama donde los datos se procesan localmente en lugar de enviarse a un servidor centralizado. El aprendizaje automático en microcontroladores permite el procesamiento de datos en tiempo real en la fuente, lo que reduce la latencia y los requisitos de ancho de banda.

Antes de la aparición de marcos concretos de aprendizaje automático en el espacio de los microcontroladores, los modelos de aprendizaje automático se utilizaban en máquinas pequeñas, optimizando manualmente algoritmos y modelos para las limitaciones específicas de los dispositivos de microcontroladores. Desde entonces, el ML se ha vuelto mucho más personalizado, especialmente para los microcontroladores. La personalización se basa en modelos de aprendizaje de ML específicos para aplicaciones de nicho específicas en el espacio integrado.

TensorFlow Lite fue el primer y más importante marco para usar ML en microcontroladores. TensorFlow se lanzó en 2015 y poco después le siguió TensorFlow Lite. Está dirigido específicamente a dispositivos móviles e integrados.

“TensorFlow Lite para microcontroladores” está diseñado para ejecutar modelos de aprendizaje automático en microcontroladores y otros dispositivos con solo kilobytes de memoria. Proporcionó herramientas y modelos previamente entrenados que podían implementarse fácilmente. Esto ha abierto la puerta a una gama más amplia de desarrolladores y aplicaciones en Tiny Machine Learning (TinyML, la práctica de implementar modelos de ML en dispositivos integrados o con recursos extremadamente limitados).

Hoy en día, muchos otros marcos permiten la implementación de modelos de aprendizaje automático en microcontroladores. Para un ingeniero integrado, es esencial estar familiarizado con al menos uno de estos marcos, ya que el aprendizaje automático es el futuro de los dispositivos integrados. Después de los servidores web y las nubes, la mayoría de las demás aplicaciones de inteligencia artificial (IA) surgirán de dispositivos integrados. Es probable que la IA también experimente un cambio de la computación en la nube a la computación en el borde.

En este artículo, analizaremos diferentes marcos que se pueden utilizar para implementar modelos de ML en microcontroladores.

¿Por qué utilizar ML en microcontroladores?
El aprendizaje automático es importante para los dispositivos integrados, especialmente el IoT. La electrónica cotidiana puede volverse "más inteligente" integrando directamente modelos ML en microcontroladores. Esto significa que no requieren conexión a un procesador externo o servicio en la nube para funciones como reconocimiento de voz, detección de gestos, mantenimiento predictivo y otras.

La ejecución de modelos ML directamente en microcontroladores permite el procesamiento en tiempo real con una latencia mínima. Esto es esencial para aplicaciones que incluyen sistemas críticos para la seguridad y dispositivos interactivos para el usuario que requieren reacciones rápidas.

Debido a que los microcontroladores están diseñados para ser altamente eficientes energéticamente, lo cual es vital para los dispositivos que funcionan con baterías, la ejecución de modelos de aprendizaje automático en estos dispositivos puede generar ahorros de energía significativos en comparación con el envío de datos hacia y desde un servidor en la nube para su procesamiento.

El aprendizaje automático en microcontroladores también resuelve dos desafíos importantes en el camino de los dispositivos inteligentes: la seguridad y la privacidad:

  • Reducir la dependencia del dispositivo de un servidor o servicio en la nube
  • Eliminar la necesidad de transmitir datos a través de Internet aumenta la seguridad y la privacidad.

Dado que los datos se procesan localmente en un dispositivo seguro, hay menos posibilidades de que se produzca una violación de datos. El procesamiento de datos local elimina aún más la necesidad de conectividad constante y el ancho de banda que la acompaña. Esto es especialmente útil en lugares donde el acceso a Internet es irregular o inexistente.

Integrar el aprendizaje automático en microcontroladores es más rentable que configurar una infraestructura basada en la nube para el procesamiento de datos. Esto también abre posibilidades para nuevas aplicaciones e innovaciones, especialmente en áreas donde la implementación tradicional de ML no es viable debido a limitaciones de tamaño, potencia o conectividad.

Los principales marcos de ML
TensorFlow Lite para microcontroladores ya no es el único marco para implementar aprendizaje automático en microcontroladores. Hay varios, ya que TinyML es uno de los campos que cambia más rápidamente. Algunos de los más importantes se mencionan a continuación.

1. TensorFlow Lite para microcontroladores
2. Impulso de ventaja
3. MicroML
4. Cubo.AI
5. TinyMLPerf
6. PequeñoNN

TensorFlow Lite para microcontroladores es el marco más antiguo para implementar modelos de aprendizaje automático en microcontroladores, que se pueden encontrar en todo, desde dispositivos portátiles hasta dispositivos IoT. Es una extensión de TensorFlow Lite, la solución liviana de Google para dispositivos móviles e integrados. Su tiempo de ejecución puede ser de sólo 16 KB para algunos modelos de microcontroladores, lo que lo hace ideal para dispositivos que funcionan con baterías o que recolectan energía.

TensorFlow Lite puede ejecutarse en microcontroladores básicos sin la necesidad de un sistema operativo completo, lo que proporciona un conjunto de modelos previamente entrenados y optimizados para el rendimiento en dispositivos con recursos limitados. Admite múltiples arquitecturas de microcontroladores y se integra fácilmente en configuraciones de hardware existentes.

Sin embargo, implementar ML en dispositivos tan restringidos presenta desafíos. Los principales problemas son las limitaciones de memoria, las limitaciones de energía y la necesidad de optimización del modelo. TensorFlow Lite aborda esto mediante la cuantificación del modelo (reduciendo la precisión de los números en el modelo), la poda (eliminando partes del modelo que son menos críticas) y el uso eficiente de aceleradores de hardware cuando estén disponibles. Algunos casos de uso notables incluyen dispositivos portátiles, dispositivos domésticos inteligentes, mantenimiento predictivo en IIoT, monitoreo de cultivos y monitoreo de salud en tiempo real.

Edge Boost es una plataforma todo en uno que permite a los desarrolladores recopilar datos, entrenar un modelo en la nube y luego implementarlo en un microcontrolador. Ha integrado TensorFlow Lite para microcontroladores y ofrece una interfaz fácil de usar, lo que lo hace adecuado para quienes son nuevos en el campo. Está diseñado para ML perimetral y proporciona herramientas y capacidades para recopilar, procesar y analizar datos del mundo real y luego desarrollar, entrenar e implementar modelos de ML directamente en dispositivos perimetrales. Estos dispositivos van desde pequeños microcontroladores con sensores hasta computadoras de placa única más potentes.

Esta plataforma permite a los desarrolladores recopilar datos de múltiples fuentes, incluidos sensores y conjuntos de datos existentes. Luego, pueden diseñar, entrenar y validar fácilmente modelos de aprendizaje automático con estos datos a través de un panel. La plataforma también presenta técnicas de optimización automática para garantizar que los modelos sean livianos pero efectivos para la implementación en el borde. Una vez que se entrena un modelo, los desarrolladores pueden implementarlo en un dispositivo de borde de destino desde la plataforma.

Edge Impulse admite una lista extensa de hardware y arquitecturas. Los desarrolladores pueden probar sus modelos en tiempo real y monitorear su rendimiento después de la implementación, lo que permite una mejora y optimización continuas. Pronto se esperan algoritmos de IA más sofisticados, un soporte de hardware más amplio y una integración más profunda con los servicios en la nube para soluciones de nube híbrida de vanguardia.

MicroML es un marco liviano de aprendizaje automático que se ejecuta directamente en microcontroladores sin sistema operativo. Permite el procesamiento en el dispositivo, lo cual es fundamental para aplicaciones que requieren toma de decisiones en tiempo real, como vehículos autónomos o dispositivos médicos.

MicroML está a la vanguardia de un cambio de paradigma informático, lo que permite que ML funcione incluso en entornos restringidos. Al implementar directamente la toma de decisiones inteligente en microcontroladores, MicroML está impulsando nuevos nichos de aprendizaje automático. Con los avances en las técnicas de compresión de modelos y el desarrollo de microcontroladores más potentes, el alcance y la eficacia de las aplicaciones MicroML no harán más que aumentar. Además, a medida que IoT siga creciendo, también lo hará la demanda de soluciones informáticas de vanguardia inteligentes como MicroML. Aunque se trata de una solución de nicho en comparación con otras, es adecuada para una variedad de aplicaciones.

Cubo.AI , desarrollado por STMicroelectronics, es parte de la plataforma de software STM32Cube, un conjunto completo de software para microcontroladores y microprocesadores STM32. Permite a los desarrolladores convertir redes neuronales previamente entrenadas en código C optimizado para microcontroladores STM32.

Cube.AI toma modelos de redes neuronales, generalmente desarrollados y entrenados con potentes recursos informáticos, y los convierte a un formato optimizado para microcontroladores STM32. Admite modelos entrenados en marcos de aprendizaje automático populares como TensorFlow y Keras, lo que brinda flexibilidad a los desarrolladores. La herramienta optimiza los modelos para que se ejecuten con los recursos limitados de los microcontroladores (memoria y potencia de procesamiento) sin comprometer el rendimiento. Cube.AI podría admitir más tipos de redes neuronales y mejores algoritmos de optimización y ofrecerá una compatibilidad más amplia con los marcos de aprendizaje automático emergentes en el futuro.

TinyNN es un marco de red neuronal pequeño y eficiente para microcontroladores diseñado para ser liviano y fácilmente portátil. TinyNN está diseñado para ser minimalista y requiere una memoria y potencia de procesamiento mínimas, lo que lo hace ideal para microcontroladores de bajo costo y bajo consumo. Se centra en modelos de redes neuronales simplificados que son lo suficientemente potentes para una variedad de tareas, pero lo suficientemente simples como para ejecutarse en microcontroladores. Enfatiza la eficiencia en el uso de la memoria y los requisitos computacionales, lo cual es crucial para aplicaciones que funcionan con baterías o sensibles a la energía.

Se espera que las capacidades de TinyNN aumenten a medida que los avances en el diseño de redes neuronales, los métodos de compresión de modelos y la computación energéticamente eficiente abran nuevas aplicaciones para los microcontroladores.

TinyMLPerf no es un marco, sino una importante herramienta de evaluación comparativa. Es parte de la suite MLPerf para evaluar soluciones TinyML, medir y comparar el rendimiento de modelos ML en sistemas de microcontroladores. Esto es crucial para determinar qué marcos o herramientas utilizar.

Mientras que MLPerf se centra en una amplia gama de plataformas y aplicaciones de aprendizaje automático, TinyMLPerf se dirige específicamente a microcontroladores de bajo consumo y con recursos limitados que se utilizan habitualmente en IoT y sistemas integrados. Ofrece un conjunto de pruebas estandarizadas, lo que facilita la comparación de diferentes soluciones de ML en términos de eficiencia, velocidad y tamaño. Estos puntos de referencia se pueden ejecutar en hardware real, lo que refleja el rendimiento del mundo real.

Los puntos de referencia suelen funcionar ejecutando una serie de tareas de aprendizaje automático predefinidas y midiendo parámetros importantes como el tiempo de ejecución, el consumo de energía y el tamaño del modelo. Los resultados muestran cómo se desempeña una configuración determinada bajo cargas de trabajo típicas de TinyML.

TinyMLPerf cubre tareas relevantes para TinyML, como reconocimiento de imágenes, procesamiento de audio y análisis de datos de sensores. Permite a los desarrolladores e investigadores comparar objetivamente el rendimiento de diferentes modelos de ML y plataformas de hardware en un contexto de TinyML. También ayuda a identificar las fortalezas y debilidades de diferentes enfoques, guiando futuras mejoras.

Conclusión
TensorFlow Lite para microcontroladores fue el primer marco para implementar el aprendizaje automático en microcontroladores. Con los cambios en el panorama de la IA, han surgido otros marcos notables. Por ejemplo, Edge Impulse es una plataforma todo en uno donde los desarrolladores pueden integrar soluciones TensorFlow Lite ML con varias plataformas de hardware y evaluar su rendimiento en tiempo real.

Además, MicroML ha surgido como una solución para implementar modelos de ML directamente en microcontroladores. Cube.AI está optimizando muchos modelos de ML en Tensor y Keras para microcontroladores. Además, TinyNN ha introducido redes neuronales en plataformas de microcontroladores. Y TinyMLPerf evalúa el rendimiento en el mundo real de modelos y herramientas de aprendizaje automático en varios sistemas de microcontroladores.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.