YOLOv7 YOLOv8: evolución de la detección de objetos en tiempo real
El panorama de la visión artificial se caracteriza por rápidas iteraciones y avances arquitectónicos. Dos de los hitos más significativos de esta historia son YOLOv7, lanzado a mediados de 2022, y YOLOv8, lanzado por Ultralytics principios Ultralytics 2023. Aunque ambos modelos impulsaron la vanguardia tecnológica (SOTA) en el momento de su lanzamiento, representan filosofías diferentes en cuanto al diseño de modelos y la experiencia de los desarrolladores.
YOLOv7 un punto álgido en la optimización del enfoque «bag-of-freebies» para los detectores basados en anclajes, centrándose intensamente en estrategias de arquitectura entrenables. Por el contrario, YOLOv8 un enfoque de ecosistema centrado en el usuario, pasando a una arquitectura sin anclajes que daba prioridad a la facilidad de uso, la implementación de modelos y el soporte unificado para diversas tareas, como la segmentación y la estimación de poses.
Comparación de rendimiento
La siguiente tabla ilustra las métricas de rendimiento de YOLOv8 YOLOv7 YOLOv8 . YOLOv8 una eficiencia superior, especialmente en cuanto al recuento de parámetros y FLOP, al tiempo que mantiene o supera la precisión (mAP) de su predecesor.
| 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 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
YOLOv7: El motor basado en anclajes
Lanzado en julio de 2022, YOLOv7 diseñado para superar los límites de la velocidad y precisión de la detección de objetos en tiempo real. Introdujo varias innovaciones arquitectónicas destinadas a optimizar la ruta de propagación del gradiente.
- 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
- Artículo:YOLOv7: El conjunto de bolsas de regalos entrenables establece un nuevo estándar de vanguardia.
- Repositorio:GitHub
Características arquitectónicas clave
YOLOv7 la Red de Agregación de Capas Eficiente Extendida (E-ELAN). Esta arquitectura permite al modelo aprender características más diversas mediante el control de las rutas de gradiente más cortas y más largas, lo que garantiza que la red converge de manera eficaz sin destruir el flujo de gradiente.
También utilizó el escalado de modelos basado en concatenación, que ajusta la profundidad y la anchura de los bloques simultáneamente. Aunque eficaz, esta arquitectura se basa en cuadros de anclaje, lo que requiere el cálculo de anclajes óptimos para conjuntos de datos personalizados a fin de lograr el máximo rendimiento. Esto añade una capa de complejidad al proceso de entrenamiento en comparación con los nuevos enfoques sin anclajes.
Complejidad del Entrenamiento
YOLOv7 requerir una estructura de repositorio específica orientada a la investigación y la gestión manual de cabezales auxiliares durante el entrenamiento. Los usuarios a menudo deben ajustar manualmente los hiperparámetros para que «bag-of-freebies» (como MixUp Mosaic) funcionen correctamente en conjuntos de datos más pequeños.
YOLOv8: Ecosistema unificado y diseño sin anclajes
Ultralytics YOLOv8 un cambio de paradigma, pasando de ser una herramienta de investigación pura a un marco de trabajo de nivel empresarial. Simplificó todo el ciclo de vida del aprendizaje automático, desde la anotación de datos hasta la implementación.
- Autores: Glenn Jocher, Ayush Chaurasia y Jing Qiu
- Organización:Ultralytics
- Fecha: 2023-01-10
- Documentación:Documentación de YOLOv8
Innovaciones Arquitectónicas
YOLOv8 un modelo de última generación sin anclajes. Al eliminar la necesidad de cuadros de anclaje predefinidos, YOLOv8 el cabezal de detección y mejora la generalización en objetos con formas o relaciones de aspecto inusuales.
- Módulo C2f: Sustituyendo al módulo C3 de generaciones anteriores, el módulo C2f (inspirado en ELAN) combina características de alto nivel con información contextual para mejorar el flujo de gradiente sin dejar de ser ligero.
- Cabezal desacoplado: YOLOv8 las tareas de objetividad, clasificación y regresión en diferentes ramas. Esta separación permite que el modelo converja más rápido y con mayor precisión.
- Versatilidad de tareas: a diferencia de YOLOv7, que es principalmente un modelo de detección, YOLOv8 admite YOLOv8 la clasificación de imágenes, la estimación de poses, los cuadros delimitadores orientados (OBB) y la segmentación de instancias.
Comparación detallada: por qué los desarrolladores eligen Ultralytics
Aunque YOLOv7 un modelo eficaz, el Ultralytics que rodea a YOLOv8 y al más reciente YOLO26) ofrece ventajas claras para desarrolladores e investigadores.
1. Facilidad de uso y ecosistema
YOLOv7 distribuye principalmente como un repositorio de investigación. Para entrenarlo, a menudo es necesario clonar un repositorio específico de GitHub, organizar las carpetas en una estructura rígida y ejecutar complejas CLI .
Por el contrario, Ultralytics están disponibles como un Python estándar Python (pip install ultralytics). El Ultralytics Platform simplifica aún más este proceso al proporcionar una interfaz gráfica para la gestión de conjuntos de datos y la supervisión del entrenamiento. Esta experiencia «de cero a héroe» reduce significativamente la barrera de entrada para el desarrollo de la IA.
2. Eficiencia de entrenamiento y memoria
Uno de los factores más críticos en la IA moderna es la utilización de recursos. Los modelos basados en transformadores suelen requerir grandes cantidades de CUDA y tardan días en entrenarse.YOLO Ultralytics están optimizados para la eficiencia del entrenamiento.
YOLOv8 el aumento de mosaico de forma dinámica, desactivándolo en las últimas épocas para aumentar la precisión. Esto, combinado con un cargador de datos optimizado, permite a los usuarios ejecutar lotes de mayor tamaño en GPU de consumo en comparación con YOLOv7 alternativas basadas en transformadores como RT-DETR.
3. Implementación y exportación
Trasladar un modelo desde un PyTorch a un dispositivo de producción suele ser la parte más difícil del proceso. YOLOv8 esta tarea con un modo de exportación unificado.
Con una sola línea de código, los desarrolladores pueden exportar YOLOv8 :
- ONNX para compatibilidad genérica entre plataformas.
- TensorRT para obtener la máxima velocidad de inferencia en NVIDIA .
- CoreML para su integración en aplicaciones iOS macOS.
- TFLite para implementación móvil y periférica en Android Raspberry Pi.
Ejemplo de exportación
La exportación de un YOLOv8 se realiza sin problemas a través de la Python :
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
model.export(format="onnx", opset=12)
Ejemplo de código: La API unificada
Python Ultralytics le permite cambiar entre arquitecturas de modelos sin esfuerzo. Puede cargar un YOLOv8 o un YOLOv7 (compatible con versiones anteriores) utilizando la misma interfaz.
from ultralytics import YOLO
# Load the latest YOLOv8 Nano model for efficiency
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
# The API handles dataset downloading and configuration automatically
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference on a sample image
# Returns a list of Results objects containing boxes, masks, or keypoints
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()
# NOTE: You can also load YOLOv7 weights using the same API
# model_v7 = YOLO("yolov7.pt")
Casos de Uso Ideales
Cuándo usar YOLOv7
- Benchmarking heredado: si está reproduciendo artículos académicos de 2022/2023 que comparan específicamente con la arquitectura E-ELAN.
- Entradas específicas de alta resolución: El
yolov7-w6Las variantes se ajustaron específicamente para entradas de 1280 píxeles, aunque Ultralytics modernos Ultralytics ahora admiten Resoluciones P6/1280 de forma nativa.
Cuándo usar YOLOv8
- Computación periférica: Modelos como
yolov8nson perfectos para funcionando en Raspberry Pi o Jetson Nano debido a su bajo número de parámetros y alta velocidad. - Aplicaciones multitarea: si su aplicación requiere rastrear personas e identificar simultáneamente su postura (esqueletos), la estimación de postura nativa YOLOv8 es la opción ideal.
- Automatización industrial: para líneas de fabricación de alto rendimiento en las que la latencia es fundamental, la facilidad de exportación a TensorRT hace que YOLOv8 .
- Prototipado rápido: la Ultralytics permite a los equipos iterar rápidamente sobre conjuntos de datos y modelos sin tener que gestionar una infraestructura compleja.
Mirando hacia el futuro: El poder de YOLO26
Si bien la comparación con YOLOv7 las fortalezas de YOLOv8, el campo ha seguido evolucionando. Para los desarrolladores que comienzan nuevos proyectos hoy en día, YOLO26 representa la cúspide de esta evolución.
YOLO26 se basa en la facilidad de uso de YOLOv8 introduce un diseño integral NMS. Al eliminar el posprocesamiento de supresión no máxima (NMS), YOLO26 logra una lógica de implementación significativamente más simple y una latencia más baja en escenas complejas. También cuenta con el optimizador MuSGD, inspirado en las técnicas de entrenamiento de modelos de lenguaje grandes (LLM), lo que garantiza una convergencia aún más estable durante el entrenamiento.
Además, con la eliminación de la pérdida focal de distribución (DFL), YOLO26 es hasta un 43 % más rápido en la inferencia CPU, lo que lo convierte en la opción definitiva para aplicaciones de IA de vanguardia en las que no se dispone de GPU. Para tareas especializadas, introduce mejoras específicas para cada tarea, como la estimación de la log-verosimilitud residual (RLE) para la pose y la pérdida de ángulo especializada para OBB.
Para obtener la solución más preparada para el futuro, eficiente y precisa, recomendamos consultar YOLO26.