Ir al contenido

YOLOv5 vs YOLOv10: Evolución de la detección de objetos en tiempo real

El panorama de la detección de objetos ha sido moldeado significativamente por la serie You Only Look Once (YOLO). Desde sus inicios, YOLO ha equilibrado velocidad y precisión, convirtiéndose en la arquitectura de referencia para los desarrolladores de visión artificial. Esta comparación explora dos momentos cruciales en esta historia: Ultralytics YOLOv5, el estándar de la industria en cuanto a fiabilidad y versatilidad, y YOLOv10, una reciente publicación académica de la Universidad de Tsinghua que introduce la detección sin NMS para una mayor eficiencia.

Descripción general del modelo

Ultralytics YOLOv5

Lanzado en junio de 2020 por Glenn Jocher y Ultralytics, YOLOv5 cambió fundamentalmente la forma en que se implementaban los modelos de IA. Priorizó la usabilidad, la exportación a diversos formatos (CoreML, ONNX, TFLite) y un rendimiento robusto en hardware de borde. Sigue siendo uno de los modelos de visión más populares y ampliamente implementados a nivel mundial debido a su filosofía de "simplemente funciona" y a su amplio apoyo de la comunidad.

Autores clave: Glenn Jocher
Organización:Ultralytics
Fecha de lanzamiento: 2020-06-26
GitHub:ultralytics/yolov5

Más información sobre YOLOv5

YOLOv10

Lanzado en mayo de 2024 por investigadores de la Universidad de Tsinghua, YOLOv10 tiene como objetivo eliminar los cuellos de botella de post-procesamiento que se encuentran en versiones anteriores. Mediante la introducción de asignaciones duales consistentes para el entrenamiento sin NMS, optimiza el pipeline de inferencia, reduciendo la latencia y la sobrecarga computacional.

Autores clave: Ao Wang, Hui Chen, et al.
Organización: Universidad de Tsinghua
Fecha de publicación: 2024-05-23
arXiv:YOLOv10: Detección de objetos de extremo a extremo en tiempo real

Más información sobre YOLOv10

Última innovación

Al comparar estas sólidas arquitecturas, los desarrolladores que comiencen nuevos proyectos también deberían evaluar YOLO11. Se basa en los puntos fuertes de ambas, ofreciendo una precisión de última generación, una extracción de características mejorada y soporte nativo para diversas tareas como la estimación de pose y la detección de objetos orientados.

Arquitectura e innovación técnica

Las diferencias arquitectónicas entre YOLOv5 y YOLOv10 resaltan el cambio de la fiabilidad madura basada en anclajes a la eficiencia de vanguardia sin anclajes.

YOLOv5: El estándar basado en anclajes

YOLOv5 emplea una estructura troncal CSPNet (Cross Stage Partial Network) que equilibra la profundidad y el ancho del modelo para minimizar los FLOPS manteniendo la precisión. Se basa en cajas de anclaje, formas predefinidas que ayudan al modelo a predecir las dimensiones de los objetos.

  • Backbone: CSP-Darknet53 centrado en el flujo de gradiente.
  • Head: Head acoplado con predicción basada en anclajes.
  • Post-procesamiento: Requiere Supresión No Máxima (NMS) para filtrar detecciones duplicadas.

YOLOv10: Eficiencia sin NMS

YOLOv10 introduce un diseño holístico impulsado por la eficiencia y la precisión. Su característica más destacada es la estrategia de entrenamiento sin NMS que utiliza asignaciones duales consistentes. Esto permite que el modelo prediga exactamente un cuadro delimitador por objeto durante la inferencia, eliminando por completo el paso NMS que induce a la latencia.

  • Backbone: Mejorado con convoluciones de kernel grande y autoatención parcial.
  • Head: Head unificado que combina asignaciones de etiquetas de uno a muchos y de uno a uno.
  • Optimización: Diseño de bloques guiado por rango para reducir la redundancia.

Análisis de rendimiento

La siguiente tabla compara las métricas de rendimiento en el conjunto de datos COCO. Si bien YOLOv5 sigue siendo competitivo, particularmente en la velocidad de la CPU para su variante Nano, YOLOv10 demuestra una eficiencia superior en términos de parámetros y precisión (mAP).

