Ultralytics YOLOv5

Panoramica

YOLOv5u rappresenta un progresso nelle metodologie di object detection. Partendo dall'architettura fondamentale del modello YOLOv5 sviluppato da Ultralytics, YOLOv5u integra lo split head senza anchor e senza objectness, una funzionalità introdotta in precedenza nei modelli YOLOv8. Questo adattamento raffina l'architettura del modello, portando a un miglior rapporto accuratezza-velocità nei compiti di object detection. Dati i risultati empirici e le sue caratteristiche derivate, YOLOv5u fornisce un'alternativa efficiente per chi cerca soluzioni robuste sia nella ricerca che nelle applicazioni pratiche.

Architettura e prestazioni del modello di object detection YOLOv5

I modelli YOLOv5 addestrati da [ultralytics/yolov5](https://github.com/ultralytics/yolov5) non sono compatibili con la libreria [ultralytics/ultralytics](https://github.com/ultralytics/ultralytics)

Ultralytics fornisce una variante di YOLOv5 senza anchor. I modelli addestrati con il repository originale YOLOv5 non possono essere utilizzati con la libreria Ultralytics.

Provalo sulla piattaforma Ultralytics

Esplora ed esegui i modelli YOLOv5 direttamente su Ultralytics Platform.

Caratteristiche principali

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

  • Rapporto accuratezza-velocità ottimizzato: Velocità e accuratezza spesso vanno in direzioni opposte. Ma YOLOv5u sfida questo compromesso. Offre un equilibrio 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 preaddestrati: Comprendendo che compiti diversi richiedono strumenti diversi, YOLOv5u fornisce una pletora di modelli preaddestrati. Che tu ti stia concentrando su Inferenza, Validazione o Addestramento, c'è un modello fatto su misura che ti aspetta. Questa varietà ti assicura di non utilizzare una soluzione valida per tutto, ma un modello specificamente ottimizzato per la tua sfida unica.

Attività e modalità supportate

I modelli YOLOv5u, con vari pesi preaddestrati, eccellono nei compiti di Object Detection. Supportano una gamma completa di modalità, rendendoli adatti a diverse applicazioni, dallo sviluppo al deployment.

Tipo di modelloPesi preaddestratiAttivitàInferenza (Inference)ValidazioneAddestramentoExport
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uRilevamento oggetti

Questa tabella fornisce una panoramica dettagliata delle varianti del modello YOLOv5u, evidenziando la loro applicabilità nei compiti di object detection e il supporto per varie modalità operative come Inference, Validation, Training e Export. Questo supporto completo assicura che tu possa sfruttare appieno le capacità dei modelli YOLOv5u in una vasta gamma di scenari di object detection.

Metriche delle prestazioni

Prestazioni

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

ModelloYAMLdimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
A100 TensorRT
(ms)
parametri
(M)
FLOP
(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 esempi semplici di addestramento e inferenza con YOLOv5. Per la documentazione completa su queste e altre modalità vedi le pagine di documentazione Predict, Train, Val e Export.

Esempio

PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance 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")

Citazioni e ringraziamenti

Pubblicazione Ultralytics YOLOv5

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

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

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

Ti preghiamo di notare che i modelli YOLOv5 sono forniti sotto licenze AGPL-3.0 ed Enterprise.

FAQ

Cos'è Ultralytics YOLOv5u e in che modo differisce da YOLOv5?

Ultralytics YOLOv5u è una versione avanzata di YOLOv5, che integra lo split head senza anchor e senza objectness che migliora il rapporto accuratezza-velocità per compiti di object detection in tempo reale. A differenza del tradizionale YOLOv5, YOLOv5u adotta un meccanismo di rilevamento senza anchor, rendendolo più flessibile e adattabile in diversi scenari. Per informazioni più dettagliate sulle sue caratteristiche, puoi fare riferimento alla Panoramica di YOLOv5.

In che modo lo split Ultralytics head senza anchor migliora le prestazioni di object detection in YOLOv5u?

Lo split Ultralytics head senza anchor 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 adattabile in grado di gestire varie dimensioni e forme di oggetti con maggiore efficienza. Questo miglioramento contribuisce direttamente a un rapporto 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 preaddestrati per compiti e modalità diverse?

Sì, puoi utilizzare modelli YOLOv5u preaddestrati per vari compiti come Object Detection. Questi modelli supportano molteplici modalità, tra cui Inference, Validation, Training e Export. Questa flessibilità ti consente di sfruttare le capacità dei modelli YOLOv5u per diversi requisiti operativi. Per una panoramica dettagliata, controlla la sezione Compiti e Modalità Supportate.

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

Le metriche di prestazione 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 di prestazione dettagliate per diversi modelli YOLOv5u possono essere trovate nella sezione Performance Metrics, che fornisce un confronto completo tra vari dispositivi.

Come posso addestrare un modello YOLOv5u utilizzando la Python API di Ultralytics?

Puoi addestrare un modello YOLOv5u caricando un modello preaddestrato 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)

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

Commenti