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.

FAQ

Wat zijn de verschillen tussen YOLOv3, YOLOv3-Ultralytics en YOLOv3u?

YOLOv3 is de derde iteratie van het YOLO (You Only Look Once) objectdetectiealgoritme ontwikkeld door Joseph Redmon, bekend om de balans tussen nauwkeurigheid en snelheid, waarbij drie verschillende schalen (13x13, 26x26 en 52x52) worden gebruikt voor detecties. YOLOv3-Ultralytics is Ultralytics' aanpassing van YOLOv3 die ondersteuning voor meer voorgetrainde modellen toevoegt en het gemakkelijker maakt om modellen aan te passen. YOLOv3u is een verbeterde variant van YOLOv3-Ultralytics, waarin de anker- en objectvrij gesplitste kop van YOLOv8 is geïntegreerd, waardoor de robuustheid en nauwkeurigheid van de detectie voor verschillende objectgroottes is verbeterd. Raadpleeg de YOLOv3-serie voor meer informatie over de varianten.

Hoe kan ik een YOLOv3-model trainen met Ultralytics?

Het trainen van een YOLOv3 model met Ultralytics is eenvoudig. Je kunt het model trainen met Python of CLI:

Voorbeeld

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

Ga voor meer uitgebreide trainingsopties en richtlijnen naar onze documentatie over de Trainingsmodus.

Wat maakt YOLOv3u nauwkeuriger voor objectdetectietaken?

YOLOv3u is een verbetering op YOLOv3 en YOLOv3-Ultralytics door de anker- en objectiviteitsvrije gedeelde kop te integreren die wordt gebruikt in YOLOv8 modellen. Deze upgrade maakt vooraf gedefinieerde ankerboxen en objectness scores overbodig, waardoor objecten van verschillende grootte en vorm nauwkeuriger kunnen worden gedetecteerd. Dit maakt YOLOv3u een betere keuze voor complexe en diverse objectdetectietaken. Raadpleeg voor meer informatie het gedeelte Waarom YOLOv3u.

Hoe kan ik YOLOv3-modellen gebruiken voor inferentie?

Je kunt inferentie uitvoeren met YOLOv3-modellen door middel van Python scripts of CLI commando's:

Voorbeeld

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

Raadpleeg de documentatie over de Inferentie modus voor meer informatie over het uitvoeren van YOLO modellen.

Welke taken worden ondersteund door YOLOv3 en zijn varianten?

YOLOv3, YOLOv3-Ultralytics en YOLOv3u ondersteunen voornamelijk objectdetectietaken. Deze modellen kunnen worden gebruikt voor verschillende stadia van modelimplementatie en -ontwikkeling, zoals Inferentie, Validatie, Training en Exporteren. Voor een uitgebreide set van ondersteunde taken en meer diepgaande details, bezoek onze Object Detectie taken documentatie.

Waar kan ik bronnen vinden om YOLOv3 in mijn onderzoek te citeren?

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

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

Raadpleeg het gedeelte Citaten en erkenningen voor meer informatie over citaten.



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

Reacties