Skip to main content

Aprendizaje Profundo en Plataformas Embebidas

Becks Simpson para Mouser Electronics

A medida que la visión de máquina continúa avanzando, impulsada por métodos de aprendizaje profundo (DL), emerge un mundo de posibilidades en los dominios de la automatización y la detección de defectos. El potencial transformador proviene de la integración del DL en sistemas embebidos, especialmente en escenarios relacionados con robótica, vehículos autónomos y procesos industriales. Desde actividades autónomas como timbres inteligentes hasta tareas complejas como la detección de defectos utilizando drones, la incorporación de métodos de visión de máquina más sofisticados mejora la inteligencia de estos dispositivos más allá de lo que era posible antes. Sin embargo, esta fusión viene con su propio conjunto de desafíos, que abarcan la latencia, la eficiencia energética, la seguridad y la privacidad. Para sortear estos requisitos, se necesita una selección cuidadosa de algoritmos apropiados, adaptaciones para sistemas embebidos y estrategias de implementación que allanan el camino hacia un mundo más inteligente y receptivo.


El Uso del DL en la Visión de Máquina Embebida


A medida que la visión de máquina mejora y los métodos basados en el DL avanzan en los procesos de automatización y detección de defectos, muchas aplicaciones se benefician de la integración del DL. Los procesos de automatización industrial y doméstica (especialmente aquellos que incluyen brazos, vehículos u otros elementos robóticos) se benefician de la capacidad para visualizar, comprender y responder a sus entornos para completar una serie de acciones. Dado que los entornos en los que necesitan operar estos dispositivos inteligentes y sistemas embebidos son complejos y altamente variables, el uso del DL para la visión de máquina es cada vez más necesario. Esta inteligencia mejorada se puede utilizar para realizar actividades autónomas como entrega, mantenimiento de terrenos, timbres inteligentes y acceso a edificios, aspirado, fabricación y embalaje en almacenes. Un subconjunto de estas aplicaciones también implica monitoreo y detección de defectos. Aplicaciones como la detección de defectos en tuberías, líneas eléctricas, torres de telecomunicaciones y otros activos utilizando drones u otros vehículos autónomos pequeños también pueden mejorarse con la adición de visión de máquina basada en DL. Con suficientes datos, estos modelos son menos frágiles y funcionan de manera más robusta bajo diferentes condiciones que los modelos tradicionales de visión de máquina

Sin embargo, introducir el DL en los procesos de visión de máquina es costoso y tiene varias consideraciones que impactan en los requisitos de cómputo y hardware para el éxito. Dado que estas aplicaciones necesitan detectar, clasificar y responder a defectos u otros objetos de interés dentro del proceso de automatización en tiempo real, el tiempo para enviar datos a través de una red para obtener resultados a menudo es limitado. Por lo tanto, el hardware elegido debe tener una baja latencia de inferencia de DL una vez que se implementa un modelo en el dispositivo. Además, según la aplicación, la eficiencia energética también puede ser una consideración, especialmente para vehículos autónomos como drones o vehículos autónomos que realizan inspecciones utilizando sus propias fuentes de energía. Cuanto más tiempo puedan funcionar sin necesidad de recarga, más eficientemente pueden realizar su tarea. Dado que los procesos de DL requieren funciones de cálculo de alta intensidad, es fundamental asegurar que funcionen de manera eficiente y que el hardware utilizado esté optimizado para un bajo consumo de energía.

Los sistemas embebidos, como el kit de evaluación NXP Semiconductors i.MX 8M Plus, están especialmente diseñados teniendo en cuenta este tipo de requisitos, incorporando potentes capacidades de aceleración de inteligencia artificial en el diseño sin comprometer la eficiencia energética. Otros requisitos importantes en estas aplicaciones son la seguridad y la privacidad. Por ejemplo, en aplicaciones de automatización del hogar o para la detección de defectos en activos, a menudo existe la necesidad de mantener los datos en el dispositivo (sin compartirlos en la nube) o de garantizar que los datos y las comunicaciones a través de redes estén completamente cifrados. Por último, en los casos en que se espera que estos algoritmos se ejecuten en tiempo real en un robot o vehículo autónomo, la integración sencilla de datos de sensores de visión de buena calidad, baja latencia y robustos también es vital, y la elección del hardware debe reflejar eso.


Elección de algoritmos para sistemas embebidos


La elección de algoritmos de DL para estas aplicaciones de visión de máquina está fuertemente influenciada por los requisitos mencionados. Los diseñadores necesitan prestar especial atención al tamaño del modelo en disco, la memoria y la latencia de inferencia. Para cualquier acción que implique la detección de objetos desde un flujo de imágenes de una cámara (por ejemplo, defectos, personas, autos, animales), es probable que exista un modelo preentrenado o "fundacional" con una comprensión amplia de la mayoría de la información visual. Estos son modelos de código abierto expuestos a una gran cantidad de datos y disponibles para la extensión a aplicaciones más matizadas. Sin embargo, cuando una tarea deseada difiere significativamente de aquellas utilizadas para entrenar el modelo, es importante probar el rendimiento. Por ejemplo, la tarea de identificar defectos en líneas eléctricas o dentro de tuberías implica objetos y datos diferentes a la tarea de identificar personas o autos.

