YOLOv3 e YOLOv3u#
Panoramica#
Questo documento presenta una panoramica di tre modelli di rilevamento di oggetti strettamente correlati, vale a dire YOLOv3, YOLOv3-Ultralytics e YOLOv3u.
-
YOLOv3: Questa è la terza versione dell'algoritmo di rilevamento di oggetti You Only Look Once (YOLO). Originariamente sviluppato da Joseph Redmon, YOLOv3 ha migliorato i suoi predecessori introducendo funzionalità come previsioni a multiscala e tre diverse dimensioni di kernel di rilevamento.
-
YOLOv3u: Questa è una versione aggiornata di YOLOv3-Ultralytics che incorpora la testa divisa senza anchor e senza objectness utilizzata nei modelli YOLOv8. YOLOv3u mantiene la stessa architettura di backbone e neck di YOLOv3, ma con la testa di rilevamento aggiornata di YOLOv8.

Caratteristiche principali#
-
YOLOv3: Ha introdotto l'uso di tre diverse scale per il rilevamento, sfruttando tre diverse dimensioni di kernel di rilevamento: 13x13, 26x26 e 52x52. Ciò ha migliorato significativamente la precisione di rilevamento per oggetti di diverse dimensioni. Inoltre, YOLOv3 ha aggiunto funzionalità come le predizioni multi-etichetta per ogni riquadro delimitatore e una rete estrattore di caratteristiche migliore.
-
YOLOv3u: Questo modello aggiornato incorpora la testa divisa senza anchor e senza objectness di YOLOv8. Eliminando la necessità di anchor box predefinite e punteggi di objectness, questo design della testa di rilevamento può migliorare la capacità del modello di rilevare oggetti di diverse dimensioni e forme. Ciò rende YOLOv3u più robusto e accurato per le attività di rilevamento di oggetti.
Compiti e modalità supportati#
YOLOv3 è progettato specificamente per attività di rilevamento di oggetti. Ultralytics supporta tre varianti di YOLOv3: yolov3u, yolov3-tinyu e yolov3-sppu. Il u nel nome indica che queste utilizzano la testa senza anchor di YOLOv8, a differenza della loro architettura originale basata su anchor. Questi modelli sono rinomati per la loro efficacia in vari scenari del mondo reale, bilanciando precisione e velocità. Ciascuna variante offre funzionalità e ottimizzazioni uniche, rendendole adatte a una gamma di applicazioni.
Tutti e tre i modelli supportano un set completo di modalità, garantendo versatilità nelle varie fasi dello sviluppo e rilascio del modello. Queste modalità includono Inference, Validation, Training e Export, fornendo agli utenti un toolkit completo per un efficace rilevamento degli oggetti.
| Tipo di modello | Pesi pre-addestrati | Attività supportate | Addestramento | Validazione | Inferenza | Esportazione |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Rilevamento di oggetti | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Rilevamento di oggetti | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Rilevamento di oggetti | ✅ | ✅ | ✅ | ✅ |
Questa tabella offre una panoramica immediata delle capacità di ciascuna variante di YOLOv3, evidenziandone la versatilità e l'idoneità per vari compiti e modalità operative nei flussi di lavoro di rilevamento di oggetti.
Esempi di Utilizzo#
Questo esempio fornisce semplici esempi di addestramento e inferenza per YOLOv3. Per la documentazione completa su queste e altre modalità, consulta le pagine di documentazione di Predict, Train, Val e Export.
I modelli preaddestrati in PyTorch *.pt così come i file di configurazione *.yaml possono essere passati alla classe YOLO() per creare un'istanza del modello in python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.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 YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Citazioni e riconoscimenti#
Se usi YOLOv3 nella tua ricerca, cita i documenti originali di YOLO e il repository Ultralytics YOLOv3:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Un ringraziamento a Joseph Redmon e Ali Farhadi per aver sviluppato l'originale YOLOv3.
FAQ#
YOLOv3 è la terza iterazione dell'algoritmo di rilevamento di oggetti YOLO (You Only Look Once) sviluppato da Joseph Redmon, noto per il suo equilibrio tra precisione e velocità, che utilizza tre diverse scale (13x13, 26x26 e 52x52) per i rilevamenti. YOLOv3-Ultralytics è l'adattamento di YOLOv3 di Ultralytics che aggiunge il supporto per un maggior numero di modelli preaddestrati e facilita una personalizzazione più semplice del modello. YOLOv3u è una variante aggiornata di YOLOv3-Ultralytics, che integra la testa divisa senza anchor e senza objectness di YOLOv8, migliorando la robustezza e la precisione del rilevamento per oggetti di varie dimensioni. Per maggiori dettagli sulle varianti, fai riferimento alla serie YOLOv3.
Addestrare un modello YOLOv3 con Ultralytics è semplice. Puoi addestrare il modello usando Python o la CLI:
Esempiofrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Per opzioni di addestramento e linee guida più complete, visita la nostra documentazione sulla modalità Train.
YOLOv3u migliora YOLOv3 e YOLOv3-Ultralytics incorporando la testa divisa senza anchor e senza objectness utilizzata nei modelli YOLOv8. Questo aggiornamento elimina la necessità di anchor box predefinite e punteggi di objectness, migliorando la sua capacità di rilevare oggetti di varie dimensioni e forme in modo più preciso. Ciò rende YOLOv3u una scelta migliore per attività di rilevamento di oggetti complesse e diversificate. Per ulteriori informazioni, fai riferimento alla sezione Caratteristiche principali.
Puoi eseguire l'inferenza usando i modelli YOLOv3 tramite script Python o comandi CLI:
Esempiofrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Run inference with the YOLOv3u model on the 'bus.jpg' image results = model("path/to/bus.jpg")Consulta la documentazione sulla modalità Inference per ulteriori dettagli sull'esecuzione dei modelli YOLO.
YOLOv3, YOLOv3-Tiny e YOLOv3-SPP supportano principalmente attività di rilevamento di oggetti. Questi modelli possono essere utilizzati per varie fasi dello sviluppo e del rilascio del modello, come Inference, Validation, Training ed Export. Per un set completo di attività supportate e dettagli più approfonditi, visita la nostra documentazione sulle attività di Object Detection.
Se usi YOLOv3 nella tua ricerca, cita i documenti originali di YOLO e il repository Ultralytics YOLOv3. Esempio di citazione BibTeX:
Citazione@article{redmon2018yolov3, title={YOLOv3: An Incremental Improvement}, author={Redmon, Joseph and Farhadi, Ali}, journal={arXiv preprint arXiv:1804.02767}, year={2018} }Per maggiori dettagli sulle citazioni, fai riferimento alla sezione Citazioni e riconoscimenti.