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

Ultralytics proporciona una variante de YOLOv5 sin anclas. Los modelos entrenados con el repositorio ultralytics/yolov5 no se pueden cargar con la librería ultralytics/ultralytics. Para usar YOLOv5 aquí, entrena un nuevo modelo a partir de un checkpoint de Ultralytics YOLOv5u (por ejemplo, yolov5su.pt).
Explora y ejecuta modelos YOLOv5 directamente en Ultralytics Platform.
Características clave
-
Cabezal de Ultralytics dividido y sin anclas: Los modelos de detección de objetos tradicionales dependen de 'anchor boxes' (cajas de anclaje) predefinidas para predecir las ubicaciones de los objetos. Sin embargo, YOLOv5u moderniza este enfoque. Al adoptar un cabezal de Ultralytics dividido y sin anclas, asegura un mecanismo de detección más flexible y adaptable, mejorando así el rendimiento en diversos escenarios.
-
Relación precisión-velocidad optimizada: La velocidad y la precisión a menudo tiran en direcciones opuestas. Pero YOLOv5u desafía este compromiso. Ofrece un equilibrio calibrado, garantizando detecciones en tiempo real sin comprometer la precisión. Esta característica es especialmente valiosa para aplicaciones que exigen respuestas rápidas, como vehículos autónomos, robótica y análisis de vídeo en tiempo real.
-
Variedad de modelos preentrenados: Entendiendo que diferentes tareas requieren diferentes conjuntos de herramientas, 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 solo utilices una solución universal, sino un modelo ajustado específicamente para tu desafío único.
Tareas y modos admitidos
Los modelos YOLOv5u, con varios 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 | Inference (Inferencia) | Validación | Entrenamiento | Exportar |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | Detección de objetos | ✅ | ✅ | ✅ | ✅ |
Esta tabla proporciona una visió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 garantiza 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 la Documentación 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 Predicción (Predict), Entrenamiento (Train), Validación (Val) y Exportación (Export).
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 agradecimientos
Ultralytics no ha publicado un artículo de investigación formal para YOLOv5 debido a la naturaleza rápidamente cambiante de los modelos. Nos centramos en 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 las 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' que mejora la relación precisión-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 de Ultralytics sin anclas el rendimiento de la detección de objetos en YOLOv5u?
El cabezal de Ultralytics sin anclas en YOLOv5u mejora el rendimiento de la detección de objetos eliminando la dependencia de cajas de anclaje predefinidas. Esto resulta en 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 equilibrado 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 usar 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 según diferentes requisitos operativos. Para obtener una visión detallada, consulta la sección Tareas y modos compatibles.
¿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 dependiendo de la plataforma y el hardware utilizado. Por ejemplo, el modelo YOLOv5nu logra 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 completa entre diversos 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 de Ejemplos de uso.