Ir al contenido

EfficientDet frente a YOLOv7: una comparación técnica exhaustiva

En el panorama en rápida evolución de la visión por ordenador, seleccionar la arquitectura de detección de objetos adecuada es fundamental para el éxito del proyecto. Este análisis compara EfficientDet, una arquitectura escalable centrada en la eficiencia, y YOLOv7un detector en tiempo real diseñado para ofrecer velocidad y precisión en hardware de GPU . Aunque ambos modelos representaban el rendimiento más avanzado en sus respectivos lanzamientos, comprender sus matices técnicos ayuda a los desarrolladores a tomar decisiones informadas para las implantaciones modernas.

Métricas y análisis de rendimiento

La siguiente tabla presenta una comparación detallada de las principales métricas de rendimiento, incluida la precisión mediamAP), la velocidad de inferencia en distintos equipos y la complejidad computacional (parámetros y FLOPs).

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
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

Puntos clave

  • Eficiencia frente a latencia: EfficientDet consigue una notable eficiencia de parámetros (bajo tamaño del modelo) gracias a su escalado compuesto. Sin embargo, en hardware de GPU ( TensorRT), YOLOv7 demuestra una latencia superior. Por ejemplo, YOLOv7l logra un 51,4% de mAP con sólo 6,84 ms de latencia, mientras que EfficientDet-d5 requiere 67,86 ms para un mAP similar del 51,5%.
  • Impacto en la arquitectura: Las convoluciones separables en profundidad utilizadas en EfficientDet minimizan los FLOPs pero pueden estar menos optimizadas en las GPUs en comparación con las convoluciones densas de YOLOv7, lo que provoca las discrepancias de velocidad observadas.

Descripción general de EfficientDet

EfficientDet introdujo un cambio de paradigma en 2019 al proponer una arquitectura escalable que optimiza la precisión y la eficiencia simultáneamente. Se basa en la columna vertebral de EfficientNet e introduce la BiFPN (Bidirectional Feature Pyramid Network).

Detalles de EfficientDet: Autores: Mingxing Tan, Ruoming Pang y Quoc V. Le
Organización: Google
Fecha: 2019-11-20
Arxiv: https://arxiv.org/abs/1911.09070
GitHub: https:google

Arquitectura destacada

La principal innovación de EfficientDet es el BiFPN, que permite una fusión de características multiescala fácil y rápida. A diferencia de los FPN tradicionales, BiFPN utiliza la fusión ponderada de características para aprender la importancia de las distintas características de entrada. Combinado con el escalado compuesto, que escala uniformemente la resolución, la profundidad y la anchura, EfficientDet ofrece una familia de modelos (D0 a D7) que se adaptan a diversas limitaciones de recursos.

Más información sobre EfficientDet

Visión general de YOLOv7

YOLOv7, lanzado en 2022, superó los límites de la detección de objetos en tiempo real centrándose en la optimización del proceso de entrenamiento y la arquitectura para la velocidad de inferencia. Introduce varias "Bag-of-Freebies" que mejoran la precisión sin aumentar el coste de la inferencia.

YOLOv7 Detalles: Autores: Chien-Yao Wang, Alexey Bochkovskiy y Hong-Yuan Mark Liao
Organización: Instituto de Ciencias de la Información, Academia Sinica, Taiwán
Fecha: 2022-07-06
Arxiv: https://arxiv.org/abs/2207.02696
GitHub: https://github.com/WongKinYiu/yolov7

Arquitectura destacada

YOLOv7 utiliza E-ELAN (Extended Efficient Layer Aggregation Network), que controla las rutas de gradiente más cortas y más largas para permitir que la red aprenda características más diversas. También emplea el escalado de modelos para modelos basados en concatenación, lo que le permite mantener una estructura óptima en distintos tamaños. La arquitectura se ha ajustado específicamente para la eficiencia GPU , evitando operaciones que tienen altos costes de acceso a la memoria a pesar del bajo número de FLOP.

Más información sobre YOLOv7

Casos de Uso Ideales

La elección entre estas arquitecturas depende en gran medida del hardware de despliegue y de los requisitos específicos de la aplicación.

Cuándo elegir EfficientDet

EfficientDet es ideal para entornosCPU o dispositivos periféricos en los que el ancho de banda de la memoria y el almacenamiento son estrictamente limitados. Su bajo número de parámetros lo hace adecuado para:

  • Aplicaciones móviles: Aplicaciones iOS en las que el tamaño de la aplicación (tamaño APK) es una limitación crítica.
  • Sistemas embebidos: Dispositivos como Raspberry Pi (generaciones anteriores) que funcionan con CPU.
  • Investigación académica: Estudio de los efectos de las técnicas de escalado compuesto y fusión de características.

