Ir al contenido

YOLOv10 vs. EfficientDet: Una comparación técnica

El panorama de la detección de objetos ha evolucionado rápidamente en los últimos años, pasando de pipelines complejos de múltiples etapas a arquitecturas optimizadas en tiempo real. Esta comparación explora las diferencias técnicas entre YOLOv10, un modelo de última generación publicado en 2024 por investigadores de la Universidad de Tsinghua, y EfficientDet, una arquitectura pionera introducida por Google en 2019.

Si bien EfficientDet estableció puntos de referencia para la eficiencia de los parámetros durante su tiempo, YOLOv10 supera los límites de la latencia y la precisión, introduciendo un paradigma de entrenamiento sin NMS que aumenta significativamente la velocidad de inferencia. Esta guía analiza sus arquitecturas, métricas de rendimiento y casos de uso ideales para ayudarle a elegir el modelo adecuado para sus proyectos de visión artificial.

YOLOv10: Detección de objetos de extremo a extremo en tiempo real

YOLOv10 representa un avance significativo en la serie YOLO (You Only Look Once), centrándose en la eliminación del paso de post-procesamiento de supresión no máxima (NMS) que a menudo limita la velocidad de inferencia. Mediante el empleo de asignaciones duales consistentes para el entrenamiento sin NMS, logra un rendimiento competitivo con menor latencia en comparación con iteraciones anteriores.

Detalles técnicos:

Más información sobre YOLOv10

Características arquitectónicas clave

YOLOv10 introduce un diseño de modelo holístico impulsado por la eficiencia y la precisión. La innovación central reside en su estrategia de asignación dual. Durante el entrenamiento, el modelo utiliza tanto asignaciones de uno a muchos (común en YOLOv8) para una supervisión enriquecida como asignaciones de uno a uno para garantizar la implementación de extremo a extremo sin NMS.

  1. Entrenamiento sin NMS: Los detectores tradicionales requieren NMS para filtrar los cuadros delimitadores duplicados, lo que introduce latencia de inferencia. La arquitectura de YOLOv10 permite que el modelo prediga exactamente un cuadro por objeto durante la inferencia, eliminando efectivamente esta sobrecarga.
  2. Diseño impulsado por la eficiencia: El modelo utiliza encabezados de clasificación ligeros y un submuestreo desacoplado espacial-canal para reducir el coste computacional (FLOP) y el número de parámetros.
  3. Convoluciones de kernel grande: Mediante el uso selectivo de convoluciones de profundidad de kernel grande, YOLOv10 mejora su campo receptivo y su capacidad para detect objetos pequeños sin un aumento masivo en el cálculo.

Por qué importa NMS-Free

Eliminar la Supresión No Máxima (NMS) crea un pipeline verdaderamente de extremo a extremo. Esto es fundamental para las aplicaciones de edge AI donde cada milisegundo cuenta, como en los dispositivos NVIDIA Jetson, lo que garantiza una latencia estable y predecible.

Fortalezas

  • Velocidad superior: Optimizado para la inferencia en tiempo real, superando significativamente a los modelos más antiguos en hardware GPU.
  • Integración de Ultralytics: Como parte del ecosistema de Ultralytics, YOLOv10 se beneficia de una API de Python simple, lo que hace que sea increíblemente fácil de entrenar, validar e implementar.
  • Menor uso de memoria: La arquitectura eficiente requiere menos memoria CUDA durante el entrenamiento en comparación con detectores basados en transformadores como RT-DETR.

EfficientDet: Arquitectura Escalable y Eficiente

EfficientDet, desarrollado por el equipo de Google Brain, fue diseñado para optimizar tanto la precisión como la eficiencia. Introdujo una familia de modelos (D0-D7) escalados mediante un método de escalado compuesto que ajusta uniformemente la resolución, la profundidad y el ancho.

Detalles técnicos:

Más información sobre EfficientDet

Características arquitectónicas clave

EfficientDet se basa en la red troncal EfficientNet e introduce la BiFPN (Red Piramidal de Características Bidireccional).

  1. BiFPN: A diferencia de las FPN estándar, BiFPN permite un flujo de información bidireccional y utiliza pesos aprendibles para fusionar características de diferentes escalas. Esto resulta en una mejor representación de características multiescala con menos parámetros.
  2. Escalado Compuesto: Este método asegura que la red troncal, la red de características y las redes de predicción de cajas/clases se escalen juntas de manera eficiente. Un modelo D0 es pequeño y rápido para dispositivos móviles, mientras que un modelo D7 impulsa la precisión de última generación para entornos de altos recursos.

Fortalezas y Debilidades

  • Eficiencia de parámetros: EfficientDet es conocido por lograr un mAP alto con relativamente pocos parámetros y FLOPs.
  • Escalabilidad: El rango D0-D7 ofrece flexibilidad para diferentes presupuestos computacionales.
  • Alta latencia: A pesar del bajo conteo de FLOP, las conexiones complejas en BiFPN y las convoluciones separables en profundidad pueden generar una mayor latencia en las GPU en comparación con las arquitecturas CNN optimizadas de los modelos YOLO.
  • Complejidad: La arquitectura es más difícil de personalizar o ajustar en comparación con el diseño sencillo de Ultralytics YOLOv8 o YOLOv10.

