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: è la terza versione dell'algoritmo di rilevamento degli oggetti You Only Look Once (YOLO). Sviluppato originariamente 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 di YOLOv8 . YOLOv3u mantiene la stessa architettura di 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. Ciò ha migliorato significativamente l'accuratezza del rilevamento per 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 è dotata di un supporto aggiuntivo per 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 ancoraggi 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. Ciò 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 specificamente 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à, che garantiscono 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 YOLOv3. Per una documentazione completa su queste e altre modalità, consultare le pagine dei documenti Predict, Train, Val ed Export.

Esempio

PyTorch preaddestrato *.pt modelli e la configurazione *.yaml possono essere passati al metodo 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 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 utilizzate YOLOv3 nella vostra ricerca, siete pregati di citare i documenti originali 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.

FAQ

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, consultare la serie YOLOv3.

Come posso addestrare un modello YOLOv3 utilizzando Ultralytics?

L'addestramento di un modello YOLOv3 con Ultralytics è semplice. È possibile 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, visitate 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. Ciò rende YOLOv3u una scelta migliore per le attività di rilevamento di oggetti complessi e diversi. Per ulteriori informazioni, consultare la sezione Perché YOLOv3u.

Come posso utilizzare i modelli YOLOv3 per l'inferenza?

È possibile eseguire l'inferenza utilizzando i modelli YOLOv3 tramite gli script Python o i comandi 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 , consultare la documentazione sulla modalità di inferenza.

Quali compiti sono supportati 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 del modello, come l'inferenza, la convalida, l'addestramento e l'esportazione. Per una serie completa di attività supportate e per maggiori dettagli, visitate la documentazione sulle attività di rilevamento degli oggetti.

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

Se si utilizza YOLOv3 nella propria ricerca, si prega di citare i documenti originali 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, consultare la sezione Citazioni e ringraziamenti.

📅C reato 1 anno fa ✏️ Aggiornato 2 mesi fa

Commenti