Ir al contenido

Comparación de modelos: YOLOv7 vs. YOLOv8 para la detección de objetos

En el panorama de la visión artificial, que evoluciona rápidamente, la familia de modelos "You Only Look Once" (YOLO) ha establecido sistemáticamente el estándar para la detección de objetos en tiempo real. Dos hitos importantes en este linaje son YOLOv7 y Ultralytics YOLOv8. Si bien ambos modelos superaron los límites de la precisión y la velocidad tras su lanzamiento, representan diferentes filosofías de diseño y madurez del ecosistema.

Esta guía proporciona una comparación técnica detallada para ayudar a los desarrolladores e investigadores a elegir la herramienta adecuada para sus necesidades específicas, que van desde la investigación académica hasta la implementación de grado de producción.

Comparación de métricas de rendimiento

La siguiente tabla presenta una comparación directa de las métricas de rendimiento entre los modelos clave YOLOv7 e YOLOv8. YOLOv8 demuestra una ventaja significativa en la velocidad de inferencia y un recuento de parámetros favorable, particularmente en las variantes de modelos más pequeños que son críticos para las aplicaciones de edge AI.

Modelotamaño
(píxeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
parámetros
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

YOLOv7: la evolución del "Bag-of-Freebies"

Lanzado en julio de 2022, YOLOv7 fue desarrollado principalmente por los autores de YOLOv4 e YOLOR. Introdujo varias innovaciones arquitectónicas destinadas a optimizar el proceso de entrenamiento sin aumentar los costes de inferencia, un concepto denominado "trainable bag-of-freebies".

  • 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
  • Enlaces:Artículo de Arxiv | Repositorio de GitHub

Características arquitectónicas clave

YOLOv7 introdujo la Extended Efficient Layer Aggregation Network (E-ELAN). Esta arquitectura controla las rutas de gradiente más cortas y más largas para permitir que la red aprenda características más diversas. Además, utilizó técnicas de escalado de modelos que modifican la profundidad y la anchura de la arquitectura simultáneamente, garantizando un rendimiento óptimo en diferentes tamaños.

A pesar de sus impresionantes benchmarks en el lanzamiento, YOLOv7 se centra principalmente en la detección de objetos, con menos soporte integrado para otras tareas en comparación con frameworks más nuevos.

Más información sobre YOLOv7

Ultralytics YOLOv8: Framework unificado y arquitectura moderna

Lanzado a principios de 2023 por Ultralytics, YOLOv8 representó una revisión importante de la arquitectura YOLO. Fue diseñado no solo como un modelo, sino como un marco unificado capaz de realizar detection, segmentation de instancias, estimación de pose y clasificación sin problemas.

Innovaciones Arquitectónicas

YOLOv8 se alejó de la detección basada en anclajes utilizada en versiones anteriores (incluyendo YOLOv7) para un mecanismo de detector sin anclajes. Este cambio simplifica el proceso de entrenamiento al eliminar la necesidad de calcular cuadros de anclaje, lo que hace que el modelo sea más robusto a las variaciones en la forma y el tamaño del objeto.

El backbone se actualizó para usar módulos C2f (Cross-Stage Partial Bottleneck con dos convoluciones), que reemplazan los módulos C3 de YOLOv5. Este cambio mejora el flujo de gradiente y permite que el modelo siga siendo ligero al tiempo que captura información de características más rica.

Más información sobre YOLOv8

Comparación Técnica Detallada

Basado en anclajes frente a sin anclajes

Una de las diferencias más definitorias es el encabezado de detección. YOLOv7 se basa en cuadros de anclaje: formas predefinidas que el modelo intenta hacer coincidir con los objetos. Si bien es eficaz, esto requiere el ajuste de hiperparámetros para conjuntos de datos personalizados.

Por el contrario, YOLOv8 utiliza un enfoque sin anclajes, prediciendo directamente el centro de un objeto. Esto reduce el número de predicciones de cuadros, acelerando la supresión no máxima (NMS) y facilitando el entrenamiento del modelo en datos diversos sin configuración manual de anclajes.

Eficiencia del entrenamiento y uso de la memoria

Los modelos de Ultralytics son famosos por su eficiencia de ingeniería. YOLOv8 utiliza una estrategia inteligente de aumento de datos que desactiva el aumento de mosaico durante las épocas finales del entrenamiento. Esta técnica estabiliza la pérdida de entrenamiento y mejora la precisión.

Eficiencia de Memoria

Una ventaja significativa de Ultralytics YOLOv8 sobre arquitecturas complejas como los transformadores (por ejemplo, RT-DETR) es su menor requerimiento de memoria CUDA. Esto permite a los usuarios entrenar tamaños de lote más grandes en las GPU de consumo, democratizando el acceso al entrenamiento de modelos de última generación.

Ecosistema y facilidad de uso

Si bien YOLOv7 es un repositorio de investigación potente, Ultralytics YOLOv8 ofrece una experiencia de producto pulida. El ecosistema de Ultralytics proporciona:

  1. API optimizada: Una interfaz de python consistente para todas las tareas.
  2. Implementación: Exportación con un solo clic a formatos como ONNX, TensorRT, CoreML y TFLite a través del modo de exportación.
  3. Soporte de la comunidad: Una activa comunidad de Discord y actualizaciones frecuentes que garantizan la compatibilidad con las últimas versiones de PyTorch.

Comparación de código

La brecha de usabilidad es evidente al comparar el código requerido para ejecutar la inferencia. Ultralytics prioriza un enfoque de bajo código, lo que permite a los desarrolladores integrar la IA de visión en las aplicaciones con una sobrecarga mínima.

Ejecutando YOLOv8 con Python

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Display the results
for result in results:
    result.show()

Implementación de la CLI

YOLOv8 también se puede ejecutar directamente desde la línea de comandos, una característica que simplifica la integración de la pipeline y las pruebas rápidas.

# Detect objects in an image using the nano model
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg' imgsz=640

Casos de Uso Ideales

Cuándo usar YOLOv7

YOLOv7 sigue siendo una opción viable para los investigadores que realizan pruebas comparativas con los estándares de 2022/2023 o que mantienen sistemas heredados construidos específicamente en torno a la arquitectura de estilo Darknet. Su enfoque de "bag-of-freebies" (conjunto de trucos) ofrece información interesante para aquellos que estudian las estrategias de optimización de redes neuronales.

Cuándo usar YOLOv8

YOLOv8 es la opción recomendada para la gran mayoría de los proyectos nuevos, incluidos:

  • Aplicaciones en tiempo real: El modelo YOLOv8n (nano) ofrece velocidades increíbles (aprox. 80 ms en la CPU), lo que lo hace perfecto para aplicaciones móviles y sistemas integrados.
  • Pipelines Multi-Tarea: Los proyectos que requieren estimación de pose o segmentación junto con la detection pueden usar una única API.
  • Implementación comercial: La sólida compatibilidad de exportación garantiza que los modelos entrenados en PyTorch se puedan implementar de manera eficiente en entornos de producción utilizando TensorRT u OpenVINO.

Conclusión

Si bien YOLOv7 hizo contribuciones significativas al campo de la visión artificial al optimizar los parámetros entrenables, Ultralytics YOLOv8 representa el estándar moderno para el desarrollo práctico de la IA.

El equilibrio superior de velocidad y precisión de YOLOv8, combinado con un diseño sin anclajes y el amplio ecosistema de soporte de Ultralytics, lo hace más accesible para los principiantes y más potente para los expertos. Para los desarrolladores que buscan construir aplicaciones de visión escalables, mantenibles y de alto rendimiento, YOLOv8—y sus sucesores como YOLO11—ofrecen el camino más convincente a seguir.

Lecturas adicionales

Para aquellos interesados en explorar los últimos avances en la detección de objetos, consideren revisar estos modelos relacionados:

  • YOLO11: La última iteración de Ultralytics, que refina la arquitectura para una eficiencia aún mayor.
  • YOLOv6: Otro modelo sin anclajes centrado en aplicaciones industriales.
  • YOLOv9: Se centra en la información de gradiente programable (PGI) para el entrenamiento de redes profundas.

Comentarios