Overslaan naar inhoud

YOLOv3, YOLOv3-Ultralytics en YOLOv3u

Overzicht

Dit document geeft een overzicht van drie nauw verwante objectdetectiemodellen, namelijk YOLOv3, YOLOv3-Ultralytics en YOLOv3u.

  1. YOLOv3: Dit is de derde versie van het You Only Look Once (YOLO) objectdetectiealgoritme. Oorspronkelijk ontwikkeld door Joseph Redmon, verbeterde YOLOv3 zijn voorgangers door functies te introduceren zoals multischaal voorspellingen en drie verschillende groottes detectiekernen.

  2. YOLOv3-Ultralytics: Dit is Ultralytics' implementatie van het YOLOv3 model. Het reproduceert de originele YOLOv3 architectuur en biedt extra functionaliteiten, zoals ondersteuning voor meer voorgetrainde modellen en eenvoudigere aanpassingsopties.

  3. YOLOv3u: Dit is een bijgewerkte versie van YOLOv3-Ultralytics die de ankervrije, objectness-vrije split head bevat die wordt gebruikt in YOLOv8 modellen. YOLOv3u behoudt dezelfde ruggengraat- en nekarchitectuur als YOLOv3, maar met de bijgewerkte detectiekop van YOLOv8.

Ultralytics YOLOv3

Belangrijkste kenmerken

  • YOLOv3: introduceert het gebruik van drie verschillende schalen voor detectie, waarbij gebruik wordt gemaakt van drie verschillende formaten detectiekernen: 13x13, 26x26 en 52x52. Dit verbeterde de detectienauwkeurigheid voor objecten van verschillende grootte aanzienlijk. Daarnaast voegde YOLOv3 functies toe zoals multi-label voorspellingen voor elke bounding box en een beter feature extractor netwerk.

  • YOLOv3-Ultralytics: Ultralytics De implementatie van YOLOv3 levert dezelfde prestaties als het oorspronkelijke model, maar met extra ondersteuning voor meer voorgetrainde modellen, extra trainingsmethoden en eenvoudigere aanpassingsopties. Dit maakt het veelzijdiger en gebruiksvriendelijker voor praktische toepassingen.

  • YOLOv3u: Dit bijgewerkte model bevat de ankerloze, objectness-free split head van YOLOv8. Doordat er geen vooraf gedefinieerde ankerboxen en objectness scores meer nodig zijn, kan dit ontwerp van de detectiekop het vermogen van het model om objecten van verschillende grootte en vorm te detecteren verbeteren. Dit maakt YOLOv3u robuuster en nauwkeuriger voor objectdetectietaken.

Ondersteunde taken en modi

De YOLOv3 serie, inclusief YOLOv3, YOLOv3-Ultralytics, en YOLOv3u, zijn speciaal ontworpen voor objectdetectietaken. Deze modellen staan bekend om hun effectiviteit in verschillende scenario's in de echte wereld, waarbij nauwkeurigheid en snelheid in balans zijn. Elke variant biedt unieke functies en optimalisaties, waardoor ze geschikt zijn voor een reeks toepassingen.

Alle drie de modellen ondersteunen een uitgebreide set modi, die veelzijdigheid garanderen in verschillende stadia van het inzetten en ontwikkelen van modellen. Deze modi omvatten Inference, Validation, Training en Export, waardoor gebruikers beschikken over een complete toolkit voor effectieve objectdetectie.

Type model Ondersteunde taken Inferentie Validatie Training Exporteer
YOLOv3 Objectdetectie ✅ ✅ ✅ ✅
YOLOv3-Ultralytics Objectdetectie ✅ ✅ ✅ ✅
YOLOv3u Objectdetectie ✅ ✅ ✅ ✅

Deze tabel geeft een overzicht van de mogelijkheden van elke YOLOv3-variant, waarbij hun veelzijdigheid en geschiktheid voor verschillende taken en operationele modi in objectdetectieworkflows wordt benadrukt.

Voorbeelden

Dit voorbeeld geeft eenvoudige YOLOv3 training en inferentie voorbeelden. Voor volledige documentatie over deze en andere modi zie de Predict, Train, Val en Export docs pagina's.

Voorbeeld

PyTorch voorgetraind *.pt modellen en configuratie *.yaml bestanden kunnen worden doorgegeven aan de YOLO() klasse om een instantie van een model te maken 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 commando's zijn beschikbaar om de modellen direct uit te voeren:

# 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

Citaten en Erkenningen

Als je YOLOv3 gebruikt in je onderzoek, citeer dan de originele YOLO papers en de Ultralytics YOLOv3 repository:

@article{redmon2018yolov3,
  title={YOLOv3: An Incremental Improvement},
  author={Redmon, Joseph and Farhadi, Ali},
  journal={arXiv preprint arXiv:1804.02767},
  year={2018}
}

Met dank aan Joseph Redmon en Ali Farhadi voor het ontwikkelen van de originele YOLOv3.



Gemaakt op 2023-11-12, Bijgewerkt op 2024-01-07
Auteurs: glenn-jocher (4)

Reacties