YOLOv9: Un salto adelante 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 revolucionarias 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 robusta base de código proporcionada por Ultralytics YOLOv5, lo que demuestra el espíritu colaborativo de la comunidad de investigación en IA.



Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Comparativa de rendimiento de YOLOv9

Introducción a YOLOv9

En la búsqueda de una detección de objetos en tiempo real óptima, YOLOv9 destaca por su enfoque innovador para superar los problemas de 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 asegura la retención de información crucial a lo largo del proceso de detección, logrando así una precisión y un rendimiento excepcionales.

Innovaciones principales de YOLOv9

Los avances de YOLOv9 están profundamente arraigados en la solución de los problemas causados por la pérdida de información en redes neuronales profundas. El Principio de Cuello de Botella de Información y el uso innovador de Funciones Reversibles son fundamentales para su diseño, asegurando que YOLOv9 mantenga una alta eficiencia y precisión.

Principio de Cuello de Botella de Información

El Principio de Cuello de Botella de Información revela un reto fundamental en el aprendizaje profundo: a medida que los datos pasan a través de sucesivas capas 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 la información mutua, y f y g representan las funciones de transformación con los parámetros theta y phi, respectivamente. YOLOv9 contrarresta este reto mediante la implementación de 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 gradientes más fiable y, por consiguiente, una mejor convergencia y rendimiento del modelo.

Funciones Reversibles

El concepto de Funciones Reversibles es otro pilar del diseño de YOLOv9. Una función se considera reversible si puede invertirse sin pérdida de información, expresado como:

X = v_zeta(r_psi(X))

con psi y zeta como parámetros para la función reversible y su inversa, respectivamente. Esta propiedad es crucial para las arquitecturas de aprendizaje profundo, ya que permite a la red retener un flujo de información completo, permitiendo así actualizaciones más precisas de los parámetros del modelo. YOLOv9 incorpora funciones reversibles en 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 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 propagación hacia adelante. La arquitectura de YOLOv9, a través del uso de PGI y funciones reversibles, garantiza que, incluso con un modelo optimizado, se retenga y utilice eficazmente la información esencial necesaria para una detección de objetos precisa.

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 en las capas profundas de la red. Esto permite la generación de gradientes fiables, facilitando actualizaciones precisas del modelo y mejorando 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 mayor eficiencia computacional. Su diseño permite la integración flexible de varios bloques computacionales, haciendo que YOLOv9 sea adaptable a una amplia gama de aplicaciones sin sacrificar velocidad ni precisión.

Comparativa de arquitectura de YOLOv9

Benchmarks de YOLOv9

Realizar benchmarks en YOLOv9 usando Ultralytics implica evaluar el rendimiento de tu modelo entrenado y validado en escenarios del mundo real. Este proceso incluye:

  • Evaluación de rendimiento: Evaluar la velocidad y precisión del modelo.
  • Formatos de exportación: Probar el modelo en diferentes formatos de exportación para asegurar que cumple con los estándares necesarios y que funciona bien en diversos entornos.
  • Soporte de framework: Proporcionar un framework integral dentro de Ultralytics YOLOv8 para facilitar estas evaluaciones y asegurar resultados consistentes y fiables.

Al realizar benchmarks, puedes asegurar que tu 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.



Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package

Rendimiento en el conjunto de datos MS COCO

El rendimiento de YOLOv9 en el conjunto de datos COCO ejemplifica sus avances significativos en la detección de objetos en tiempo real, estableciendo nuevos puntos de referencia en varios tamaños de modelo. La Tabla 1 presenta una comparativa exhaustiva de los detectores de objetos en tiempo real de última generación, ilustrando la eficiencia y precisión superiores de YOLOv9.

Rendimiento
Modelotamaño
(píxeles)
mAPval
50-95
mAPval
50
params
(M)
FLOPs
(B)
YOLOv9t64038.353.12.07.7
YOLOv9s64046.863.47.226.7
YOLOv9m64051.468.120.176.8
YOLOv9c64053.070.225.5102.8
YOLOv9e64055.672.858.1192.5

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

