Objectdetectie met georiënteerde begrenzende vakken
Georiënteerde objectdetectie gaat een stap verder dan objectdetectie en introduceert een extra hoek om objecten nauwkeuriger te lokaliseren in een afbeelding.
De uitvoer van een georiënteerde objectdetector is een verzameling geroteerde begrenzende vakken die de objecten in de afbeelding precies omsluiten, samen met klasse-labels en vertrouwensscores voor elk vak. Objectdetectie is een goede keuze als je interessante objecten in een scène moet identificeren, maar niet precies hoeft te weten waar het object zich bevindt of wat de exacte vorm ervan is.
Tip
YOLOv8 OBB-modellen gebruiken de -obb
achtervoegsel, dus yolov8n-obb.pt
en zijn voorgetraind op DOTAv1.
Kijken: Objectdetectie met behulp van Ultralytics YOLOv8 Georiënteerde begrenzende vakken (YOLOv8-OBB) |
Kijken: Objectdetectie met YOLOv8-OBB met Ultralytics HUB |
Visuele voorbeelden
Scheepsdetectie met OBB | Voertuigdetectie met OBB |
---|---|
Modellen
YOLOv8 Hier worden voorgetrainde OBB-modellen getoond, die zijn voorgetraind op de DOTAv1 dataset.
Modellen worden bij het eerste gebruik automatisch gedownload van de nieuwste Ultralytics release.
Model | grootte (pixels) |
mAPtest 50 |
Snelheid CPU ONNX (ms) |
Snelheid A100 TensorRT (ms) |
params (M) |
FLOP's (B) |
---|---|---|---|---|---|---|
YOLOv8n-obb | 1024 | 78.0 | 204.77 | 3.57 | 3.1 | 23.3 |
YOLOv8s-obb | 1024 | 79.5 | 424.88 | 4.07 | 11.4 | 76.3 |
YOLOv8m-obb | 1024 | 80.5 | 763.48 | 7.61 | 26.4 | 208.6 |
YOLOv8l-obb | 1024 | 80.7 | 1278.42 | 11.83 | 44.5 | 433.8 |
YOLOv8x-obb | 1024 | 81.36 | 1759.10 | 13.23 | 69.5 | 676.7 |
- mAPtest waarden zijn voor één model multischaal op DOTAv1 test dataset.
Reproduceren dooryolo val obb data=DOTAv1.yaml device=0 split=test
en stuur de samengevoegde resultaten naar DOTA evaluatie. - Snelheid gemiddeld over DOTAv1 val beelden met behulp van een Amazon EC2 P4d voorbeeld.
Reproduceren dooryolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
Trein
Trein YOLOv8n-obb op de dota8.yaml
dataset voor 100 epochs bij afbeeldingsgrootte 640. Voor een volledige lijst van beschikbare argumenten zie de Configuratie pagina.
Voorbeeld
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n-obb.yaml') # build a new model from YAML
model = YOLO('yolov8n-obb.pt') # load a pretrained model (recommended for training)
model = YOLO('yolov8n-obb.yaml').load('yolov8n.pt') # build from YAML and transfer weights
# Train the model
results = model.train(data='dota8.yaml', epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo obb train data=dota8.yaml model=yolov8n-obb.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo obb train data=dota8.yaml model=yolov8n-obb.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo obb train data=dota8.yaml model=yolov8n-obb.yaml pretrained=yolov8n-obb.pt epochs=100 imgsz=640
Formaat dataset
Het formaat van de OBB dataset is in detail te vinden in de Dataset Gids.
Val
Valideer de nauwkeurigheid van het getrainde YOLOv8n-obb model op de DOTA8 dataset. Er hoeft geen argument te worden doorgegeven als de model
behoudt zijn opleiding data
en argumenten als modelattributen.
Voorbeeld
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n-obb.pt') # load an official model
model = YOLO('path/to/best.pt') # load a custom model
# Validate the model
metrics = model.val(data='dota8.yaml') # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95(B)
metrics.box.map50 # map50(B)
metrics.box.map75 # map75(B)
metrics.box.maps # a list contains map50-95(B) of each category
Voorspel
Gebruik een getraind YOLOv8n-obb model om voorspellingen op afbeeldingen uit te voeren.
Voorbeeld
Bekijk volledig predict
details over de modus in de Voorspel pagina.
Exporteer
Exporteer een YOLOv8n-obb model naar een ander formaat zoals ONNX, CoreML, enz.
Voorbeeld
De beschikbare YOLOv8-obb exportformaten staan in de tabel hieronder. Je kunt naar elk formaat exporteren met de format
argument, d.w.z. format='onnx'
of format='engine'
. Je kunt direct voorspellen of valideren op geëxporteerde modellen, d.w.z. yolo predict model=yolov8n-obb.onnx
. Gebruiksvoorbeelden worden getoond voor je model nadat het exporteren is voltooid.
Formaat | format Argument |
Model | Metagegevens | Argumenten |
---|---|---|---|---|
PyTorch | - | yolov8n-obb.pt |
✅ | - |
TorchScript | torchscript |
yolov8n-obb.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n-obb.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n-obb_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n-obb.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolov8n-obb.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n-obb_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n-obb.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolov8n-obb.tflite |
✅ | imgsz , half , int8 , batch |
TF Rand TPU | edgetpu |
yolov8n-obb_edgetpu.tflite |
✅ | imgsz , batch |
TF.js | tfjs |
yolov8n-obb_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n-obb_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n-obb_ncnn_model/ |
✅ | imgsz , half , batch |
Bekijk volledig export
details in de Exporteer pagina.
Gemaakt op 2024-01-05, Bijgewerkt op 2024-05-08
Auteurs: Burhan-Q (3), glenn-jocher (16), Lachen-q (3), AyushExel (1)