Vai al contenuto

Ultralytics YOLOv5

Panoramica

YOLOv5u rappresenta un'evoluzione nelle metodologie di object detection. Derivato dall'architettura fondamentale del modello YOLOv5 sviluppato da Ultralytics, YOLOv5u integra l'head split anchor-free e objectness-free, una caratteristica precedentemente introdotta nei modelli YOLOv8. Questo adattamento perfeziona l'architettura del modello, portando a un miglior compromesso tra accuratezza e velocità nelle attività di object detection. Dati i risultati empirici e le sue caratteristiche derivate, YOLOv5u fornisce un'alternativa efficiente per coloro che cercano soluzioni robuste sia nella ricerca che nelle applicazioni pratiche.

Ultralytics YOLOv5

Caratteristiche principali

  • Head Ultralytics split senza ancore: I modelli tradizionali di object detection si basano su anchor box predefinite per prevedere le posizioni degli oggetti. Tuttavia, YOLOv5u modernizza questo approccio. Adottando un head Ultralytics split senza ancore, garantisce un meccanismo di detection più flessibile e adattivo, migliorando di conseguenza le prestazioni in diversi scenari.

  • Compromesso Ottimizzato tra Accuratezza e Velocità: Velocità e accuratezza spesso tirano in direzioni opposte. Ma YOLOv5u sfida questo compromesso. Offre un bilanciamento calibrato, garantendo rilevamenti in tempo reale senza compromettere l'accuratezza. Questa caratteristica è particolarmente preziosa per le applicazioni che richiedono risposte rapide, come veicoli autonomi, robotica e analisi video in tempo reale.

  • Varietà di modelli pre-addestrati: Comprendendo che attività diverse richiedono set di strumenti diversi, YOLOv5u fornisce una pletora di modelli pre-addestrati. Che tu ti stia concentrando su Inferenza, Convalida o Addestramento, c'è un modello su misura che ti aspetta. Questa varietà ti assicura di non utilizzare solo una soluzione unica per tutti, ma un modello specificamente messo a punto per la tua sfida unica.

Attività e modalità supportate

I modelli YOLOv5u, con vari pesi pre-addestrati, eccellono nelle attività di Object Detection. Supportano una gamma completa di modalità, rendendoli adatti a diverse applicazioni, dallo sviluppo al deployment.

Tipo di modello Pesi pre-addestrati Task Inferenza Validazione Training Esportazione
YOLOv5u yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u Rilevamento di oggetti

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

Metriche di performance

Prestazioni

Vedere Documentazione sul rilevamento per esempi di utilizzo con questi modelli addestrati su COCO, che includono 80 classi pre-addestrate.

Modello YAML dimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
A100 TensorRT
(ms)
parametri
(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

Esempi di utilizzo

Questo esempio fornisce semplici esempi di training e inferenza YOLOv5. Per la documentazione completa su questi e altri modi, consultare le pagine della documentazione Predict, Train, Val ed Export.

Esempio

PyTorch pre-addestrato *.pt modelli, così come la configurazione *.yaml file possono essere passati alla YOLO() classe 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")

Sono disponibili comandi CLI 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 riconoscimenti

Pubblicazione di Ultralytics YOLOv5

Ultralytics non ha pubblicato un documento di ricerca formale per YOLOv5 a causa della rapida evoluzione dei modelli. Ci concentriamo sul progresso della tecnologia e sul renderla più facile da usare, piuttosto che sulla produzione di documentazione statica. Per le informazioni più aggiornate sull'architettura, le caratteristiche e l'utilizzo di YOLO, fare riferimento al nostro repository GitHub e alla documentazione.

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

Si prega di notare che i modelli YOLOv5 sono forniti con licenze AGPL-3.0 ed Enterprise.

FAQ

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

Ultralytics YOLOv5u è una versione avanzata di YOLOv5, che integra l'head diviso anchor-free, objectness-free che migliora il tradeoff accuratezza-velocità per le attività di rilevamento di oggetti in tempo reale. A differenza del tradizionale YOLOv5, YOLOv5u adotta un meccanismo di rilevamento anchor-free, rendendolo più flessibile e adattabile in diversi scenari. Per informazioni più dettagliate sulle sue caratteristiche, è possibile consultare la Panoramica di YOLOv5.

In che modo l'head anchor-free di Ultralytics migliora le prestazioni di object detection in YOLOv5u?

L'head Ultralytics senza ancore in YOLOv5u migliora le prestazioni di object detection eliminando la dipendenza da anchor box predefinite. Ciò si traduce in un meccanismo di rilevamento più flessibile e adattivo in grado di gestire varie dimensioni e forme di oggetti con maggiore efficienza. Questo miglioramento contribuisce direttamente a un compromesso equilibrato tra accuratezza e velocità, rendendo YOLOv5u adatto per applicazioni in tempo reale. Scopri di più sulla sua architettura nella sezione Funzionalità chiave.

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

Sì, è possibile utilizzare modelli YOLOv5u pre-addestrati per varie attività come il Rilevamento di Oggetti. Questi modelli supportano diverse modalità, tra cui Inferenza, Validazione, Addestramento ed Esportazione. Questa flessibilità consente agli utenti di sfruttare le capacità dei modelli YOLOv5u in base alle diverse esigenze operative. Per una panoramica dettagliata, consultare la sezione Attività e Modalità Supportate.

Come si confrontano le metriche di performance dei modelli YOLOv5u su diverse piattaforme?

Le metriche di performance dei modelli YOLOv5u variano a seconda della piattaforma e dell'hardware utilizzati. Ad esempio, il modello YOLOv5nu raggiunge un mAP di 34.3 sul dataset COCO con una velocità di 73.6 ms su CPU (ONNX) e 1.06 ms su A100 TensorRT. Metriche di performance dettagliate per diversi modelli YOLOv5u sono disponibili nella sezione Performance Metrics, che fornisce un confronto completo tra vari dispositivi.

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

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

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, visitare la sezione Esempi di utilizzo.



📅 Creato 1 anno fa ✏️ Aggiornato 5 mesi fa

Commenti