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:Se utiliza para determinar la ubicación, la cantidad y las dimensiones de múltiples objetos diferentes presentes 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 clasificar distintos objetos; esta capacidad permite 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 cara lleva o no mascarilla. Sin embargo, no es posible obtener las coordenadas de ubicació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 función en nuestros dispositivos OpenMV que permite ejecutar tareas similares a la detección de objetos directamente en microcontroladores, con un rendimiento excepcional.

Hoy les explicaremosEntrenamiento para la detección de señales de tránsito en entornos reales de carretera, 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 en la siguiente dirección; todos los códigos y modelos están incluidos: https://book.openmv.cc/project/traffic-sign.html
Es bien sabido que el entorno real es sumamente 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 nuestro socio OpenMV, etiquetando aproximadamente 270 imágenes. El tiempo de entrenamiento fue de tan solo 10 minutos, logrando una precisión del modelo expresada como puntuación F1 del 92 %. La velocidad de procesamiento del modelo en OpenMV alcanza 10 fotogramas por segundo, ofreciendo un rendimiento muy fluido y una alta precisión.
Los usuarios pueden entrenar cualquier objetivo que deseen detectar siguiendo nuestros tutoriales en video, como distintos dígitos, diversas frutas, diferentes señales, piezas variadas o incluso cualquier objetivo irregular específico, entre otros; asimismo, pueden entrenar el sistema para 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 apenas decenas de kilobytes; por lo tanto, incluso con menor memoria disponible en la OpenMV4 H7 en comparación con la versión Plus, 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 autónomo para que se desplace hacia el objetivo detectado mediante OpenMV, realizar un aterrizaje preciso con un dron o controlar un brazo robótico para agarrar un objeto objetivo específico.
El modelo FOMO es un modelo diseñado específicamente 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. Primero divide la imagen en bloques, cada uno de 8×8 píxeles. Si la imagen tiene una resolución de 96×96, entonces se obtiene una cuadrícula de 12×12 celdas. Si la imagen tiene una resolución de 360×360, entonces 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 desempeño 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 tienen dimensiones prácticamente iguales y no varían considerablemente 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 objetos, lo cual comprende principalmente los siguientes pasos: captura y carga del conjunto de datos de imágenes, etiquetado de los objetos, 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. Las imágenes reales se capturan 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.
*Objetivo de etiquetado: delimitar cada objeto que se desea detectar en nuestro conjunto de datos y asignarle el nombre correspondiente, con el fin de facilitar el entrenamiento posterior, así como la detección de la ubicación y el nombre de los objetos.
* Modelo de entrenamiento: una vez finalizada la anotación, se lleva a cabo el entrenamiento del modelo según 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, aumentamos respectivamente el conjunto de entrenamiento o ajustamos los parámetros de entrenamiento y continuamos el entrenamiento hasta obtener un modelo satisfactorio.
*Implementación: Simplemente colocamos los archivos del modelo entrenado en la unidad USB 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
I. En primer lugar, accedemos al sitio web edgeimpulse.com, seleccionamos «Iniciar sesión», ingresamos el nombre del nuevo proyecto y elegimos «Imágenes» — «Clasificar múltiples objetos»

II. Seleccione la imagen para subirla. Existen varios métodos para 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 obtener instrucciones detalladas, consulte nuestro tutorial en video anterior sobre clasificación de objetos y reconocimiento de mascarillas.

2. Imágenes descargadas desde Internet o tomadas 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 capturadas en vías reales. Este conjunto de datos está disponible para su descarga en nuestro repositorio de GitHub y en nuestro sitio web de tutoriales.
02. Objetivos de la anotación
Se cargan aproximadamente 100 imágenes por cada categoría; una vez completada la carga de las imágenes, se procede a su anotación, indicando tanto la ubicación como la categoría de los objetos que se desean identificar.


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

Generar características; los tres colores representan respectivamente 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, podemos elegir como predeterminado MobileNetV2 0.35 o MobileNetV2 0.1. (Nota: no se puede utilizar SSD, ya que SSD no es compatible con OpenMV.)
Seleccione «Iniciar entrenamiento». Una vez completado el entrenamiento, el modelo de red neuronal obtenido tiene una puntuación F1 del 91,2 %; podemos guardar esta versión actual.

Seleccione el almacenamiento, proporcione una descripción y seleccione Guardar.

04. Implementación del modelo
Exporte el archivo del modelo entrenado. Solo es necesario 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 muestra 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 es compatible con OpenMV4. Dado que OpenMV4 no dispone de SDRAM externa y tiene menos memoria, podemos reducir el tamaño del modelo para que funcione en OpenMV4.
Existen dos métodos para reducir el tamaño del modelo:
I. Reducir la resolución de entrenamiento, cambiando la resolución de 128 × 128 a 96 × 96.
II. Modificar el modelo de aprendizaje por transferencia utilizado, sustituyendo MobileNetV2 0.35 por MobileNetV2 0.1.
Finalmente, coloque el nuevo archivo entrenado en la OpenMV4 para ejecutarlo.
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 un lugar crítico no está cerrado
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ímite de seguridad».
Identificación del cruce de personas o equipos por una línea de advertencia virtual.

¡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 no autorizadas para el almacenamiento de tanques de gas, lo que permite detectar con anticipación riesgos potenciales relacionados con el suministro de gas.

¿No usó guantes aislantes durante el trabajo con energía? ¡OpenMV emite una alerta inmediata!
Reconocimiento automático de si el personal que realiza las tareas lleva guantes aislantes, para apoyar operaciones seguras.

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.