OpenMV
Escudos
Lente
Robótica
Libro
Video
Descargar
Documentos
Foro
OpenMV.io
GitHubExisten dos tareas muy comunes de inteligencia artificial en el ámbito visual: la clasificación y la detección de objetos.
Categoría:Determinar a qué categoría pertenece la imagen, por ejemplo, si es un gato o un perro.
Detección de objetos:Utilizado para determinar la ubicación, la cantidad y las dimensiones de múltiples objetos distintos en una imagen.
En los tutoriales en video anteriores, explicamos cómo utilizar la OpenMV4 Plus para entrenar en línea redes neuronales destinadas a la clasificación de distintos objetos; esta puede determinar en tiempo real si una imagen dentro del campo de visión de la OpenMV corresponde a un objeto específico, por ejemplo, si una persona lleva o no mascarilla. Sin embargo, no es capaz de proporcionar las coordenadas de posición de la cara o de la mascarilla, ni tampoco el número total de caras detectadas.
Dado que la detección de objetos es mucho más compleja y requiere una carga computacional significativamente mayor que la clasificación, es muy poco común en el ámbito de los microcontroladores. La unidad de control principal de OpenMV es el MCU STM32H7; actualmente, hemos incorporado una nueva funcionalidad en OpenMV que permite ejecutar tareas similares a la detección de objetos directamente en microcontroladores, con un rendimiento excepcional.

