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.

DOMANDE FREQUENTI

Quali sono le differenze tra YOLOv3, YOLOv3-Ultralytics e YOLOv3u?

YOLOv3 è la terza iterazione dell'algoritmo di rilevamento degli 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 è Ultralytics' adattamento di YOLOv3 che aggiunge il supporto per un maggior numero di modelli pre-addestrati e facilita la personalizzazione del modello. YOLOv3u è una variante aggiornata di YOLOv3-Ultralytics, che integra la testa divisa senza ancore e senza oggetti di YOLOv8, migliorando la robustezza e l'accuratezza del rilevamento per oggetti di varie dimensioni. Per maggiori dettagli sulle varianti, consulta la serie YOLOv3.

Come posso addestrare un modello YOLOv3 utilizzando Ultralytics?

L'addestramento di un modello YOLOv3 con Ultralytics è semplice. Puoi addestrare il modello utilizzando Python o CLI:

Esempio

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv3n model
model = YOLO("yolov3n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 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

Per opzioni di formazione e linee guida più complete, visita la nostra documentazione sulla modalità di formazione.

Cosa rende YOLOv3u più preciso per le attività di rilevamento degli oggetti?

YOLOv3u migliora YOLOv3 e YOLOv3-Ultralytics incorporando la testa divisa senza ancoraggi e senza oggetti utilizzata nei modelli YOLOv8 . Questo aggiornamento elimina la necessità di scatole di ancoraggio predefinite e punteggi di oggettività, migliorando la capacità di rilevare con maggiore precisione oggetti di dimensioni e forme diverse. Questo rende YOLOv3u una scelta migliore per le attività di rilevamento di oggetti complessi e diversi. Per maggiori informazioni, consulta la sezione Perché YOLOv3u.

Come posso utilizzare i modelli YOLOv3 per l'inferenza?

Puoi eseguire l'inferenza utilizzando i modelli YOLOv3 sia con gli script di Python che con i comandi di CLI :

Esempio

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv3n model
model = YOLO("yolov3n.pt")

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

Per maggiori dettagli sull'esecuzione dei modelli di YOLO , consulta la documentazione sulla modalità di inferenza.

Quali attività sono supportate da YOLOv3 e dalle sue varianti?

YOLOv3, YOLOv3-Ultralytics e YOLOv3u supportano principalmente le attività di rilevamento degli oggetti. Questi modelli possono essere utilizzati per varie fasi della distribuzione e dello sviluppo dei modelli, come l'inferenza, la convalida, la formazione e l'esportazione. Per un elenco completo delle attività supportate e per maggiori dettagli, visita la nostra documentazione sulle attività di rilevamento degli oggetti.

Dove posso trovare le risorse per citare YOLOv3 nella mia ricerca?

Se utilizzi YOLOv3 nella tua ricerca, ti preghiamo di citare 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 maggiori dettagli sulle citazioni, consulta la sezione Citazioni e ringraziamenti.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (9)

Commenti