Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Tecnología de Internet de las cosas

Cómo implementar AI of Things (AIoT) en MCU

En mi artículo anterior, destaqué la tendencia creciente que permite cada vez más inteligencia artificial (IA) en dispositivos de Internet de (IoT) para crear dispositivos inteligentes "AIoT", y las diversas aplicaciones se están beneficiando de estos dispositivos inteligentes. Estos aprenden de los datos y toman decisiones autónomas sin intervención humana, lo que lleva a que los productos tengan interacciones más lógicas y similares a las humanas con su entorno.

La combinación de AI e IoT ha abierto nuevos mercados para MCU (microcontroladores). Ha permitido un número creciente de nuevas aplicaciones y casos de uso que pueden usar MCU simples emparejados con aceleración de IA para facilitar el control inteligente. Estas MCU habilitadas para IA brindan una combinación única de capacidad DSP para computación y aprendizaje automático (ML) para inferencia y ahora se utilizan en aplicaciones tan diversas como detección de palabras clave, fusión de sensores, análisis de vibraciones y reconocimiento de voz. Las MCU de mayor rendimiento permiten aplicaciones más complejas en visión e imágenes, como reconocimiento facial, análisis de huellas dactilares y robots autónomos.

Tecnologías de IA

A continuación, se muestran algunas tecnologías que habilitan la inteligencia artificial en dispositivos de IoT:

Aprendizaje automático (ML) :Los algoritmos de aprendizaje automático crean modelos basados ​​en datos representativos, lo que permite que los dispositivos identifiquen patrones automáticamente sin intervención humana. Los proveedores de ML proporcionan algoritmos, API y herramientas necesarias para entrenar modelos que luego pueden integrarse en sistemas integrados. Estos sistemas integrados luego utilizan los modelos previamente entrenados para impulsar inferencias o predicciones basadas en nuevos datos de entrada. Ejemplos de aplicaciones son concentradores de sensores, detección de palabras clave, mantenimiento predictivo y clasificación.

Aprendizaje profundo :El aprendizaje profundo es una clase de aprendizaje automático que entrena un sistema mediante el uso de muchas capas de una red neuronal para extraer progresivamente características e información de alto nivel a partir de datos de entrada complejos. El aprendizaje profundo trabaja con datos de entrada muy grandes, diversos y complejos y permite que los sistemas aprendan de manera iterativa, mejorando el resultado con cada paso. Ejemplos de aplicaciones que utilizan el aprendizaje profundo son el procesamiento de imágenes, los chatbots para el servicio al cliente y el reconocimiento facial.

Procesamiento del lenguaje natural (PNL) :La PNL es una rama de la inteligencia artificial que se ocupa de la interacción entre sistemas y humanos mediante el lenguaje natural. La PNL ayuda a los sistemas a comprender e interpretar el lenguaje humano (texto o habla) y a tomar decisiones basadas en eso. Algunos ejemplos de aplicaciones son los sistemas de reconocimiento de voz, la traducción automática y la escritura predictiva.

Visión por computadora :La visión artificial / por computadora es un campo de la inteligencia artificial que entrena a las máquinas para recopilar, interpretar y comprender datos de imágenes y tomar medidas en función de esos datos. Las máquinas recopilan imágenes / videos digitales de las cámaras, utilizan modelos de aprendizaje profundo y herramientas de análisis de imágenes para identificar y clasificar objetos con precisión y tomar medidas en función de lo que "ven". Algunos ejemplos son la detección de fallas en la línea de ensamblaje de fabricación, los diagnósticos médicos, el reconocimiento facial en las tiendas minoristas y las pruebas de automóviles sin conductor.

AIoT en MCU

