Ir al contenido

Ultralytics YOLOv5

Visión general

YOLOv5u representa un avance en las metodologías de detección de objetos. Partiendo de la arquitectura fundacional del modelo YOLOv5 modelo desarrollado por Ultralytics, YOLOv5u integra la cabeza dividida sin anclajes ni objetos, una característica introducida anteriormente en los YOLOv8 modelos. Esta adaptación perfecciona la arquitectura del modelo, lo que se traduce en una mejora de la relación precisión-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 quienes buscan soluciones robustas tanto en investigación como en aplicaciones prácticas.

Ultralytics YOLOv5

Características principales

  • Anchor-free Split Ultralytics Head: Los modelos tradicionales de detección de objetos se basan en cajas de anclaje predefinidas para predecir la ubicación de los objetos. Sin embargo, YOLOv5u moderniza este enfoque. Al adoptar una cabeza dividida Ultralytics sin anclajes, garantiza un mecanismo de detección más flexible y adaptable, lo que mejora el rendimiento en diversos escenarios.

  • Compromiso optimizado entre precisión y velocidad: la velocidad y la precisión suelen ir en direcciones opuestas. Pero YOLOv5u desafía este equilibrio. Ofrece un equilibrio calibrado que garantiza 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 plétora de modelos pre-entrenados. Tanto si se centra en la inferencia, la validación o el entrenamiento, hay un modelo a medida esperándole. Esta variedad le garantiza que no utilizará una solución única para todos los casos, sino un modelo ajustado específicamente a su reto particular.

Tareas y modos compatibles

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 idóneos para diversas aplicaciones, desde el desarrollo hasta la implantación.

Tipo de modelo Pesas preentrenadas Tarea Inferencia Validación Formación 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 el soporte para varios modos operativos como Inferencia, Validación, Entrenamiento y Exportación. Este completo soporte garantiza que los usuarios puedan aprovechar plenamente las capacidades de los modelos YOLOv5u en una amplia gama de escenarios de detección de objetos.

Métricas de rendimiento

Rendimiento

Consulte Detection Docs 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)
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 en YOLOv5 . Para obtener documentación completa sobre estos y otros modos, consulte las páginas de documentación Predicción, Entrenamiento, Val y Exportación.

Ejemplo

PyTorch preentrenado *.pt así como la configuración *.yaml pueden pasarse a la función YOLO() 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")

CLI 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

Ultralytics YOLOv5 Publicación

Ultralytics no ha publicado ningún documento de investigación formal para YOLOv5 debido a la 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 , consulte nuestro repositorio GitHub y la documentación.

Si utiliza YOLOv5 o YOLOv5u en su investigación, cite el repositorio 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 la cabeza dividida sin anclajes ni objetos, lo que mejora la relación precisión-velocidad en las tareas de detección de objetos en tiempo real. A diferencia del tradicional YOLOv5, 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 páginaYOLOv5 Overview.

¿Cómo mejora el cabezal sin anclajes Ultralytics el rendimiento de la detección de objetos en YOLOv5u?

El cabezal Ultralytics sin anclajes de YOLOv5u mejora el rendimiento de la detección de objetos al eliminar la dependencia de los cuadros de anclaje predefinidos. Esto se traduce en un mecanismo de detección más flexible y adaptable que puede manejar diversos tamaños y formas de objetos con mayor eficacia. Esta mejora contribuye directamente a equilibrar la precisión y la velocidad, lo que hace que YOLOv5u sea adecuado para aplicaciones en tiempo real. Más información sobre su arquitectura en la sección Características principales.

¿Puedo utilizar modelos YOLOv5u preformados para diferentes tareas y modos?

Sí, puede utilizar modelos preentrenados de YOLOv5u para diversas tareas, como la detección de objetos. Estos modelos admiten varios modos, como Inferencia, Validación, Entrenamiento y Exportación. Esta flexibilidad permite a los usuarios aprovechar las capacidades de los modelos YOLOv5u para diferentes requisitos operativos. Para una descripción detallada, consulte la sección Tareas y modos compatibles.

¿Cómo se comparan las métricas de rendimiento de los modelos YOLOv5u en las distintas plataformas?

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. Las métricas de rendimiento detalladas de los distintos modelos de YOLOv5u pueden consultarse en la sección Métricas de rendimiento, que ofrece una comparación exhaustiva entre varios dispositivos.

¿Cómo puedo entrenar un modelo YOLOv5u utilizando la API Ultralytics Python ?

Puede entrenar un modelo YOLOv5u cargando un modelo preentrenado y ejecutando el comando de entrenamiento con su conjunto de datos. He aquí 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 Ejemplos de uso.

Creado hace 1 año ✏️ Actualizado hace 1 mes

Comentarios