Vai al contenuto

Ultralytics YOLOv5

Panoramica

YOLOv5u rappresenta un progresso nelle metodologie di rilevamento degli oggetti. Partendo dall'architettura di base del modello YOLOv5 modello sviluppato da Ultralytics, YOLOv5u integra la testa divisa, priva di ancoraggi e di oggetti, una caratteristica precedentemente introdotta nei modelli YOLOv8 modelli. Questo adattamento perfeziona l'architettura del modello, portando a un migliore compromesso tra accuratezza e velocità nei compiti di rilevamento degli oggetti. Visti i risultati empirici e le caratteristiche derivate, YOLOv5u rappresenta un'alternativa efficiente per chi cerca soluzioni robuste sia nella ricerca che nelle applicazioni pratiche.

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 che compiti diversi richiedono strumenti diversi, YOLOv5u offre una pletora di modelli pre-addestrati. Sia che ci si concentri sull'inferenza, sulla convalida o sull'addestramento, c'è un modello su misura che vi aspetta. Questa varietà assicura che non si stia utilizzando una soluzione unica, ma un modello specificamente messo a punto per la propria sfida.

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 modello Pesi pre-addestrati Compito Inferenza Convalida Formazione Esportazione
YOLOv5u yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u Rilevamento degli oggetti

Questa tabella fornisce una panoramica dettagliata delle varianti del modello YOLOv5u, evidenziandone l'applicabilità nelle attività di rilevamento degli oggetti e il supporto per diverse modalità operative come Inferenza, Convalida, Addestramento ed Esportazione. Questo supporto completo assicura che gli utenti possano 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, si vedano i Detection Docs.

Modello YAML dimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
A100 TensorRT
(ms)
params
(M)
FLOP
(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 addestramento e inferenza su YOLOv5 . Per una documentazione completa su queste e altre modalità, consultare le pagine dei documenti Predict, Train, Val ed Export.

Esempio

PyTorch preaddestrato *.pt modelli e la configurazione *.yaml possono essere passati al metodo 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 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

Ultralytics YOLOv5 Pubblicazione

Ultralytics non ha pubblicato un documento di ricerca formale per YOLOv5 a causa della natura in rapida evoluzione dei modelli. Ci concentriamo sul progresso della tecnologia e sulla sua facilità d'uso, piuttosto che sulla produzione di documentazione statica. Per le informazioni più aggiornate sull'architettura, le caratteristiche e l'utilizzo di YOLO , consultare il nostro repository GitHub e la documentazione.

Se si utilizza YOLOv5 o YOLOv5u nella propria ricerca, si prega di citare 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 noti che i modelli YOLOv5 sono forniti con le licenze AGPL-3.0 e le licenze Enterprise.

FAQ

Che cos'è Ultralytics YOLOv5u e come si differenzia da YOLOv5?

Ultralytics YOLOv5u è una versione avanzata di YOLOv5, che integra la testa divisa senza ancoraggio e senza oggetto, che migliora il compromesso accuratezza-velocità per le attività di rilevamento degli oggetti in tempo reale. A differenza del tradizionale YOLOv5, YOLOv5u adotta un meccanismo di rilevamento privo di ancoraggi, che lo rende più flessibile e adattabile a diversi scenari. Per informazioni più dettagliate sulle sue caratteristiche, è possibile consultare la panoramica diYOLOv5 .

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

La testa Ultralytics priva di ancoraggi in YOLOv5u migliora le prestazioni di rilevamento degli oggetti eliminando la dipendenza da caselle di ancoraggio predefinite. Il risultato è 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 un compromesso equilibrato tra precisione e velocità, rendendo YOLOv5u adatto alle applicazioni in tempo reale. Per saperne di più sulla sua architettura, consultare la sezione Caratteristiche principali.

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

Sì, è possibile utilizzare i modelli YOLOv5u pre-addestrati per varie attività come il rilevamento di oggetti. Questi modelli supportano diverse modalità, tra cui inferenza, convalida, addestramento ed esportazione. Questa flessibilità consente agli utenti di sfruttare le capacità dei modelli YOLOv5u per diversi requisiti operativi. Per una panoramica dettagliata, consultare la sezione Attività e modalità supportate.

Come si confrontano le metriche delle prestazioni dei modelli YOLOv5u sulle diverse piattaforme?

Le metriche delle prestazioni dei modelli YOLOv5u variano a seconda della piattaforma e dell'hardware utilizzato. Ad esempio, il modello YOLOv5nu raggiunge una mAP di 34,3 sul dataset COCO con una velocità di 73,6 ms su CPU (ONNX) e di 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 ?

È possibile addestrare un modello YOLOv5u caricando un modello pre-addestrato ed eseguendo il comando di addestramento con il proprio 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, visitate la sezione Esempi d'uso.

📅C reato 1 anno fa ✏️ Aggiornato 1 mese fa

Commenti