En el pasado, la inteligencia artificial era competencia de las MPU y las GPU con potentes núcleos de CPU, grandes recursos de memoria y conectividad en la nube para análisis. Sin embargo, en los últimos años, con una tendencia hacia una mayor inteligencia en el borde, estamos comenzando a ver que las MCU se utilizan en aplicaciones AIoT integradas. El movimiento hacia el borde está impulsado por consideraciones de latencia y costos e implica acercar la computación a los datos. La IA en dispositivos IoT basados ​​en MCU permite la toma de decisiones en tiempo real y una respuesta más rápida a los eventos, y tiene las ventajas de menores requisitos de ancho de banda, menor consumo de energía, menor latencia, menores costos y mayor seguridad. AIoT está habilitado por una mayor capacidad de cómputo de las MCU recientes, así como la disponibilidad de marcos de redes neuronales delgadas (NN) que son más adecuados para las MCU con recursos limitados que se utilizan en estos dispositivos finales.

Una red neuronal es una colección de nodos, dispuestos en capas que reciben entradas de una capa anterior y generan una salida que se calcula a partir de una suma ponderada y sesgada de las entradas. Esta salida se pasa a la siguiente capa a lo largo de todas sus conexiones salientes. Durante el entrenamiento, los datos de entrenamiento se introducen en la primera capa o en la capa de entrada de la red, y la salida de cada capa se pasa a la siguiente. La última capa o capa de salida produce las predicciones del modelo, que se comparan con los valores esperados conocidos para evaluar el error del modelo. El proceso de entrenamiento implica refinar o ajustar los pesos y sesgos de cada capa de la red en cada iteración mediante un proceso llamado retropropagación, hasta que la salida de la red se correlacione estrechamente con los valores esperados. En otras palabras, la red "aprende" iterativamente del conjunto de datos de entrada y mejora progresivamente la precisión de la predicción de salida.

El entrenamiento de la red neuronal requiere un rendimiento informático y una memoria muy altos y, por lo general, se lleva a cabo en la nube. Después del entrenamiento, este modelo NN previamente entrenado se integra en la MCU y se usa como motor de inferencia para nuevos datos entrantes basados ​​en su entrenamiento.

Esta generación de inferencia requiere un rendimiento informático mucho menor que el entrenamiento del modelo y, por lo tanto, es adecuada para una MCU. Los pesos de este modelo NN preentrenado son fijos y se pueden colocar en flash, lo que reduce la cantidad de SRAM requerida y lo hace adecuado para MCU con más recursos limitados.

Implementación en MCU

La implementación de AIoT en MCU implica algunos pasos. El enfoque más común es utilizar uno de los modelos de marco de red neuronal (NN) disponibles como Caffe o Tensorflow Lite, adecuado para soluciones de dispositivos finales basadas en MCU. El entrenamiento del modelo NN para el aprendizaje automático se realiza en la nube por especialistas en IA que utilizan herramientas proporcionadas por los proveedores de IA. La optimización del modelo NN y la integración en la MCU se lleva a cabo utilizando herramientas del proveedor de AI y del fabricante de MCU. La inferencia se realiza en la MCU utilizando el modelo NN previamente entrenado.

El primer paso del proceso se realiza completamente fuera de línea e implica la captura de una gran cantidad de datos del dispositivo final o la aplicación, que luego se utiliza para entrenar el modelo NN. El desarrollador de IA define la topología del modelo para hacer un mejor uso de los datos disponibles y proporcionar el resultado que se requiere para esa aplicación. El entrenamiento del modelo NN se realiza pasando los conjuntos de datos de forma iterativa a través del modelo con el objetivo de minimizar continuamente el error en la salida del modelo. Hay herramientas disponibles con el marco NN que pueden ayudar en este proceso.

En el segundo paso, estos modelos previamente entrenados, optimizados para ciertas funciones como detección de palabras clave o reconocimiento de voz, se convierten a un formato adecuado para MCU. El primer paso en este proceso es convertirlo en un archivo de búfer plano utilizando la herramienta de conversión AI. Esto se puede ejecutar opcionalmente a través del cuantificador, para reducir el tamaño y optimizarlo para la MCU. Este archivo de búfer plano se convierte luego a código C y se transfiere a la MCU de destino como un archivo ejecutable en tiempo de ejecución.

