Ir al contenido

YOLOv9: Un gran avance en la tecnología de detección de objetos

YOLOv9 marca un avance significativo en la detección de objetos en tiempo real, introduciendo técnicas innovadoras como la Información de Gradiente Programable (PGI) y la Red de Agregación de Capas Eficiente Generalizada (GELAN). Este modelo demuestra mejoras notables en eficiencia, precisión y adaptabilidad, estableciendo nuevos puntos de referencia en el conjunto de datos MS COCO. El proyecto YOLOv9, aunque desarrollado por un equipo de código abierto independiente, se basa en la sólida base de código proporcionada por Ultralytics YOLOv5, mostrando el espíritu de colaboración de la comunidad de investigación de IA.



Ver: Entrenamiento de YOLOv9 en datos personalizados utilizando Ultralytics | Conjunto de datos de paquetes industriales

Comparación del rendimiento de YOLOv9

Introducción a YOLOv9

En la búsqueda de una detección de objetos óptima en tiempo real, YOLOv9 destaca por su enfoque innovador para superar los desafíos de la pérdida de información inherentes a las redes neuronales profundas. Al integrar PGI y la versátil arquitectura GELAN, YOLOv9 no solo mejora la capacidad de aprendizaje del modelo, sino que también garantiza la retención de información crucial durante todo el proceso de detección, logrando así una precisión y un rendimiento excepcionales.

Innovaciones centrales de YOLOv9

Los avances de YOLOv9 están profundamente arraigados en abordar los desafíos que plantea la pérdida de información en las redes neuronales profundas. El Principio del Cuello de Botella de Información y el uso innovador de Funciones Reversibles son fundamentales para su diseño, lo que garantiza que YOLOv9 mantenga una alta eficiencia y precisión.

Principio del cuello de botella de la información

El Principio del Cuello de Botella de Información revela un desafío fundamental en el aprendizaje profundo: a medida que los datos pasan a través de capas sucesivas de una red, aumenta el potencial de pérdida de información. Este fenómeno se representa matemáticamente como:

I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))

donde I denota información mutua, y f y g representan funciones de transformación con parámetros theta y phi, respectivamente. YOLOv9 contrarresta este desafío implementando la Información de Gradiente Programable (PGI), que ayuda a preservar los datos esenciales a través de la profundidad de la red, asegurando una generación de gradiente más confiable y, en consecuencia, una mejor convergencia y rendimiento del modelo.

Funciones reversibles

El concepto de Funciones Reversibles es otra piedra angular del diseño de YOLOv9. Una función se considera reversible si se puede invertir sin ninguna pérdida de información, como se expresa mediante:

X = v_zeta(r_psi(X))

con psi y zeta como parámetros para la reversible y su función inversa, respectivamente. Esta propiedad es crucial para las arquitecturas aprendizaje profundo , ya que permite que la red retenga un flujo de información completo, lo que permite actualizaciones más precisas de los parámetros del modelo. YOLOv9 incorpora funciones reversibles dentro de su arquitectura para mitigar el riesgo de degradación de la información, especialmente en las capas más profundas, asegurando la preservación de datos críticos para las tareas de detección de objetos.

Impacto en los modelos ligeros

Abordar la pérdida de información es particularmente vital para los modelos ligeros, que a menudo están sub-parametrizados y son propensos a perder información significativa durante el proceso de alimentación hacia adelante. La arquitectura de YOLOv9, a través del uso de PGI y funciones reversibles, asegura que incluso con un modelo optimizado, la información esencial requerida para la detección precisa de objetos se retenga y se utilice de manera efectiva.

Información de gradiente programable (PGI)

PGI es un concepto novedoso introducido en YOLOv9 para combatir el problema del cuello de botella de información, asegurando la preservación de datos esenciales a través de las capas de la red profunda. Esto permite la generación de gradientes confiables, lo que facilita actualizaciones precisas del modelo y mejora el rendimiento general de la detección.

Red de agregación de capas eficiente generalizada (GELAN)

GELAN representa un avance arquitectónico estratégico, que permite a YOLOv9 lograr una utilización superior de los parámetros y una eficiencia computacional. Su diseño permite la integración flexible de varios bloques computacionales, lo que hace que YOLOv9 sea adaptable a una amplia gama de aplicaciones sin sacrificar la velocidad o la precisión.

Comparación de la arquitectura de YOLOv9

Puntos de referencia de YOLOv9

La evaluación comparativa en YOLOv9 utilizando Ultralytics implica evaluar el rendimiento de su modelo entrenado y validado en escenarios del mundo real. Este proceso incluye:

  • Evaluación del rendimiento: Evaluación de la velocidad y la precisión del modelo.
  • Formatos de exportación: Probar el modelo en diferentes formatos de exportación para garantizar que cumpla con los estándares necesarios y funcione bien en diversos entornos.
  • Soporte de Framework: Proporcionar un marco integral dentro de Ultralytics YOLOv8 para facilitar estas evaluaciones y garantizar resultados consistentes y confiables.