Modelotamaño
(píxeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
parámetros
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

Desglose de métricas

  • Precisión (mAP): YOLOv10 muestra un salto significativo en la Precisión Media Promedio. Por ejemplo, YOLOv10n alcanza 39.5 de mAP en comparación con los 28.0 de mAP de YOLOv5n, lo que lo hace mucho más capaz de detectar objetos difíciles.
  • Eficiencia: YOLOv10 logra estos resultados con menos parámetros (2.3M vs 2.6M para el modelo Nano), lo que demuestra los beneficios 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: Respaldado por años de desarrollo, tiene una de las comunidades activas más grandes. Los problemas se resuelven rápidamente y los recursos son abundantes.
  • Versatilidad: Más allá de la detección, admite de forma nativa la segmentación de imágenes y la clasificación.
  • Facilidad de uso: La API está diseñada para ser sencilla. Cargar un modelo desde PyTorch Hub requiere una sola línea de código.
  • Implementación: El amplio soporte para formatos de exportación garantiza que se ejecute en todo, desde teléfonos móviles hasta servidores en la nube.

YOLOv10

  • Baja latencia: La eliminación de NMS reduce significativamente el tiempo de post-procesamiento, lo cual es vital para las aplicaciones en tiempo real donde cada milisegundo cuenta.
  • Eficiencia de parámetros: Ofrece mayor precisión por parámetro, lo que lo convierte en un fuerte candidato para dispositivos con almacenamiento o memoria limitados.
  • Enfoque: Si bien es potente, está principalmente especializado para la object detection, careciendo de la amplitud nativa multi-tarea (como la estimación de pose) que se encuentra en la serie YOLO de Ultralytics (v8, 11).

Requisitos de Memoria

Ambos modelos están diseñados para ser ligeros. A diferencia de los grandes modelos transformer que consumen grandes cantidades de memoria CUDA durante el entrenamiento, los modelos Ultralytics YOLO están optimizados para la eficiencia de memoria, lo que permite entrenarlos en GPUs de consumo con una VRAM modesta.

Casos de uso en el mundo real

Cuándo elegir YOLOv5

YOLOv5 es la opción pragmática para sistemas de producción que requieren estabilidad y un amplio soporte de plataforma.

  • Automatización industrial: Ampliamente utilizado en la fabricación para el control de calidad donde la fiabilidad es primordial.
  • Aplicaciones móviles: Su compatibilidad probada con iOS (CoreML) y Android (TFLite) lo hace ideal para la integración de aplicaciones en el dispositivo.
  • Prototipado rápido: El gran volumen de tutoriales y documentación permite a los desarrolladores pasar del concepto a la prueba de concepto en horas.

Cuándo elegir YOLOv10

YOLOv10 es excelente para escenarios que exigen la mayor relación precisión-eficiencia.

  • Robótica de alta velocidad: La arquitectura sin NMS reduce la variación de la latencia, lo cual es crucial para los bucles de control de los robots autónomos.
  • Investigación académica: Los investigadores que buscan comparar con los últimos paradigmas de detección de extremo a extremo encontrarán la arquitectura de YOLOv10 novedosa y eficaz.
  • Vigilancia remota: Un mAP alto con un bajo número de parámetros se adapta a los sistemas de seguridad que operan con ancho de banda o almacenamiento limitados.

Entrenamiento y facilidad de uso

Ultralytics prioriza una experiencia de desarrollador optimizada. Ya sea que utilice el repositorio clásico YOLOv5 o el moderno ultralytics paquete para modelos más nuevos, el proceso es intuitivo.

Usando YOLOv5

YOLOv5 es famoso por ser fácil de cargar 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()

Usando YOLOv10

YOLOv10 se puede integrar utilizando el ultralytics Paquete de python, que se beneficia de la misma API potente.

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 artificial. YOLOv5 sigue siendo el caballo de batalla confiable de la industria: robusto, versátil y respaldado por un ecosistema masivo. Es la opción segura y "de referencia" para diversas necesidades de implementación. YOLOv10 supera los límites de la eficiencia con su diseño sin NMS, ofreciendo una actualización convincente para los usuarios que se centran específicamente en las tareas de detección y que necesitan maximizar la precisión en hardware limitado.

Para los desarrolladores que buscan lo mejor de ambos mundos—combinando la madurez del ecosistema de Ultralytics con la precisión y velocidad de última generación—recomendamos explorar YOLO11. Unifica estos avances en un único y potente framework listo para cualquier tarea de visión.

Para explorar más comparaciones, consulte YOLOv5 vs. YOLOv8 o YOLOv10 vs. YOLO11.


Comentarios