YOLOv3 e YOLOv3u#
Panoramica#
Questo documento presenta una panoramica di tre modelli di rilevamento di oggetti strettamente correlati, ovvero 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 previsioni multi-etichetta per ogni casella di delimitazione 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. La u nel nome indica che queste utilizzano la testa senza anchor di YOLOv8, a differenza della loro architettura originale che è basata su anchor. Questi modelli sono rinomati per la loro efficacia in vari scenari del mondo reale, bilanciando precisione e velocità. Ogni 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à in varie fasi del distacco del modello e dello sviluppo. Queste modalità includono Inferenza, Validazione, Addestramento ed Esportazione, offrendo agli utenti un toolkit completo per un efficace rilevamento di oggetti.
| Tipo di modello | Pesi pre-addestrati | Attività supportate | Addestramento | Validazione | Inferenza | Esportazione |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Object Detection | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Object Detection | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Object Detection | ✅ | ✅ | ✅ | ✅ |
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 Predizione, Addestramento, Val ed Esportazione.
I modelli PyTorch preaddestrati *.pt così come i file di configurazione *.yaml possono essere passati alla classe YOLO() per creare un'istanza di 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#
Quali sono le differenze tra YOLOv3, YOLOv3-Ultralytics e YOLOv3u?#
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 Ultralytics di YOLOv3 che aggiunge il supporto per più modelli preaddestrati e facilita una maggiore personalizzazione 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 varie dimensioni di oggetti. Per maggiori dettagli sulle varianti, fai riferimento alla serie YOLOv3.
Come posso addestrare un modello YOLOv3 usando Ultralytics?#
Addestrare un modello YOLOv3 con Ultralytics è semplice. Puoi addestrare il modello usando Python o la CLI:
from 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 della modalità Addestramento.
Cosa rende YOLOv3u più accurato per le attività di rilevamento di oggetti?#
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 diverse dimensioni e forme in modo più preciso. Ciò rende YOLOv3u una scelta migliore per attività di rilevamento di oggetti complesse e diverse. Per ulteriori informazioni, fai riferimento alla sezione Funzionalità Chiave.
Come posso usare i modelli YOLOv3 per l'inferenza?#
Puoi eseguire l'inferenza usando i modelli YOLOv3 tramite script Python o comandi CLI:
from 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")Fai riferimento alla documentazione della modalità Inferenza per maggiori dettagli sull'esecuzione dei modelli YOLO.
Quali attività sono supportate da YOLOv3 e dalle sue varianti?#
YOLOv3, YOLOv3-Tiny e YOLOv3-SPP supportano principalmente attività di rilevamento di oggetti. Questi modelli possono essere utilizzati per varie fasi di sviluppo e rilascio del modello, come Inferenza, Validazione, Addestramento ed Esportazione. Per un set completo di attività supportate e dettagli più approfonditi, visita la nostra documentazione sulle attività di Rilevamento Oggetti.
Dove posso trovare risorse per citare YOLOv3 nella mia ricerca?#
Se usi YOLOv3 nella tua ricerca, cita i documenti originali di YOLO e il repository Ultralytics YOLOv3. Esempio di citazione BibTeX:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Per ulteriori dettagli sulle citazioni, fai riferimento alla sezione Citazioni e Ringraziamenti.