Vai al contenuto

YOLOv3, YOLOv3-Ultralytics, e YOLOv3u

Panoramica

Questo documento presenta una panoramica di tre modelli di rilevamento degli oggetti strettamente correlati, ovvero YOLOv3, YOLOv3-Ultralytics e YOLOv3u.

  1. YOLOv3: questa è la terza versione dell'algoritmo di rilevamento degli oggetti You Only Look Once (YOLO). Originariamente sviluppato da Joseph Redmon, YOLOv3 ha migliorato i suoi predecessori introducendo caratteristiche come le previsioni multiscala e tre diverse dimensioni di kernel di rilevamento.

  2. YOLOv3-Ultralytics: Questa è l'implementazione di Ultralytics' del modello YOLOv3. Riproduce l'architettura originale di YOLOv3 e offre funzionalità aggiuntive, come il supporto per un maggior numero di modelli pre-addestrati e opzioni di personalizzazione più semplici.

  3. YOLOv3u: Si tratta di una versione aggiornata di YOLOv3-Ultralytics che incorpora la testa di divisione anchor-free e objectness-free utilizzata nei modelli YOLOv8 . YOLOv3u mantiene la stessa architettura a spina dorsale e collo di YOLOv3, ma con la testa di rilevamento aggiornata di YOLOv8.

Ultralytics YOLOv3

Caratteristiche principali

  • YOLOv3: introdotto l'uso di tre diverse scale per il rilevamento, sfruttando tre diverse dimensioni dei kernel di rilevamento: 13x13, 26x26 e 52x52. Questo ha migliorato significativamente l'accuratezza del rilevamento di oggetti di dimensioni diverse. Inoltre, YOLOv3 ha aggiunto funzioni come le previsioni multi-label per ogni bounding box e una migliore rete di estrazione delle caratteristiche.

  • YOLOv3-Ultralytics: Ultralytics L'implementazione di YOLOv3 offre le stesse prestazioni del modello originale, ma con il supporto di un maggior numero di modelli pre-addestrati, metodi di addestramento aggiuntivi e opzioni di personalizzazione più semplici. Questo lo rende più versatile e facile da usare per le applicazioni pratiche.

  • YOLOv3u: Questo modello aggiornato incorpora la testa divisa senza ancore e senza oggetti di YOLOv8. Eliminando la necessità di scatole di ancoraggio e punteggi di oggetti predefiniti, questo design della testa di rilevamento può migliorare la capacità del modello di rilevare oggetti di dimensioni e forme diverse. Questo rende YOLOv3u più robusto e preciso per le attività di rilevamento degli oggetti.

Attività e modalità supportate

La serie YOLOv3, che comprende YOLOv3, YOLOv3-Ultralytics e YOLOv3u, è stata progettata appositamente per il rilevamento di oggetti. Questi modelli sono rinomati per la loro efficacia in vari scenari reali, bilanciando precisione e velocità. Ogni variante offre caratteristiche e ottimizzazioni uniche, che le rendono adatte a una vasta gamma di applicazioni.

Tutti e tre i modelli supportano una serie completa di modalità, garantendo la versatilità nelle varie fasi di implementazione e sviluppo del modello. Queste modalità comprendono l'inferenza, la convalida, l'addestramento e l'esportazione, fornendo agli utenti un kit completo di strumenti per il rilevamento efficace degli oggetti.

Tipo di modello Attività supportate Inferenza Convalida Formazione Esportazione
YOLOv3 Rilevamento degli oggetti ✅ ✅ ✅ ✅
YOLOv3-Ultralytics Rilevamento degli oggetti ✅ ✅ ✅ ✅
YOLOv3u Rilevamento degli oggetti ✅ ✅ ✅ ✅

Questa tabella fornisce una visione d'insieme delle capacità di ciascuna variante di YOLOv3, evidenziandone la versatilità e l'idoneità a diversi compiti e modalità operative nei flussi di lavoro di rilevamento degli oggetti.

Esempi di utilizzo

Questo esempio fornisce semplici esempi di addestramento e inferenza di YOLOv3. 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 YOLOv3n model
model = YOLO("yolov3n.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 YOLOv3n 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 YOLOv3n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv3n model and run inference on the 'bus.jpg' image
yolo predict model=yolov3n.pt source=path/to/bus.jpg

Citazioni e ringraziamenti

Se utilizzi YOLOv3 nella tua ricerca, ti preghiamo di citare 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}
}

Grazie a Joseph Redmon e Ali Farhadi per aver sviluppato l'originale YOLOv3.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (7)

Commenti