Esta MCU, equipada con el modelo de IA integrado previamente entrenado, ahora se puede implementar en el dispositivo final. Cuando ingresan nuevos datos, se ejecutan a través del modelo y se genera una inferencia basada en el entrenamiento. Cuando ingresan nuevas clases de datos, el modelo NN se puede enviar de vuelta a la nube para volver a entrenar y el nuevo modelo reentrenar se puede programar en la MCU, potencialmente a través de actualizaciones de firmware OTA (por aire).

Hay dos formas diferentes de diseñar una solución de IA basada en MCU. Para el propósito de esta discusión, asumimos el uso de núcleos Arm Cortex-M en las MCU objetivo.

En el primer método, el modelo NN convertido se ejecuta en el núcleo de la CPU Cortex-M y se acelera utilizando las bibliotecas CMSIS-NN. Esta es una configuración simple que se puede manejar sin ninguna aceleración de hardware adicional y es adecuada para las aplicaciones de inteligencia artificial más simples, como la detección de palabras clave, el análisis de vibraciones y los concentradores de sensores.

Una opción más sofisticada y de mayor rendimiento implica incluir un acelerador NN o hardware de unidad de procesamiento micro neural (u-NPU) en la MCU. Estas u-NPU aceleran el aprendizaje automático en dispositivos finales de IoT con recursos limitados y pueden admitir una compresión que puede reducir la potencia y el tamaño del modelo. Son compatibles con los operadores que pueden ejecutar completamente la mayoría de las redes NN comunes para el procesamiento de audio, el reconocimiento de voz, la clasificación de imágenes y la detección de objetos. Las redes que no son compatibles con u-NPU pueden recurrir al núcleo de la CPU principal y son aceleradas por las bibliotecas CMSIS-NN. En este método, el modelo NN se ejecuta en la uNPU.

Estos métodos muestran solo un par de formas de incorporar IA en dispositivos basados ​​en MCU. A medida que las MCU empujan los límites de rendimiento a niveles más altos, más cercanos a los esperados de las MPU, esperamos comenzar a ver capacidades de IA completas, incluidos algoritmos de aprendizaje e inferencia livianos, que se construyen directamente en las MCU.

La IA en el borde es el futuro

La implementación de IA en MCU con recursos limitados aumentará exponencialmente en el futuro y continuaremos viendo nuevas aplicaciones y casos de uso emergiendo a medida que las MCU superen los límites del rendimiento y difuminen la línea entre MCU y MPU, y cada vez más NN "delgadas" modelos, adecuados para dispositivos con recursos limitados, están disponibles.

En el futuro, con un aumento en el rendimiento de la MCU, es probable que veamos la implementación de algoritmos de aprendizaje ligeros además de la inferencia, que se ejecutan directamente en la MCU. Esto abrirá nuevos mercados y aplicaciones para los fabricantes de MCU y se convertirá en un área de inversión significativa para ellos.


Tecnología de Internet de las cosas

  1. ¿Cómo proteger la tecnología en la nube?
  2. La gestión de datos impulsa el aprendizaje automático y la inteligencia artificial en IIOT
  3. Cómo aprovechar al máximo sus datos
  4. Cómo AIoT permite soluciones de tráfico inteligentes
  5. Cómo Internet de las cosas está transformando la cadena de suministro:Parte 2, Soluciones futuras
  6. Cómo la tecnología móvil está eliminando las barreras para viajar
  7. Cómo la ciencia de datos y el aprendizaje automático pueden ayudar a impulsar el diseño de sitios web
  8. Internet de las cosas:gestión de la afluencia de datos
  9. Cómo utilizar el aprendizaje automático en el entorno empresarial actual
  10. ¿Cómo IoT potencia el sistema de seguimiento de vehículos?
  11. Cómo los OEM de dispositivos médicos pueden implementar modelos comerciales de la Industria 4.0