YOLOv7 vs YOLOv10: Evolución arquitectónica y análisis de rendimiento
La evolución de la familia YOLO (You Only Look Once) representa una fascinante línea de tiempo de los avances en visión artificial, equilibrando la eterna compensación entre la velocidad de inferencia y la precisión de la detección. Esta comparación profundiza en dos hitos importantes: YOLOv7, un modelo robusto que estableció nuevos puntos de referencia en 2022, y YOLOv10, un lanzamiento de 2024 que introduce un cambio de paradigma con el entrenamiento sin NMS.
Si bien ambos modelos son excelentes opciones para la detección de objetos, se adaptan a diferentes filosofías arquitectónicas. YOLOv7 supera los límites de la "bolsa de trucos" entrenable y la optimización de la ruta de gradiente, mientras que YOLOv10 se centra en eliminar los cuellos de botella del post-procesamiento para lograr una eficiencia integral en tiempo real.
YOLOv7: optimización de la ruta del gradiente
Lanzado en julio de 2022, YOLOv7 introdujo cambios arquitectónicos significativos centrados en optimizar el proceso de entrenamiento sin aumentar los costes de inferencia. Rápidamente se convirtió en uno de los favoritos para tareas de visión artificial de propósito general debido a su alta precisión en el conjunto de datos COCO.
Autores: Chien-Yao Wang, Alexey Bochkovskiy y Hong-Yuan Mark Liao
Organización: Instituto de Ciencias de la Información, Academia Sinica, Taiwán
Fecha: 2022-07-06
ArXiv:YOLOv7: El conjunto de trucos entrenables gratuitos establece un nuevo estado del arte para los detectores de objetos en tiempo real
GitHub:WongKinYiu/yolov7
Características arquitectónicas clave
YOLOv7 introdujo la Extended Efficient Layer Aggregation Network (E-ELAN). Esta arquitectura permite al modelo aprender características más diversas controlando las rutas de gradiente más cortas y más largas, garantizando que la red converja eficazmente durante el entrenamiento.
Además, YOLOv7 utiliza en gran medida "Bag-of-Freebies", métodos que mejoran la precisión durante el entrenamiento sin aumentar el coste de la inferencia. Estos incluyen la re-parametrización del modelo, donde una estructura de entrenamiento compleja se simplifica en una estructura de inferencia optimizada, reduciendo la latencia mientras se mantiene el rendimiento aprendido.
YOLOv10: El fin de NMS
YOLOv10, lanzado en mayo de 2024 por investigadores de la Universidad de Tsinghua, aborda un cuello de botella de larga data en la detección de objetos: la Supresión No Máxima (NMS). Los modelos YOLO tradicionales predicen múltiples cuadros delimitadores para un solo objeto y se basan en NMS para filtrar los duplicados. Este paso de post-procesamiento añade latencia que varía dependiendo del número de objetos en la escena.
Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
Organización: Tsinghua University
Fecha: 2024-05-23
ArXiv:YOLOv10: Detección de objetos end-to-end en tiempo real
GitHub:THU-MIG/yolov10
Características arquitectónicas clave
YOLOv10 introduce una estrategia de Asignación Dual Consistente. Durante el entrenamiento, el modelo utiliza tanto un encabezado de uno a muchos (para una supervisión enriquecida) como un encabezado de uno a uno (para la predicción de extremo a extremo). Durante la inferencia, solo se utiliza el encabezado de uno a uno, lo que elimina por completo la necesidad de NMS. Esto da como resultado una inferencia predecible y de baja latencia, lo que lo hace muy adecuado para aplicaciones de edge AI donde el tiempo de procesamiento debe ser constante.
Comparación Técnica: Arquitectura y Rendimiento
La principal diferencia entre estos modelos radica en su enfoque de la eficiencia de la inferencia. YOLOv7 se basa en un backbone (E-ELAN) altamente optimizado para extraer características de manera eficiente, pero aún requiere un post-procesamiento tradicional. YOLOv10 modifica el encabezado de detección fundamental para eliminar los pasos de post-procesamiento, logrando una menor latencia para niveles de precisión similares.
Métricas de rendimiento
Como se ilustra en la tabla siguiente, YOLOv10 demuestra una eficiencia superior. Por ejemplo, YOLOv10b alcanza una mAP más alta (52,7%) que YOLOv7l (51,4%) al tiempo que utiliza significativamente menos parámetros (24,4M frente a 36,9M) y operaciones de punto flotante (FLOPs).
Comprensión de la latencia
Las métricas de "Velocidad" resaltan el impacto del diseño sin NMS de YOLOv10. Al eliminar el paso NMS, YOLOv10 reduce la sobrecarga computacional durante la inferencia, lo cual es particularmente beneficioso en aceleradores de hardware como TensorRT, donde el post-procesamiento puede convertirse en un cuello de botella.
| 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 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
Fortalezas y Debilidades
Puntos fuertes de YOLOv7:
- Solidez comprobada: Ampliamente probado en diversos entornos académicos e industriales desde 2022.
- Soporte de alta resolución: Excelente rendimiento en entradas de mayor resolución (por ejemplo, 1280 píxeles) a través de variantes específicas W6/E6.
- Recursos de la comunidad: Existe un gran volumen de tutoriales e implementaciones de terceros debido a su antigüedad.
Debilidades de YOLOv7:
- Complejidad: La reparametrización y la estructura de la cabeza auxiliar pueden complicar el pipeline de entrenamiento en comparación con los modelos Ultralytics modernos.
- Dependencia de NMS: La velocidad de inferencia depende parcialmente de la densidad de la escena debido a NMS.
Puntos fuertes de YOLOv10:
- Latencia más baja: La arquitectura sin NMS permite una inferencia extremadamente rápida, ideal para la inferencia en tiempo real.
- Eficiencia: Alcanza una precisión de última generación con menos parámetros y un menor uso de memoria.
- Facilidad de Implementación: Eliminar el paso de NMS simplifica el proceso de exportación a formatos como ONNX y TensorRT.
Debilidades de YOLOv10:
- Especificidad de la Tarea: se centra principalmente en la detección de objetos, mientras que otros modelos en el ecosistema de Ultralytics (como YOLO11) admiten de forma nativa la segmentación, la estimación de poses y OBB en un marco unificado.
Casos de Uso Ideales
La elección entre YOLOv7 y YOLOv10 a menudo depende de las limitaciones específicas del entorno de implementación.
- Usar YOLOv7 si: Estás trabajando en un proyecto heredado que ya integra la arquitectura v7, o si requieres variantes específicas de alta resolución (como YOLOv7-w6) para la detección de objetos pequeños en imágenes grandes donde la velocidad de inferencia es secundaria a la precisión bruta.
- Usar YOLOv10 si: Estás implementando en dispositivos de borde con recursos limitados (Raspberry Pi, Jetson Nano, teléfonos móviles) o requieres una latencia mínima absoluta para aplicaciones como la conducción autónoma o la robótica de alta velocidad. La menor huella de memoria también hace que sea más barato de ejecutar en entornos de nube.
La ventaja de Ultralytics
Ya sea que elija YOLOv7 o YOLOv10, utilizarlos a través de la API de python de Ultralytics proporciona ventajas significativas sobre el uso del código del repositorio sin procesar. Ultralytics ha integrado estos modelos en un ecosistema unificado que prioriza la facilidad de uso, la eficiencia del entrenamiento y la versatilidad.
Experiencia de Usuario Optimizada
Históricamente, el entrenamiento de modelos complejos de aprendizaje profundo requería la gestión de intrincados archivos de configuración y dependencias. El framework de Ultralytics estandariza este proceso. Los desarrolladores pueden intercambiar arquitecturas (por ejemplo, de YOLOv10n a YOLOv10s o incluso a YOLO11) cambiando un único argumento de cadena, sin reescribir los cargadores de datos o los scripts de validación.
Ejemplo de código
El siguiente ejemplo demuestra cómo cargar y predecir con estos modelos utilizando el paquete Ultralytics. Observe cómo la API sigue siendo coherente independientemente de la arquitectura del modelo subyacente.
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model (NMS-free)
model_v10 = YOLO("yolov10n.pt")
# Load a pre-trained YOLOv7 model
model_v7 = YOLO("yolov7.pt")
# Run inference on an image
# The API handles underlying differences automatically
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v7 = model_v7("https://ultralytics.com/images/bus.jpg")
# Print results
for result in results_v10:
result.show() # Display predictions
Ecosistema y preparación para el futuro
Si bien YOLOv7 y YOLOv10 son potentes, el ecosistema de Ultralytics está en continua evolución. El último modelo YOLO11 se basa en las lecciones aprendidas tanto de v7 (agregación de características) como de v10 (eficiencia).
- Bien mantenido: Las actualizaciones frecuentes garantizan la compatibilidad con las últimas versiones de PyTorch, CUDA y formatos de exportación (CoreML, ONNX, TensorRT).
- Eficiencia de memoria: Los modelos de Ultralytics están diseñados para minimizar el uso de VRAM de la GPU durante el entrenamiento, lo que permite tamaños de lote más grandes en hardware de consumo en comparación con muchas alternativas basadas en transformadores (como RT-DETR).
- Eficiencia en el entrenamiento: Con hiperparámetros preajustados y escaneo de conjuntos de datos "inteligente", la convergencia del entrenamiento suele ser más rápida, lo que ahorra costes de computación.
Para los desarrolladores que comienzan nuevos proyectos hoy, se recomienda encarecidamente explorar YOLO11, ya que ofrece un equilibrio refinado de la velocidad observada en YOLOv10 y la robusta extracción de características de sus predecesores, junto con soporte nativo para tareas más allá de la simple detect, como la segmentación de instancias y la estimación de pose.
Explorar Otros Modelos
Si le interesan más comparaciones o diferentes arquitecturas, considere estos recursos:
- YOLO11 vs YOLOv8 - Compara los últimos modelos de última generación.
- RT-DETR vs YOLOv10 - Detección basada en transformadores frente a eficiencia basada en CNN.
- YOLOv9 vs YOLOv10 - Examinando la información de gradiente programable (PGI) frente a los diseños sin NMS.