Rilevamento degli oggetti con caselle di delimitazione orientate
Il rilevamento di oggetti orientati fa un passo avanti rispetto al rilevamento di oggetti e introduce un angolo aggiuntivo per individuare gli oggetti in modo più preciso 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 ciascuna casella. Il rilevamento di oggetti è una buona scelta quando è necessario identificare oggetti di interesse in una scena, ma non è necessario sapere esattamente dove si trova l'oggetto o la sua forma esatta.
Suggerimento
YOLO11 I modelli OBB utilizzano il metodo -obb
suffisso, cioè yolo11n-obb.pt
e sono preaddestrati su DOTAv1.
Guarda: Rilevamento di oggetti utilizzando Ultralytics YOLO Oriented Bounding Boxes (YOLO-OBB)
Campioni visivi
Rilevamento delle navi tramite OBB | Rilevamento del veicolo tramite OBB |
---|---|
Modelli
YOLO11 Sono qui 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à T4TensorRT10 (ms) |
params (M) |
FLOP (B) |
---|---|---|---|---|---|---|
YOLO11n-obb | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 17.2 |
YOLO11s-obb | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.5 |
YOLO11m-obb | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 183.5 |
YOLO11l-obb | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.2 | 232.0 |
YOLO11x-obb | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 520.2 |
- mAPtest sono per il modello singolo a scala multipla su DOTAv1 set di dati.
Riproduzione dayolo val obb data=DOTAv1.yaml device=0 split=test
e inviare i risultati dell'unione a Valutazione DOTA. - Velocità mediata sulle immagini DOTAv1 val utilizzando una Amazon EC2 P4d istanza.
Riproduzione dayolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
Treno
Addestra YOLO11n-obb sul set di dati DOTA8 per 100 epoche con dimensioni dell'immagine 640. Per un elenco completo degli argomenti disponibili, vedere la pagina di configurazione.
Esempio
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-obb.yaml") # build a new model from YAML
model = YOLO("yolo11n-obb.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n-obb.yaml").load("yolo11n.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=yolo11n-obb.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo obb train data=dota8.yaml model=yolo11n-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=yolo11n-obb.yaml pretrained=yolo11n-obb.pt epochs=100 imgsz=640
Guarda: Come addestrare Ultralytics YOLO -OBB (Oriented Bounding Boxes) Modelli su DOTA Dataset usando Ultralytics HUB
Formato del set di dati
Il formato del set di dati OBB è descritto in dettaglio nella Guida ai set di dati.
Val
Convalida del modello YOLO11n-obb addestrato precisione sul set di dati DOTA8. Non sono necessari argomenti, poiché l'opzione model
mantiene la sua formazione data
e gli argomenti come attributi del modello.
Esempio
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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
Utilizzare un modello YOLO11n-obb addestrato per eseguire previsioni sulle immagini.
Esempio
Guarda: Come rilevare e tracciare i serbatoi di stoccaggio utilizzando Ultralytics YOLO -OBB | Oriented Bounding Boxes | DOTA
Vedi tutto predict
dettagli sulla modalità nella sezione Prevedere pagina.
Esportazione
Esportazione di un modello YOLO11n-obb in un formato diverso come ONNX, CoreML, ecc.
Esempio
I formati di esportazione disponibili di YOLO11-obb sono riportati nella tabella seguente. È possibile esportare in qualsiasi formato utilizzando l'opzione format
cioè l'argomento format='onnx'
o format='engine'
. È possibile prevedere o convalidare direttamente i modelli esportati, ad es. yolo predict model=yolo11n-obb.onnx
. Al termine dell'esportazione vengono mostrati esempi di utilizzo del modello.
Formato | format Argomento |
Modello | Metadati | Argomenti |
---|---|---|---|---|
PyTorch | - | yolo11n-obb.pt |
✅ | - |
TorchScript | torchscript |
yolo11n-obb.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolo11n-obb.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolo11n-obb_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolo11n-obb.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolo11n-obb.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n-obb_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolo11n-obb.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolo11n-obb.tflite |
✅ | imgsz , half , int8 , batch |
TF Bordo TPU | edgetpu |
yolo11n-obb_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolo11n-obb_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolo11n-obb_paddle_model/ |
✅ | imgsz , batch |
MNN | mnn |
yolo11n-obb.mnn |
✅ | imgsz , batch , int8 , half |
NCNN | ncnn |
yolo11n-obb_ncnn_model/ |
✅ | imgsz , half , batch |
IMX500 | imx |
yolo11n-obb_imx_model/ |
✅ | imgsz , int8 |
Vedi tutto export
dettagli nel Esportazione pagina.
FAQ
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 la precisione 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. Ciò è particolarmente utile per le applicazioni che richiedono un posizionamento preciso degli oggetti, come le immagini aeree o satellitari(Guida ai set di dati).
Come si addestra un modello YOLO11n-obb utilizzando un dataset personalizzato?
Per addestrare un modello YOLO11n-obb con un dataset personalizzato, seguire l'esempio seguente utilizzando Python o CLI:
Esempio
Per ulteriori argomenti di formazione, consultare la sezione Configurazione.
Quali dataset si possono utilizzare per l'addestramento dei modelli YOLO11-OBB?
YOLO11-I modelli OBB sono preaddestrati su set di dati come DOTAv1, ma è possibile utilizzare qualsiasi set di dati formattato per OBB. Per informazioni dettagliate sui formati dei set di dati OBB, consultare la Guida ai set di dati.
Come posso esportare un modello YOLO11-OBB nel formato ONNX ?
L'esportazione di un modello YOLO11-OBB nel formato ONNX è semplice utilizzando Python o CLI:
Esempio
Per ulteriori formati di esportazione e dettagli, consultare la pagina Esportazione.
Come si convalida l'accuratezza di un modello YOLO11n-obb?
Per convalidare un modello YOLO11n-obb, è possibile utilizzare i comandi Python o CLI come mostrato di seguito:
Esempio
Per tutti i dettagli sulla convalida, consultare la sezione Val.