Présentation des jeux de données de boîtes englobantes orientées (OBB)#
L'entraînement d'un modèle précis de détection d'objets avec des boîtes englobantes orientées (OBB) nécessite un jeu de données complet. Ce guide explique les différents formats de jeux de données OBB compatibles avec les modèles Ultralytics YOLO, en fournissant des informations sur leur structure, leur application et les méthodes de conversion de format.
Formats de jeux 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 y4En interne, YOLO traite les pertes et les sorties au format xywhr, qui représente le point central (xy), la largeur, la hauteur et la rotation de la boîte englobante.

Un exemple de fichier d'étiquettes *.txt pour l'image ci-dessus, qui contient un objet de classe 0 au format OBB, pourrait ressembler à :
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758Format YAML du jeu de données#
Le framework Ultralytics utilise un format de fichier YAML pour définir la configuration du jeu 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 jeu de données 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.zipChacun des éléments train, val et test accepte un répertoire, une liste de répertoires ou un fichier *.txt listant un chemin d'image par ligne (les chemins commençant par ./ sont résolus par rapport au fichier *.txt). Un fichier *.txt est utile pour s'entraîner sur un sous-ensemble d'un répertoire, ignorer les images non étiquetées ou combiner des images de plusieurs sources en une seule division.
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: planeUtilisation#
Pour entraîner un modèle en utilisant ces formats OBB :
from ultralytics import YOLO
# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)Jeux de données pris en charge#
Actuellement, les jeux de données suivants avec des boîtes englobantes orientées sont pris en charge :
- DOTA-v1 : La première version du jeu 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 du jeu de données DOTA, offrant des annotations supplémentaires et des améliorations 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 du jeu de données DOTA complet, adapté aux flux de travail de test et aux vérifications d'intégration continue (CI) de l'entraînement OBB dans le dépôt
ultralytics. - DOTA8 Multispectral : Un sous-ensemble TIFF de 8 images et 10 canaux pour tester l'entraînement OBB multispectral sur la plateforme Ultralytics.
- DOTA128 : Un sous-ensemble de 128 images du jeu de données DOTA avec toutes les images dans le dossier train (utilisé à la fois pour le train et le val), offrant un bon équilibre entre la taille et la diversité pour tester les modèles OBB.
Intégrer ton propre jeu de données OBB#
Pour ceux qui cherchent à introduire leurs propres jeux de données avec des boîtes englobantes orientées, assure-toi de la compatibilité avec le "format YOLO OBB" mentionné ci-dessus. Convertis tes annotations vers ce format requis et détaille les chemins, les classes et les noms de classe dans un fichier de configuration YAML correspondant.
Convertir les formats d'étiquettes#
Format de jeu de données DOTA vers le format YOLO OBB#
La transition des étiquettes du format de jeu de données DOTA vers le format YOLO OBB peut être réalisée avec ce script :
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 jeux de données au format DOTA, garantissant l'alignement avec le format OBB Ultralytics YOLO.
Il est impératif de valider la compatibilité du jeu de données avec ton modèle et de respecter les conventions de format nécessaires. Des jeux 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#
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 d'être simplement alignée sur les axes. C'est particulièrement utile dans l'imagerie aérienne ou satellitaire 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 de coin dans le format YOLO OBB. Cela permet une détection d'objets plus précise puisque les boîtes englobantes peuvent pivoter pour s'adapter mieux aux objets.
L'entraînement d'un modèle YOLO26 avec des OBB implique de s'assurer que ton 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 :
Exemplefrom 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)Cela garantit que ton modèle exploite les annotations OBB détaillées pour une précision de détection améliorée.
Actuellement, Ultralytics prend en charge les jeux de données suivants pour l'entraînement OBB :
- DOTA-v1 : La première version du jeu 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 du jeu de données DOTA, offrant des annotations supplémentaires et des améliorations par rapport à DOTA-v1 pour des tâches de détection d'objets améliorées.
- DOTA-v2 : Ce jeu de données comprend 1,7 million d'instances avec des boîtes englobantes orientées et 11 268 images, se concentrant principalement sur la détection d'objets aériens.
- DOTA8 : Un sous-ensemble plus petit de 8 images du jeu de données DOTA utilisé pour les tests et les vérifications d'intégration continue (CI).
- DOTA128 : Un sous-ensemble de 128 images avec toutes les images dans le dossier train (utilisé à la fois pour le train et le val), offrant plus de diversité que DOTA8 tout en restant gérable pour le développement initial et l'expérimentation du modèle OBB.
Ces jeux de données sont conçus pour les scénarios où les OBB offrent un avantage significatif, tels que l'analyse d'images aériennes et satellitaires.
Oui, tu peux utiliser ton propre jeu de données avec des boîtes englobantes orientées pour l'entraînement YOLO26. Assure-toi que les annotations de ton jeu de données sont converties au format YOLO OBB, ce qui implique de définir les boîtes englobantes par leurs quatre points de coin. Tu peux ensuite créer un fichier de configuration YAML spécifiant les chemins du jeu de données, les classes et d'autres détails nécessaires. Pour plus d'informations sur la création et la configuration de tes jeux de données, réfère-toi à la section Jeux de données pris en charge.




Tu peux convertir les étiquettes du jeu de données DOTA au format YOLO OBB en utilisant la fonction
convert_dota_to_yolo_obbd'Ultralytics. Cette conversion garantit la compatibilité avec les modèles Ultralytics YOLO, te permettant d'exploiter les capacités OBB pour une détection d'objets améliorée. Voici un exemple rapide :Ce script reformatera tes annotations DOTA dans un format compatible avec YOLO.