logo de open sistemas en blanco

YOLOv10: El primer modelo de detección de objetos sin NMS

¡Hola!👋Soy Henry Navarro Hernández

Matemático, apasionado de los datos y la IA

Tabla de contenidos

Revelando las características avanzadas y el rendimiento de YOLOv10 por la Universidad de Tsinghua

Investigadores de la Universidad de Tsinghua en China 🇨🇳 han presentado YOLOv10, un modelo innovador que marca un gran avance en la visión por computadora. Este lanzamiento demuestra su compromiso con hacer que la inteligencia artificial sea accesible y poderosa, ofreciendo mejoras significativas. La serie YOLO (You Only Look Once) ha sido un referente en la detección de objetos en tiempo real, combinando de manera efectiva el costo computacional y el rendimiento. Sin embargo, la dependencia de la supresión no máxima (NMS) en el post-procesamiento ha dificultado el despliegue de extremo a extremo, afectando la latencia de inferencia. Con YOLOv10, se eliminó el NMS y se optimizó la arquitectura del modelo, avanzando en eficiencia y rendimiento.

En este contexto, nosotros nos destacamos como un actor clave en inteligencia artificial, especialmente en la capacitación, prueba y despliegue de modelos como YOLOv10. Con una vasta experiencia y conocimiento en tecnologías avanzadas, estamos bien posicionados para aprovechar al máximo las capacidades de YOLOv10, mejorando la precisión y efectividad en la detección de objetos. Esta colaboración representa una fusión de innovación y aplicación práctica, llevando los límites de lo que es posible en la tecnología de inteligencia artificial aún más lejos.

¿Qué hace especial a YOLOv10?

Una de las grandes mejoras en YOLOv10 es que se ha  eliminado la Non-maximum Suppression (NMS). Antes, este proceso era común en otros modelos de detección de objetos para eliminar cajas redundantes que detectaban lo mismo. Ahora, con YOLOv10, solo mantenemos la caja con la puntuación más alta y descartamos las que tienen una superposición significativa. Aunque la NMS era efectiva, añadía complejidad y aumentaba la latencia de inferencia, lo que podía ralentizar las aplicaciones en tiempo real.

YOLOv10 introduce un cambio emocionante al reemplazar la supresión no máxima (NMS) con un enfoque de asignaciones duales consistentes, lo que permite un entrenamiento sin NMS. Este cambio fundamental mejora la forma en que el modelo maneja las detecciones superpuestas. Al integrar este proceso directamente en la arquitectura y la estrategia de entrenamiento del modelo, YOLOv10 reduce la necesidad de post-procesamiento y disminuye significativamente el tiempo de inferencia. Esta reducción en la latencia es crucial para aplicaciones en tiempo real, donde la rapidez y la eficiencia son esenciales, como en la conducción autónoma, la vigilancia y el análisis de video en vivo. Al eliminar el NMS, no solo se agiliza el proceso de despliegue, sino que también se mejora el rendimiento del modelo, haciéndolo más eficiente y receptivo.

La eliminación de la NMS no solo simplifica el proceso de despliegue, sino que también mejora el rendimiento del modelo al hacerlo más eficiente y receptivo.

Modelos previamente entrenados

Desde YOLOv5 de Ultralytics, estamos acostumbrados a tener modelos de diferentes tamaños con cada lanzamiento: nano, pequeño, mediano, grande y extragrande. YOLOv10 no es una excepción. Los investigadores de la Universidad de Tsinghua también han hecho posible obtener una variedad de modelos previamente entrenados, listos para ser utilizados en diversas tareas de detección de objetos.

Todos estos modelos ofrecen un rendimiento superior en términos de latencia y Average Precision (AP) en comparación con versiones anteriores de YOLO, como puedes ver en la siguiente imagen:

modelos de yolo
Comparación de rendimiento: latencia (izquierda) y número de parámetros (derecha) en todos los modelos YOLO.

Puedes ver el rendimiento real en la siguiente tabla:

tabla de modelos
Modelos previamente entrenados disponibles para YOLOv10. Tabla tomada del sitio web de Ultralytics

Uso

A fecha de hoy (27 de mayo de 2024), YOLOv10 aún no está completamente integrado en el framework de Ultralytics. Sin embargo, hay una rama llamada ‘v10’ que podemos clonar:

git clone --branch v10 --single-branch https://github.com/ultralytics/ultralytics.git

Para nuestro propósito, vamos a probar el repositorio original:

La instalación es fácil.

git clone https://github.com/THU-MIG/yolov10
cd yolov10
pip install -e .

# Choose the size of your model I will use the XLarge version
wget https://github.com/THU-MIG/yolov10/releases/download/v1.1/yolov10n/s/m/b/l/x.pt

El uso es similar al de YOLOv8:

