Rilevamento di oggetti con Bounding Box orientate
Il rilevamento di oggetti orientati fa un passo avanti rispetto al rilevamento di oggetti e introduce un angolo in più per individuare con maggiore precisione gli oggetti in un'immagine.
L'output di un rilevatore di oggetti orientato è un insieme di caselle di delimitazione ruotate che racchiudono esattamente gli oggetti nell'immagine, insieme alle etichette di classe e ai punteggi di confidenza per ogni casella. Il rilevamento di oggetti è una buona scelta quando devi identificare gli oggetti di interesse in una scena, ma non hai bisogno di sapere esattamente dove si trova l'oggetto o la sua forma esatta.
Suggerimento
YOLOv8 I modelli OBB utilizzano il metodo -obb
suffisso, cioè yolov8n-obb.pt
e sono preaddestrati su DOTAv1.
Guarda: Rilevamento di oggetti utilizzando Ultralytics YOLOv8 Oriented Bounding Boxes (YOLOv8-OBB) |
Guarda: Rilevamento di oggetti con YOLOv8-OBB utilizzando Ultralytics HUB |
Campioni visivi
Rilevamento delle navi tramite OBB | Rilevamento del veicolo tramite OBB |
---|---|
Modelli
YOLOv8 Qui vengono mostrati i modelli OBB preaddestrati sul dataset DOTAv1.
I modelli vengono scaricati automaticamente dall'ultimarelease di Ultralytics al primo utilizzo.
Modello | dimensione (pixel) |
mAPtest 50 |
Velocità CPU ONNX (ms) |
Velocità A100 TensorRT (ms) |
params (M) |
FLOP (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 I valori sono per il modello singolo multiscala su Test DOTAv1 set di dati.
Riproduci dayolo val obb data=DOTAv1.yaml device=0 split=test
e inviare i risultati unificati a Valutazione DOTA. - Velocità mediata sulle immagini DOTAv1 val utilizzando una Amazon EC2 P4d istanza.
Riproduci dayolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
Treno
Treno YOLOv8n-obb sul dota8.yaml
per 100 epoche con dimensioni dell'immagine 640. Per un elenco completo degli argomenti disponibili, consulta la sezione Configurazione pagina.
Esempio
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
Formato del set di dati
Il formato del set di dati OBB è descritto in dettaglio nella Guida ai set di dati.
Val
Validate trained YOLOv8n-obb model accuracy on the DOTA8 dataset. No arguments are needed as the model
mantiene la sua formazione data
e gli argomenti come attributi del modello.
Esempio
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
Prevedere
Utilizza un modello YOLOv8n-obb addestrato per eseguire previsioni sulle immagini.
Esempio
Vedi tutto predict
i dettagli della modalità nella sezione Prevedere pagina.
Esportazione
Esporta un modello YOLOv8n-obb in un formato diverso come ONNX, CoreML, ecc.
Esempio
I formati di esportazione disponibili di YOLOv8-obb sono riportati nella tabella seguente. Puoi esportare in qualsiasi formato utilizzando l'opzione format
argomento, vale a dire format='onnx'
o format='engine'
. Puoi prevedere o convalidare direttamente i modelli esportati, ad es. yolo predict model=yolov8n-obb.onnx
. Al termine dell'esportazione vengono mostrati degli esempi di utilizzo per il tuo modello.
Formato | format Argomento |
Modello | Metadati | Argomenti |
---|---|---|---|---|
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 Bordo TPU | edgetpu |
yolov8n-obb_edgetpu.tflite |
✅ | imgsz |
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 |
Vedi tutto export
dettagli nella sezione Esportazione pagina.
DOMANDE FREQUENTI
Cosa sono gli Oriented Bounding Box (OBB) e come si differenziano dai normali bounding box?
Le Oriented Bounding Boxes (OBB) includono un angolo aggiuntivo per migliorare l'accuratezza della localizzazione degli oggetti nelle immagini. A differenza delle bounding box normali, che sono rettangoli allineati agli assi, le OBB possono ruotare per adattarsi meglio all'orientamento dell'oggetto. Questo è particolarmente utile per le applicazioni che richiedono un posizionamento preciso degli oggetti, come le immagini aeree o satellitari(Guida ai set di dati).
Come posso addestrare un modello YOLOv8n-obb utilizzando un set di dati personalizzato?
Per addestrare un modello YOLOv8n-obb con un dataset personalizzato, segui l'esempio seguente utilizzando Python o CLI:
Esempio
Per ulteriori argomenti di formazione, consulta la sezione Configurazione.
Quali set di dati posso utilizzare per addestrare i modelli YOLOv8-OBB?
YOLOv8-I modelli OBB sono preaddestrati su dataset come DOTAv1, ma puoi utilizzare qualsiasi dataset formattato per OBB. Informazioni dettagliate sui formati dei set di dati OBB sono disponibili nella Guida ai set di dati.
Come posso esportare un modello YOLOv8-OBB nel formato ONNX ?
L'esportazione di un modello YOLOv8-OBB nel formato ONNX è semplice utilizzando Python o CLI:
Esempio
Per ulteriori formati di esportazione e dettagli, consulta la pagina Esportazione.
Come posso convalidare l'accuratezza di un modello YOLOv8n-obb?
Per convalidare un modello YOLOv8n-obb, puoi utilizzare i comandi Python o CLI come mostrato di seguito:
Esempio
Consulta i dettagli della convalida nella sezione Val.