Passer au contenu

Présentation des ensembles de données de boîtes englobantes orientées (OBB)

L'entraînement d'un modèle de détection d'objets précis avec des boîtes englobantes orientées (OBB) nécessite un ensemble de données complet. Ce guide explique les différents formats d'ensembles de données OBB compatibles avec les modèles Ultralytics YOLO, offrant des informations sur leur structure, leur application et les méthodes de conversion de format.

Formats de jeu de données OBB pris en charge

Format YOLO OBB

Le format YOLO OBB désigne les boîtes englobantes par leurs quatre points de coin avec des coordonnées normalisées entre 0 et 1. Il suit ce format:

class_index x1 y1 x2 y2 x3 y3 x4 y4

En interne, YOLO traite les pertes et les sorties dans le xywhr format, qui représente le boîte englobantele point central (xy), la largeur, la hauteur et la rotation de.

Exemples de format OBB

Un exemple de *.txt fichier d'étiquette pour l'image ci-dessus, qui contient un objet de classe 0 au format OBB, pourrait ressembler à ceci :

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Format YAML de l'ensemble de données

Le framework Ultralytics utilise un format de fichier YAML pour définir la configuration de l'ensemble de données et du modèle pour l'entraînement des modèles OBB. Voici un exemple du format YAML utilisé pour définir un ensemble de données OBB :

ultralytics/cfg/datasets/dota8.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA8 dataset 8 images from split DOTAv1 dataset 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 (1MB)

# 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

Utilisation

Pour entraîner un modèle en utilisant ces formats OBB :

Exemple

from ultralytics import YOLO

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

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt epochs=100 imgsz=1024

Ensembles de données pris en charge

Actuellement, les ensembles de données suivants avec des boîtes englobantes orientées sont pris en charge :

  • DOTA-v1 : La première version de l'ensemble de données DOTA, fournissant un ensemble complet d'images aériennes avec des boîtes englobantes orientées pour la détection d'objets.
  • DOTA-v1.5 : Une version intermédiaire de l'ensemble de données DOTA, offrant des annotations et des améliorations supplémentaires par rapport à DOTA-v1 pour des tâches de détection d'objets améliorées.
  • DOTA-v2 : DOTA (A Large-scale Dataset for Object Detection in Aerial Images) version 2, met l'accent sur la détection à partir de perspectives aériennes et contient des boîtes englobantes orientées avec 1,7 million d'instances et 11 268 images.
  • DOTA8: Un petit sous-ensemble de 8 images de l'ensemble de données DOTA complet, adapté aux tests de flux de travail et aux contrôles d'intégration continue (CI) de l'entraînement OBB dans le ultralytics référentiel.

Incorporation de votre propre ensemble de données OBB

Pour ceux qui cherchent à introduire leurs propres ensembles de données avec des cadres de délimitation orientés, assurez-vous de la compatibilité avec le « format YOLO OBB » mentionné ci-dessus. Convertissez vos annotations dans ce format requis et détaillez les chemins, les classes et les noms de classe dans un fichier de configuration YAML correspondant.

Convertir les formats d'étiquettes

Format de l'ensemble de données DOTA vers le format YOLO OBB

La transition des étiquettes du format de l'ensemble de données DOTA au format YOLO OBB peut être réalisée avec ce script :

Exemple

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb("path/to/DOTA")

Ce mécanisme de conversion est essentiel pour les ensembles de données au format DOTA, garantissant l'alignement avec le format OBB Ultralytics YOLO.

Il est impératif de valider la compatibilité de l'ensemble de données avec votre modèle et de respecter les conventions de format nécessaires. Des ensembles de données correctement structurés sont essentiels pour entraîner des modèles de détection d'objets efficaces avec des boîtes englobantes orientées.

FAQ

Que sont les boîtes englobantes orientées (OBB) et comment sont-elles utilisées dans les modèles Ultralytics YOLO ?

Les boîtes englobantes orientées (OBB) sont un type d’annotation de boîte englobante où la boîte peut être pivotée pour s’aligner plus étroitement avec l’objet détecté, plutôt que d’être simplement alignée sur l’axe. Ceci est particulièrement utile dans l’imagerie aérienne ou satellite où les objets peuvent ne pas être alignés avec les axes de l’image. Dans les modèles Ultralytics YOLO, les OBB sont représentées par leurs quatre points d’angle au format YOLO OBB. Cela permet une détection d’objets plus précise, car les boîtes englobantes peuvent pivoter pour mieux s’adapter aux objets.

Comment convertir les étiquettes de mon ensemble de données DOTA existant au format YOLO OBB pour une utilisation avec Ultralytics YOLO11 ?

Vous pouvez convertir les étiquettes de l'ensemble de données DOTA au format YOLO OBB en utilisant la convert_dota_to_yolo_obb fonction d'Ultralytics. Cette conversion assure la compatibilité avec les modèles YOLO d'Ultralytics, vous permettant de tirer parti des capacités OBB pour une détection d'objets améliorée. Voici un exemple rapide :

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb("path/to/DOTA")

Ce script reformatera vos annotations DOTA dans un format compatible YOLO.

Comment entraîner un modèle YOLO11 avec des boîtes englobantes orientées (OBB) sur mon jeu de données ?

L'entraînement d'un modèle YOLO11 avec des OBB implique de s'assurer que votre jeu de données est au format YOLO OBB, puis d'utiliser l'API Ultralytics pour entraîner le modèle. Voici un exemple en Python et en CLI :

Exemple

from ultralytics import YOLO

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

# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLO11n-OBB model on the custom dataset
yolo obb train data=your_dataset.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640

Cela garantit que votre modèle tire parti des annotations OBB détaillées pour une meilleure précision de la détection.

Quels jeux de données sont actuellement pris en charge pour l’entraînement OBB dans les modèles Ultralytics YOLO ?

Actuellement, Ultralytics prend en charge les ensembles de données suivants pour l'entraînement OBB :

  • DOTA-v1 : La première version de l'ensemble de données DOTA, fournissant un ensemble complet d'images aériennes avec des boîtes englobantes orientées pour la détection d'objets.
  • DOTA-v1.5 : Une version intermédiaire de l'ensemble de données DOTA, offrant des annotations et des améliorations supplémentaires par rapport à DOTA-v1 pour des tâches de détection d'objets améliorées.
  • DOTA-v2 : Cet ensemble de données comprend 1,7 million d'instances avec des boîtes englobantes orientées et 11 268 images, principalement axées sur la détection d'objets aériens.
  • DOTA8 : Un sous-ensemble plus petit de 8 images de l'ensemble de données DOTA utilisé pour les tests et les contrôles d'intégration continue (CI).

Ces ensembles de données sont adaptés aux scénarios où les OBB offrent un avantage significatif, tels que l'analyse d'images aériennes et satellitaires.

Puis-je utiliser mon propre ensemble de données avec des boîtes englobantes orientées pour la formation YOLO11, et si oui, comment ?

Oui, vous pouvez utiliser votre propre ensemble de données avec des boîtes englobantes orientées pour l'entraînement YOLO11. Assurez-vous que les annotations de votre ensemble de données sont converties au format YOLO OBB, qui implique la définition des boîtes englobantes par leurs quatre points de coin. Vous pouvez ensuite créer un fichier de configuration YAML spécifiant les chemins d'accès à l'ensemble de données, les classes et autres détails nécessaires. Pour plus d'informations sur la création et la configuration de vos ensembles de données, consultez la section Ensembles de données pris en charge.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 10 jours

Commentaires