YOLOv10 frente a YOLOv10: evolución de la detección de objetos en tiempo real
La serie You Only Look OnceYOLO) ha marcado el panorama de la detección de objetos. Desde su creación, YOLO ha equilibrado velocidad y precisión, convirtiéndose en la arquitectura de referencia para los desarrolladores de visión por ordenador. Esta comparativa explora dos momentos cruciales de esta historia: Ultralytics YOLOv5de Ultralytics, el estándar del sector por su fiabilidad y versatilidad, y YOLOv10un reciente lanzamiento académico de la Universidad de Tsinghua que introduce la detección NMS para mejorar la eficacia.
Resumen del modelo
Ultralytics YOLOv5
Publicado en junio de 2020 por Glenn Jocher y Ultralytics, YOLOv5 cambió radicalmente la forma de desplegar los modelos de IA. Dio prioridad a la facilidad de uso, la exportación a diversos formatosCoreML, ONNX, TFLite) y un rendimiento sólido en hardware de vanguardia. Sigue siendo uno de los modelos de visión más populares y utilizados en todo el mundo gracias a su filosofía de "simplemente funciona" y al amplio apoyo de la comunidad.
Autores principales: Glenn Jocher
Organización:Ultralytics
Fecha de publicación: 2020-06-26
GitHub:yolov5
YOLOv10
YOLOv10 , publicado en mayo de 2024 por investigadores de la Universidad de Tsinghua, pretende eliminar los cuellos de botella del postprocesamiento de las versiones anteriores. Al introducir asignaciones duales coherentes para el entrenamiento NMS, optimiza el proceso de inferencia, reduciendo la latencia y la sobrecarga computacional.
Autores principales: Ao Wang, Hui Chen, et al.
Organización: Tsinghua University
Fecha de publicación: 2024-05-23
arXiv:YOLOv10: Real-Time End-to-End Object Detection
Últimas innovaciones
Al tiempo que comparan estas sólidas arquitecturas, los desarrolladores que inician nuevos proyectos también deberían evaluar YOLO11. Se basa en los puntos fuertes de ambas, ofreciendo una precisión de vanguardia, una extracción de características mejorada y soporte nativo para diversas tareas como la estimación de la pose y la detección de objetos orientados.
Arquitectura e innovación técnica
Las diferencias arquitectónicas entre YOLOv5 y YOLOv10 ponen de manifiesto el paso de una fiabilidad madura, basada en anclajes, a una eficiencia vanguardista, sin anclajes.
YOLOv5: la norma basada en anclajes
YOLOv5 emplea una red troncal CSPNet (Cross Stage Partial Network) que equilibra la profundidad y la anchura del modelo para minimizar los FLOPS manteniendo la precisión. Se basa en cajas de anclaje,formas predefinidasque ayudan al modelo a predecir las dimensiones de los objetos.
- Red troncal: CSP-Darknet53 centrado en el flujo gradiente.
- Cabeza: Cabeza acoplada con predicción basada en anclajes.
- Post-procesamiento: Requiere supresión no máxima (NMS ) para filtrar las detecciones duplicadas.
YOLOv10: Eficiencia NMS
YOLOv10 presenta un diseño integral orientado a la eficiencia y la precisión. Su característica más destacada es la estrategia de entrenamientoNMS mediante asignaciones duales coherentes. Esto permite al modelo predecir exactamente un cuadro delimitador por objeto durante la inferencia, eliminando por completo el paso NMS que induce latencia.
- Espina dorsal: Mejorada con convoluciones de núcleo grande y autoatención parcial.
- Cabecera: Cabecera unificada que combina asignaciones de etiquetas uno a muchos y uno a uno.
- Optimización: Diseño de bloques guiado por rangos para reducir la redundancia.
Análisis de rendimiento
La siguiente tabla compara las métricas de rendimiento en el conjunto de datosCOCO . Mientras que YOLOv10 sigue siendo competitivo, sobre todo en velocidad de CPU para su variante Nano, YOLOv10 demuestra una eficacia superior en términos de parámetros y precisiónmAP).
| Modelo | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad T4 TensorRT10 (ms) | parámetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| 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 |
Desglose métrico
- Precisión (mAP): YOLOv10 muestra un salto significativo en la precisión media. Por ejemplo, YOLOv10n alcanza 39,5 mAP frente a los 28,0 mAP de YOLOv5n, lo que lo hace mucho más capaz de detectar objetos difíciles.
- Eficiencia: YOLOv10 consigue estos resultados con menos parámetros (2,3M frente a los 2,6M del modelo Nano), lo que demuestra las ventajas de su diseño arquitectónico optimizado.
- Velocidad de inferencia: YOLOv5n sigue siendo increíblemente rápido en CPU(73,6 ms), lo que es fundamental para dispositivos de borde GPU GPU como las antiguas unidades Raspberry Pi. Sin embargo, en hardware GPU TensorRT), YOLOv10 mantiene velocidades competitivas a pesar de su mayor precisión.
Fortalezas y Debilidades
Ultralytics YOLOv5
- Ecosistema inigualable: Respaldada por años de desarrollo, cuenta con una de las mayores comunidades activas. Los problemas se resuelven con rapidez y los recursos son abundantes.
- Versatilidad: Más allá de la detección, admite de forma nativa la segmentación y clasificación de imágenes.
- Facilidad de uso: La API está diseñada para la simplicidad. Cargar un modelo desde PyTorch Hub requiere una sola línea de código.
- Despliegue: La amplia compatibilidad con formatos de exportación garantiza su ejecución en todo tipo de dispositivos, desde teléfonos móviles hasta servidores en la nube.
YOLOv10
- Baja latencia: La eliminación de NMS reduce significativamente el tiempo de postprocesamiento, algo vital para las aplicaciones en tiempo real, donde cada milisegundo cuenta.
- Eficacia de los parámetros: Ofrece una mayor precisión por parámetro, lo que lo convierte en un firme candidato para dispositivos con almacenamiento o memoria limitados.
- Enfoque: Aunque potente, está especializado principalmente en la detección de objetos, careciendo de la amplitud multitarea nativa (como la estimación de la pose) que se encuentra en la serie Ultralytics YOLO (v8, 11).
Requisitos de memoria
Ambos modelos están diseñados para ser ligeros. A diferencia de los grandes modelos de transformadores, que consumen grandes cantidades de memoria CUDA durante el entrenamiento, los modelosYOLO Ultralytics están optimizados para ahorrar memoria, lo que permite entrenarlos en GPU de consumo con una VRAM modesta.
Casos de uso en el mundo real
Cuándo elegir YOLOv5
YOLOv5 es la elección pragmática para los sistemas de producción que requieren estabilidad y una amplia compatibilidad de plataformas.
- Automatización industrial: Ampliamente utilizado en la fabricación para el control de calidad donde la fiabilidad es primordial.
- Aplicaciones móviles: su compatibilidad demostrada con iOS CoreML) y Android TFLite) lo hace ideal para la integración de aplicaciones en dispositivos.
- Creación rápida de prototipos: El enorme volumen de tutoriales y documentación permite a los desarrolladores pasar del concepto al POC en horas.
Cuándo elegir YOLOv10
YOLOv10 es excelente para escenarios que exigen la máxima relación precisión-eficacia.
- Robótica de alta velocidad: La arquitectura NMS reduce la variación de latencia, algo crucial para los bucles de control de los robots autónomos.
- Investigación académica: Los investigadores que busquen compararse con los últimos paradigmas de detección de extremo a extremo encontrarán novedosa y eficaz la arquitectura de YOLOv10.
- Vigilancia a distancia: Un mAP alto con un recuento bajo de parámetros se adapta a los sistemas de seguridad que funcionan con un ancho de banda o almacenamiento limitados.
Formación y facilidad de uso
Ultralytics da prioridad a una experiencia optimizada para los desarrolladores. Tanto si se utiliza el repositorio clásico YOLOv5 como el moderno ultralytics para los modelos más recientes, el proceso es intuitivo.
Uso de YOLOv5
YOLOv5 es famoso por su facilidad de carga a través de PyTorch Hub para una inferencia instantánea.
import torch
# Load YOLOv5s from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Perform inference on an image
img = "https://ultralytics.com/images/zidane.jpg"
results = model(img)
# Display results
results.show()
Uso de YOLOv10
YOLOv10 puede integrarse mediante la aplicación ultralytics Python , que se beneficia de la misma potente API.
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Train the model on COCO data
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference
model.predict("https://ultralytics.com/images/bus.jpg", save=True)
Conclusión
Ambas arquitecturas representan hitos en la visión por ordenador. YOLOv5 sigue siendo el caballo de batalla fiable del sector: robusto, versátil y respaldado por un ecosistema masivo. Es la elección segura para las distintas necesidades de implantación. YOLOv10 supera los límites de la eficiencia con su diseño NMS, ofreciendo una actualización atractiva para los usuarios centrados específicamente en tareas de detección que necesitan maximizar la precisión con un hardware limitado.
A los desarrolladores que busquen lo mejor de ambos mundos -combinar la madurez del ecosistema de Ultralytics con la precisión y velocidad más avanzadas- les recomendamos explorar YOLO11. Unifica estos avances en un único y potente marco listo para cualquier tarea de visión.
Para ver más comparaciones, echa un vistazo a YOLOv10 vs. YOLOv8 o YOLOv10 vs. YOLO11.