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