Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Demostraciones de aprendizaje automático de terminales (impulso de borde y armado NN)

8 GB de RAM Placa de desarrollo eMMC Raspberry Pi CM de 32 GB con pantalla táctil y muchas interfaces.

Historia

Los últimos artículos que publiqué fueron sobre TinyML con Wio Terminal, una placa de desarrollo basada en Cortex M4F con una pantalla LCD en una carcasa de plástico resistente. En Seeed Studio, la compañía hizo Wio Terminal decidió llevar esta idea un paso más allá y recientemente anunció reTerminal:una placa de desarrollo basada en el módulo de cómputo Raspberry Pi 4 con una pantalla LCD en una carcasa de plástico resistente.

Conseguí uno de los reTerminals y realicé un breve video de unboxing, que también incluía algunas demostraciones y una explicación de los posibles casos de uso del dispositivo. El artículo es un complemento del video, que amplía cómo configurar el entorno y ejecutar las demostraciones de aprendizaje automático.

Especificaciones

reTerminal funciona con un módulo de cómputo Raspberry Pi 4 (CM4) con CPU Cortex-A72 de cuatro núcleos a 1,5 GHz. La versión del módulo CM4 utilizada para el reTerminal tiene 4 Gb de RAM y 32 Gb de almacenamiento eMMC, lo que acorta los tiempos de arranque y brinda una experiencia de usuario general más fluida. En cuanto a los periféricos, hay una pantalla multitáctil capacitiva IPS de 5 pulgadas con una resolución de 1280 x 720, acelerómetro, módulo RTC, zumbador, 4 botones, 4 LED y un sensor de luz. Y para la conectividad, la nueva placa tiene Wi-Fi de banda dual de 2.4GHz / 5GHz y Bluetooth 5.0 BLE, además de un puerto Gigabit Ethernet en el lateral.

El reTerminal puede ser alimentado por la misma fuente de alimentación utilizada para Raspberry Pi 4, 5V2A, sin embargo, en la descripción oficial se recomienda una fuente de alimentación de 4A, especialmente cuando conecta más periféricos. Para las demostraciones, utilicé una fuente de alimentación de enchufe de pared 5V2A de una empresa desconocida común y corriente y no recibí ninguna advertencia de bajo voltaje. Dicho esto, en caso de duda, utilice 5V4A.

De forma predeterminada, los terminales se envían con el sistema operativo Raspbian de 32 bits preinstalado, con los controladores de dispositivos instalados. Sin embargo, dado que para las aplicaciones de aprendizaje automático, un sistema operativo de 64 bits puede dar un impulso significativo, Seeed Studio también proporcionará una versión de 64 bits de la imagen del sistema operativo Raspbian con controladores específicos de reTerminal preinstalados.

También se incluyen un teclado de pantalla integrado y una demostración sencilla de QT5. La pantalla táctil responde, pero dado que Raspbian OS no es un sistema operativo móvil y no está optimizado para pantallas táctiles, a veces puede ser un poco problemático presionar elementos de la interfaz de usuario más pequeños. Tener un lápiz ayuda mucho.

El teclado de la pantalla a bordo aparece cuando necesitas escribir el texto y luego desaparece. Puede modificar ese comportamiento en la configuración. Por lo tanto, es posible usar reTerminal como Raspberry Pi portátil, aunque para eso es posible que desee echar un vistazo a otro sistema operativo, por ejemplo Ubuntu touch, que funciona con Raspberry Pi 4, pero que actualmente se encuentra en etapa de desarrollo beta y es altamente experimental. El caso de uso principal de reTerminal es mostrar interfaces de usuario hechas con QT, LVGL o Flutter. Iniciemos una aplicación QT de muestra, que muestra las especificaciones y los parámetros del dispositivo, los datos de los sensores y el tablero de control de ejemplo para una fábrica imaginaria. Cuando los elementos de la interfaz son grandes, la pantalla táctil es mucho más agradable de usar.

Detección de objetos por impulso de borde

Vamos a hacer uso de la función más reciente de la plataforma de desarrollo Edge Impulse, la compatibilidad con la implementación de Linux. Podemos entrenar fácilmente un modelo de detección de objetos recolectando muestras con la cámara conectada al reTerminal, luego entrenar en la nube y descargar y ejecutar automáticamente el modelo entrenado con edge-impulse-linux-runner.

El procedimiento de instalación de la CLI de Edge Impulse se describe en la documentación. Todo se reduce a unos sencillos pasos:

 curl -sL https://deb.nodesource.com/setup_12.x | sudo bash - 
sudo apt install -y gcc g ++ make build-essential nodejs sox gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps
npm config set user root &&sudo npm install edge-impulse-linux -g --unsafe-perm