Python

from ultralytics import YOLOv10 # Note the “v10” in the end 
# Load a model
model = YOLOv10('yolov10x.pt') # load an official model

# Predict with the model
model.predict(0) # predict on your webcam

CLI

yolo predict model=yolov10x.pt source=0 # predict with official model on webcam

Las mismas fuentes para el marco Ultralytics están disponibles también.

fuentes para el marco yolo
Fuentes disponibles para predicción 

Resultados

gif yolov10 1
Ejemplo de detección de objetos con YOLOv10. Inferencia sobre 384×640.

YOLOv8 vs YOLOv10: Comparación de latencia en la inferencia

En la detección de objetos, la velocidad es clave, especialmente en aplicaciones como la conducción autónoma, la vigilancia por video o la inteligencia artificial interactiva. La latencia, que es el tiempo que tarda un modelo en analizar una imagen y hacer una predicción, desempeña un papel fundamental.

YOLOv8, aunque potente y eficiente, utiliza Non-maximum Suppresion (NMS) para filtrar los cuadros delimitadores redundantes. Este paso adicional, aunque efectivo para mejorar la precisión de detección, agrega una sobrecarga computacional y aumenta el tiempo total de inferencia.

Aquí es donde entra en juego YOLOv10, eliminando la necesidad de NMS a través de un enfoque de asignaciones duales consistentes para un entrenamiento libre de NMS. Al integrar este proceso en la arquitectura del modelo, YOLOv10 reduce significativamente los pasos computacionales requeridos durante la inferencia. Esto resulta en tiempos de procesamiento más rápidos y menor latencia, haciendo a YOLOv10 sea más adecuado para aplicaciones en tiempo real de alta velocidad.

Para el mismo video anterior, obtuve los siguientes registros en una GPU NVIDIA GeForce RTX 4060 Laptop, 7940MiB, y la diferencia es bastante significativa.

Latencia yolov10
Latencia YOLOv10 en resolución de inferencia de 384×640 (archivo .pt original)
latencia yolov8
Latencia de YOLOv8 en resolución de inferencia de 384×640 (archivo .pt original)

Exportación del Modelo

Si estás interesado en comprender los beneficios de exportar un modelo, puedes consultar este artículo donde se detallan las mejoras en velocidad.

Al igual que en otras tareas como detección, segmentación y estimación de pose, puedes exportar tus modelos YOLOv10 utilizando el framework de Ultralytics. Este proceso implica convertir el modelo a formatos como ONNX, CoreML, TensorFlow Lite y otros, asegurando compatibilidad con diversas plataformas y dispositivos.

Esta versatilidad permite una integración más amplia en diferentes entornos, desde aplicaciones móviles hasta dispositivos de borde. El framework YOLOv10, al igual que sus predecesores, soporta la exportación de modelos, facilitando un despliegue sin problemas en diversas plataformas. Ultralytics ofrece una licencia AGPL-3.0 para uso general. Para control propietario en proyectos comerciales, está disponible una Licencia Empresarial, lo que mejora la adaptabilidad de las avanzadas capacidades de detección de objetos de YOLOv10 en una amplia gama de escenarios del mundo real.

Python

from ultralytics import YOLOv10

# Load a model
model = YOLOv10('yolov10x.pt')  # load an official model
model = YOLOv10('path/to/best.pt')  # load a custom trained model

# Export the model
model.export(format='onnx')

CLI

yolo export model=yolov10x.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Reflexión

La llegada de YOLOv10 marca un hito revolucionario en el campo de la inteligencia artificial. Este modelo, pionero en la detección de objetos sin necesidad de supresión no máxima (NMS), desafía y redefine los estándares establecidos de eficiencia y velocidad. Con una reducción notable en la latencia de inferencia, YOLOv10 emerge como la opción predilecta para aplicaciones en tiempo real de alta velocidad.

A través de sus innovadores métodos de entrenamiento y ajuste, se anticipa una mejora significativa en su rendimiento, prometiendo una respuesta ágil y precisa en todo momento. En OpenSistemas, nos encontramos a la vanguardia de la innovación en inteligencia artificial y análisis de datos. Te invito a que te pongas en contacto con nuestro equipo para explorar las nuevas posibilidades que esta tecnología tiene para ofrecer.

contacta

Desarrolla tu siguiente proyecto de Data, IA, Cloud o Transformación Digital con nosotros. Empieza hablando con nuestro equipo comercial.

Tech Matters

La Newsletter mensual para conocer los proyectos de tecnología e inteligencia artificial que están teniendo un impacto positivo en el mundo.

Plazas limitadas

Próximo evento
Webinar💡SofIA: Asistente de IA para Empresas

Plazas limitadas

Próximo evento
Webinar💡SofIA: Asistente de IA para Empresas