Al realizar pruebas comparativas, puede asegurarse de que su modelo no solo funcione bien en entornos de prueba controlados, sino que también mantenga un alto rendimiento en aplicaciones prácticas del mundo real.



Ver: Cómo realizar pruebas comparativas del modelo YOLOv9 utilizando el paquete de python Ultralytics

Rendimiento en el conjunto de datos MS COCO

El rendimiento de YOLOv9 en el conjunto de datos COCO ejemplifica sus importantes avances en la detección de objetos en tiempo real, estableciendo nuevos puntos de referencia en varios tamaños de modelos. La Tabla 1 presenta una comparación exhaustiva de los detectores de objetos en tiempo real de última generación, lo que ilustra la eficiencia superior y la precisión de YOLOv9.

Rendimiento

Modelo tamaño
(píxeles)
mAPval
50-95
mAPval
50
parámetros
(M)
FLOPs
(B)
YOLOv9t 640 38.3 53.1 2.0 7.7
YOLOv9s 640 46.8 63.4 7.2 26.7
YOLOv9m 640 51.4 68.1 20.1 76.8
YOLOv9c 640 53.0 70.2 25.5 102.8
YOLOv9e 640 55.6 72.8 58.1 192.5
Modelo tamaño
(píxeles)
mAPbox
50-95
mAPmask
50-95
parámetros
(M)
FLOPs
(B)
YOLOv9c-seg 640 52.4 42.2 27.9 159.4
YOLOv9e-seg 640 55.1 44.3 60.5 248.4

Las iteraciones de YOLOv9, que van desde el diminuto t variante hasta el extenso e modelo, demuestran mejoras no solo en la precisión (métricas mAP) sino también en la eficiencia con un número reducido de parámetros y necesidades computacionales (FLOPs). Esta tabla subraya la capacidad de YOLOv9 para ofrecer alta precisión al tiempo que mantiene o reduce la sobrecarga computacional en comparación con las versiones anteriores y los modelos de la competencia.

Comparativamente, YOLOv9 exhibe ganancias notables:

  • Modelos ligeros: YOLOv9s supera al YOLO MS-S en eficiencia de parámetros y carga computacional al tiempo que logra una mejora de 0.4∼0.6% en AP.
  • Modelos medianos a grandes: YOLOv9m y YOLOv9e muestran notables avances al equilibrar la compensación entre la complejidad del modelo y el rendimiento de la detección, ofreciendo reducciones significativas en los parámetros y los cálculos en el contexto de una precisión mejorada.

El modelo YOLOv9c, en particular, destaca la eficacia de las optimizaciones de la arquitectura. Funciona con un 42% menos de parámetros y un 21% menos de demanda computacional que YOLOv7 AF, pero logra una precisión comparable, lo que demuestra las importantes mejoras de eficiencia de YOLOv9. Además, el modelo YOLOv9e establece un nuevo estándar para los modelos grandes, con un 15% menos de parámetros y un 25% menos de necesidad computacional que YOLOv8x, junto con una mejora incremental del 1.7% en AP.

Estos resultados muestran los avances estratégicos de YOLOv9 en el diseño de modelos, enfatizando su eficiencia mejorada sin comprometer la precisión esencial para las tareas de detección de objetos en tiempo real. El modelo no solo supera los límites de las métricas de rendimiento, sino que también enfatiza la importancia de la eficiencia computacional, lo que lo convierte en un desarrollo fundamental en el campo de la visión artificial.

Conclusión

YOLOv9 representa un desarrollo fundamental en la detección de objetos en tiempo real, que ofrece mejoras significativas en términos de eficiencia, precisión y adaptabilidad. Al abordar los desafíos críticos a través de soluciones innovadoras como PGI y GELAN, YOLOv9 establece un nuevo precedente para la investigación y la aplicación futuras en el campo. A medida que la comunidad de IA continúa evolucionando, YOLOv9 es un testimonio del poder de la colaboración y la innovación para impulsar el progreso tecnológico.

Ejemplos de uso

Este ejemplo proporciona ejemplos sencillos de entrenamiento e inferencia de YOLOv9. Para obtener documentación completa sobre estos y otros modos, consulte las páginas de documentación de Predict, Train, Val y Export.

Ejemplo

PyTorch preentrenados *.pt modelos, así como la configuración *.yaml los archivos se pueden pasar a la YOLO() clase para crear una instancia del modelo en python:

from ultralytics import YOLO

# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")

# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Hay comandos de la CLI disponibles para ejecutar directamente los modelos:

# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=path/to/bus.jpg

