Vai al contenuto

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 introdotta precedentemente nei modelli YOLOv8 modelli. Questo adattamento perfeziona l'architettura del modello, consentendo di migliorare il compromesso accuratezza-velocità nelle attività 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 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 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, 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.

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 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 preaddestrato *.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 è 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, puoi consultare la panoramica diYOLOv5 .

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.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (15), Burhan-Q (1)

Commenti