YOLOv7 frente a YOLOv9#
El panorama de la detección de objetos en tiempo real ha evolucionado rápidamente, y cada nueva iteración amplía los límites de lo posible tanto en dispositivos periféricos como en servidores en la nube. Al evaluar arquitecturas para proyectos de visión artificial, los desarrolladores suelen comparar benchmarks consolidados con innovaciones más recientes. Esta guía exhaustiva compara dos hitos fundamentales de la familia YOLO: YOLOv7 y YOLOv9.
Analizaremos sus avances arquitectónicos, métricas de rendimiento y escenarios de implementación ideales para ayudarte a elegir el modelo adecuado para tu aplicación. También veremos cómo la plataforma Ultralytics unifica estos modelos, facilitando su entrenamiento, validación e implementación.
Linaje de los modelos y especificaciones técnicas#
Comprender los orígenes y las filosofías de diseño de estos modelos proporciona un contexto esencial para sus capacidades. Ambos modelos comparten un linaje de investigación, pero abordan cuellos de botella arquitectónicos diferentes.
YOLOv7: pionero de las técnicas gratuitas#
Lanzado a mediados de 2022, YOLOv7 se consolidó como una arquitectura muy fiable y altamente optimizada. Introdujo la reparametrización estructural y un enfoque de «bag of freebies» entrenable para mantener altas velocidades de inferencia sin comprometer la precisión media promedio (mAP).
- Autores: Chien-Yao Wang, Alexey Bochkovskiy y Hong-Yuan Mark Liao
- Organización: Institute of Information Science, Academia Sinica, Taiwan
- Fecha: 6 de julio de 2022
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Innovaciones arquitectónicas: YOLOv7 incorpora la red extendida de agregación eficiente de capas (E-ELAN), que permite al modelo aprender características más diversas mediante la expansión, reorganización y combinación de la cardinalidad. Este diseño da como resultado un uso excelente de la GPU y una latencia de inferencia reducida. Sin embargo, puede requerir una cantidad considerable de memoria durante ejecuciones de entrenamiento complejas en comparación con las iteraciones modernas.
YOLOv9: resolviendo el cuello de botella de información#
Presentado a principios de 2024 por el mismo equipo de investigación, YOLOv9 aborda el «cuello de botella de información» inherente a las redes neuronales profundas. A medida que los datos atraviesan capas profundas, a menudo se pierden detalles cruciales. YOLOv9 mitiga este problema mediante diseños de capas fundamentalmente nuevos.
- Autores: Chien-Yao Wang y Hong-Yuan Mark Liao
- Organización: Institute of Information Science, Academia Sinica, Taiwan
- Fecha: 21 de febrero de 2024
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Innovaciones arquitectónicas: YOLOv9 introduce la información de gradiente programable (PGI) y la red generalizada de agregación eficiente de capas (GELAN). PGI garantiza que los gradientes fiables se conserven y se retropropaguen para actualizar los pesos con precisión. GELAN maximiza la eficiencia de los parámetros, lo que permite a YOLOv9 alcanzar una alta precisión con muchos menos FLOPs que sus predecesores.
Análisis del rendimiento#
Al elegir entre arquitecturas, los ingenieros de IA deben equilibrar la precisión, la velocidad de inferencia y el coste computacional. La tabla siguiente destaca las diferencias de rendimiento entre estos modelos en el conjunto de datos COCO estándar.
| Modelo | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad T4 TensorRT10 (ms) | parámetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Conclusiones clave#
- Eficiencia de los parámetros: YOLOv9m iguala la precisión de YOLOv7l (51,4 % de mAP) utilizando casi un 45 % menos de parámetros (20,0 M frente a 36,9 M). Esta drástica reducción facilita mucho la implementación de YOLOv9m en dispositivos de IA periférica con memoria limitada.
- Implementaciones compactas: La introducción de la variante YOLOv9t (tiny) proporciona velocidades extraordinarias (2,3 ms en T4 TensorRT) para entornos en los que las restricciones de tiempo real son absolutas.
- Máxima precisión: Para aplicaciones en las que la precisión es primordial, YOLOv9e eleva la precisión de detección hasta el 55,6 % de mAP, superando ampliamente a YOLOv7x.
Aunque YOLOv7 y YOLOv9 son potentes, el recién lanzado YOLO26 representa el salto definitivo hacia delante. YOLO26 introduce un diseño nativo de extremo a extremo sin NMS, que elimina el posprocesamiento complejo y aumenta hasta un 43 % la velocidad de inferencia en CPU. Gracias al nuevo optimizador MuSGD y a las funciones de pérdida mejoradas ProgLoss + STAL, YOLO26 ofrece una estabilidad de entrenamiento y una precisión de detección de objetos pequeños incomparables.
La ventaja de Ultralytics#
Elegir una arquitectura de modelo es solo el primer paso. El ecosistema de software que rodea al modelo determina la rapidez con la que puedes pasar del prototipo a producción. Integrar estos modelos mediante la API de Python de Ultralytics ofrece importantes ventajas a desarrolladores e investigadores.
Facilidad de uso y eficiencia del entrenamiento#
Históricamente, entrenar YOLOv7 requería una preparación de datos compleja y scripts muy personalizados. El framework de Ultralytics abstrae estas complejidades del aprendizaje profundo. Los desarrolladores pueden cambiar fácilmente de arquitectura, experimentar con el ajuste de hiperparámetros y utilizar pipelines inteligentes de aumento de datos con un mínimo de código.
Además, Ultralytics optimiza el uso de memoria durante el entrenamiento y la inferencia. A diferencia de los pesados modelos Transformer, como RT-DETR, las arquitecturas YOLO de Ultralytics se entrenan considerablemente más rápido y requieren mucha menos memoria CUDA, lo que las hace ideales para GPU de consumo.
Ejemplo de código: entrenamiento simplificado#
Entrenar modelos de última generación es muy sencillo dentro del ecosistema de Ultralytics. Aquí tienes un ejemplo totalmente ejecutable que muestra cómo entrenar y validar un modelo YOLOv9:
from ultralytics import YOLO
# Initialize the model (you can swap 'yolov9c.pt' with 'yolov7.pt' or 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 sample dataset
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Use GPU 0 if available
batch=16, # Optimized batch size for memory efficiency
)
# Validate the model's performance on the validation set
metrics = model.val()
# Export the trained model to ONNX format for deployment
model.export(format="onnx")Versatilidad incomparable en distintas tareas#
Un ecosistema bien mantenido ofrece acceso a diversas tareas de visión artificial. Aunque YOLOv7 se creó principalmente para la detección de objetos (con bifurcaciones experimentales posteriores para otras tareas), los modelos modernos de Ultralytics se han diseñado de forma nativa para ofrecer versatilidad. De forma inmediata, puedes realizar segmentación de instancias, estimación de poses, clasificación de imágenes y detección de cajas delimitadoras orientadas (OBB) sin complicaciones.
Casos de uso y aplicaciones ideales#
La decisión entre YOLOv7 y YOLOv9 suele depender de las limitaciones específicas de tu sector y de la disponibilidad de hardware.
Cuándo utilizar YOLOv7#
- Implementaciones periféricas heredadas: Para entornos de hardware ya ampliamente ajustados y optimizados para la arquitectura E-ELAN de YOLOv7, sigue siendo una opción sólida para el IoT industrial.
- Monitorización del tráfico: Las altas tasas de fotogramas y la estabilidad demostrada de YOLOv7 lo convierten en una opción excelente para infraestructuras de ciudades inteligentes y la gestión del tráfico en tiempo real.
- Integración en robótica: Navegar por entornos dinámicos requiere un procesamiento de baja latencia, un escenario en el que las variantes de YOLOv7 se han probado ampliamente.
Cuándo utilizar YOLOv9#
- Imagen médica: La arquitectura PGI de YOLOv9 es excepcional a la hora de conservar detalles precisos a través de capas profundas, algo fundamental al analizar tareas complejas de análisis de imágenes médicas, como la detección de tumores.
- Analítica minorista de alta densidad: Para realizar el seguimiento y el recuento de artículos muy juntos en estanterías comerciales, la integración de características de YOLOv9 proporciona una precisión superior y reduce los falsos negativos.
- Imágenes aéreas y de drones: La eficiencia de los parámetros de YOLOv9m permite procesar imágenes de alta resolución en drones, lo que contribuye a la conservación de la fauna y a la monitorización agrícola sin agotar la batería.
Conclusión#
Tanto YOLOv7 como YOLOv9 se han consolidado en la historia de la visión artificial. YOLOv7 introdujo optimizaciones esenciales para el procesamiento en tiempo real, mientras que YOLOv9 abordó los cuellos de botella estructurales del aprendizaje profundo para maximizar la eficiencia de los parámetros.
Sin embargo, para los desarrolladores que empiezan hoy nuevos proyectos, aprovechar el ecosistema de Ultralytics —concretamente modelos de nueva generación como YOLO11 y YOLO26— ofrece el equilibrio más favorable entre velocidad, precisión y experiencia de desarrollo. Con innovaciones como el optimizador MuSGD y la eliminación de la pérdida focal de distribución (DFL) para una mayor compatibilidad de hardware, Ultralytics sigue proporcionando las herramientas más accesibles y potentes para los profesionales de la IA aplicada a la visión.