Ultralytics YOLO27:
Get Started

YOLOv3 e YOLOv3u#

Panoramica#

Questo documento presenta una panoramica di tre modelli di rilevamento degli oggetti strettamente correlati: 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 funzionalità come le predizioni multiscala e tre diverse dimensioni di kernel di rilevamento.

  2. YOLOv3-Ultralytics: è l'implementazione di YOLOv3 in PyTorch di Ultralytics, mantenuta nel repository ultralytics/yolov3. Mantiene l'architettura originale basata su anchor e aggiunge più modelli preaddestrati e una personalizzazione più semplice.

  3. YOLOv3u: è una versione aggiornata di YOLOv3-Ultralytics che integra la head separata, senza anchor e senza objectness, utilizzata nei modelli YOLOv8. YOLOv3u mantiene la stessa architettura di backbone e neck di YOLOv3, ma adotta la detection head aggiornata di YOLOv8.

Banner del modello di rilevamento degli oggetti YOLOv3

Funzionalità principali#

  • YOLOv3: ha introdotto l'uso di tre scale diverse per il rilevamento, sfruttando tre diverse dimensioni di kernel di rilevamento: 13x13, 26x26 e 52x52. Ciò ha migliorato notevolmente la precisione del rilevamento di oggetti di dimensioni diverse. Inoltre, YOLOv3 ha aggiunto funzionalità come le predizioni multilabel per ogni bounding box e una rete di estrazione delle feature migliore.

  • YOLOv3u: questo modello aggiornato integra la head separata di YOLOv8, senza anchor e senza objectness. Eliminando la necessità di anchor box predefinite e punteggi di objectness, questo design della detection head può migliorare la capacità del modello di rilevare oggetti di dimensioni e forme diverse. Ciò rende YOLOv3u più robusto e preciso nelle attività di rilevamento degli oggetti.

Attività e modalità supportate#

YOLOv3 è progettato specificamente per le attività di rilevamento degli oggetti. Ultralytics supporta tre varianti di YOLOv3: yolov3u, yolov3-tinyu e yolov3-sppu. u nel nome indica che queste varianti utilizzano la head senza anchor di YOLOv8, a differenza dell'architettura originale basata su anchor. Questi modelli sono noti per la loro efficacia in vari scenari reali e bilanciano precisione e velocità. Ogni variante offre funzionalità e ottimizzazioni specifiche, che la rendono adatta a una serie di applicazioni.

Tutti e tre i modelli supportano una serie completa di modalità, garantendo versatilità nelle varie fasi di distribuzione del modello e sviluppo. Queste modalità includono Inferenza, Validazione, Addestramento ed Esportazione, fornendo agli utenti un toolkit completo per un rilevamento degli oggetti efficace.

Tipo di modelloPesi preaddestratiAttività supportateAddestramentoValidazioneInferenzaEsporta
YOLOv3(u)yolov3u.ptRilevamento di oggetti✅✅✅✅
YOLOv3-Tiny(u)yolov3-tinyu.ptRilevamento di oggetti✅✅✅✅
YOLOv3-SPP(u)yolov3-sppu.ptRilevamento di oggetti✅✅✅✅

Questa tabella offre una panoramica immediata delle capacità di ogni variante di YOLOv3, evidenziandone la versatilità e l'idoneità per varie attività e modalità operative nei workflow di rilevamento degli oggetti.

Esempi d'uso#

Questo esempio mostra come eseguire in modo semplice l'addestramento e l'inferenza con YOLOv3. Per la documentazione completa su queste e altre modalità, consulta le pagine della documentazione Predizione, Addestramento, Validazione ed Esportazione.

Esempio

I modelli *.pt preaddestrati con PyTorch e i file di configurazione *.yaml possono essere passati alla classe YOLO() per creare un'istanza del modello in Python:

from ultralytics import YOLO

# Carica un modello YOLOv3u preaddestrato su COCO
model = YOLO("yolov3u.pt")

# Visualizza le informazioni sul modello (facoltativo)
model.info()

# Addestra il modello sul dataset di esempio COCO8 per 100 epoche
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Esegui l'inferenza con il modello YOLOv3u sull'immagine 'bus.jpg'
results = model("path/to/bus.jpg")

Citazioni e ringraziamenti#

Se usi YOLOv3 nella tua ricerca, cita gli articoli originali su YOLO e il repository YOLOv3 di Ultralytics:

Citazione
@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 YOLOv3 originale.

Domande frequenti#

  • YOLOv3 è la terza iterazione dell'algoritmo di rilevamento degli oggetti YOLO (You Only Look Once), sviluppato da Joseph Redmon e noto per il bilanciamento tra precisione e velocità; usa tre scale diverse (13x13, 26x26 e 52x52) per i rilevamenti. YOLOv3-Ultralytics è un adattamento di YOLOv3 realizzato da Ultralytics che aggiunge il supporto per più modelli preaddestrati e semplifica la personalizzazione dei modelli. YOLOv3u è una variante aggiornata di YOLOv3-Ultralytics che integra la head separata di YOLOv8, senza anchor e senza objectness, migliorando la robustezza e la precisione del rilevamento per oggetti di varie dimensioni. Per maggiori dettagli sulle varianti, consulta la serie YOLOv3.

  • Addestrare un modello YOLOv3 con Ultralytics è semplice. Puoi addestrare il modello usando Python oppure la CLI:

    Esempio
    from ultralytics import YOLO
    
    # Carica un modello YOLOv3u preaddestrato su COCO
    model = YOLO("yolov3u.pt")
    
    # Addestra il modello sul dataset di esempio COCO8 per 100 epoche
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Per ulteriori opzioni e indicazioni sull'addestramento, consulta la nostra documentazione sulla modalità Train.

  • YOLOv3u migliora YOLOv3 e YOLOv3-Ultralytics integrando la head separata, senza anchor e senza objectness, utilizzata nei modelli YOLOv8. Questo aggiornamento elimina la necessità di anchor box predefinite e punteggi di objectness, migliorando la capacità di rilevare con maggiore precisione oggetti di dimensioni e forme diverse. Per questo, YOLOv3u è una scelta migliore per attività di rilevamento degli oggetti complesse e variegate. Per maggiori informazioni, consulta la sezione Funzionalità principali.

  • Puoi eseguire l'inferenza con i modelli YOLOv3 usando script Python oppure comandi CLI:

    Esempio
    from ultralytics import YOLO
    
    # Carica un modello YOLOv3u preaddestrato su COCO
    model = YOLO("yolov3u.pt")
    
    # Esegui l'inferenza con il modello YOLOv3u sull'immagine 'bus.jpg'
    results = model("path/to/bus.jpg")

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

  • YOLOv3, YOLOv3-Tiny e YOLOv3-SPP supportano principalmente le attività di rilevamento degli oggetti. Questi modelli possono essere usati in varie fasi della distribuzione e dello sviluppo dei modelli, come Inferenza, Validazione, Addestramento ed Esportazione. Per un elenco completo delle attività supportate e maggiori dettagli, consulta la nostra documentazione sulle attività di rilevamento degli oggetti.

  • Se usi YOLOv3 nella tua ricerca, cita gli articoli originali su YOLO e il repository YOLOv3 di Ultralytics. Esempio di citazione BibTeX:

    Citazione
    @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.

Commenti