Panoramica dei dataset con riquadri di delimitazione orientati (OBB)#
Per addestrare un modello preciso di rilevamento degli oggetti con riquadri di delimitazione orientati (OBB) è necessario disporre di un dataset completo. Questa guida illustra i vari formati di dataset OBB compatibili con i modelli Ultralytics YOLO e fornisce informazioni sulla loro struttura, applicazione e sui metodi di conversione dei formati.
Formati di dataset OBB supportati#
Formato YOLO OBB#
Il formato YOLO OBB definisce i riquadri di delimitazione tramite i quattro punti degli angoli, con coordinate normalizzate tra 0 e 1. Segue questo formato:
class_index x1 y1 x2 y2 x3 y3 x4 y4Internamente, YOLO elabora le loss e gli output nel formato xywhr, che rappresenta il punto centrale del riquadro di delimitazione (xy), la larghezza, l'altezza e la rotazione.

Un esempio di file delle etichette *.txt per l'immagine precedente, che contiene un oggetto della classe 0 in formato OBB, potrebbe essere il seguente:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758Formato YAML del dataset#
Il framework Ultralytics utilizza il formato di file YAML per definire la configurazione del dataset e del modello per l'addestramento dei modelli OBB. Ecco un esempio del formato YAML utilizzato per definire un dataset OBB:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# DOTA8 dataset (8 images from the DOTAv1 split) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/obb/dota8
# Example usage: yolo train model=yolov8n-obb.pt data=dota8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── dota8 ← downloads here (1 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: dota8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
# Classes for DOTA 1.0
names:
0: plane
1: ship
2: storage tank
3: baseball diamond
4: tennis court
5: basketball court
6: ground track field
7: harbor
8: bridge
9: large vehicle
10: small vehicle
11: helicopter
12: roundabout
13: soccer ball field
14: swimming pool
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/dota8.zipOgnuno tra train, val e test accetta una directory, un elenco di directory o un file *.txt che elenca un percorso di immagine per riga (i percorsi che iniziano con ./ vengono risolti relativamente al file *.txt). Un file *.txt è utile per addestrare su un sottoinsieme di una directory, ignorare le immagini senza etichette o combinare immagini provenienti da più origini in una singola suddivisione.
path: datasets/dota8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: planeUtilizzo#
Per addestrare un modello utilizzando questi formati OBB:
from ultralytics import YOLO
# Load a pretrained YOLO26n-OBB model
model = YOLO("yolo26n-obb.pt")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)Dataset supportati#
Attualmente sono supportati i seguenti set di dati con bounding box orientati. La maggior parte di questi set di dati è ospitata anche su Ultralytics Platform, dove puoi esplorare le immagini e le annotazioni, visualizzare le statistiche del set di dati e clonarli per l'addestramento sul cloud.
- DOTA-v1: la prima versione del dataset DOTA, che fornisce un insieme completo di immagini aeree con riquadri di delimitazione orientati per il rilevamento degli oggetti.
- DOTA-v1.5: una versione intermedia del dataset DOTA, che offre annotazioni aggiuntive e miglioramenti rispetto a DOTA-v1 per attività di rilevamento degli oggetti più efficaci.
- DOTA-v2: la versione 2 di DOTA (un dataset su larga scala per il rilevamento degli oggetti nelle immagini aeree), incentrata sul rilevamento da prospettive aeree e contenente riquadri di delimitazione orientati con 1,7 milioni di istanze e 11.268 immagini.
- DOTA8: un sottoinsieme di 8 immagini del dataset DOTA completo, adatto per testare i flussi di lavoro e i controlli di Integrazione continua (CI) dell'addestramento OBB nel repository
ultralytics. - DOTA8 Multispectral: un sottoinsieme TIFF di 8 immagini e 10 canali per testare l'addestramento OBB multispettrale su Ultralytics Platform.
- DOTA128: un sottoinsieme di 128 immagini del dataset DOTA, con tutte le immagini nella cartella train (utilizzata sia per train sia per val), che offre un buon equilibrio tra dimensioni e diversità per testare i modelli OBB.
Integrare il tuo dataset OBB#
Se vuoi introdurre dataset personalizzati con riquadri di delimitazione orientati, assicurati che siano compatibili con il "formato YOLO OBB" menzionato sopra. Converti le annotazioni in questo formato richiesto e specifica i percorsi, le classi e i nomi delle classi in un file di configurazione YAML corrispondente.
Convertire i formati delle etichette#
Dal formato del dataset DOTA al formato YOLO OBB#
È possibile convertire le etichette dal formato del dataset DOTA al formato YOLO OBB utilizzando questo script:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")Questo meccanismo di conversione è fondamentale per i dataset nel formato DOTA, poiché ne garantisce l'allineamento con il formato OBB di Ultralytics YOLO.
È indispensabile verificare la compatibilità del dataset con il tuo modello e rispettare le convenzioni di formato necessarie. Dataset strutturati correttamente sono fondamentali per addestrare modelli efficienti di rilevamento degli oggetti con riquadri di delimitazione orientati.
FAQ#
I riquadri di delimitazione orientati (OBB) sono un tipo di annotazione dei riquadri di delimitazione in cui il riquadro può essere ruotato per allinearsi più precisamente all'oggetto rilevato, anziché essere semplicemente allineato agli assi. Sono particolarmente utili nelle immagini aeree o satellitari, dove gli oggetti potrebbero non essere allineati agli assi dell'immagine. Nei modelli Ultralytics YOLO, gli OBB sono rappresentati dai quattro punti degli angoli nel formato YOLO OBB. Questo consente un rilevamento degli oggetti più preciso, poiché i riquadri di delimitazione possono ruotare per adattarsi meglio agli oggetti.
Puoi convertire le etichette del dataset DOTA nel formato YOLO OBB utilizzando la funzione
convert_dota_to_yolo_obbdi Ultralytics. Questa conversione garantisce la compatibilità con i modelli Ultralytics YOLO, consentendoti di sfruttare le funzionalità OBB per migliorare il rilevamento degli oggetti. Ecco un rapido esempio:from ultralytics.data.converter import convert_dota_to_yolo_obb convert_dota_to_yolo_obb("path/to/DOTA")Questo script riformatterà le annotazioni DOTA in un formato compatibile con YOLO.
L'addestramento di un modello YOLO26 con OBB richiede che il dataset sia nel formato YOLO OBB e che tu utilizzi quindi l'API Ultralytics per addestrare il modello. Ecco un esempio sia in Python sia in CLI:
Esempiofrom ultralytics import YOLO # Create a new YOLO26n-OBB model from scratch model = YOLO("yolo26n-obb.yaml") # Train the model on the custom dataset results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)In questo modo il modello sfrutta le annotazioni OBB dettagliate per migliorare l'accuratezza del rilevamento.
Attualmente, Ultralytics supporta i seguenti dataset per l'addestramento OBB:
- DOTA-v1: la prima versione del dataset DOTA, che fornisce un insieme completo di immagini aeree con riquadri di delimitazione orientati per il rilevamento degli oggetti.
- DOTA-v1.5: una versione intermedia del dataset DOTA, che offre annotazioni aggiuntive e miglioramenti rispetto a DOTA-v1 per attività di rilevamento degli oggetti più efficaci.
- DOTA-v2: questo dataset include 1,7 milioni di istanze con riquadri di delimitazione orientati e 11.268 immagini, concentrandosi principalmente sul rilevamento di oggetti aerei.
- DOTA8: un sottoinsieme più piccolo di 8 immagini del dataset DOTA, utilizzato per i test e i controlli di Integrazione continua (CI).
- DOTA128: un sottoinsieme di 128 immagini con tutte le immagini nella cartella train (utilizzata sia per train sia per val), che offre una maggiore diversità rispetto a DOTA8, pur rimanendo gestibile per lo sviluppo iniziale e la sperimentazione con i modelli OBB.
Questi dataset sono progettati per scenari in cui gli OBB offrono un vantaggio significativo, come l'analisi di immagini aeree e satellitari.
Sì, puoi utilizzare il tuo dataset con riquadri di delimitazione orientati per l'addestramento di YOLO26. Assicurati che le annotazioni del dataset siano convertite nel formato YOLO OBB, che prevede la definizione dei riquadri di delimitazione tramite i quattro punti degli angoli. Puoi quindi creare un file di configurazione YAML specificando i percorsi del dataset, le classi e gli altri dettagli necessari. Per ulteriori informazioni sulla creazione e configurazione dei tuoi dataset, consulta la sezione Dataset supportati.



