Ultralytics YOLO27:

YOLOv9: un salto adelante en la tecnología de detección de objetos#

YOLOv9 supone un avance significativo en la detección de objetos en tiempo real, al introducir técnicas revolucionarias como la Información de Gradiente Programable (PGI) y la Red Generalizada de Agregación Eficiente de Capas (GELAN). Este modelo demuestra mejoras notables en eficiencia, precisión y adaptabilidad, y establece nuevos referentes en el conjunto de datos MS COCO. Aunque el proyecto YOLOv9 fue desarrollado por un equipo independiente de código abierto, se basa en la sólida base de código proporcionada por Ultralytics YOLOv5, lo que refleja el espíritu colaborativo de la comunidad de investigación en IA.



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

Comparativa 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 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 garantiza la conservación de información crucial durante todo el proceso de detección, logrando así una precisión y un rendimiento excepcionales.

Innovaciones principales de YOLOv9#

Los avances de YOLOv9 se basan en gran medida en abordar los problemas derivados de la pérdida de información en las redes neuronales profundas. El principio del cuello de botella de la información y el uso innovador de funciones reversibles son elementos centrales de 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 la información revela un desafío fundamental del aprendizaje profundo: a medida que los datos atraviesan las capas sucesivas de una red, aumenta la posibilidad de pérdida de información. Este fenómeno se representa matemáticamente de la siguiente manera:

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 funciones de transformación con los parámetros theta y phi, respectivamente. YOLOv9 contrarresta este desafío mediante la implementación de la Información de Gradiente Programable (PGI), que ayuda a conservar los datos esenciales a lo largo de la profundidad de la red, garantizando 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, como se expresa mediante:

X = v_zeta(r_psi(X))

con psi y zeta como parámetros de la función reversible y de su función inversa, respectivamente. Esta propiedad es crucial para las arquitecturas de aprendizaje profundo, ya que permite a la red conservar un flujo de información completo y, por tanto, realizar 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, garantizando la conservació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 especialmente importante para los modelos ligeros, que suelen estar infr parametrizados y son propensos a perder información significativa durante el proceso de propagación hacia delante. La arquitectura de YOLOv9, mediante el uso de PGI y funciones reversibles, garantiza que, incluso con un modelo simplificado, se conserve 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 la información y garantizar la conservación de los datos esenciales a través de las capas profundas de la red. Esto permite generar gradientes fiables, facilita actualizaciones precisas del modelo y mejora el rendimiento general de la detección.

