Vai al contenuto

YOLOv5

Panoramica

YOLOv5u represents an advancement in object detection methodologies. Originating from the foundational architecture of the YOLOv5 model developed by Ultralytics, YOLOv5u integrates the anchor-free, objectness-free split head, a feature previously introduced in the YOLOv8 models. This adaptation refines the model's architecture, leading to an improved accuracy-speed tradeoff in object detection tasks. Given the empirical results and its derived features, YOLOv5u provides an efficient alternative for those seeking robust solutions in both research and practical applications.

Ultralytics YOLOv5

Caratteristiche principali

  • Split Ultralytics Head senza ancore: i modelli tradizionali di rilevamento degli oggetti si basano su caselle di ancoraggio predefinite per prevedere la posizione degli oggetti. Tuttavia, YOLOv5u modernizza questo approccio. Adottando una testa Ultralytics divisa senza ancore, garantisce un meccanismo di rilevamento più flessibile e adattivo, migliorando di conseguenza le prestazioni in diversi scenari.

  • Tradeoff ottimizzato tra precisione e velocità: velocità e precisione spesso vanno in direzioni opposte. Ma YOLOv5u sfida questo compromesso. Offre un equilibrio calibrato, garantendo rilevamenti in tempo reale senza compromettere la precisione. Questa caratteristica è particolarmente preziosa per le applicazioni che richiedono risposte rapide, come i veicoli autonomi, la robotica e l'analisi video in tempo reale.

  • Varietà di modelli pre-addestrati: Consapevole del fatto che compiti diversi richiedono strumenti diversi, YOLOv5u offre una pletora di modelli pre-addestrati. Che tu voglia concentrarti sull'inferenza, sulla convalida o sulla formazione, c'è un modello su misura che ti aspetta. Questa varietà ti assicura che non stai usando una soluzione unica, ma un modello specificamente messo a punto per la tua sfida unica.

Attività e modalità supportate

I modelli YOLOv5u, con diversi pesi pre-addestrati, eccellono nelle attività di rilevamento degli oggetti. Supportano una gamma completa di modalità, che li rende adatti a diverse applicazioni, dallo sviluppo alla distribuzione.

Tipo di modelloPesi pre-addestratiCompitoInferenzaConvalidaFormazioneEsportazione
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uRilevamento degli oggetti

Questa tabella fornisce una panoramica dettagliata delle varianti del modello YOLOv5u, evidenziando la loro applicabilità nelle attività di rilevamento degli oggetti e il supporto per diverse modalità operative come Inferenza, Convalida, Formazione ed Esportazione. Questo supporto completo garantisce agli utenti di sfruttare appieno le capacità dei modelli YOLOv5u in un'ampia gamma di scenari di rilevamento di oggetti.

Metriche di prestazione

Prestazioni

Per gli esempi di utilizzo di questi modelli addestrati su COCO, che includono 80 classi pre-addestrate, consulta i Detection Docs.

ModelloYAMLdimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
yolov5nu.ptyolov5n.yaml64034.373.61.062.67.7
yolov5su.ptyolov5s.yaml64043.0120.71.279.124.0
yolov5mu.ptyolov5m.yaml64049.0233.91.8625.164.2
yolov5lu.ptyolov5l.yaml64052.2408.42.5053.2135.0
yolov5xu.ptyolov5x.yaml64053.2763.23.8197.2246.4
yolov5n6u.ptyolov5n6.yaml128042.1211.01.834.37.8
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.324.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.265.7
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1137.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.4250.7

Esempi di utilizzo

Questo esempio fornisce semplici esempi di formazione e inferenza su YOLOv5 . Per una documentazione completa su queste e altre modalità, consulta le pagine dei documenti Predict, Train, Val ed Export.

Esempio

PyTorch pretrained *.pt modelli e configurazione *.yaml possono essere passati ai file YOLO() per creare un'istanza del modello 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")

CLI sono disponibili comandi per eseguire direttamente i modelli:

# 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

Citazioni e ringraziamenti

Se utilizzi YOLOv5 o YOLOv5u nella tua ricerca, cita il repository Ultralytics YOLOv5 come segue:

@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}
}

Tieni presente che i modelli YOLOv5 sono forniti con le licenze AGPL-3.0 e le licenze Enterprise.

DOMANDE FREQUENTI

Cos'è Ultralytics YOLOv5u e in cosa differisce da YOLOv5?

Ultralytics YOLOv5u is an advanced version of YOLOv5, integrating the anchor-free, objectness-free split head that enhances the accuracy-speed tradeoff for real-time object detection tasks. Unlike the traditional YOLOv5, YOLOv5u adopts an anchor-free detection mechanism, making it more flexible and adaptive in diverse scenarios. For more detailed information on its features, you can refer to the YOLOv5 Overview.

In che modo la testa senza ancoraggio Ultralytics migliora le prestazioni di rilevamento degli oggetti in YOLOv5u?

La testina Ultralytics senza ancore di YOLOv5u migliora le prestazioni di rilevamento degli oggetti eliminando la dipendenza da caselle di ancoraggio predefinite. Ciò si traduce in un meccanismo di rilevamento più flessibile e adattivo, in grado di gestire oggetti di varie dimensioni e forme con maggiore efficienza. Questo miglioramento contribuisce direttamente a creare un compromesso equilibrato tra precisione e velocità, rendendo YOLOv5u adatto alle applicazioni in tempo reale. Scopri di più sulla sua architettura nella sezione Caratteristiche principali.

Posso utilizzare i modelli YOLOv5u pre-addestrati per diverse attività e modalità?

Sì, puoi utilizzare i modelli YOLOv5u pre-addestrati per varie attività come il rilevamento di oggetti. Questi modelli supportano diverse modalità, tra cui Inferenza, Convalida, Formazione ed Esportazione. Questa flessibilità permette agli utenti di sfruttare le capacità dei modelli YOLOv5u per diverse esigenze operative. Per una panoramica dettagliata, consulta la sezione Attività e modalità supportate.

Come sono le prestazioni dei modelli YOLOv5u sulle diverse piattaforme?

Le prestazioni dei modelli YOLOv5u variano a seconda della piattaforma e dell'hardware utilizzato. Ad esempio, il modello YOLOv5nu raggiunge 34,3 mAP sul dataset COCO con una velocità di 73,6 ms su CPU (ONNX) e 1,06 ms su A100 TensorRT. Le metriche dettagliate delle prestazioni dei diversi modelli YOLOv5u sono riportate nella sezione Metriche delle prestazioni, che fornisce un confronto completo tra i vari dispositivi.

Come posso addestrare un modello YOLOv5u utilizzando l'API Ultralytics Python ?

Puoi addestrare un modello YOLOv5u caricando un modello pre-addestrato ed eseguendo il comando di addestramento con il tuo set di dati. Ecco un rapido esempio:

Esempio

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

Per istruzioni più dettagliate, visita la sezione Esempi di utilizzo.

📅 Created 11 months ago ✏️ Updated 28 days ago

Commenti