Ir al contenido

EfficientDet frente a YOLOv5: comparación técnica detallada

El panorama de la detección de objetos ha evolucionado rápidamente, impulsado por la constante necesidad de equilibrar la precisión con la eficiencia computacional. Dos arquitecturas que han influido significativamente en este campo son EfficientDet, desarrollada por el equipo de Google Brain, y YOLOv5creada por Ultralytics. Aunque ambos modelos pretenden detect objetos en imágenes de forma eficiente, abordan el problema con filosofías de diseño y estrategias arquitectónicas fundamentalmente distintas.

Esta guía ofrece una comparación técnica en profundidad para ayudar a desarrolladores, investigadores e ingenieros a elegir la herramienta adecuada para sus aplicaciones específicas de visión por ordenador.

EfficientDet: Escalable y eficiente

Lanzado a finales de 2019, EfficientDet surgió del objetivo de investigación de optimizar simultáneamente la precisión y la eficiencia. Introdujo el concepto de "escalado compuesto" en la detección de objetos, un método que escala uniformemente la resolución, la profundidad y la anchura de la red troncal.

Arquitectura destacada

EfficientDet se basa en la columna vertebral de EfficientNet e introduce una novedosa red de fusión de características denominada BiFPN (Bidirectional Feature Pyramid Network). A diferencia de las redes piramidales de características (FPN ) tradicionales, que limitan el flujo de información de arriba abajo, BiFPN permite un flujo de información complejo y bidireccional entre diferentes capas de resolución.

El modelo también utiliza el escalado compuesto, que permite a los usuarios elegir entre una familia de modelos (D0 a D7) en función de sus limitaciones de recursos. De este modo, si se dispone de más capacidad de cálculo, se puede aumentar linealmente el tamaño del modelo para obtener una mayor precisión.

Fortalezas y Debilidades

El principal punto fuerte de EfficientDet reside en su eficiencia teórica. Alcanza un alto mAP con FLOPs (operaciones en coma flotante) notablemente bajos. Esto lo convierte en un candidato interesante para la investigación académica, donde la eficiencia de los parámetros es una métrica clave.

Sin embargo, EfficientDet tiene un inconveniente práctico: la latencia de la inferencia. Las complejas conexiones de BiFPN y el uso intensivo de convoluciones separables en profundidad -aunque eficientes desde el punto de vista matemático- no suelen estar totalmente optimizadas en el hardware de GPU en comparación con las convoluciones estándar. En consecuencia, a pesar del menor número de FLOPs, EfficientDet puede ejecutarse más lentamente en las GPU que los modelos con mayores costes computacionales teóricos.

Más información sobre EfficientDet

Ultralytics YOLOv5: Rendimiento y facilidad de uso en el mundo real

Ultralytics YOLOv5 representó un cambio de paradigma cuando se lanzó en 2020. A diferencia de sus predecesores, fue el primer modelo YOLO implementado de forma nativa en PyTorchhaciéndolo accesible a un ecosistema masivo de desarrolladores. Daba prioridad a la "facilidad de despliegue" junto con el rendimiento bruto.

Arquitectura destacada

YOLOv5 emplea una red troncal CSPDarknet, que optimiza el flujo de gradientes y reduce el cálculo. Es pionera en el uso del aumento de mosaico durante el entrenamiento (una técnica que une cuatro imágenes), lo que mejora la capacidad del modelo para detect objetos pequeños y reduce la necesidad de minilotes de gran tamaño.

La arquitectura está diseñada para la velocidad. Al utilizar convoluciones estándar y una estructura de cabezal racionalizada, YOLOv5 maximiza la capacidad de procesamiento paralelo de las GPU modernas, lo que se traduce en una latencia de inferencia excepcionalmente baja.

La ventaja del ecosistema Ultralytics

Una de las ventajas más significativas de YOLOv5 es el ecosistema que lo rodea. Ultralytics proporciona un flujo de trabajo sin fisuras que incluye la generación automática de anclajes, la evolución de hiperparámetros y la compatibilidad nativa con la exportación a ONNX, TensorRTCoreML y TFLite. Este enfoque "pilas incluidas" reduce drásticamente el tiempo desde el concepto hasta la producción.

Fortalezas y Debilidades