Después de Edge Impulse CLI está instalado, asegúrese de tener la cámara conectada. Usé una cámara web USB simple, si usa una cámara Raspberry Pi, recuerde habilitarla en raspi-config.

Antes de comenzar a recopilar los datos para la detección de objetos, asegúrese de que en Panel de control en "Información del proyecto> Método de etiquetado", se selecciona "Cuadros delimitadores (detección de objetos)".

Toma al menos 100 imágenes para cada clase que quieras reconocer. Actualmente puede cargar sus propias imágenes, presionando Mostrar opciones - Cargar datos en la pestaña Adquisición de datos. Pero aún no es posible cargar las anotaciones de los cuadros delimitadores, por lo que las imágenes que cargue deberán etiquetarse manualmente. Después de tener suficientes imágenes anotadas, vaya a Crear impulso, elija Imagen para el bloque de procesamiento y Detección de objetos (imágenes) para el bloque de aprendizaje.

La cantidad de imágenes que un usuario puede recopilar y anotar no es suficiente para entrenar una gran red desde cero, por eso ajustamos un modelo previamente entrenado para detectar nuevas clases de objetos. En la mayoría de los casos, puede dejar los valores predeterminados para el número de épocas, la tasa de aprendizaje y la confianza. Para la detección de objetos, se utiliza un código personalizado, por lo que no podemos modificarlo en modo Experto, como es posible con modelos más simples.

El entrenamiento se realiza en la CPU, por lo que lleva un poco de tiempo, dependiendo de la cantidad de imágenes en su conjunto de datos. Toma una taza de tu bebida favorita mientras lo haces.

Una de las mejores cosas de la compatibilidad con Linux recién agregada para Edge Impulse es edge-impulse-linux-runner. Cuando finaliza el entrenamiento del modelo y está satisfecho con la precisión en el conjunto de datos de validación (que se divide automáticamente de los datos de entrenamiento), puede probar el modelo en la clasificación en vivo y luego implementarlo en el dispositivo. En este caso, es tan simple como ejecutar

 edge-impulse-linux-runner 

en terminal. El modelo se descargará y preparará automáticamente, luego el resultado de la inferencia se mostrará en el navegador, aparecerá una línea en su terminal, similar a:

¿Quieres ver una transmisión de la cámara y la clasificación en vivo en tu navegador? Ir a http://192.168.1.19:4912

Haga clic en el enlace de su terminal para ver la vista en vivo de la cámara.

El modelo de columna vertebral utilizado para el aprendizaje por transferencia es MobileNetv2 SSD y es bastante grande, por lo que incluso con todas las optimizaciones obtenemos aproximadamente 2 FPS o ~ 400 ms. para un cuadro:la transmisión de video parece bastante receptiva, pero eso se debe a que la inferencia no se realiza en cada cuadro, puede ver claramente que si detecta un objeto y luego desaparece de la imagen, el cuadro delimitador permanece encendido durante algún tiempo . Dado que la compatibilidad con Linux es una característica muy nueva en Edge Impulse, estoy seguro de que recibirá muchas mejoras en el futuro cercano, lo que permitirá una inferencia y carga más rápidas de datos anotados por el usuario.

Inferencia acelerada de ARM NN

Si bien sabemos que Raspberry Pi 4 no es la mejor placa para la inferencia de aprendizaje automático, ya que no tiene ningún acelerador de hardware para eso, aún podemos lograr una velocidad de inferencia en tiempo real superior al

a) usando un modo más pequeño

b) asegurándonos de utilizar los 4 núcleos y las instrucciones de datos múltiples de instrucción única (SIMD), donde múltiples elementos de procesamiento en la tubería realizan operaciones en múltiples puntos de datos simultáneamente, disponible con la extensión de arquitectura de optimización Neon para procesadores Arm.

Fuente: Demostraciones de aprendizaje automático de terminal (Edge Impulse y Arm NN)


Proceso de manufactura

  1. La cadena de suministro y el aprendizaje automático
  2. ADLINK:solución de aprendizaje automático e inteligencia artificial de borde de acceso múltiple montada en poste
  3. Comunicación MQTT entre NodeMCU y Raspberry Pi 3 B +
  4. Sensor de temperatura Python y Raspberry Pi
  5. Sensor de temperatura y luz Raspberry Pi
  6. Control de actuador y sensor Raspberry Pi
  7. Impulsar la confiabilidad y mejorar los resultados de mantenimiento con el aprendizaje automático
  8. NXP duplica el aprendizaje automático en el borde
  9. ¿Deberían las adquisiciones temer o dar la bienvenida a la inteligencia artificial y la tecnología de aprendizaje automático?
  10. AWS fortalece sus ofertas de inteligencia artificial y aprendizaje automático
  11. Cómo la IA y el aprendizaje automático impactan en el mecanizado CNC