Ultralytics YOLOv5
Descripción general
YOLOv5u representa un avance en las metodologías de detección de objetos. Partiendo de la arquitectura fundacional del modelo YOLOv5 desarrollado por Ultralytics, YOLOv5u integra el cabezal dividido (split head) sin anclas y sin objectness, una característica introducida previamente en los modelos YOLOv8. Esta adaptación refina la arquitectura del modelo, logrando un mejor equilibrio entre precisión y velocidad en tareas de detección de objetos. Dados los resultados empíricos y sus características derivadas, YOLOv5u ofrece una alternativa eficiente para quienes buscan soluciones robustas tanto en investigación como en aplicaciones prácticas.

Ultralytics proporciona una variante sin anclas del modelo YOLOv5. Los modelos entrenados con el repositorio original de YOLOv5 no pueden utilizarse con la biblioteca de Ultralytics.
Explora y ejecuta modelos YOLOv5 directamente en la Plataforma Ultralytics.
Características clave
-
Cabezal Ultralytics dividido sin anclas (Anchor-free): Los modelos tradicionales de detección de objetos dependen de cajas de anclaje predefinidas para predecir la ubicación de los objetos. Sin embargo, YOLOv5u moderniza este enfoque. Al adoptar un cabezal Ultralytics dividido sin anclas, se asegura un mecanismo de detección más flexible y adaptable, mejorando así el rendimiento en diversos escenarios.
-
Equilibrio optimizado entre precisión y velocidad: La velocidad y la precisión suelen tirar en direcciones opuestas. Pero YOLOv5u desafía este equilibrio. Ofrece un balance calibrado, asegurando detecciones en tiempo real sin comprometer la precisión. Esta característica es particularmente valiosa para aplicaciones que exigen respuestas rápidas, como vehículos autónomos, robótica y analítica de vídeo en tiempo real.
-
Variedad de modelos preentrenados: Entendiendo que diferentes tareas requieren herramientas distintas, YOLOv5u proporciona una gran cantidad de modelos preentrenados. Ya sea que te centres en inferencia, validación o entrenamiento, hay un modelo hecho a medida esperándote. Esta variedad asegura que no utilices una solución universal, sino un modelo ajustado específicamente para tu desafío único.
Tareas y modos admitidos
Los modelos YOLOv5u, con diversos pesos preentrenados, destacan en tareas de Detección de Objetos. Admiten una amplia gama de modos, lo que los hace adecuados para diversas aplicaciones, desde el desarrollo hasta la implementación.
| Tipo de modelo | Pesos preentrenados | Tarea | Inferencia | Validación | Entrenamiento | Exportar (Export) |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | Detección de objetos | ✅ | ✅ | ✅ | ✅ |
Esta tabla ofrece una descripción detallada de las variantes del modelo YOLOv5u, destacando su aplicabilidad en tareas de detección de objetos y su compatibilidad con varios modos operativos como Inferencia, Validación, Entrenamiento y Exportación. Este soporte integral asegura que los usuarios puedan aprovechar al máximo las capacidades de los modelos YOLOv5u en una amplia gama de escenarios de detección de objetos.
Métricas de rendimiento
Consulta los Documentos de detección para ver ejemplos de uso con estos modelos entrenados en COCO, que incluyen 80 clases preentrenadas.
| Modelo | YAML | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad A100 TensorRT (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| yolov5nu.pt | yolov5n.yaml | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
| yolov5su.pt | yolov5s.yaml | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
| yolov5mu.pt | yolov5m.yaml | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
| yolov5lu.pt | yolov5l.yaml | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
| yolov5xu.pt | yolov5x.yaml | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
| yolov5n6u.pt | yolov5n6.yaml | 1280 | 42.1 | 211.0 | 1.83 | 4.3 | 7.8 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 24.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 65.7 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 137.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.4 | 250.7 |
Ejemplos de uso
Este ejemplo proporciona ejemplos sencillos de entrenamiento e inferencia con YOLOv5. Para obtener la documentación completa sobre estos y otros modos, consulta las páginas de documentación de Predecir, Entrenar, Val y Exportar.
PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv5n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Citas y reconocimientos
Ultralytics no ha publicado un artículo de investigación formal para YOLOv5 debido a la naturaleza de rápida evolución de los modelos. Nos centramos en hacer avanzar la tecnología y facilitar su uso, en lugar de producir documentación estática. Para obtener la información más actualizada sobre la arquitectura, las características y el uso de YOLO, consulta nuestro repositorio de GitHub y nuestra documentación.
Si utilizas YOLOv5 o YOLOv5u en tu investigación, por favor cita el repositorio de Ultralytics YOLOv5 de la siguiente manera:
@software{yolov5,
title = {Ultralytics YOLOv5},
author = {Glenn Jocher},
year = {2020},
version = {7.0},
license = {AGPL-3.0},
url = {https://github.com/ultralytics/yolov5},
doi = {10.5281/zenodo.3908559},
orcid = {0000-0001-5950-6979}
}Ten en cuenta que los modelos YOLOv5 se proporcionan bajo licencias AGPL-3.0 y Enterprise.
Preguntas frecuentes
¿Qué es Ultralytics YOLOv5u y en qué se diferencia de YOLOv5?
Ultralytics YOLOv5u es una versión avanzada de YOLOv5 que integra el cabezal dividido sin anclas y sin objectness, lo que mejora el equilibrio entre precisión y velocidad para tareas de detección de objetos en tiempo real. A diferencia del YOLOv5 tradicional, YOLOv5u adopta un mecanismo de detección sin anclas, lo que lo hace más flexible y adaptable en diversos escenarios. Para obtener información más detallada sobre sus características, puedes consultar la Visión general de YOLOv5.
¿Cómo mejora el cabezal Ultralytics sin anclas el rendimiento de la detección de objetos en YOLOv5u?
El cabezal Ultralytics sin anclas en YOLOv5u mejora el rendimiento de la detección de objetos al eliminar la dependencia de cajas de anclaje predefinidas. Esto da lugar a un mecanismo de detección más flexible y adaptable que puede manejar varios tamaños y formas de objetos con mayor eficiencia. Esta mejora contribuye directamente a un equilibrio entre precisión y velocidad, haciendo que YOLOv5u sea adecuado para aplicaciones en tiempo real. Aprende más sobre su arquitectura en la sección Características clave.
¿Puedo utilizar modelos YOLOv5u preentrenados para diferentes tareas y modos?
Sí, puedes utilizar modelos YOLOv5u preentrenados para varias tareas, como la Detección de Objetos. Estos modelos admiten múltiples modos, incluyendo Inferencia, Validación, Entrenamiento y Exportación. Esta flexibilidad permite a los usuarios aprovechar las capacidades de los modelos YOLOv5u en diferentes requisitos operativos. Para obtener una descripción detallada, consulta la sección Tareas y modos admitidos.
¿Cómo se comparan las métricas de rendimiento de los modelos YOLOv5u en diferentes plataformas?
Las métricas de rendimiento de los modelos YOLOv5u varían según la plataforma y el hardware utilizado. Por ejemplo, el modelo YOLOv5nu alcanza un 34.3 mAP en el conjunto de datos COCO con una velocidad de 73.6 ms en CPU (ONNX) y 1.06 ms en A100 TensorRT. Las métricas de rendimiento detalladas para diferentes modelos YOLOv5u se pueden encontrar en la sección Métricas de rendimiento, que proporciona una comparación exhaustiva entre varios dispositivos.
¿Cómo puedo entrenar un modelo YOLOv5u usando la API de Python de Ultralytics?
Puedes entrenar un modelo YOLOv5u cargando un modelo preentrenado y ejecutando el comando de entrenamiento con tu conjunto de datos. Aquí tienes un ejemplo rápido:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Para obtener instrucciones más detalladas, visita la sección Ejemplos de uso.