Hoy les explicaremosEntrenamiento que demuestra la detección de señales de tránsito en entornos viales reales, detectando las señales de tránsito presentes en nuestras vías realespor ejemplo, prohibición de bocinas, prohibición de estacionamiento y límite de velocidad de 80 km/h, en lugar de un entorno de laboratorio sin interferencias.
Puede ver todo el contenido del proyecto, incluyendo todo el código y los modelos, en la siguiente dirección: https://book.openmv.cc/project/traffic-sign.html
Es bien sabido que el entorno real es muy complejo, especialmente el entorno vial, donde existen numerosas interferencias. Capturamos imágenes de señales de tránsito en entornos reales mediante dispositivos como teléfonos móviles y entrenamos el modelo utilizando el sitio web en línea EdgeImpulse de nuestros socios OpenMV; etiquetamos aproximadamente 270 imágenes y el tiempo de entrenamiento fue únicamente de 10 minutos. La precisión del modelo obtenido, medida mediante la puntuación F1, alcanza el 92 %, mientras que la tasa de fotogramas de ejecución en OpenMV es de 10 fotogramas por segundo, lo que garantiza un funcionamiento muy fluido y una alta precisión.
Los usuarios pueden entrenar cualquier objetivo que deseen detectar siguiendo nuestros tutoriales en video, por ejemplo distintos dígitos, diversas frutas, diferentes señales, piezas variadas o incluso cualquier objetivo irregular específico, entre otros; así se logrará identificar la cantidad, las coordenadas y el nombre de la categoría del objetivo específico.
Nota:Este tutorial en video explica la función de detección de puntos objetivo mediante redes neuronales, la cual no solo es compatible con la OpenMV4 H7 Plus, sino también con la OpenMV4 H7, ya que los modelos entrenados de detección de puntos objetivo FOMO son de tamaño reducido, ofrecen un excelente rendimiento y ocupan tan solo decenas de kilobytes; por lo tanto, incluso si la memoria de ejecución de la OpenMV4 H7 es menor que la de la versión Plus, aún podemos entrenar un modelo ligeramente más pequeño para ejecutarlo en la OpenMV4.
A continuación, se presenta una breve explicación del principio:
Las principales decisiones de diseño de la detección de puntos objetivo FOMO en OpenMV se basan en la idea de que muchos problemas de detección de objetos no requieren realmente el tamaño de los objetos, sino únicamente su ubicación en la imagen. Una vez que conocemos la ubicación de los objetos, podemos realizar operaciones posteriores, como controlar un vehículo para que se desplace hacia el objetivo detectado mediante OpenMV, realizar un aterrizaje preciso de un dron o controlar un brazo robótico para agarrar un objeto objetivo específico.
El modelo FOMO es un modelo especialmente diseñado por EdgeImpulse para entornos de microcontroladores; a diferencia de la detección habitual de objetos, este modelo solo puede detectar la ubicación y la cantidad de múltiples objetos, pero no puede obtener sus dimensiones específicas.
El principio subyacente del modelo FOMO es muy sencillo y flexible. En primer lugar, divide la imagen en bloques de 8×8 píxeles. Si la imagen tiene una resolución de 96×96, se obtiene una cuadrícula de 12×12 celdas; si la imagen tiene una resolución de 360×360, se obtiene una cuadrícula de 40×40 celdas. A continuación, ejecuta de forma independiente la clasificación de imágenes en cada celda.
En comparación con YOLO V5 o MobileNet SSD, FOMO presenta un rendimiento significativamente superior en la detección de una gran cantidad de objetos pequeños. La detección de puntos objetivo de FOMO es 30 veces más rápida que la de MobileNet SSD.
Si los objetos que se van a detectar tienen tamaños similares, por ejemplo, si las señales que desea identificar son de dimensiones prácticamente uniformes y no varían entre un objeto muy grande y otro muy pequeño, el rendimiento de FOMO será mejor.
OpenMV utiliza EdgeImpulse para entrenar en línea redes neuronales destinadas a la detección de puntos objetivo, lo cual consta principalmente de los siguientes pasos: captura y carga del conjunto de datos de imágenes, etiquetado de los objetivos, entrenamiento, prueba del modelo y despliegue.
* Recopilación del conjunto de datos de imágenes: captura de imágenes de objetos específicos en el entorno real donde se llevará a cabo la identificación. Realizamos la recopilación de imágenes reales en el mismo entorno donde se realizará la identificación; por lo tanto, el entorno real de entrenamiento y el entorno real de detección son prácticamente idénticos, lo que mejora los resultados.
* Etiquetado de objetivos: delimitar cada objetivo que se debe detectar en nuestro conjunto de datos y asociarlo con su nombre correspondiente, para facilitar el entrenamiento posterior, la detección de la ubicación de los objetivos y la identificación de sus nombres.
* Modelo de entrenamiento: una vez finalizada la anotación, se entrena el modelo con los parámetros de la red neuronal convolucional diseñada por nosotros.
* Modelo de prueba: Evaluamos el modelo entrenado; si los resultados no son satisfactorios, ampliamos el conjunto de entrenamiento o ajustamos los parámetros de entrenamiento y continuamos el proceso hasta obtener un modelo que cumpla con nuestros criterios.
*Implementación: simplemente colocamos los archivos del modelo entrenado en la unidad flash integrada de OpenMV para ejecutarlos.
A continuación, se muestra el procedimiento específico:
01. Recopilar y cargar el conjunto de datos de imágenes
Uno. En primer lugar, ingrese al sitio web edgeimpulse.com, seleccione «Iniciar sesión», ingrese el nombre del proyecto recién creado y seleccione «Imágenes» — «Clasificar múltiples objetos»

II. Seleccione la imagen para subir. Existen varias formas de obtener el conjunto de datos de imágenes:
1. Capturar imágenes en tiempo real mediante el IDE de OpenMV. Utilice la herramienta «Editor de conjuntos de datos» incluida en el IDE de OpenMV para crear un nuevo conjunto de datos y capturar imágenes en tiempo real; para más detalles, consulte nuestro tutorial en video anterior sobre clasificación de objetos y detección de mascarillas.

2. Imágenes descargadas desde Internet o capturadas directamente con un teléfono móvil. Lo ideal es que coincidan con el entorno real en el que se realizará la detección. Hemos preparado entre cuatrocientas y quinientas imágenes de señales de tránsito, como «Estacionamiento prohibido», «Bocina prohibida» y «Límite de velocidad: 80 km/h», todas tomadas en carreteras reales. Este conjunto de datos está disponible para su descarga en nuestro repositorio de GitHub y en nuestro sitio web de tutoriales.
02. Objetivo de la anotación
Se deben cargar aproximadamente 100 imágenes por categoría; una vez cargadas las imágenes, se procede a su anotación, indicando la ubicación y la categoría de los objetos que se desean identificar.