YOLOv5 destaca por su inferencia en tiempo real y su facilidad de uso. Su sencilla API y su sólida documentación permiten a los desarrolladores entrenar modelos personalizados con sus propios datos en cuestión de minutos. Equilibra la velocidad y la precisión de un modo óptimo para la IA periférica y las implantaciones en la nube. Mientras que los modelos más recientes como YOLO11 lo han superado en precisión, YOLOv5 sigue siendo un caballo de batalla fiable y estándar del sector.

Más información sobre YOLOv5

Métricas de rendimiento: Velocidad frente a precisión

La siguiente tabla compara el rendimiento de EfficientDet y YOLOv5 en el conjunto de datosCOCO val2017. La clave está en la distinción entre el coste teórico (FLOPs) y la velocidad real (latencia).

Modelotamaño
(píxeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
parámetros
(M)
FLOPs
(B)
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
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

Como se ilustra, YOLOv5 domina en latencia de GPU. Por ejemplo, YOLOv5s (37,4 mAP) funciona a 1,92 ms en una GPU T4, mientras que EfficientDet-d0 (34,6 mAP) toma 3,92 ms-haciendo YOLOv5 bruscamente 2 veces más rápido con una mayor precisión. Esta disparidad aumenta con los modelos más grandes; YOLOv5l (49,0 mAP) es casi 5 veces más rápido que el comparable EfficientDet-d4 (49,7 mAP).

Por el contrario, EfficientDet brilla en entornos CPU, donde los FLOPs bajos suelen traducirse mejor en rendimiento, como se observa en las velocidades deCPU de ONNX para las variantes D0 más pequeñas.

Casos de Uso Ideales

Elegir entre estos modelos depende de sus limitaciones específicas:

Cuándo elegir EfficientDet

  • Benchmarking académico: Cuando el objetivo principal es demostrar la eficiencia de los parámetros o las leyes de escalado arquitectónico.
  • Restricciones estrictas de CPU : Si la implantación se limita estrictamente a hardware de CPU antiguo en el que los FLOPs son el cuello de botella absoluto, las variantes más pequeñas de EfficientDet (D0-D1) ofrecen un rendimiento competitivo.
  • Investigación: Para estudiar variaciones de la red piramidal de características como BiFPN.

Cuándo elegir Ultralytics YOLOv5

  • Aplicaciones en tiempo real: Esencial para vehículos autónomos, robótica y videovigilancia, donde la baja latencia no es negociable.
  • Despliegue de producción: El ecosistema bien mantenido y la fácil exportación a motores como TensorRT y OpenVINO hacen que YOLOv5 sea superior para productos comerciales.
  • Eficiencia del entrenamiento: Los modelos YOLOv5 suelen entrenarse más rápido y requieren menos memoria que las arquitecturas complejas como EfficientDet o los modelos basados en Transformer, lo que reduce los costes de computación en la nube.
  • Versatilidad: Más allá de los simples cuadros delimitadores, el marco de Ultralytics permite una transición fluida a tareas de segmentación y clasificación.

Ejemplo de código: Simplicidad de Ultralytics

Una de las características que definen los modelos de Ultralytics es su facilidad de uso. Mientras que la implementación de EfficientDet suele requerir complejas configuraciones de TensorFlow o clones de repositorios específicos, YOLOv5 puede cargarse y ejecutarse con tan solo unas líneas de código Python a través de PyTorch Hub.

import torch

# Load the YOLOv5s model from the official Ultralytics repository
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)

# Define an image (URL or local path)
img = "https://ultralytics.com/images/zidane.jpg"

# Perform inference
results = model(img)

# Display results
results.print()  # Print predictions to console
results.show()  # Show image with bounding boxes

Conclusión y perspectivas

Mientras que EfficientDet marcó un hito importante en la visión por ordenador al demostrar el valor del escalado compuesto y la fusión eficiente de características, YOLOv5 revolucionó el sector al hacer accesible, rápida e implementable la detección de objetos de alto rendimiento.

Para los desarrolladores que comienzan un nuevo proyecto hoy, recomendamos mirar los últimos avances en el linaje de Ultralytics . YOLO11 se basa en los sólidos cimientos de YOLOv5 y ofrece:

Para más información sobre la comparación de los modelos Ultralytics con otras arquitecturas, consulte nuestras comparaciones con YOLOv8 y RT-DETR.


Comentarios