Red Generalizada de Agregación Eficiente de Capas (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 integrar de forma flexible diversos bloques computacionales, lo que hace que YOLOv9 se adapte a una amplia variedad de aplicaciones sin sacrificar velocidad ni precisión.

Comparativa de arquitecturas de YOLOv9

Benchmarks de YOLOv9#

El benchmarking de YOLOv9 mediante Ultralytics consiste en evaluar el rendimiento de tu modelo entrenado y validado en situaciones reales. Este proceso incluye:

  • Evaluación del rendimiento: evaluar la velocidad y la precisión del modelo.
  • Formatos de exportación: probar el modelo en distintos formatos de exportación para garantizar que cumple los estándares necesarios y funciona correctamente en diversos entornos.
  • Soporte de frameworks: Se proporciona un framework completo dentro del paquete de Ultralytics para facilitar estas evaluaciones y garantizar resultados coherentes y fiables.

Al realizar benchmarks, puedes asegurarte de que tu modelo no solo funciona correctamente en entornos de prueba controlados, sino que también mantiene 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 importantes avances en la detección de objetos en tiempo real y establece nuevos referentes en distintos tamaños de modelo. La tabla 1 presenta una comparativa exhaustiva de detectores de objetos en tiempo real de última generación e ilustra la eficiencia y la precisión superiores de YOLOv9.

Rendimiento
Modelotamaño
(píxeles)
mAPval
50-95
mAPval
50
parámetros
(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, desde la variante diminuta t hasta el modelo extenso e, demuestran mejoras no solo en precisión (métricas mAP), sino también en eficiencia, con un menor número de parámetros y necesidades computacionales (FLOPs). Esta tabla pone de manifiesto la capacidad de YOLOv9 para ofrecer una alta precisión manteniendo o reduciendo la sobrecarga computacional en comparación con versiones anteriores y modelos de la competencia.

En comparación, YOLOv9 muestra avances notables:

  • Modelos ligeros: YOLOv9s supera a YOLO MS-S en eficiencia de parámetros y carga computacional, al tiempo que logra una mejora del 0,4∼0,6 % en AP.
  • Modelos medianos a grandes: YOLOv9m y YOLOv9e muestran avances importantes a la hora de equilibrar el compromiso entre la complejidad del modelo y el rendimiento de detección, ofreciendo reducciones significativas en parámetros y cálculos junto con una mejora de la precisión.

El modelo YOLOv9c, en particular, pone de relieve 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 necesidades computacionales 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 y destacan su mayor eficiencia sin comprometer la precisión esencial para las tareas de detección de objetos en tiempo real. El modelo no solo amplía los límites de las métricas de rendimiento, sino que también subraya la importancia de la eficiencia computacional, lo que lo convierte en un desarrollo clave en el campo de la visión por ordenador.

Conclusión#

YOLOv9, publicado en febrero de 2024, supuso un desarrollo decisivo en la detección de objetos en tiempo real, con mejoras significativas en eficiencia, precisión y adaptabilidad. Al abordar desafíos críticos mediante soluciones innovadoras como PGI y GELAN, YOLOv9 estableció nuevos referentes en el momento de su lanzamiento. Aunque desde entonces se han publicado modelos más recientes, como YOLO11 y YOLO26, con mejoras adicionales, las innovaciones arquitectónicas de YOLOv9 siguen influyendo en este campo.

Ejemplos de uso#

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

Ejemplo

Los modelos *.pt preentrenados con PyTorch, así como los archivos de configuración *.yaml, se pueden pasar a la clase YOLO() 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")

Tareas y modos compatibles#

La serie YOLOv9 ofrece una variedad de modelos, cada uno optimizado para una detección de objetos de alto rendimiento. Estos modelos se adaptan a distintas necesidades computacionales y requisitos de precisión, por lo que son versátiles para una amplia variedad de aplicaciones.

ModeloNombres de archivoTareasEntrenamientoValidaciónInferenciaExportar
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 ofrece una visión detallada de las variantes del modelo YOLOv9 y destaca sus capacidades en tareas de detección de objetos y su compatibilidad con diversos modos operativos, como inferencias, validación, entrenamiento y exportación. Esta compatibilidad integral garantiza que puedas aprovechar plenamente las capacidades de los modelos YOLOv9 en una amplia variedad de situaciones de detección de objetos.

Nota

Entrenar modelos YOLOv9 requerirá más recursos y llevará más tiempo que el modelo YOLOv8 de tamaño equivalente.

Citas y agradecimientos#

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

Cita
@inproceedings{wang2024yolov9,
  title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
  booktitle={Computer Vision -- ECCV 2024},
  pages={1--21},
  year={2024},
  organization={Springer Nature Switzerland}
}

El artículo oficial de YOLOv9 se publicó en las actas de Springer ECCV 2024, con una prepublicación en arXiv. Los autores han hecho público su trabajo y la base de código está disponible en GitHub. Agradecemos sus esfuerzos por impulsar este campo y hacer accesible su trabajo a una comunidad más amplia.

Preguntas frecuentes#

  • YOLOv9 introduce técnicas revolucionarias como la Información de Gradiente Programable (PGI) y la Red Generalizada de Agregación Eficiente de Capas (GELAN). Estas innovaciones abordan los problemas de pérdida de información en las redes neuronales profundas y garantizan una alta eficiencia, precisión y adaptabilidad. PGI conserva los datos esenciales en las distintas capas de la red, mientras que GELAN optimiza la utilización de parámetros y la eficiencia computacional. Obtén más información sobre las innovaciones principales de YOLOv9 que establecieron nuevos referentes en el conjunto de datos MS COCO.

  • 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 muestran puntuaciones mAP superiores en distintos 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. Consulta las comparativas de rendimiento para ver las métricas detalladas.

  • Puedes entrenar un modelo YOLOv9 mediante comandos de Python y de la CLI. En Python, crea una instancia del 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 entrenar mediante la CLI, ejecuta:

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

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

  • YOLOv9 está diseñado para mitigar la pérdida de información, algo especialmente 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 garantiza la conservación de los datos esenciales y mejora la precisión y la eficiencia del modelo. Esto lo hace especialmente adecuado para aplicaciones que requieren modelos compactos de alto rendimiento. Para obtener más información, consulta la sección sobre el impacto de YOLOv9 en los modelos ligeros.

  • YOLOv9 admite diversas tareas, incluida la detección de objetos y la segmentación de instancias. Es compatible con varios modos operativos, como inferencia, validación, entrenamiento y exportación. Esta versatilidad permite que YOLOv9 se adapte a diversas aplicaciones de visión por ordenador en tiempo real. Consulta la sección de tareas y modos compatibles para obtener más información.

Comentarios