Cuándo elegir YOLOv7

YOLOv7 destaca en entornos GPU de alto rendimiento en los que la baja latencia no es negociable. Es la opción preferida para:

  • Vigilancia en tiempo real: Procesamiento simultáneo de múltiples secuencias de vídeo en servidores periféricos.
  • Conducción autónoma: Donde la latencia de milisegundos puede afectar a la seguridad.
  • Robótica: Para la detección rápida de objetos y la interacción en entornos dinámicos.

Alternativas modernas

Aunque EfficientDet y YOLOv7 son potentes, el campo ha avanzado. Para nuevos proyectos, YOLO11 . Combina los conceptos de eficiencia de las redes troncales modernas con la velocidad en tiempo real de la familia YOLO , superando a menudo a ambos predecesores en precisión y facilidad de despliegue.

¿Por qué elegir los modelos YOLO de Ultralytics?

Mientras que EfficientDet y YOLOv7 siguen siendo contribuciones significativas a la visión por ordenador, el ecosistema Ultralytics , con modelos como YOLOv8 y el vanguardista YOLO11-ofrece claras ventajas a desarrolladores e investigadores.

Facilidad de uso y ecosistema

Los modelos heredados suelen requerir complejos pasos de instalación, versiones CUDA específicas o bases de código fragmentadas. En cambio, Ultralytics se centra en una experiencia de usuario unificada y racionalizada. Con una sencilla pip install ultralyticslos usuarios tienen acceso a una sólida API Python y a Comandos CLI que normalizan la formación, la validación y el despliegue. El sitio Ecosistema bien mantenido garantiza actualizaciones frecuentes, amplia compatibilidad de hardware e integración con herramientas como Ultralytics HUB para MLOps sin fisuras.

Equilibrio de rendimiento y eficiencia de la memoria

Los modelos Ultralytics están diseñados para alcanzar un equilibrio óptimo de rendimiento. Proporcionan una precisión de vanguardia a la vez que mantienen una velocidad de inferencia excepcional, lo que los hace adecuados para diversos escenarios, desde la implantación en el borde hasta las API en la nube. Además, los requisitos de memoria para el entrenamiento de los modelosYOLO Ultralytics suelen ser inferiores a los de las arquitecturas basadas en transformadores o ConvNets más antiguas, lo que permite un entrenamiento eficiente en GPU de consumo.

Versatilidad y eficacia del entrenamiento

A diferencia de muchos detectores específicos, los modelos de Ultralytics son muy versátiles. Un único marco admite:

Esta versatilidad, combinada con la eficacia del entrenamiento -graciasa los cargadores de datos optimizados y a los pesos preentrenados fácilmente disponibles en COCO-reduce significativamente el tiempo de comercialización de las soluciones de IA.

Ejemplo: Ejecución de un modelo YOLO moderno

A continuación se muestra un ejemplo de la facilidad con la que se puede utilizar un modelo moderno Ultralytics para la inferencia, un marcado contraste con la repetición de tareas que a menudo requieren las arquitecturas más antiguas.

from ultralytics import YOLO

# Load the latest YOLO11 model (pre-trained on COCO)
model = YOLO("yolo11n.pt")

# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Process results
for result in results:
    result.save()  # Save the annotated image to disk
    print(f"Detected {len(result.boxes)} objects.")

Más información sobre YOLO11

Conclusión

EfficientDet y YOLOv7 representan dos filosofías diferentes en la historia de la visión por computador: una optimiza la eficiencia teórica (FLOPs/Parámetros) y la otra la latencia práctica del hardware. EfficientDet sigue siendo una referencia sólida para aplicaciones de CPU con parámetros limitados, mientras que YOLOv7 sirve bien para cargas de trabajo de GPU de alta velocidad.

Sin embargo, para los desarrolladores que buscan lo mejor de ambos mundos -velocidad, precisión y una Ultralytics de desarrollo sin fricciones- los modelos de Ultralytics como YOLO11 son la mejor opción. Simplifican el complejo proceso de formación e implantación, al tiempo que ofrecen un rendimiento que satisface las rigurosas exigencias de las aplicaciones modernas de visión computerizada.

Otras comparaciones de modelos

Explore más comparaciones técnicas para encontrar el mejor modelo para sus necesidades específicas:


Comentarios