Tareas y modos admitidos

La serie YOLOv9 ofrece una gama de modelos, cada uno optimizado para la detección de objetos de alto rendimiento. Estos modelos se adaptan a las diferentes necesidades computacionales y requisitos de precisión, lo que los hace versátiles para una amplia gama de aplicaciones.

Modelo Nombres de archivo Tareas Inferencia Validación Entrenamiento Exportar
YOLOv9 yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt Detección de objetos
YOLOv9-seg yolov9c-seg.pt yolov9e-seg.pt Segmentación de instancias

Esta tabla proporciona una descripción detallada de las variantes del modelo YOLOv9, destacando sus capacidades en las tareas de detección de objetos y su compatibilidad con varios modos operativos, como Inferencia, Validación, Entrenamiento y Exportación. Esta compatibilidad integral garantiza que los usuarios puedan aprovechar al máximo las capacidades de los modelos YOLOv9 en una amplia gama de escenarios de detección de objetos.

Nota

El entrenamiento de modelos YOLOv9 requerirá más recursos y tardará más que un modelo YOLOv8 de tamaño equivalente.

Citas y agradecimientos

Nos gustaría agradecer a los autores de YOLOv9 por sus importantes contribuciones en el campo de la detección de objetos en tiempo real:

@article{wang2024yolov9,
  title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao  and Liao, Hong-Yuan Mark},
  booktitle={arXiv preprint arXiv:2402.13616},
  year={2024}
}

El artículo original de YOLOv9 se puede encontrar en arXiv. Los autores han puesto su trabajo a disposición del público y se puede acceder a la base de código en GitHub. Agradecemos sus esfuerzos por avanzar en el campo y hacer que su trabajo sea accesible a la comunidad en general.

Preguntas frecuentes

¿Qué innovaciones introduce YOLOv9 para la detección de objetos en tiempo real?

YOLOv9 introduce técnicas innovadoras como Programmable Gradient Information (PGI) y Generalized Efficient Layer Aggregation Network (GELAN). Estas innovaciones abordan los desafíos de la pérdida de información en las redes neuronales profundas, garantizando una alta eficiencia, precisión y adaptabilidad. PGI preserva los datos esenciales a través de las capas de la red, mientras que GELAN optimiza la utilización de los parámetros y la eficiencia computacional. Obtenga más información sobre las innovaciones centrales de YOLOv9 que establecen nuevos puntos de referencia en el conjunto de datos MS COCO.

¿Cómo se desempeña YOLOv9 en el conjunto de datos MS COCO en comparación con otros modelos?

YOLOv9 supera a los detectores de objetos en tiempo real de última generación al lograr una mayor precisión y eficiencia. En el conjunto de datos COCO, los modelos YOLOv9 exhiben puntuaciones mAP superiores en varios tamaños, al tiempo que mantienen o reducen la sobrecarga computacional. Por ejemplo, YOLOv9c logra una precisión comparable con un 42% menos de parámetros y un 21% menos de demanda computacional que YOLOv7 AF. Explore las comparaciones de rendimiento para obtener métricas detalladas.

¿Cómo puedo entrenar un modelo YOLOv9 usando Python y la CLI?

Puede entrenar un modelo YOLOv9 utilizando comandos de Python y de la CLI. Para Python, instancie un modelo utilizando la YOLO clase y llame al train método:

from ultralytics import YOLO

# Build a YOLOv9c model from pretrained weights and train
model = YOLO("yolov9c.pt")
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Para el entrenamiento con la CLI, ejecute:

yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

Obtenga más información sobre los ejemplos de uso para el entrenamiento y la inferencia.

¿Cuáles son las ventajas de usar Ultralytics YOLOv9 para modelos ligeros?

YOLOv9 está diseñado para mitigar la pérdida de información, lo cual es particularmente importante para los modelos ligeros que a menudo son propensos a perder información significativa. Al integrar Programmable Gradient Information (PGI) y funciones reversibles, YOLOv9 garantiza la retención de datos esenciales, lo que mejora la precisión y la eficiencia del modelo. Esto lo hace muy adecuado para aplicaciones que requieren modelos compactos con un alto rendimiento. Para obtener más detalles, explore la sección sobre el impacto de YOLOv9 en los modelos ligeros.

¿Qué tareas y modos soporta YOLOv9?

YOLOv9 admite varias tareas, incluida la detección de objetos y la segmentación de instancias. Es compatible con múltiples modos operativos, como la inferencia, la validación, el entrenamiento y la exportación. Esta versatilidad hace que YOLOv9 se adapte a diversas aplicaciones de visión artificial en tiempo real. Consulte la sección de tareas y modos compatibles para obtener más información.



📅 Creado hace 1 año ✏️ Actualizado hace 5 meses

Comentarios