Vai al contenuto

YOLOv3 e YOLOv3u

Panoramica

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

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

  2. YOLOv3u: Si tratta di una versione aggiornata di YOLOv3-Ultralytics che incorpora l'head suddiviso senza ancore e senza objectness utilizzato nei modelli YOLOv8. YOLOv3u mantiene la stessa backbone e l'architettura del neck di YOLOv3, ma con l'detection head aggiornato di YOLOv8.

Ultralytics YOLOv3

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 del rilevamento per oggetti di diverse dimensioni. Inoltre, YOLOv3 ha aggiunto funzionalità come le previsioni multi-etichetta per ogni bounding box e una migliore rete di estrazione delle caratteristiche.

  • YOLOv3u: Questo modello aggiornato incorpora l'head diviso senza ancore e senza objectness di YOLOv8. Eliminando la necessità di anchor box predefinite e punteggi di objectness, questo design dell'head di rilevamento 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 object detection.

Attività e modalità supportate

YOLOv3 è progettato specificamente per il rilevamento di oggetti compiti. Ultralytics supporta tre varianti di YOLOv3: yolov3u, yolov3-tinyu e yolov3-sppu. u nel nome indica che questi utilizzano l'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 accuratezza e velocità. Ogni variante offre caratteristiche e ottimizzazioni uniche, rendendole adatte a una vasta gamma di applicazioni.

Tutti e tre i modelli supportano un set completo di modalità, garantendo versatilità nelle varie fasi del deployment del modello e dello sviluppo. Queste modalità includono Inference, Validation, Training ed Export, fornendo agli utenti un toolkit completo per un'efficace object detection.

Tipo di modello Pesi pre-addestrati Task supportati Inferenza Validazione Training Esportazione
YOLOv3(u) yolov3u.pt Rilevamento di oggetti
YOLOv3-Tiny(u) yolov3-tinyu.pt Rilevamento di oggetti
YOLOv3u-SPP(u) yolov3-sppu.pt Rilevamento di oggetti

Questa tabella fornisce una panoramica immediata delle capacità di ciascuna variante di YOLOv3, evidenziandone la versatilità e l'idoneità per varie attività e modalità operative nei flussi di lavoro di rilevamento oggetti.

Esempi di utilizzo

Questo esempio fornisce semplici esempi di training e inferenza YOLOv3. Per la documentazione completa su questi e altri modi, consultare le pagine della documentazione Predict, Train, Val ed Export.

Esempio

PyTorch pre-addestrato *.pt modelli, così come la configurazione *.yaml file possono essere passati alla YOLO() classe per creare un'istanza del 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")

Sono disponibili comandi CLI per eseguire direttamente i modelli:

# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640

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

Citazioni e riconoscimenti

Se utilizzi YOLOv3 nella tua ricerca, cita gli articoli originali su 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 object detection 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 pre-addestrati e facilita una più semplice personalizzazione del modello. YOLOv3u è una variante aggiornata di YOLOv3-Ultralytics, che integra l'head diviso anchor-free, objectness-free da YOLOv8, migliorando la robustezza e la precisione del rilevamento per varie dimensioni di oggetti. Per maggiori dettagli sulle varianti, fare riferimento alla serie YOLOv3.

Come posso addestrare un modello YOLOv3 usando 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 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)
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640

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

Cosa rende YOLOv3u più preciso per le attività di object detection?

YOLOv3u migliora YOLOv3 e YOLOv3-Ultralytics incorporando l'head suddiviso senza ancore e senza objectness utilizzato 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. Ciò rende YOLOv3u una scelta migliore per attività di object detection complesse e diversificate. Per ulteriori informazioni, consultare la sezione Caratteristiche principali.

Come posso usare i modelli YOLOv3 per l'inferenza?

È possibile eseguire l'inferenza utilizzando i modelli YOLOv3 tramite script python o comandi CLI:

Esempio

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")
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg

Consulta la documentazione sulla modalità di inferenza per maggiori dettagli sull'esecuzione dei modelli YOLO.

Quali task sono supportati 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 implementazione e sviluppo del modello, come Inferenza, Convalida, Addestramento ed Esportazione. Per una serie completa di attività supportate e dettagli più approfonditi, visitare 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 gli articoli originali su 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, fare riferimento alla sezione Citazioni e ringraziamenti.



📅 Creato 1 anno fa ✏️ Aggiornato 5 mesi fa

Commenti