Ultralytics YOLOv5
Visión general
YOLOv5u representa un avance en las metodologías de detección de objetos. Originado a partir de la arquitectura fundamental del modelo YOLOv5 desarrollado por Ultralytics, YOLOv5u integra el head dividido sin anclajes y sin objectness, una característica introducida previamente en los modelos YOLOv8. Esta adaptación refina la arquitectura del modelo, lo que lleva a una mejor compensación entre precisión y velocidad en las tareas de detección de objetos. Dados los resultados empíricos y sus características derivadas, YOLOv5u proporciona una alternativa eficiente para aquellos que buscan soluciones robustas tanto en la investigación como en las aplicaciones prácticas.
Características clave
-
Head Ultralytics Dividido y sin Anclajes: Los modelos tradicionales de detección de objetos se basan en cajas de anclaje predefinidas para predecir las ubicaciones de los objetos. Sin embargo, YOLOv5u moderniza este enfoque. Al adoptar un head Ultralytics dividido y sin anclajes, se asegura un mecanismo de detección más flexible y adaptativo, lo que mejora el rendimiento en diversos escenarios.
-
Compromiso Optimizado entre Precisión y Velocidad: 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 particularmente valiosa para aplicaciones que exigen 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 Pre-entrenados: Entendiendo que diferentes tareas requieren diferentes conjuntos de herramientas, YOLOv5u proporciona una plétora de modelos pre-entrenados. Ya sea que se esté enfocando en la Inferencia, la Validación o el Entrenamiento, hay un modelo hecho a medida esperándole. Esta variedad asegura que no esté utilizando una solución única para todos, sino un modelo específicamente ajustado para su desafío único.
Tareas y modos admitidos
Los modelos YOLOv5u, con varios pesos pre-entrenados, sobresalen en las 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 Pre-entrenados | Tarea | 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 general 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. Esta compatibilidad 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
Rendimiento
Consulte la Documentación de detección para ver ejemplos de uso con estos modelos entrenados en COCO, que incluyen 80 clases pre-entrenadas.
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 | 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 de YOLOv5. Para obtener documentación completa sobre estos y otros modos, consulte las páginas de documentación de Predict, Train, Val y Export.
Ejemplo
PyTorch preentrenados *.pt
modelos, así como la configuración *.yaml
los archivos se pueden pasar a la YOLO()
clase para crear una instancia del modelo en 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")
Hay comandos de la CLI disponibles para ejecutar directamente los modelos:
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLOv5n model and run inference on the 'bus.jpg' image
yolo predict model=yolov5n.pt source=path/to/bus.jpg
Citas y agradecimientos
Publicación de Ultralytics YOLOv5
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 en 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, consulte nuestro repositorio de GitHub y la documentación.
Si utiliza YOLOv5 o YOLOv5u en su investigación, cite 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}
}
Tenga 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 head dividido sin anclaje y sin objetividad que mejora la relación precisión-velocidad para las tareas de detección de objetos en tiempo real. A diferencia del YOLOv5 tradicional, YOLOv5u adopta un mecanismo de detección sin anclaje, lo que lo hace más flexible y adaptable en diversos escenarios. Para obtener información más detallada sobre sus características, puede consultar la Descripción general de YOLOv5.
¿Cómo mejora el head Ultralytics sin anclajes el rendimiento de la detección de objetos en YOLOv5u?
El head de Ultralytics sin anclaje en YOLOv5u mejora el rendimiento de la detección de objetos al eliminar la dependencia de los cuadros delimitadores de anclaje predefinidos. Esto da como resultado 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, lo que hace que YOLOv5u sea adecuado para aplicaciones en tiempo real. Obtenga más información sobre su arquitectura en la sección de Características clave.
¿Puedo usar modelos YOLOv5u pre-entrenados para diferentes tareas y modos?
Sí, puede utilizar modelos YOLOv5u preentrenados para diversas tareas, como la Detección de objetos. Estos modelos admiten múltiples modos, incluidos 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, consulte la sección de 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 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 1,06 ms en A100 TensorRT. Se pueden encontrar métricas de rendimiento detalladas para diferentes modelos YOLOv5u en la sección de Métricas de rendimiento, que proporciona una comparación exhaustiva entre varios dispositivos.
¿Cómo puedo entrenar un modelo YOLOv5u usando la API de Ultralytics python?
Puede entrenar un modelo YOLOv5u cargando un modelo preentrenado y ejecutando el comando de entrenamiento con su conjunto de datos. Aquí tiene un ejemplo rápido:
Ejemplo
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)
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640
Para obtener instrucciones más detalladas, visite la sección de Ejemplos de uso.