Los diseñadores también deben asegurarse de que la arquitectura del modelo preentrenado esté optimizada para dispositivos integrados. Específicamente, se debe elegir una arquitectura de modelo lo suficientemente pequeña como para que pueda residir en el dispositivo, apuntando a un modelo que tenga un tamaño de megabytes (no gigabytes). Además, cargar y usar el modelo no debe ser prohibitivamente lento, lo que a menudo ocurre con modelos más grandes. Solían utilizarse técnicas específicas para optimizar estas arquitecturas y los pesos del modelo; por ejemplo, la poda de pesos o la cuantización ayudan a reducir el tamaño y la complejidad mientras se conserva el rendimiento.

Elegir un modelo de visión por aprendizaje profundo (DL) embebido también requiere asegurarse de que el formato sea relativamente estándar (como TensorFlow Lite), para que la conversión a las necesidades del dispositivo sea posible y sencilla. Afortunadamente, la amplitud de los modelos de visión de código abierto disponibles significa que tener que diseñar y entrenar un modelo de DL desde cero es, en gran medida, cosa del pasado.


Adaptación de los Modelos a Aplicaciones Determinadas


Al evaluar la idoneidad de un modelo integrado para su uso en visión de máquina, es posible que su rendimiento no sea ideal para la aplicación específica. Esto puede deberse a diferencias en la distribución de los datos de entrenamiento originales, como el dispositivo de adquisición y las condiciones, en comparación con los datos del mundo real esperados del caso de uso. Además, es posible que existan modelos base para la aplicación, pero los tipos de objetos que pueden detectar no coinciden completamente con lo necesario. Por ejemplo, los modelos estándar que realizan la detección de objetos pueden no tener clases específicas para defectos u objetos poco comunes de interés. En ambos casos, los diseñadores deben adaptar el modelo mediante el ajuste fino o el reentrenamiento para mejorar el rendimiento o adaptar las clases necesarias para la tarea deseada. Para ello, se requieren nuevos datos etiquetados según las necesidades del caso de uso para reconocimiento y clasificación. Estos datos se presentan en forma de conjuntos de datos de código abierto similares o alineados con los datos esperados del dominio o datos personalizados adquiridos de los activos reales y etiquetados según sea necesario. Encontrar una plataforma de etiquetado de datos adecuada, como Labelbox o Label Studio, facilita el proceso y mantendrá las anotaciones en un formato estándar para el DL. Una vez que el modelo actualizado cumpla con el nivel requerido, estará listo para implementarse.


Implementación del Modelo Embebido


Con la gran cantidad de formatos de modelos disponibles para sistemas embebidos, es importante elegir hardware con software integrado que facilite el proceso de portabilidad del modelo. El primer paso al portar un modelo es escribir cualquier código necesario para el preprocesamiento de datos o aprovechar un sistema embebido que ya incluya esto para aplicaciones de procesamiento de imágenes. Por ejemplo, el kit de evaluación NXP i.MX 8M Plus funciona con el software de aprendizaje automático NXP eIQ®, que incluye el canal de preprocesamiento de visión de máquina como parte del software de DL desplegado en la placa. Estos pasos de preprocesamiento a menudo incluyen la conversión del flujo de píxeles "en crudo" a RGB y el cambio de tamaño o recorte de fotogramas. Igualmente, después de la inferencia del modelo, puede ser necesario realizar algún posprocesamiento, como superponer el cuadro delimitador en una entrada de cámara para un dispositivo de visualización, como una pantalla LCD.

El siguiente paso es convertir el modelo al formato requerido para que pueda ejecutarse en el dispositivo integrado y proporcionar inferencia en tiempo real. Esto generalmente implica convertir el modelo a un formato estándar, como Open Neural Network Exchange (ONNX), lo que facilita el acceso a la optimización de hardware. A continuación, el modelo y el código adyacente se empaquetan en un código binario ejecutable para el dispositivo objetivo antes de generar un paquete. Existen varios compiladores de código abierto para esta tarea, como Glow de Facebook. El resultado de este paso se puede implementar en el sistema integrado utilizado para la aplicación dada. Debido a que el proceso de portar un modelo es complejo e implica muchos subpasos de las partes mencionadas, a menudo se recomienda elegir una plataforma integrada con software para hacer que el proceso de portabilidad sea más rápido y sencillo. Por ejemplo, el kit de evaluación NXP i.MX 8M Plus es programable utilizando el paquete de software eIQ, que maneja todos estos pasos en cuestión de clics. Una vez que el dispositivo tiene el motor de inferencia del modelo en funcionamiento, sus resultados se pueden utilizar en la aplicación deseada, como detección de defectos, automatización industrial u otras.


Conclusión


Integrar el aprendizaje profundo en la visión de máquina para sistemas embebidos abre un abanico de posibilidades más complejas e innovadoras que aquellas únicamente con métodos tradicionales. Los beneficios potenciales abarcan la automatización doméstica e industrial, así como la detección de defectos en diversos ámbitos. Sin embargo, desafíos como la latencia, la eficiencia energética, la seguridad y la privacidad requieren una consideración cuidadosa, especialmente al seleccionar hardware. La selección y adaptación de algoritmos también son pasos esenciales en el proceso para garantizar un rendimiento optimizado para la aplicación determinada. Incluso la implementación de modelos embebidos es un proceso meticuloso que requiere hardware y software adecuados para permitir una conversión simplificada. En última instancia, esta convergencia fomenta una nueva era de eficiencia e innovación para aplicaciones integradas que requieren visión de máquina.