YOLOv9: un gran avance en la tecnología de detección de objetos#
YOLOv9 supone un avance significativo en la detección de objetos en tiempo real e introduce técnicas revolucionarias como la información de gradiente programable (PGI) y la red de agregación eficiente de capas generalizada (GELAN). Este modelo demuestra mejoras notables en eficiencia, precisión y adaptabilidad, y establece nuevos referentes en el conjunto de datos MS COCO. Aunque YOLOv9 fue desarrollado por un equipo independiente de código abierto, se basa en la sólida base de código de Ultralytics YOLOv5, lo que refleja el espíritu colaborativo de la comunidad investigadora en IA.
Ver: Entrenamiento de YOLOv9 con datos personalizados mediante Ultralytics | Conjunto de datos de paquetes industriales

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 propios de 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 principalmente en abordar los problemas 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 en su diseño y garantizan que YOLOv9 mantenga una gran eficiencia y precisión.
Principio del cuello de botella de información#
El principio del cuello de botella de información pone de manifiesto un reto fundamental del aprendizaje profundo: a medida que los datos pasan por las sucesivas capas de una red, aumenta la posibilidad de que se pierda información. Este fenómeno se representa matemáticamente así:
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))donde I representa la información mutua, y f y g representan funciones de transformación con los parámetros theta y phi, respectivamente. YOLOv9 contrarresta este problema mediante la información de gradiente programable (PGI), que ayuda a conservar los datos esenciales a lo largo de la profundidad de la red, garantiza una generación de gradientes más fiable y, por consiguiente, mejora la convergencia y el rendimiento del modelo.
Funciones reversibles#
El concepto de funciones reversibles es otro de los pilares del diseño de YOLOv9. Una función se considera reversible si puede invertirse sin perder información, tal como se expresa a continuación:
X = v_zeta(r_psi(X))donde psi y zeta son los 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 que la red conserve un flujo completo de información y, por tanto, que actualice los parámetros del modelo con mayor precisión. YOLOv9 incorpora funciones reversibles en su arquitectura para reducir el riesgo de degradación de la información, especialmente en las capas más profundas, y garantizar así la conservación de datos esenciales para las tareas de detección de objetos.
Impacto en los modelos ligeros#
Abordar la pérdida de información es especialmente importante en los modelos ligeros, que suelen tener pocos parámetros y son propensos a perder información significativa durante el proceso de propagación hacia delante. Gracias al uso de PGI y funciones reversibles, la arquitectura de YOLOv9 garantiza que se conserve y aproveche eficazmente la información esencial para detectar objetos con precisión, incluso en un modelo simplificado.
Información de gradiente programable (PGI)#
PGI es un concepto novedoso que YOLOv9 introduce para combatir el problema del cuello de botella de información y garantizar la conservación de datos esenciales en las capas profundas de la red. Esto permite generar gradientes fiables, facilita actualizaciones precisas del modelo y mejora el rendimiento general de detección.
Red de agregación eficiente de capas generalizada (GELAN)#
GELAN supone un avance estratégico en la arquitectura que permite a YOLOv9 lograr un uso superior de los parámetros y una mayor eficiencia computacional. Su diseño permite integrar con flexibilidad distintos bloques computacionales, lo que hace que YOLOv9 se adapte a una amplia variedad de aplicaciones sin renunciar a la velocidad ni a la precisión.

