Ir al contenido

EfficientDet vs. YOLOv5: Una 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, desarrollado por el equipo de Google Brain, y YOLOv5, creado por Ultralytics. Si bien ambos modelos tienen como objetivo detectar objetos dentro de las imágenes de manera eficiente, abordan el problema con filosofías de diseño y estrategias arquitectónicas fundamentalmente diferentes.

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

EfficientDet: Escalable y Eficiente

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

Puntos destacados de la arquitectura

EfficientDet se basa en la estructura EfficientNet e introduce una nueva red de fusión de características llamada BiFPN (Red Piramidal de Características Bidireccional). A diferencia de las Redes Piramidales de Características (FPN) tradicionales que limitan el flujo de información a una manera de arriba hacia abajo, BiFPN permite un flujo de información bidireccional complejo entre diferentes capas de resolución.

El modelo también utiliza Compound Scaling, que permite a los usuarios elegir entre una familia de modelos (D0 a D7) dependiendo de sus limitaciones de recursos. Esto asegura que, si tienes más capacidad de cómputo disponible, puedes aumentar linealmente el tamaño del modelo para obtener una mejor precisión.

Fortalezas y Debilidades

La principal fortaleza de EfficientDet radica en su eficiencia teórica. Logra altas puntuaciones de mAP con FLOPs (operaciones de punto flotante) notablemente bajos. Esto la convierte en una candidata interesante para la investigación académica donde la eficiencia de los parámetros es una métrica clave.

Sin embargo, EfficientDet sufre de un inconveniente práctico: la latencia de inferencia. Las conexiones complejas en el BiFPN y el uso intensivo de convoluciones separables en profundidad, aunque matemáticamente eficientes, a menudo no están completamente optimizadas en el hardware de GPU en comparación con las convoluciones estándar. En consecuencia, a pesar de tener menos FLOPs, EfficientDet puede ejecutarse más lento en las GPU que los modelos con mayores costos computacionales teóricos.

Más información sobre EfficientDet

Ultralytics YOLOv5: Rendimiento y Usabilidad 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 PyTorch, lo que lo hizo accesible a un ecosistema masivo de desarrolladores. Priorizó la "facilidad de implementación" junto con el rendimiento bruto.

Puntos destacados de la arquitectura

YOLOv5 emplea una estructura troncal CSPDarknet, que optimiza el flujo de gradiente y reduce la computación. Fue pionero en el uso de Mosaic Augmentation durante el entrenamiento, una técnica que une cuatro imágenes, mejorando la capacidad del modelo para detectar objetos pequeños y reduciendo la necesidad de grandes tamaños de mini-lotes.

La arquitectura está diseñada para la velocidad. Al utilizar convoluciones estándar y una estructura de encabezado optimizada, YOLOv5 maximiza las capacidades de procesamiento paralelo de las GPU modernas, lo que resulta en una latencia de inferencia excepcionalmente baja.

La ventaja del ecosistema de Ultralytics

Una de las ventajas más significativas de YOLOv5 es el ecosistema que lo rodea. Ultralytics proporciona un flujo de trabajo perfecto que incluye la generación de auto-anchor, la evolución de hiperparámetros y el soporte de exportación nativo a ONNX, TensorRT, CoreML y TFLite. Este enfoque de "baterías incluidas" reduce drásticamente el tiempo desde el concepto hasta la producción.

Fortalezas y Debilidades

YOLOv5 destaca en la inferencia en tiempo real y la facilidad de uso. Su API simple y su documentación robusta permiten a los desarrolladores entrenar modelos personalizados en sus propios datos en minutos. Equilibra la velocidad y la precisión de una manera óptima para la IA en el borde y las implementaciones en la nube. Si bien los modelos más nuevos como YOLO11 lo han superado en precisión, YOLOv5 sigue siendo un caballo de batalla confiable y estándar de la industria.

Más información sobre YOLOv5

Métricas de rendimiento: Velocidad vs. Precisión

La siguiente tabla compara el rendimiento de EfficientDet y YOLOv5 en el conjunto de datos COCO val2017. La conclusión clave es 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) se ejecuta a 1.92 ms en una GPU T4, mientras que EfficientDet-d0 (34.6 mAP) toma 3.92 ms—haciendo que YOLOv5 sea aproximadamente 2x más rápido al tiempo que ofrece una mayor precisión. Esta disparidad se amplía con 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 destaca en entornos de solo CPU donde los bajos FLOPs a menudo se traducen mejor en rendimiento, como se ve en las velocidades de la CPU ONNX para las variantes D0 más pequeñas.

Casos de Uso Ideales

La elección entre estos modelos depende de sus limitaciones específicas:

Cuándo elegir EfficientDet

  • Evaluación comparativa académica: Cuando el objetivo principal es demostrar la eficiencia de los parámetros o las leyes de escalado arquitectónico.
  • Estrictas restricciones de CPU: Si la implementación está estrictamente limitada a hardware de CPU más antiguo donde las FLOPs son el cuello de botella absoluto, las variantes EfficientDet más pequeñas (D0-D1) ofrecen un rendimiento competitivo.
  • Investigación: Para estudiar las 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 es innegociable.
  • Implementación en 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 framework de Ultralytics permite una transición fluida a las tareas de segmentación y clasificación.

Ejemplo de código: Simplicidad de Ultralytics

Una de las características definitorias de los modelos de Ultralytics es la facilidad de uso. Mientras que la implementación de EfficientDet a menudo requiere complejas configuraciones de TensorFlow o clones de repositorios específicos, YOLOv5 se puede cargar y ejecutar con tan solo unas pocas 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 de futuro

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

Para los desarrolladores que comienzan un nuevo proyecto hoy, recomendamos echar un vistazo a los últimos avances en el linaje de Ultralytics. YOLO11 se basa en la sólida base de YOLOv5, ofreciendo:

Para obtener más información sobre cómo se comparan los modelos de Ultralytics con otras arquitecturas, explore nuestras comparaciones con YOLOv8 y RT-DETR.


Comentarios