03. Entrenamiento del modelo
Configure los parámetros del entrenamiento diseñado, cambie la resolución a 128 × 128 y seleccione todos los parámetros predeterminados; luego haga clic en Guardar.

Generar funciones; los tres colores representan respectivamente las tres marcas.

Configurar los parámetros de entrenamiento para la detección de objetos. El número predeterminado de épocas de entrenamiento es 60, la tasa de aprendizaje es 0,001 y la proporción del conjunto de validación es del 20 %. Seleccione la casilla de verificación para aumentar los datos. Para el modelo de aprendizaje por transferencia, puede elegir el modelo predeterminado MobileNetV2 0,35 o MobileNetV2 0,1. (Nota: no se puede utilizar SSD, ya que SSD no se ejecuta en OpenMV.)
Seleccione Iniciar entrenamiento. Una vez finalizado el entrenamiento, el modelo de red neuronal obtenido tiene un puntaje F1 del 91,2 %; podemos guardar la versión actual.

Seleccione el almacenamiento, complete su descripción y seleccione Guardar.

04. Implementación del modelo
Exporte el archivo del modelo entrenado. Solo debe exportar la biblioteca; seleccione OpenMV y haga clic en Build para iniciar la implementación y exportación del modelo.

Descargará automáticamente el modelo que exportamos; aquí se encuentra el modelo entrenado con nuestras 300 imágenes, con lo cual concluye por completo nuestro proceso de entrenamiento.

05. Ejecutar el modelo
Ejecutar el modelo en OpenMV:
Conecte la OpenMV Plus, guarde los tres archivos entrenados en la unidad flash integrada de la OpenMV y abra el archivo ei_object_detection.py en el IDE de OpenMV. Haga clic en Ejecutar; los resultados de la ejecución se mostrarán en la terminal serie.


Esta función también puede ejecutarse en la OpenMV4. Dado que la OpenMV4 no dispone de SDRAM externa y tiene menos memoria, podemos reducir el tamaño del modelo para permitir su ejecución en la OpenMV4.
Hay dos métodos para reducir el tamaño del modelo:
Uno. Reducir la resolución de entrenamiento, cambiando la resolución de 128 × 128 a 96 × 96.
Dos. Modificar el modelo de aprendizaje por transferencia utilizado, cambiando MobileNetV2 0.35 por MobileNetV2 0.1.
Finalmente, coloque el nuevo archivo entrenado en la OpenMV4 y ejecute el programa.
Este es nuestro tutorial sobre la detección de puntos objetivo. ¡Esperamos con interés sus resultados!

Centinela de IA basado en OpenMV: recordatorio automático cuando no se cierra un lugar clave
Determina automáticamente si la puerta de un lugar clave permanece abierta durante un tiempo prolongado y emite una alerta oportuna.

Alerta inmediata ante el cruce no autorizado de personas; OpenMV interpreta la «sensación de límites de seguridad».
Identificación del comportamiento de cruces indebidos de personas o equipos mediante líneas virtuales de vigilancia.

¡Llegó el «agente municipal de IA»! Sistema automático de reconocimiento de ocupación ilegal de vías públicas basado en OpenMV
Identificación automática de actividades comerciales que ocupan vías públicas, lo que apoya la gestión cotidiana de las ciudades.

¿Cilindros de gas colocados de forma inadecuada? Utilice OpenMV para activar automáticamente alertas de peligro
Identificación automática de ubicaciones inadecuadas para los cilindros de gas, lo que permite detectar con anticipación riesgos relacionados con el suministro de gas.

¿No usó guantes aislantes durante el trabajo con corriente? ¡OpenMV emite una alerta inmediata!
Identifica automáticamente si el personal que realiza las tareas lleva guantes aislantes, lo que contribuye a la realización segura de las operaciones.

Utilizar la cámara inteligente OpenMV para identificar en tiempo real los defectos en la superficie de las láminas de aluminio
Identificación en línea de defectos en la superficie de las láminas de aluminio, como rayones y abolladuras, para apoyar el control de calidad.