EfficientDet vs. YOLOv7: Una comparación técnica exhaustiva
En el panorama de la visión artificial, que evoluciona rápidamente, seleccionar la arquitectura de detección de objetos óptima es fundamental para el éxito del proyecto. Este análisis compara EfficientDet, una arquitectura escalable centrada en la eficiencia, y YOLOv7, un detector en tiempo real diseñado para la velocidad y la precisión en hardware de GPU. Si bien ambos modelos representaron un rendimiento de última generación en sus respectivos lanzamientos, comprender sus matices técnicos ayuda a los desarrolladores a tomar decisiones informadas para las implementaciones modernas.
Métricas de rendimiento y análisis
La siguiente tabla presenta una comparación detallada de las métricas clave de rendimiento, incluida la precisión media promedio (mAP), la velocidad de inferencia en diferentes hardware y la complejidad computacional (parámetros y FLOPs).
| Modelo | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad T4 TensorRT10 (ms) | parámetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Puntos clave
- Eficiencia vs. Latencia: EfficientDet logra una notable eficiencia de parámetros (bajo tamaño del modelo) gracias a su escalado compuesto. Sin embargo, en hardware de GPU (T4 TensorRT), YOLOv7 demuestra una latencia superior. Por ejemplo, YOLOv7l alcanza un 51.4% de mAP con solo 6.84ms de latencia, mientras que EfficientDet-d5 requiere 67.86ms para un mAP similar de 51.5%.
- Impacto de 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 en YOLOv7, lo que lleva a 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 red troncal EfficientNet e introduce la BiFPN (Red Piramidal de Características Bidireccional).
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://github.com/google/automl/tree/master/efficientdet
Puntos destacados de la arquitectura
La innovación principal de EfficientDet es la BiFPN, que permite una fusión de características multiescala fácil y rápida. A diferencia de las FPN tradicionales, BiFPN utiliza la fusión de características ponderadas para aprender la importancia de las diferentes características de entrada. Combinado con el Escalamiento Compuesto, que escala uniformemente la resolución, la profundidad y el ancho, EfficientDet ofrece una familia de modelos (D0 a D7) que se adaptan a diversas limitaciones de recursos.
Más información sobre EfficientDet
Descripción general de YOLOv7
YOLOv7, lanzado en 2022, superó los límites de la detección de objetos en tiempo real al centrarse en la optimización del proceso de entrenamiento y la arquitectura para la velocidad de inferencia. Introduce varios "Bag-of-Freebies" que mejoran la precisión sin aumentar el coste de la inferencia.
Detalles de YOLOv7:
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
Puntos destacados de la arquitectura
YOLOv7 utiliza E-ELAN (Red de Agregación de Capas Eficiente Extendida), 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 diferentes tamaños. La arquitectura está específicamente ajustada para la eficiencia de la GPU, evitando operaciones que tienen altos costes de acceso a la memoria a pesar del bajo número de FLOP.
Casos de Uso Ideales
La elección entre estas arquitecturas depende en gran medida del hardware de implementación y de los requisitos específicos de la aplicación.
Cuándo elegir EfficientDet
EfficientDet es ideal para entornos limitados por la CPU o dispositivos periféricos donde el ancho de banda de la memoria y el almacenamiento están estrictamente limitados. Su bajo número de parámetros lo hace adecuado para:
- Aplicaciones móviles: Aplicaciones Android/iOS donde el tamaño de la aplicación (tamaño APK) es una restricción crítica.
- Sistemas integrados: Dispositivos como Raspberry Pi (generaciones anteriores) que se ejecutan en la CPU.
- Investigación Académica: Estudio de los efectos del escalado compuesto y las técnicas de fusión de características.
Cuándo elegir YOLOv7
YOLOv7 destaca en entornos GPU de alto rendimiento donde la baja latencia es innegociable. Es la opción preferida para:
- Vigilancia en tiempo real: Procesamiento simultáneo de múltiples flujos de vídeo en servidores de borde.
- Conducción autónoma: Donde la latencia de milisegundos puede afectar la seguridad.
- Robótica: Para la rápida detección de objetos e interacción en entornos dinámicos.
Alternativas modernas
Si bien EfficientDet y YOLOv7 son potentes, el campo ha avanzado. Para los nuevos proyectos, generalmente se recomienda YOLO11. Combina los conceptos de eficiencia de las arquitecturas modernas con la velocidad en tiempo real de la familia YOLO, a menudo superando a ambos predecesores en precisión y facilidad de implementación.
¿Por qué elegir los modelos YOLO de Ultralytics?
Si bien EfficientDet y YOLOv7 siguen siendo contribuciones significativas a la visión artificial, el ecosistema de Ultralytics, que incluye modelos como YOLOv8 y el vanguardista YOLO11, ofrece ventajas claras para desarrolladores e investigadores.
Facilidad de uso y ecosistema
Los modelos heredados a menudo requieren pasos de instalación complejos, versiones específicas de CUDA o bases de código fragmentadas. En cambio, Ultralytics se centra en una experiencia de usuario unificada y optimizada. Con un simple pip install ultralytics, los usuarios obtienen acceso a una robusta API de python y Comandos de la CLI que estandarizan el entrenamiento, la validación y la implementación. El Ecosistema bien mantenido garantiza actualizaciones frecuentes, amplia compatibilidad de hardware e integración con herramientas como Ultralytics HUB para MLOps sin problemas.
Equilibrio del rendimiento y eficiencia de la memoria
Los modelos de Ultralytics están diseñados para lograr un equilibrio de rendimiento óptimo. Ofrecen una precisión de última generación al tiempo que mantienen velocidades de inferencia excepcionales, lo que los hace adecuados para diversos escenarios, desde la implementación en el borde hasta las API en la nube. Además, los requisitos de memoria para entrenar los modelos Ultralytics YOLO suelen ser inferiores a los de las arquitecturas basadas en transformadores o las ConvNets más antiguas, lo que permite un entrenamiento eficiente en las GPU de consumo.
Versatilidad y eficiencia en el entrenamiento
A diferencia de muchos detectores específicos, los modelos de Ultralytics son muy versátiles. Un solo framework soporta:
- Detección de objetos
- Segmentación de instancias
- Clasificación de imágenes
- Estimación de pose
- Detección de Objetos Orientados (OBB)
Esta Versatilidad, combinada con la Eficiencia de Entrenamiento—gracias a los cargadores de datos optimizados y los pesos pre-entrenados 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 lo fácil que es utilizar un modelo moderno de Ultralytics para la inferencia, un marcado contraste con el código repetitivo que a menudo se requiere para 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.")
Conclusión
EfficientDet y YOLOv7 representan dos filosofías diferentes en la historia de la visión artificial: una que optimiza la eficiencia teórica (FLOPs/Params) y la otra la latencia práctica del hardware. EfficientDet sigue siendo una referencia sólida para las aplicaciones de CPU con restricciones de parámetros, mientras que YOLOv7 funciona bien con 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 experiencia de desarrollo sin fricciones), los modelos de Ultralytics como YOLO11 son la mejor opción. Simplifican la compleja canalización de entrenamiento e implementación al tiempo que ofrecen un rendimiento que satisface las rigurosas demandas de las aplicaciones modernas de visión artificial.
Otras comparaciones de modelos
Explore comparaciones más técnicas para encontrar el mejor modelo para sus necesidades específicas:
- EfficientDet vs YOLOv8
- YOLOv7 vs YOLOv8
- EfficientDet vs YOLOv5
- YOLOv6 vs YOLOv7
- RT-DETR vs YOLOv7
- YOLOX vs EfficientDet