YOLOv5 frente a EfficientDet#
Al iniciar un nuevo proyecto de visión artificial, elegir la arquitectura de red neuronal adecuada es una de las decisiones más importantes que tomarás. Esta guía ofrece una comparativa técnica detallada entre Ultralytics YOLOv5 y EfficientDet de Google. Analizamos sus arquitecturas, métricas de rendimiento y ecosistemas de entrenamiento para ayudar a desarrolladores e investigadores a identificar el mejor modelo de detección de objetos para sus entornos de despliegue específicos.
Aunque EfficientDet introdujo conceptos novedosos de escalado compuesto y fusión de características, YOLOv5 revolucionó el sector al democratizar el acceso a la IA de alto rendimiento gracias a su implementación de PyTorch increíblemente intuitiva, su experiencia de usuario optimizada y su equilibrio inigualable entre velocidad y precisión.
Ultralytics YOLOv5: el estándar del sector en accesibilidad#
Lanzado en el verano de 2020, YOLOv5 supuso un cambio decisivo en la evolución de YOLO. Al pasar del framework Darknet, basado en C, a PyTorch nativo, se convirtió en la arquitectura preferida de los desarrolladores que querían crear, entrenar e implementar modelos rápidamente.
- Autores: Glenn Jocher
- Organización: Ultralytics
- Fecha: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- Documentación: https://docs.ultralytics.com/models/yolov5
Innovaciones arquitectónicas#
YOLOv5 destaca por una arquitectura muy optimizada que prioriza un ciclo de vida fluido del aprendizaje automático. Utiliza una red troncal CSPDarknet53 modificada junto con una red de agregación de rutas (PANet), lo que mejora considerablemente la propagación de características en varias escalas espaciales.
Entre los avances principales se incluyen:
- Aumento de datos Mosaic: Esta técnica de entrenamiento combina cuatro imágenes de entrenamiento distintas en un único mosaico. Esto obliga al modelo a aprender a identificar objetos en contextos espaciales complejos y mejora considerablemente su capacidad para detectar objetivos pequeños.
- Aprendizaje automático de cuadros de anclaje: Antes de empezar el entrenamiento, YOLOv5 analiza tus datos de entrenamiento personalizados y calcula automáticamente las dimensiones óptimas de los cuadros de anclaje mediante agrupamiento k-means.
- Eficiencia de memoria: En comparación con los modelos pesados basados en Transformer, YOLOv5 mantiene una huella de memoria considerablemente menor tanto durante el entrenamiento como durante la inferencia, por lo que funciona sin problemas en hardware de consumo.
EfficientDet: detección de objetos escalable#
Presentado por Google Research en 2019, EfficientDet se propuso ofrecer una familia de detectores de objetos escalables. Se basa en la red troncal de clasificación de imágenes EfficientNet e introduce un novedoso mecanismo de fusión de características.
- 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
- Documentación: https://github.com/google/automl/tree/master/efficientdet#readme
Innovaciones arquitectónicas#
La propuesta central de EfficientDet se basa en un enfoque sistemático del escalado y la agregación de características:
- BiFPN (red piramidal de características bidireccional): A diferencia de las FPN tradicionales, que solo transmiten información de arriba abajo, BiFPN permite fusionar características multiescala de forma rápida y sencilla mediante la introducción de pesos aprendibles que permiten determinar la importancia de las distintas características de entrada.
- Escalado compuesto: EfficientDet escala conjuntamente la resolución, la profundidad y la anchura de todas las redes troncales, de características y de predicción de cuadros y clases, lo que da lugar a modelos que van desde el ligero D0 hasta el enorme D7.
Más información sobre EfficientDet
Mientras que EfficientDet depende en gran medida del ecosistema TensorFlow y las bibliotecas de AutoML, YOLOv5 funciona de forma nativa con PyTorch y ofrece un flujo de trabajo que muchos desarrolladores consideran más intuitivo, propio de Python y fácil de depurar.
Comparativa de rendimiento y métricas#
Al comparar estos modelos, es fundamental evaluar su rendimiento en pruebas de referencia estándar, como el conjunto de datos COCO. La tabla siguiente muestra las ventajas e inconvenientes en cuanto al tamaño, la demanda computacional (FLOPs) y la velocidad de inferencia.
| Modelo | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad T4 TensorRT10 (ms) | parámetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
| 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 |
Análisis equilibrado#
YOLOv5 destaca por su flexibilidad de despliegue y su compatibilidad con la aceleración de hardware en bruto. Fíjate en las vertiginosas velocidades de TensorRT en la GPU T4. Esto hace que YOLOv5 sea ideal para la analítica de vídeo de alto rendimiento y las canalizaciones de inferencia en tiempo real. Además, el ecosistema Ultralytics permite exportar a formatos como ONNX, CoreML y TensorRT con un único comando.
EfficientDet ofrece una excelente eficiencia en el uso de parámetros. Con un número determinado de parámetros, suele alcanzar una precisión media (mAP) elevada. Sin embargo, esta eficiencia teórica no siempre se traduce en tiempos de inferencia reales más rápidos en GPU perimetrales, debido al complejo enrutamiento de la capa BiFPN, que puede estar limitado por el ancho de banda de memoria en lugar de por la capacidad de cálculo.
Ecosistema y facilidad de uso#
La principal ventaja de elegir un modelo Ultralytics reside en el ecosistema que lo rodea. YOLOv5 forma parte de un repositorio muy bien mantenido y en constante desarrollo, con un enorme apoyo de la comunidad.
Con la llegada de la Plataforma Ultralytics, los usuarios pueden pasar fácilmente de la recopilación de datos al despliegue. La plataforma incluye anotación automática, entrenamiento en la nube y supervisión de modelos. En cambio, entrenar EfficientDet suele exigir lidiar con las complejidades de las API antiguas de detección de objetos de TensorFlow, cuya curva de aprendizaje puede ser pronunciada si quieres crear prototipos rápidamente.
Además, la versatilidad de YOLOv5 va más allá de los cuadros delimitadores. Gracias a las actualizaciones continuas, el framework Ultralytics admite de forma nativa la segmentación de instancias y la clasificación de imágenes, y ofrece una API unificada para varias tareas de visión artificial.
Casos de uso ideales#
- Elige YOLOv5 si: necesitas crear prototipos rápidamente, disfrutar de una experiencia de entrenamiento sin fricciones y optimizar al máximo el despliegue perimetral. Es ideal para drones, analítica del comercio minorista y aplicaciones móviles en las que la baja latencia es fundamental.
- Elige EfficientDet si: trabajas exclusivamente en un entorno de Google Cloud/TensorFlow AutoML y necesitas la máxima precisión por parámetro sin requisitos estrictos de latencia en tiempo real.
La próxima generación: apuesta por YOLO26#
Aunque YOLOv5 sigue siendo un modelo de batalla fiable, el panorama de la visión artificial ha avanzado. Para los desarrolladores que buscan lo último en 2026, YOLO26 representa la nueva cumbre de la gama Ultralytics.
Sobre la base de sus predecesores (como YOLOv8 y YOLO11), YOLO26 introduce innovaciones revolucionarias:
- Diseño integral sin NMS: La cabeza opcional uno a uno de YOLO26 (
nms=False) elimina el posprocesamiento de supresión no máxima. Esto reduce considerablemente la variabilidad de la latencia y simplifica la arquitectura de despliegue. - Inferencia en CPU hasta un 43 % más rápida: Optimizado a fondo para la IA perimetral, ofrece velocidades sin precedentes en dispositivos perimetrales de baja potencia y CPU estándar sin GPU dedicada.
- Optimizador MuSGD: Inspirada en las técnicas de entrenamiento de los modelos de lenguaje grandes (LLM), esta combinación de SGD y Muon permite un entrenamiento muy estable y una convergencia rápida.
- Funciones de pérdida avanzadas: La integración de ProgLoss y STAL mejora enormemente el reconocimiento de objetivos pequeños, algo vital para las imágenes de drones a gran altitud y la robótica.
- Eliminación de DFL: Al eliminar Distribution Focal Loss, se simplifica el proceso de exportación del modelo y se mejora aún más la compatibilidad con diversos aceleradores de hardware.
Quienes quieran explorar otras arquitecturas recientes del ecosistema Ultralytics también pueden comparar modelos como YOLOv10 o RT-DETR.
La API de Python de Ultralytics está diseñada para ofrecer compatibilidad con versiones anteriores y posteriores. ¡Pasar de YOLOv5 a YOLO26 es tan sencillo como cambiar la cadena de pesos del modelo en tu código!
Ejemplo de código: entrenamiento e inferencia#
Para mostrar la facilidad de uso inigualable del ecosistema Ultralytics, aquí tienes cómo entrenar y ejecutar inferencias con un modelo YOLO moderno. Este código se puede ejecutar al 100 % y gestiona automáticamente la descarga del conjunto de datos, los ciclos de entrenamiento y la validación.
from ultralytics import YOLO
# Carga un modelo moderno (¡sustituye 'yolov5su.pt' por 'yolo26n.pt' para probar la arquitectura más reciente!)
model = YOLO("yolov5su.pt") # YOLOv5u: pesos de YOLOv5 sin anclajes para el paquete ultralytics
# Entrena el modelo durante 20 épocas con el conjunto de datos de ejemplo COCO8
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)
# Realiza inferencias con una imagen de Internet
inference_results = model("https://ultralytics.com/images/bus.jpg")
# Muestra la imagen con los cuadros delimitadores
inference_results[0].show()Al priorizar la experiencia del usuario, mantener un ecosistema sólido y ampliar continuamente los límites de lo posible con actualizaciones como YOLO26, Ultralytics garantiza que los desarrolladores siempre dispongan de las mejores herramientas para resolver retos reales de inteligencia visual.