Comparativamente, YOLOv9 exhibe ganancias notables:

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

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, logrando una precisión comparable, lo que demuestra las significativas mejoras de eficiencia de YOLOv9. Además, el modelo YOLOv9e establece un nuevo estándar para 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, destacando su mayor eficiencia 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, lanzado en febrero de 2024, representó un desarrollo fundamental en la detección de objetos en tiempo real, ofreciendo mejoras significativas en términos de eficiencia, precisión y adaptabilidad. Al abordar desafíos críticos mediante soluciones innovadoras como PGI y GELAN, YOLOv9 estableció nuevos puntos de referencia en el momento de su lanzamiento. Aunque modelos más recientes como YOLO11 y YOLO26 han sido lanzados desde entonces con mejoras adicionales, las innovaciones arquitectónicas de YOLOv9 continúan influyendo en el campo.

Ejemplos de uso

Este ejemplo proporciona ejemplos sencillos de entrenamiento e inferencia con YOLOv9. Para ver la documentación completa sobre estos y otros modos, consulta las páginas de documentación de Predicción, Entrenamiento, Validación y Exportación.

Ejemplo

PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in 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")

Tareas y modos admitidos

The YOLOv9 series offers a range of models, each optimized for high-performance Object Detection. These models cater to varying computational needs and accuracy requirements, making them versatile for a wide array of applications.

ModeloNombres de archivoTareasInferenciaValidaciónEntrenamientoExportar (Export)
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptDetección de objetos
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptSegmentación de instancias

Esta tabla proporciona una visión detallada de las variantes del modelo YOLOv9, destacando sus capacidades en tareas de detección de objetos y su compatibilidad con diversos modos operativos como Inferencia, Validación, Entrenamiento y Exportación. Este soporte integral asegura 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 tomará más tiempo que el modelo YOLOv8 de tamaño equivalente.

Citas y reconocimientos

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

Cita
@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 documento original de YOLOv9 se puede encontrar en arXiv. Los autores han hecho público su trabajo y la base de código se puede acceder en GitHub. Valoramos sus esfuerzos para 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 revolucionarias como la Información de Gradiente Programable (PGI) y la Red de Agregación de Capas Eficiente Generalizada (GELAN). Estas innovaciones abordan los problemas de pérdida de información en las redes neuronales profundas, asegurando 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 parámetros y la eficiencia computacional. Aprende más sobre las innovaciones principales de YOLOv9 que establecen nuevos puntos de referencia en el conjunto de datos MS COCO.

¿Cómo rinde 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 logrando una mayor precisión y eficiencia. En el conjunto de datos COCO, los modelos YOLOv9 muestran puntuaciones mAP superiores en varios tamaños mientras mantienen o reducen la carga 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. Explora las comparativas de rendimiento para ver métricas detalladas.

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

Puedes entrenar un modelo YOLOv9 usando tanto Python como comandos CLI. Para Python, instancia un modelo usando la clase YOLO y llama al método train:

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 mediante CLI, ejecuta:

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

Aprende más sobre ejemplos de uso para entrenamiento e 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 suelen ser propensos a perder información significativa. Al integrar la Información de Gradiente Programable (PGI) y funciones reversibles, YOLOv9 asegura la retención de datos esenciales, mejorando la precisión y eficiencia del modelo. Esto lo hace muy adecuado para aplicaciones que requieren modelos compactos de alto rendimiento. Para más detalles, explora la sección sobre el impacto de YOLOv9 en modelos ligeros.

¿Qué tareas y modos admite YOLOv9?

YOLOv9 admite diversas tareas, incluyendo la detección de objetos y la segmentación de instancias. Es compatible con múltiples modos operativos como inferencia, validación, entrenamiento y exportación. Esta versatilidad hace que YOLOv9 sea adaptable a diversas aplicaciones de visión artificial en tiempo real. Consulta la sección de tareas y modos admitidos para más información.

Comentarios