Ultralytics YOLO27:
Get Started

Panoramica dei dataset di riquadri di delimitazione orientati (OBB)#

Per addestrare un modello preciso di rilevamento degli oggetti con riquadri di delimitazione orientati (OBB) serve un dataset completo. Questa guida illustra i diversi 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 d'angolo, con coordinate normalizzate tra 0 e 1. Il formato è il seguente:

class_index x1 y1 x2 y2 x3 y3 x4 y4

Internamente, YOLO gestisce le perdite e gli output nel formato xywhr, che rappresenta il punto centrale (xy), la larghezza, l'altezza e la rotazione del riquadro.

Oriented bounding box annotation format examples

Un file di etichette *.txt per l'immagine qui sopra, che contiene un oggetto della classe 0 in formato OBB, potrebbe avere questo aspetto:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Formato YAML del dataset#

Il framework Ultralytics usa il formato di file YAML per definire il dataset e la configurazione del modello durante l'addestramento dei modelli OBB. Ecco un esempio del formato YAML usato per definire un dataset OBB:

ultralytics/cfg/datasets/dota8.yaml
# 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.zip

Ognuno tra train, val e test accetta una directory, un elenco di directory oppure un file *.txt con un percorso di immagine per riga (i percorsi che iniziano con ./ sono relativi al file *.txt). Un file *.txt è utile per addestrare un modello su un sottoinsieme di una directory, escludere le immagini senza etichetta o combinare immagini provenienti da più fonti in un'unica suddivisione.

Percorsi delle immagini in un file `*.txt`
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: plane

Utilizzo#

Per addestrare un modello usando questi formati OBB:

Esempio
from ultralytics import YOLO

# Carica un modello YOLO26n-OBB preaddestrato
model = YOLO("yolo26n-obb.pt")

# Addestra il modello sul dataset DOTAv1
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)

Dataset supportati#

Attualmente sono supportati i seguenti dataset con riquadri di delimitazione orientati. La maggior parte è disponibile anche su Ultralytics Platform, dove puoi sfogliare le immagini e le annotazioni, visualizzare le statistiche dei dataset e clonarli per l'addestramento nel cloud.

  • DOTA-v1: la prima versione del dataset DOTA, che offre 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 potenziare le attività di rilevamento degli oggetti.
  • DOTA-v2: versione 2 di DOTA (un dataset su larga scala per il rilevamento di oggetti in immagini aeree), che si concentra sul rilevamento da prospettive aeree e contiene riquadri di delimitazione orientati per 1,7 milioni di istanze in 11.268 immagini.
  • DOTA8: un piccolo sottoinsieme di 8 immagini del dataset DOTA completo, adatto a testare i flussi di lavoro e a verificare l'integrazione continua (CI) dell'addestramento OBB nel repository ultralytics.
  • DOTA8 Multispectral: un sottoinsieme di 8 immagini TIFF a 10 canali per testare l'addestramento OBB multispettrale su Ultralytics Platform.
  • DOTA128: un sottoinsieme del dataset DOTA composto da 128 immagini, tutte nella cartella train (usata 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 integrare i tuoi dataset con riquadri di delimitazione orientati, assicurati che siano compatibili con il "formato YOLO OBB" descritto sopra. Converti le annotazioni nel formato richiesto e specifica percorsi, classi e nomi delle classi in un file di configurazione YAML corrispondente.

Convertire i formati delle etichette#

Convertire il formato del dataset DOTA nel formato YOLO OBB#

Per convertire le etichette dal formato del dataset DOTA al formato YOLO OBB, puoi usare questo script:

Esempio
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 in formato DOTA e garantisce la compatibilità con il formato OBB di Ultralytics YOLO.

È fondamentale verificare la compatibilità del dataset con il tuo modello e attenersi alle convenzioni di formato necessarie. Dataset strutturati correttamente sono essenziali per addestrare modelli efficienti di rilevamento degli oggetti con riquadri di delimitazione orientati.

Domande frequenti#

  • I riquadri di delimitazione orientati (OBB) sono un tipo di annotazione del riquadro di delimitazione che può essere ruotato per allinearsi meglio all'oggetto rilevato, invece di 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 d'angolo nel formato YOLO OBB. Questo consente un rilevamento degli oggetti più accurato, perché i riquadri di delimitazione possono ruotare per adattarsi meglio agli oggetti.

  • Puoi convertire le etichette del dataset DOTA nel formato YOLO OBB usando la funzione convert_dota_to_yolo_obb di Ultralytics. Questa conversione garantisce la compatibilità con i modelli Ultralytics YOLO e ti permette 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 riformatta le annotazioni DOTA nel formato compatibile con YOLO.

  • Per addestrare un modello YOLO26 con OBB, assicurati che il dataset sia nel formato YOLO OBB, quindi usa l'API Ultralytics per addestrare il modello. Ecco un esempio sia in Python sia con la CLI:

    Esempio
    from ultralytics import YOLO
    
    # Crea da zero un nuovo modello YOLO26n-OBB
    model = YOLO("yolo26n-obb.yaml")
    
    # Addestra il modello sul dataset personalizzato
    results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)

    In questo modo il modello sfrutta le annotazioni OBB dettagliate per migliorare la precisione del rilevamento.

  • Attualmente, Ultralytics supporta i seguenti dataset per l'addestramento OBB:

    • DOTA-v1: la prima versione del dataset DOTA, che offre 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 potenziare le attività di rilevamento degli oggetti.
    • DOTA-v2: questo dataset include 1,7 milioni di istanze con riquadri di delimitazione orientati e 11.268 immagini, ed è incentrato principalmente sul rilevamento di oggetti aerei.
    • DOTA8: un sottoinsieme più piccolo, composto da 8 immagini del dataset DOTA, usato per i test e le verifiche di integrazione continua (CI).
    • DOTA128: un sottoinsieme di 128 immagini, tutte nella cartella train (usate sia per train sia per val), che offre maggiore varietà rispetto a DOTA8 pur restando gestibile per lo sviluppo e la sperimentazione iniziali di modelli OBB.

    Questi dataset sono pensati per scenari in cui gli OBB offrono un vantaggio significativo, come l'analisi di immagini aeree e satellitari.

  • Sì, puoi usare un tuo dataset con riquadri di delimitazione orientati per addestrare YOLO26. Assicurati di convertire le annotazioni del dataset nel formato YOLO OBB, che prevede di definire i riquadri di delimitazione tramite i quattro punti angolari. Puoi quindi creare un file di configurazione YAML che specifichi i percorsi del dataset, le classi e gli altri dettagli necessari. Per ulteriori informazioni sulla creazione e configurazione dei dataset, consulta la sezione Dataset supportati.

Commenti