3 usos de tinyML en el borde

El aprendizaje automático (ML) se ha abierto camino en muchas áreas de la nube y hasta el borde en procesadores relativamente potentes que ejecutan Linux. El problema con el ML tradicional que se ejecuta en estos sistemas es que sus perfiles de energía son demasiado grandes para que se “desconecten” y funcionen como dispositivos periféricos que funcionan con baterías. La tendencia y el futuro del ML en el borde es usar tinyML. TinyML tiene como objetivo llevar algoritmos de ML a dispositivos con recursos limitados, como microcontroladores basados en procesadores Arm Cortex-M.

En este blog, exploraremos los casos de uso más populares a fin de aprovechar tinyML en dispositivos basados en microcontroladores para su uso en el borde.

Caso de uso n.° 1: Detección de palabras clave

El primer caso de uso por el que tinyML se está volviendo popular es la detección de palabras clave. La detección de palabras clave es la capacidad de un dispositivo de reconocer una palabra clave como “oye, Siri”, “Alexa”, “hola”, etc. La detección de palabras clave tiene muchos usos para los dispositivos periféricos. Por ejemplo, es posible que desee utilizar un procesador de bajo consumo para buscar una palabra clave que despierte una más potente. Otro caso de uso podría ser controlar un sistema integrado o un robot. He visto ejemplos en los que se usó un microcontrolador para decodificar palabras clave como “adelante”, “atrás”, “detener”, “derecha” e “izquierda” a fin de controlar el movimiento de un robot.

La detección de palabras clave con tinyML generalmente se realiza mediante el uso de un micrófono para capturar una señal de voz de entrada. La señal de voz se registra como un voltaje a lo largo del tiempo y, luego, se convierte en un espectrógrafo mediante el procesamiento de señales digitales. El espectrógrafo es una serie de tiempo que se traza frente a la frecuencia de la señal de entrada. El espectrógrafo se puede alimentar a una red neuronal (NN) para entrenar el algoritmo tinyML a fin de reconocer palabras específicas. El proceso se muestra en la Figura 1.

Figura 1: Una señal de voz de entrada se procesa digitalmente a fin de crear un espectrógrafo que se usa con el objetivo de entrenar una NN para detectar palabras clave. (Fuente de la imagen: Arm)

Una implementación típica alimentaría ventanas de voz fijas en la NN. Luego, la red evaluaría la probabilidad de que se haya dicho una de las palabras clave deseadas. Por ejemplo, si alguien dijo “sí”, el NN puede informar que estaba 91 % seguro de que era “sí”, con un 2 % de probabilidad de que fuera “no” y un 1 % de que fuera “encender”.

La capacidad de usar el habla para controlar máquinas es un caso de uso que muchos fabricantes de dispositivos están revisando cuidadosamente y esperan mejorar sus dispositivos en los próximos años.

Caso de uso n.° 2: Reconocimiento de imagen

El segundo caso de uso en el que se está abriendo camino tinyML es el reconocimiento de imágenes. Hay bastantes casos de uso para dispositivos periféricos que pueden realizar el reconocimiento de imágenes. Un caso de uso con el que quizás ya esté familiarizado es la capacidad de detectar si hay una persona, un paquete o nada en su puerta. Sin duda, hay muchas otras aplicaciones que van desde el monitoreo de medidores analógicos antiguos, la detección de salud del césped o incluso el conteo de aves.

El reconocimiento de imágenes puede parecer un campo complejo para involucrarse. Sin embargo, hay varias plataformas de bajo costo disponibles que pueden ayudar a los desarrolladores a ponerse en marcha. Uno de mis favoritos, y que uso para hacer las cosas rápidamente, es OpenMV.

OpenMV es una plataforma abierta de visión artificial que incluye un entorno completo de desarrollo integrado (IDE), un marco de biblioteca escrito en Python y un módulo de cámara de Seeed Technology que ayuda a los desarrolladores a crear sus aplicaciones de visión artificial (Figura 2).

Figura 2: El módulo de cámara OpenMV se puede usar para el reconocimiento de imágenes y el desarrollo se puede hacer con un IDE simple usando Python. (Fuente de imagen: Beningo Embedded Group)

El módulo de la cámara se basa en un procesador STM32H7 Cortex-M7 de STMicroelectronics. El hardware se puede expandir a través de sus cabeceras de expansión integrados. Puede funcionar con una batería e incluso se puede cambiar el módulo de la cámara. Un buen ejemplo de inicio que puede resultarle interesante es cómo utilizar el conjunto de datos CIFAR-10 con la biblioteca Arm CMSIS-NN para el reconocimiento de imágenes. El ejemplo se puede encontrar en YouTube en https://www.youtube.com/watch?v=PdWi_fvY9Og.

Caso de uso n.° 3: Mantenimiento predictivo

El último caso de uso de tinyML que discutiremos es el mantenimiento predictivo. El mantenimiento predictivo utiliza herramientas como el análisis estadístico y ML para predecir el estado del equipo en función de lo siguiente:

  • detección de anomalías;
  • algoritmos de clasificación;
  • modelos predictivos.

Por ejemplo, una fábrica puede tener una serie de motores, ventiladores y equipos robóticos que se utilizan para generar un producto. Una empresa deseará minimizar el tiempo de inactividad para maximizar la cantidad de productos que puede generar. Si el equipo tiene sensores que se pueden interpretar mediante ML y las otras técnicas mencionadas anteriormente, se puede detectar el momento en el que el equipo está cerca de fallar. Esa configuración podría parecerse a la que se muestra en la Figura 3.

Figura 3: El tercer caso de uso popular de tinyML son los sensores inteligentes que se utilizan para el mantenimiento predictivo. (Fuente de la imagen: STMicroelectronics).

Conectar un sensor inteligente a un microcontrolador de baja potencia que aprovecha tinyML puede generar una amplia variedad de aplicaciones útiles. Por ejemplo, se pueden monitorear las unidades de sistemas de calefacción, ventilación y aire acondicionado (HVAC), revisar los filtros de aire y detectar vibraciones irregulares del motor, entre muchas otras. El mantenimiento preventivo puede volverse más organizado, con la esperanza de salvar a una empresa de costosas medidas reactivas y asegurar un programa de mantenimiento más optimizado.

Conclusión

TinyML tiene tantas aplicaciones potenciales y casos de uso en el borde. Hemos explorado lo que es popular ahora, pero los casos de uso son casi ilimitados. TinyML se puede usar para detección de gestos, guía y control, y mucho más. A medida que los dispositivos periféricos comienzan a aprovechar las capacidades de tinyML, la pregunta realmente es, ¿para qué usa usted tinyML en el borde?

Información sobre el autor

Image of Jacob Beningo

Jacob Beningo es un consultor de software integrado que actualmente trabaja con clientes en más de una docena de países para transformar drásticamente sus negocios mejorando la calidad del producto, el costo y el tiempo de comercialización. Ha publicado más de 200 artículos sobre técnicas de desarrollo de software embebido, es un conferenciante y entrenador técnico muy solicitado y tiene tres títulos que incluyen una Maestría en Ingeniería de la Universidad de Michigan. No dude en ponerse en contacto con él en jacob@beningo.com, en su sitio web www.beningo.com, y suscríbase a su boletín mensual Embedded Bytes Newsletter.

More posts by Jacob Beningo
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum