Vai al contenuto

Panoramica dei dataset OBB (Oriented Bounding Box)

L'addestramento di un modello preciso di rilevamento degli oggetti con le bounding box orientate (OBB) richiede un set di dati completo. Questa guida illustra i vari formati di dati OBB compatibili con i modelli di Ultralytics YOLO , offrendo approfondimenti sulla loro struttura, sull'applicazione e sui metodi di conversione dei formati.

Formati di dati OBB supportati

YOLO Formato OBB

Il formato OBB di YOLO designa i riquadri di delimitazione attraverso i quattro punti d'angolo con coordinate normalizzate tra 0 e 1. Segue questo formato:

class_index x1 y1 x2 y2 x3 y3 x4 y4

A livello interno, YOLO elabora le perdite e le uscite nel xywhr che rappresenta il punto centrale (xy), la larghezza, l'altezza e la rotazione del rettangolo di selezione.

Esempi di formato OBB

Un esempio di un *.txt per l'immagine di cui sopra, che contiene un oggetto della classe 0 in formato OBB, potrebbe avere un aspetto simile:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Utilizzo

Per addestrare un modello utilizzando questi formati OBB:

Esempio

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO("yolov8n-obb.yaml")

# Train the model on the DOTAv2 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv2 dataset
yolo detect train data=DOTAv1.yaml model=yolov8n.pt epochs=100 imgsz=640

Set di dati supportati

Attualmente sono supportati i seguenti set di dati con caselle di delimitazione orientate:

  • DOTA-v2: DOTA (A Large-scale Dataset for Object Detection in Aerial Images) versione 2, enfatizza il rilevamento da prospettive aeree e contiene bounding box orientati con 1,7 milioni di istanze e 11.268 immagini.
  • DOTA8: Un piccolo sottoinsieme di 8 immagini del set di dati DOTA completo, adatto ai flussi di lavoro di test e ai controlli di integrazione continua (CI) dell'addestramento OBB nel sistema di ricerca e sviluppo. ultralytics deposito.

Incorporare il proprio set di dati OBB

Per coloro che desiderano introdurre i propri set di dati con bounding box orientati, assicurati che siano compatibili con il formato "YOLO OBB" menzionato in precedenza. Converti le tue 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

Formato DOTA Dataset a YOLO Formato OBB

La transizione delle etichette dal formato del dataset DOTA al formato OBB di YOLO può essere effettuata con 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 set di dati in formato DOTA, garantendo l'allineamento con il formato Ultralytics YOLO OBB.

È fondamentale verificare la compatibilità del set di dati con il tuo modello e rispettare le convenzioni di formato necessarie. I dataset strutturati correttamente sono fondamentali per addestrare modelli di rilevamento di oggetti efficienti con bounding box orientati.

DOMANDE FREQUENTI

Cosa sono le Oriented Bounding Boxes (OBB) e come si usano nei modelli di Ultralytics YOLO ?

Le OBB (Oriented Bounding Boxes) sono un tipo di annotazione dei riquadri di delimitazione in cui il riquadro può essere ruotato per allinearsi meglio con l'oggetto da rilevare, anziché essere solo allineato agli assi. Questo è particolarmente utile nelle immagini aeree o satellitari dove gli oggetti potrebbero non essere allineati con gli assi dell'immagine. Nei modelli Ultralytics YOLO , le OBB sono rappresentate dai loro quattro punti d'angolo nel formato OBB YOLO . Ciò consente un rilevamento più accurato degli oggetti poiché i rettangoli di selezione possono ruotare per adattarsi meglio agli oggetti.

Come posso convertire le etichette dei miei dataset DOTA esistenti nel formato OBB di YOLO per utilizzarle con Ultralytics YOLOv8 ?

Puoi convertire le etichette dei set di dati DOTA nel formato OBB di YOLO utilizzando il file convert_dota_to_yolo_obb da 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 tue annotazioni di DOTA in un formato compatibile con YOLO.

Come posso addestrare un modello YOLOv8 con bounding box orientate (OBB) sul mio set di dati?

Per addestrare un modello YOLOv8 con le OBB è necessario assicurarsi che il dataset sia nel formato OBB di YOLO e quindi utilizzare l'API di Ultralytics per addestrare il modello. Ecco un esempio sia in Python che in CLI:

Esempio

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO("yolov8n-obb.yaml")

# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the custom dataset
yolo detect train data=your_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

In questo modo il modello sfrutta le annotazioni OBB dettagliate per migliorare l'accuratezza del rilevamento.

Quali sono i set di dati attualmente supportati per l'addestramento OBB nei modelli di Ultralytics YOLO ?

Attualmente, Ultralytics supporta i seguenti set di dati per la formazione OBB:

  • DOTA-v2: Questo set di dati comprende 1,7 milioni di istanze con bounding box orientati e 11.268 immagini, incentrate principalmente sul rilevamento di oggetti aerei.
  • DOTA8: un sottoinsieme più piccolo, composto da 8 immagini, del set di dati DOTA utilizzato per i test e i controlli di integrazione continua (CI).

Questi set di dati sono stati creati su misura per gli scenari in cui le OBB offrono un vantaggio significativo, come l'analisi delle immagini aeree e satellitari.

Posso utilizzare il mio dataset con bounding box orientati per l'addestramento di YOLOv8 e, se sì, come?

Sì, puoi utilizzare il tuo set di dati con bounding box orientati per l'addestramento di YOLOv8 . Assicurati che le annotazioni del tuo set di dati siano convertite nel formato OBB di YOLO , che prevede la definizione di bounding box in base ai loro quattro punti d'angolo. Puoi quindi creare un file di configurazione YAML che specifichi i percorsi del dataset, le classi e altri dettagli necessari. Per maggiori informazioni sulla creazione e la configurazione dei set di dati, consulta la sezione Set di dati supportati.



Creato 2023-11-12, Aggiornato 2024-07-23
Autori: glenn-jocher (11)

Commenti