Ultralytics YOLOv5#
Descripción general#
YOLOv5u representa un avance en las metodologías de detección de objetos. Basado en la arquitectura fundacional del modelo YOLOv5 desarrollado por Ultralytics, YOLOv5u integra la cabeza dividida sin anclajes y sin objetualidad, una característica introducida anteriormente en los modelos YOLOv8. Esta adaptación perfecciona la arquitectura del modelo, lo que da lugar a un equilibrio mejorado 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 sólidas tanto en investigación como en aplicaciones prácticas.

Ultralytics proporciona una variante sin anclajes del modelo YOLOv5. Los modelos entrenados con el repositorio ultralytics/yolov5 no se pueden cargar con la biblioteca ultralytics/ultralytics. Para usar YOLOv5 aquí, entrena un modelo nuevo a partir de un punto de control de Ultralytics YOLOv5u (por ejemplo, yolov5su.pt).
Explora y ejecuta modelos YOLOv5 directamente en Ultralytics Platform.
Características principales#
-
Cabeza dividida de Ultralytics sin anclajes: 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 una cabeza dividida de Ultralytics sin anclajes, garantiza 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 ir en direcciones opuestas. Sin embargo, YOLOv5u cuestiona este equilibrio. Ofrece un balance calibrado que garantiza detecciones en tiempo real sin comprometer la precisión. Esta característica resulta especialmente valiosa para aplicaciones que requieren respuestas rápidas, como los vehículos autónomos, la robótica y el análisis de vídeo en tiempo real.
-
Variedad de modelos preentrenados: al entender que las distintas tareas requieren diferentes conjuntos de herramientas, YOLOv5u proporciona una gran variedad de modelos preentrenados. Tanto si te centras en la inferencia como en la validación o el entrenamiento, hay un modelo hecho a medida esperándote. Esta variedad garantiza que no utilices simplemente una solución universal, sino un modelo ajustado específicamente para tu desafío concreto.
Tareas y modos compatibles#
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 puesta en producción.
| Tipo de modelo | Pesos preentrenados | Tarea | Entrenamiento | Validación | Inferencia | Exportar |
|---|---|---|---|---|---|---|
| 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 y destaca su aplicabilidad en tareas de detección de objetos, así como la compatibilidad con diversos modos operativos, como inferencia, validación, entrenamiento y exportación. Esta compatibilidad integral garantiza que puedas aprovechar plenamente las capacidades de los modelos YOLOv5u en una amplia variedad de escenarios de detección de objetos.
Métricas de rendimiento#
Consulta la documentación de detección para ver ejemplos de uso de estos modelos entrenados con COCO, que incluyen 80 clases preentrenadas.
| Modelo | YAML | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad A100 TensorRT (ms) | parámetros (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 | 31.3 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 97.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 261.3 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 549.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.5 | 1002.8 |
Ejemplos de uso#
Este ejemplo ofrece ejemplos sencillos de entrenamiento e inferencia con YOLOv5. Para consultar la documentación completa sobre estos y otros modos, visita las páginas de documentación de predicción, entrenamiento, validación y exportación.
Los modelos *.pt preentrenados con PyTorch, así como los archivos de configuración *.yaml, se pueden pasar a la clase YOLO() para crear una instancia del modelo en Python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5nu model
model = YOLO("yolov5nu.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 YOLOv5nu model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Citas y agradecimientos#
Ultralytics no ha publicado un artículo formal de investigación sobre YOLOv5 debido a la naturaleza cambiante 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 la documentación.
Si utilizas YOLOv5 o YOLOv5u en tu investigación, 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#
Ultralytics YOLOv5u es una versión avanzada de YOLOv5 que integra una cabeza dividida sin anclajes y sin objetualidad, 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 anclajes, lo que lo hace más flexible y adaptable en diversos escenarios. Para obtener información más detallada sobre sus características, consulta la descripción general de YOLOv5.
La cabeza de Ultralytics sin anclajes de 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, capaz de gestionar con mayor eficiencia objetos de distintos tamaños y formas. Esta mejora contribuye directamente a un equilibrio entre precisión y velocidad, lo que hace que YOLOv5u sea adecuado para aplicaciones en tiempo real. Obtén más información sobre su arquitectura en la sección Características principales.
Sí, puedes utilizar modelos YOLOv5u preentrenados para diversas tareas, como la detección de objetos. Estos modelos admiten varios modos, incluidos la inferencia, la validación, el entrenamiento y la exportación. Esta flexibilidad permite aprovechar las capacidades de los modelos YOLOv5u para distintos requisitos operativos. Para obtener una descripción detallada, consulta la sección Tareas y modos compatibles.
Las métricas de rendimiento de los modelos YOLOv5u varían en función de la plataforma y el hardware utilizados. Por ejemplo, el modelo YOLOv5nu alcanza un mAP de 34,3 en el conjunto de datos COCO, con una velocidad de 73,6 ms en CPU (ONNX) y de 1,06 ms en A100 TensorRT. Encontrarás métricas de rendimiento detalladas de los distintos modelos YOLOv5u en la sección Métricas de rendimiento, que ofrece una comparación exhaustiva entre diversos dispositivos.
Puedes entrenar un modelo YOLOv5u cargando un modelo preentrenado y ejecutando el comando de entrenamiento con tu conjunto de datos. Este es un ejemplo rápido:
Ejemplofrom ultralytics import YOLO # Load a COCO-pretrained YOLOv5nu model model = YOLO("yolov5nu.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.