Pruebas de rendimiento de YOLOv9#
Las pruebas de rendimiento de YOLOv9 con Ultralytics consisten en evaluar el 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 con distintos formatos de exportación para garantizar que cumple los estándares necesarios y funciona bien en diversos entornos.
- Compatibilidad con frameworks: Proporcionar un framework completo dentro del paquete Ultralytics para facilitar estas evaluaciones y garantizar resultados coherentes y fiables.
Las pruebas de rendimiento te permiten asegurarte de que tu modelo no solo funciona bien en entornos de prueba controlados, sino que también mantiene un alto rendimiento en aplicaciones prácticas del mundo real.
Ver: Cómo comparar el rendimiento del modelo YOLOv9 con el paquete Ultralytics Python
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 para distintos tamaños de modelo. La tabla 1 presenta una comparación exhaustiva de los detectores de objetos en tiempo real más avanzados e ilustra la eficiencia y la precisión superiores de YOLOv9.
Las distintas versiones de YOLOv9, desde la variante diminuta t hasta el modelo de gran tamaño e, muestran mejoras tanto en precisión (métricas mAP) como en eficiencia, con menos parámetros y menores necesidades computacionales (FLOPs). Esta tabla destaca la capacidad de YOLOv9 para ofrecer una precisión elevada y mantener o reducir la carga computacional respecto a las versiones anteriores y a los modelos de la competencia.
En comparación, YOLOv9 presenta mejoras notables:
- Modelos ligeros: YOLOv9s supera a YOLO MS-S en eficiencia de parámetros y carga computacional, y mejora el AP en un 0,4∼0,6 %.
- Modelos medianos y grandes: YOLOv9m y YOLOv9e destacan por equilibrar la complejidad del modelo y el rendimiento de detección, y reducen considerablemente los parámetros y los cálculos mientras mejoran la precisión.
El modelo YOLOv9c destaca especialmente la eficacia de las optimizaciones de la arquitectura. Utiliza un 42 % menos de parámetros y requiere un 21 % menos de recursos computacionales 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: usa un 15 % menos de parámetros y requiere un 25 % menos de recursos computacionales que YOLOv8x, a la vez que mejora el AP en 1,7 puntos porcentuales.
Estos resultados ponen de manifiesto los avances estratégicos de YOLOv9 en el diseño de modelos y destacan su mayor eficiencia sin sacrificar la precisión necesaria 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 avance clave en el ámbito de la visión artificial.
Conclusión#
YOLOv9, publicado en febrero de 2024, supuso un avance decisivo en la detección de objetos en tiempo real y ofreció mejoras significativas en eficiencia, precisión y adaptabilidad. Al abordar retos cruciales con 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 el sector.
Ejemplos de uso#
Este ejemplo muestra cómo entrenar YOLOv9 y ejecutar inferencias de forma sencilla. Para consultar la documentación completa de estos y otros modos, visita las páginas de documentación de Predicción, Entrenamiento, Validación y Exportación.
Se pueden pasar modelos *.pt preentrenados de PyTorch, así como archivos de configuración *.yaml, a la clase YOLO() para crear una instancia del modelo en Python:
from ultralytics import YOLO
# Crea un modelo YOLOv9c desde cero
model = YOLO("yolov9c.yaml")
# Crea un modelo YOLOv9c a partir de pesos preentrenados
model = YOLO("yolov9c.pt")
# Mostrar información del modelo (opcional)
model.info()
# Entrena el modelo durante 100 épocas con el conjunto de datos de ejemplo COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Ejecuta una inferencia con el modelo YOLOv9c en la imagen 'bus.jpg'
results = model("path/to/bus.jpg")Tareas y modos compatibles#
La serie YOLOv9 ofrece diversos modelos, cada uno optimizado para la 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.
| Modelo | Nombres de archivo | Tareas | Entrenamiento | Validación | Inferencia | 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 ofrece un resumen detallado de las variantes del modelo YOLOv9 y destaca sus capacidades para las tareas de detección de objetos, así como su compatibilidad con distintos modos de funcionamiento, como la inferencia, la validación, el entrenamiento y la exportación. Esta compatibilidad integral garantiza que los usuarios puedan aprovechar plenamente las capacidades de los modelos YOLOv9 en una amplia variedad de escenarios de detección de objetos.
Entrenar modelos YOLOv9 requiere más recursos y lleva más tiempo que entrenar un modelo YOLOv8 de tamaño equivalente.
Citas y agradecimientos#
Queremos reconocer las importantes contribuciones de los autores de YOLOv9 al campo de la detección de objetos en tiempo real:
@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, y su prepublicación está disponible en arXiv. Los autores han publicado su trabajo y el código fuente puede consultarse en GitHub. Agradecemos sus esfuerzos por impulsar este campo y poner su trabajo al alcance de toda la comunidad.
Preguntas frecuentes#
YOLOv9 introduce técnicas revolucionarias, como la información de gradiente programable (PGI) y la red de agregación eficiente de capas generalizada (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 capas de la red, mientras que GELAN optimiza el uso de parámetros y la eficiencia computacional. Descubre más sobre las principales innovaciones de YOLOv9, que establecen nuevos referentes en el conjunto de datos MS COCO.
YOLOv9 supera a los detectores de objetos en tiempo real más avanzados gracias a su mayor precisión y eficiencia. En el conjunto de datos COCO, los modelos YOLOv9 obtienen puntuaciones mAP superiores en distintos tamaños y 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 recursos computacionales que YOLOv7 AF. Consulta las comparativas de rendimiento para ver las métricas detalladas.
Puedes entrenar un modelo YOLOv9 tanto con Python como con comandos de la CLI. En Python, crea una instancia del modelo con la clase
YOLOy llama al métodotrain:from ultralytics import YOLO # Crea un modelo YOLOv9c a partir de pesos preentrenados y entrénalo model = YOLO("yolov9c.pt") results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Para entrenarlo con la CLI, ejecuta:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Descubre más ejemplos de uso para el entrenamiento y la inferencia.
YOLOv9 está diseñado para mitigar la pérdida de información, algo especialmente importante en los modelos ligeros, que suelen perder información significativa. Al integrar 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 idóneo 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, como la detección de objetos y la segmentación de instancias. Es compatible con varios modos de funcionamiento, como inferencia, validación, entrenamiento y exportación. Esta versatilidad permite adaptar YOLOv9 a distintas aplicaciones de visión artificial en tiempo real. Consulta la sección de tareas y modos compatibles para obtener más información.