Skip to main content

Detección de Cascos de Seguridad Impulsada por Edge Impulse

Introducción

En entornos de trabajo como sitios industriales o de construcción, se requiere un casco de seguridad y es esencial para que las personas protejan sus cabezas de lesiones debido a objetos que caen, impacto con otros objetos, escombros, lluvia y descargas eléctricas. Mejora la seguridad pero a veces las personas subestiman su importancia tanto individual como industrialmente. Por lo tanto, un monitor basado en video para detectar cascos de seguridad puede ser una solución optimizada para este problema de seguridad.

Por ello, gracias a Louis Moreau y Mihajlo Raljic, proporcionamos este proyecto fundamental en el que vamos a entrenar un modelo de Aprendizaje Automático embebido para detectar cascos de seguridad y desplegarlo en el Jetson Nano. El Jetson NX y el Jetson AGX también son compatibles.

Comenzando

Edge Impulse permite a los desarrolladores crear la próxima generación de soluciones de dispositivos inteligentes con Aprendizaje Automático embebido. El Aprendizaje Automático en el borde permitirá el uso valioso del 99% de los datos de sensores que se descartan hoy debido a restricciones de costo, ancho de banda o energía. Aquí vamos a aplicar Edge Impulse para entrenar un modelo de Aprendizaje Automático embebido.

Hardware

Hardware Requerido

En este proyecto los dispositivos requeridos se muestran a continuación:

Configuración del Hardware

Tanto la PC como el NVIDIA Jetson Nano deben estar encendidos y conectados a internet. Se recomienda configurar el NVIDIA Jetson Nano como una PC.

Software

Aquí vamos a entrenar un modelo de Aprendizaje Automático embebido para detectar cascos de seguridad. Hay varias formas de contribuir a ello.

Preparación

Antes de comenzar nuestro proyecto, hay algunos trabajos de preparación que necesitamos hacer primero.

  • Paso 2. Hacer clic en "Create new project" y escribir el nombre del proyecto.

Aquí escribimos "Hard hat detection".

  • Paso 3. Vamos a entrenar un modelo ML embebido para detectar Cascos de Seguridad, por lo tanto aquí se debe seleccionar la opción "image".
  • Paso 4. Configurar la configuración como "Classify multiple objects (object detection)".

Ahora podemos comenzar con el proyecto.

Entrenamiento del Modelo ML de Detección de Cascos de Seguridad

Entrenamiento del Modelo ML basado en Conjuntos de Datos Públicos de Entrada

Edge Impulse ha proporcionado varias formas de recopilar datos. Primero vamos a subir los datos públicos al sitio web y tratar de desarrollar un Aprendizaje Automático embebido.

  • Paso 1. Seleccionar la página "Data acauistion" en la columna izquierda y recopilar datos.

Hacer clic en el botón "upload data" en la página "Data acquisition" y subir los conjuntos de datos descargados.

Es opcional subir datos existentes al proyecto en el Formato de Adquisición de Datos (CBOR, JSON, CSV), como archivos WAV, JPG o PNG.

  • Paso 3. Una vez subidos, los datos recopilados se llenan con imágenes etiquetadas. Continuar haciendo clic en "Impulse desigh" en la izquierda de la página.
  • Paso 4. Elegir el bloque de procesamiento de imagen adecuado y el bloque de aprendizaje de imagen y guardar el impulso.
  • Paso 5. Hacer clic en "image" en la izquierda de la página.

Configurar como "GRB" y hacer clic en "Save Parameters", la página se dirigirá al sitio "Generate features" automáticamente.

Entonces podemos generar las características.

  • Paso 6. Cuando aparezca "Job completed", hacer clic en "Object detection" en la izquierda de la página.

Hacer clic en "start training" y permitir que Edge Impulse entrene un modelo basado en las características generadas.

  • Paso 7. Una vez que aparezca "job done", hacer clic en "Model testing" para verificar cómo funciona el modelo.

Entrenamiento del Modelo ML basado en Conjuntos de Datos Personalizados de Cámara PC

Edge Impulse ha proporcionado varias formas de recopilar datos. Aquí vamos a personalizar nuestras propias imágenes y subirlas al sitio web capturando las imágenes a través de la cámara de la PC.

  • Paso 1. Permanecer en la página "Dashboard" y luego hacer clic en "LET'S COLLECT SOME DATA".