Análisis de rendimiento: Velocidad vs. Eficiencia

Al comparar estos dos modelos, la distinción entre la eficiencia teórica (FLOPs) y la velocidad práctica (Latencia) se vuelve clara. EfficientDet sobresale en la minimización de FLOPs, pero YOLOv10 domina en la velocidad de inferencia en el mundo real en hardware moderno como las GPU.

La tabla a continuación demuestra que, si bien los modelos EfficientDet son compactos, YOLOv10 proporciona una compensación mucho mejor para las aplicaciones en tiempo real. Por ejemplo, YOLOv10-S ofrece un mAP competitivo del 46.7% con una latencia de solo 2.66ms en una GPU T4, mientras que EfficientDet-d3 (47.5% mAP) es casi 7 veces más lento con 19.59ms.

Modelotamaño
(píxeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
parámetros
(M)
FLOPs
(B)
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
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0

Interpretación

  • Dominio de la GPU: YOLOv10 utiliza opciones de diseño conscientes del hardware que se adaptan bien a las arquitecturas de GPU, lo que resulta en un rendimiento enormemente superior.
  • Paridad de precisión: Las estrategias de entrenamiento más recientes permiten a YOLOv10 igualar o superar la precisión de las variantes EfficientDet, mucho más lentas.
  • Implementación: La naturaleza sin NMS de YOLOv10 simplifica el proceso de exportación a formatos como TensorRT y ONNX, lo que reduce la complejidad del pipeline de implementación.

Facilidad de uso y ecosistema

Uno de los factores más críticos para los desarrolladores es el ecosistema que rodea a un modelo. Aquí, Ultralytics ofrece una ventaja sustancial.

La ventaja de Ultralytics

YOLOv10 está integrado en el paquete de python de Ultralytics, proporcionando una experiencia perfecta desde la anotación de datos hasta la implementación.

  • API simple: Puedes cargar, entrenar y predecir con solo unas pocas líneas de código.
  • Bien mantenido: Las actualizaciones frecuentes, el soporte de la comunidad y la extensa documentación garantizan que no te quedes depurando errores oscuros.
  • Eficiencia en el entrenamiento: Los modelos de Ultralytics están optimizados para una convergencia rápida. Los pesos pre-entrenados están disponibles, lo que permite un aprendizaje por transferencia eficaz en conjuntos de datos personalizados.

Entrenamiento de YOLOv10 con Ultralytics

Entrenar un modelo YOLOv10 en el dataset COCO8 es sencillo utilizando la API de Ultralytics.

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

En contraste, EfficientDet se basa en repositorios TensorFlow más antiguos o implementaciones de PyTorch de terceros que pueden carecer de soporte unificado, lo que dificulta la integración en las canalizaciones MLOps modernas.

Casos de Uso Ideales

La elección entre YOLOv10 y EfficientDet depende de sus limitaciones específicas.

Cuándo elegir YOLOv10

YOLOv10 es la opción superior para la mayoría de las aplicaciones modernas de visión artificial, particularmente:

  • Sistemas autónomos: Los coches autónomos y los drones requieren una detección de baja latencia por seguridad. La velocidad de YOLOv10 asegura tiempos de reacción rápidos.
  • Analítica de Video: Procesamiento de flujos de video de alta velocidad de fotogramas (FPS) para la vigilancia de seguridad o la monitorización del tráfico.
  • Implementación en el borde: Implementación en dispositivos integrados como Raspberry Pi o NVIDIA Jetson donde los recursos son limitados, pero el rendimiento en tiempo real es innegociable.

Cuándo elegir EfficientDet

EfficientDet sigue siendo relevante en escenarios de nicho específicos:

  • Investigación académica: Si el objetivo es estudiar las leyes de escalado compuesto o los principios de diseño de redes neuronales eficientes.
  • Estrictas restricciones de FLOPs: En entornos de hardware extremadamente específicos donde las FLOPs teóricas son el cuello de botella duro en lugar de la latencia o el ancho de banda de la memoria.

Conclusión

Si bien EfficientDet fue un hito en el diseño de modelos eficientes, YOLOv10 representa el nuevo estándar para la detect de objetos de alto rendimiento. Su innovadora arquitectura sin NMS ofrece una ventaja decisiva en la velocidad de inferencia sin comprometer la precisión, lo que la hace mucho más práctica para la implementación en el mundo real.

Además, el sólido ecosistema Ultralytics garantiza que trabajar con YOLOv10 sea eficiente y fácil para los desarrolladores. Desde opciones de exportación fácil hasta guías completas sobre la gestión de conjuntos de datos, Ultralytics te permite dar vida a tus proyectos de visión artificial más rápido.

Para aquellos que buscan lo último en versatilidad y rendimiento, también recomendamos explorar Ultralytics YOLO11, que se basa en estos avances para ofrecer capacidades de última generación en tareas de detección, segmentación y estimación de la pose.

Explore más comparaciones


Comentarios