YOLOv3 e YOLOv3u
Panoramica
Questo documento presenta una panoramica di tre modelli di rilevamento oggetti strettamente correlati, ovvero YOLOv3, YOLOv3-Ultralytics e YOLOv3u.
-
YOLOv3: Questa è la terza versione dell'algoritmo di rilevamento oggetti You Only Look Once (YOLO). Sviluppato originariamente da Joseph Redmon, YOLOv3 ha migliorato i suoi predecessori introducendo funzionalità come previsioni multiscala e tre diverse dimensioni di kernel di rilevamento.
-
YOLOv3u: Questa è una versione aggiornata di YOLOv3-Ultralytics che incorpora la split head anchor-free e objectness-free utilizzata nei modelli YOLOv8. YOLOv3u mantiene la stessa architettura di backbone e neck di YOLOv3, ma con la detection head aggiornata da 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 dimensioni diverse. Inoltre, YOLOv3 ha aggiunto funzionalità come previsioni multi-label per ogni bounding box e una migliore rete di estrazione delle caratteristiche.
-
YOLOv3u: Questo modello aggiornato incorpora la split head anchor-free e objectness-free di YOLOv8. Eliminando la necessità di anchor box predefinite e punteggi di objectness, il design di questa detection head può migliorare la capacità del modello di rilevare oggetti di varie dimensioni e forme. Ciò rende YOLOv3u più robusto e preciso per le attività di rilevamento oggetti.
Attività e modalità supportate
YOLOv3 è progettato specificamente per attività di object detection. Ultralytics supporta tre varianti di YOLOv3: yolov3u, yolov3-tinyu e yolov3-sppu. La u nel nome indica che queste utilizzano la head anchor-free 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 vasta gamma di applicazioni.
Tutti e tre i modelli supportano una serie completa di modalità, garantendo versatilità in varie fasi dello sviluppo e del dispiegamento del modello. Queste modalità includono Inferenza, Validazione, Addestramento ed Esportazione, fornendo agli utenti un toolkit completo per un efficace rilevamento oggetti.
| Tipo di modello | Pesi preaddestrati | Attività supportate | Inferenza (Inference) | Validazione | Addestramento | Export |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Rilevamento oggetti | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Rilevamento oggetti | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Rilevamento oggetti | ✅ | ✅ | ✅ | ✅ |
Questa tabella fornisce una panoramica immediata delle capacità di ogni variante di YOLOv3, evidenziando la loro versatilità e idoneità per varie attività e modalità operative nei flussi di lavoro di rilevamento oggetti.
Esempi di utilizzo
Questo esempio fornisce esempi semplici di addestramento e inferenza con YOLOv3. Per la documentazione completa su queste e altre modalità, consulta le pagine di documentazione di Predict, Train, Val ed Export.
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 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 ringraziamenti
Se utilizzi YOLOv3 nella tua ricerca, cita i documenti originali YOLO e il repository YOLOv3 di Ultralytics:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Grazie 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 object detection YOLO (You Only Look Once) sviluppato da Joseph Redmon, noto per il suo equilibrio tra accuratezza e velocità, utilizzando 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 personalizzazione più semplice del modello. YOLOv3u è una variante aggiornata di YOLOv3-Ultralytics, che integra la split head anchor-free e objectness-free da YOLOv8, migliorando la robustezza e la precisione del rilevamento per varie dimensioni di oggetti. Per maggiori dettagli sulle varianti, consulta la serie YOLOv3.
Come posso addestrare un modello YOLOv3 utilizzando Ultralytics?
Addestrare un modello YOLOv3 con Ultralytics è semplice. Puoi addestrare il modello utilizzando Python o 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 sulla modalità Train.
Cosa rende YOLOv3u più preciso per le attività di rilevamento oggetti?
YOLOv3u migliora YOLOv3 e YOLOv3-Ultralytics incorporando la split head anchor-free e objectness-free 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. Questo rende YOLOv3u una scelta migliore per attività di rilevamento oggetti complesse e diversificate. Per ulteriori informazioni, consulta la sezione Caratteristiche principali.
Come posso utilizzare i modelli YOLOv3 per l'inferenza?
Puoi eseguire l'inferenza utilizzando 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")Consulta la documentazione sulla modalità Inference 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 oggetti. Questi modelli possono essere utilizzati per varie fasi di dispiegamento e sviluppo del modello, come Inferenza, Validazione, Addestramento ed Esportazione. Per una serie completa di attività supportate e dettagli più approfonditi, visita la nostra documentazione sulle attività di Object Detection.
Dove posso trovare risorse per citare YOLOv3 nella mia ricerca?
Se utilizzi YOLOv3 nella tua ricerca, cita i documenti originali YOLO e il repository YOLOv3 di Ultralytics. 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 sulla citazione, consulta la sezione Citazioni e Riconoscimenti.