Hay múltiples opciones que podemos elegir para recopilar datos, aquí estamos usando nuestra computadora para proceder.

  • Paso 2. Después de un tiempo, la página mostrará que se ha conectado a la computadora. Hacer clic en "Collecting images?" y luego "Give access to the camera".
  • Paso 3. Hacer clic en "Capture" para tomar la foto de ti mismo o de otros. Los datos de imagen necesitan ser etiquetados como "Hard Hat" y "Head" en la sección. Para etiquetar rápidamente la imagen, se recomienda encarecidamente terminar la adquisición de datos de una categoría antes de pasar a la siguiente, es decir, se recomienda terminar de capturar las imágenes de "Hard Hat" y luego pasar a capturar las imágenes de "Head".

Las imágenes capturadas se almacenarán en "Data acquistion" automáticamente. Para un mejor rendimiento del modelo de entrenamiento, se recomienda encarecidamente recopilar tantas imágenes como sea posible y recopilar la misma cantidad de datos en diferentes categorías.

  • Paso 4. Hacer clic en "Labeling queue" para etiquetar los datos rodeando la cabeza con un cuadrado en la imagen.

Usar el mouse para arrastrar una caja alrededor de un objeto para agregar una etiqueta. Luego hacer clic en Save labels para avanzar al siguiente elemento.

Establecer las etiquetas como "Head" y "Hard Hat" y llenar el diálogo. Por favor asegúrate de que el cuadrado enmarque el área de la cabeza de las personas.

  • Paso 5. Cuando los datos hayan sido etiquetados, hacer clic en "Save labels" para pasar al "Impulse design"
  • Paso 6. Elegir el bloque de procesamiento de imagen adecuado y el bloque de aprendizaje de imagen y guardar el impulso.
  • Paso 7. Hacer clic en "image" en la izquierda de la página.

Configure como "GRB" y haga clic en "Save Parameters", la página se dirigirá automáticamente al sitio "Generate features".

Entonces podemos generar las características.

  • Paso 8. Cuando aparezca "Job completed", haga clic en "Object detection" en el lado izquierdo de la página.

Haga clic en "start training" y permita que Edge Impulse entrene un modelo basado en las características generadas.

  • Paso 9. Una vez que aparezca "job done", haga clic en "Model testing" para verificar cómo funciona el modelo.

Entrenamiento de Modelo ML basado en Conjuntos de Datos de Cámara NVIDIA Jetson Personalizados

Edge Impulse ha proporcionado varias formas de recopilar datos. Aquí vamos a personalizar nuestras propias imágenes y subirlas al sitio web capturando las imágenes a través de la cámara conectada con el Nvidia Jetson Nano.

  • Paso 2. Asegúrese de que su Jetson Nano esté conectado a internet y configure el dispositivo en Edge Impulse.

Puede verificar su red con los siguientes comandos:

ping -c 3 www.google.com

Si la red funciona correctamente, el resultado debería ser como:

3 packets transmitted, 3 received, 0% packet loss, time 2003ms

La configuración comienza a ejecutarse con el comando siguiente:

edge-impulse-linux

Luego el sitio web solicitará la cuenta de Edge Impulse.

El contenido mostrado como se ve a continuación significa que la conexión está completa. Todos los proyectos que guardamos en Edge Impulse son seleccionables.

Estamos capturando las fotos, así que aquí necesitamos seleccionar nuestra cámara USB para aplicar en el sitio web.

Nombra el dispositivo que queremos conectar al sitio web

Se ve claramente que el dispositivo Jetson Nano ahora está conectado al proyecto.

  • Paso 3. Regresa a la página de Edge Impulse y selecciona la columna "Devices". El Jetson Nano conectado se muestra como se ve a continuación:
  • Paso 4. Selecciona el dispositivo que conectamos a Edge Impulse y ve a la página "Data acquisition". Haz clic en "Capture" para tomar la foto de ti mismo o de otros. Los datos de imagen necesitan ser etiquetados como "Hard Hat" y "Head" en la sección. Para etiquetar rápidamente la imagen, se recomienda encarecidamente terminar la adquisición de datos de una categoría antes de pasar a la siguiente, es decir, se recomienda terminar de capturar las imágenes de "Hard Hat" y luego pasar a capturar las imágenes de "Head".

Las imágenes capturadas se almacenarán en "Data acquisition" automáticamente. Para un mejor rendimiento del modelo de entrenamiento, se recomienda encarecidamente recopilar tantas imágenes como sea posible y recopilar la misma cantidad de datos en diferentes categorías.

  • Paso 5. Cuando se haya terminado de recopilar los datos, ve a "Impulse design"

  • Paso 6. Elige el bloque de procesamiento de imagen adecuado y el bloque de aprendizaje de imagen y guarda el impulso.

  • Paso 7. Haz clic en "image" en el lado izquierdo de la página.

Configura como "GRB" y haz clic en "Save Parameters", la página cambiará al sitio "Generate features" automáticamente.

Entonces podemos generar las características.

  • Paso 8. Cuando aparezca "Job completed", haz clic en "Object detection" en el lado izquierdo de la página.

Haz clic en "start training" y deja que Edge Impulse entrene un modelo basado en las características generadas.

  • Paso 9. Una vez que aparezca "job done", haz clic en "Model testing" para verificar cómo funciona el modelo.

Se recomienda mezclar los métodos que proporcionamos arriba y verificar el rendimiento de cada modelo para ver cuál es mejor.

Desplegar el modelo ML en el Jetson Nano

Ahora vamos a desplegar el modelo ML entrenado en el Jetson Nano y aplicar los códigos para hacerlo ().

Desplegar el modelo ML a través del Edge Impulse Linux CLI

  • Paso 2. Asegúrate de que tu Jetson Nano esté conectado a internet y configura el dispositivo en Edge Impulse.

!!!Note Si ya conectaste Jetson Nano con Edge Impulse en la sección "Entrenamiento de modelo ML basado en conjuntos de datos de cámara NVIDIA Jetson personalizados". Este paso se puede omitir.

Puedes verificar tu red con los siguientes comandos:

ping -c 3 www.google.com

Si la red está funcionando correctamente, el resultado debería ser como:

3 packets transmitted, 3 received, 0% packet loss, time 2003ms

La configuración comienza a ejecutarse con el comando siguiente:

edge-impulse-linux

El sitio web solicitará la cuenta de Edge Impulse.

El contenido mostrado como se ve a continuación significa que la conexión está completa. Todos los proyectos que guardamos en Edge Impulse son seleccionables.

Estamos capturando las fotos, así que aquí necesitamos seleccionar nuestra cámara USB para aplicar en el sitio web.

Nombra el dispositivo que queremos conectar al sitio web

Se puede ver claramente que el dispositivo Jetson Nano ahora está conectado al proyecto.

  • Paso 3. Descarga el modelo ML al Jetson Nano siguiendo el código.
edge-impulse-linux-runner

La conexión exitosa se muestra a continuación y el modelo se activará automáticamente.

  • Paso 4. Copia la dirección que aparece y ábrela con un navegador.

La detección se mostrará en el navegador.

Y el resultado de los datos se mostrará como se indica a continuación:

Desplegar el modelo ML a través del SDK de Python para Linux

En este proyecto, vamos a aplicar el modelo para mostrar la detección de Casco de Seguridad en la pantalla mostrando "No entry" y "Welcome". Edge Impulse proporciona una biblioteca que hace posible la ejecución de modelos ML y la recolección de datos de sensores en máquinas Linux usando Python. El SDK es de código abierto y está alojado en GitHub. También puedes probar la imagen espejo que ya hemos configurado.

  • Paso 1. Instala una versión reciente de Python 3(>=3.7) para Linux.

  • Paso 2. Instala el SDK de Python para Linux con el siguiente comando:

sudo apt-get install libatlas-base-dev libportaudio2 libportaudiocpp0 portaudio19-dev
pip3 install edge_impulse_linux
sudo apt install python3.7-dev
wget -q -0 - https://cdn.edgeimpulse.com/firmware/linux/jetson.sh | bash
  • Paso 4. Descarga el modelo ML al Jetson Nano con el siguiente comando:
edge-impulse-linux-runner --download modelfile.eim

Si esta es la primera vez que se conecta entre Jetson Nano y Edge Impulse, el sitio web requerirá la información de su cuenta de Edge Impulse para iniciar sesión.

!!!Note Esto descarga el archivo en modelfile.eim, si desea cambiar de proyecto, se puede hacer agregando '--clean'.

  • Paso 5. Ejecute el hardhat_detectation.py para aplicar el modelo ML con el siguiente comando. Los códigos podrían requerir un archivo externo.
python3 hardhat_detectation.py /home/jetson-nano/modelfile.eim
  • Paso 6. El resultado debería verse familiar a estos:

¿O puede ser una imagen, desplegar tu aplicación ML para el pipeline de detección de EPP en 5 minutos? ¡Mantente atento con nosotros!

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.

Loading Comments...