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 entre formats.
Formats de jeux de données OBB pris en charge#
Format OBB de YOLO#
Le format OBB de YOLO désigne les boîtes englobantes par leurs quatre points d'angle, avec des coordonnées normalisées entre 0 et 1. Il suit le format suivant :
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 centre de la boîte englobante (xy), sa largeur, sa hauteur et sa rotation.

Un fichier d'étiquettes au format *.txt pour l'image ci-dessus, qui contient un objet de la classe 0 au format OBB, pourrait ressembler à ceci :
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 lors de l'entraînement de modèles OBB. Voici un exemple de 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 entraîner un modèle sur un sous-ensemble d’un répertoire, ignorer les images non annotées ou combiner des images provenant de plusieurs sources dans un même sous-ensemble.
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 à l'aide de ces formats 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)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. La plupart de ces jeux de données sont également hébergés sur Ultralytics Platform, où tu peux parcourir les images et les annotations, consulter les statistiques des jeux de données et les cloner pour l'entraînement dans le cloud.
- DOTA-v1 : 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 : version intermédiaire du jeu de données DOTA, offrant des annotations et des améliorations supplémentaires par rapport à DOTA-v1 pour améliorer les tâches de détection d'objets.
- DOTA-v2 : version 2 de DOTA (un jeu de données à grande échelle pour la détection d'objets dans les images aériennes), qui met l'accent sur la détection depuis des perspectives aériennes et contient des boîtes englobantes orientées correspondant à 1,7 million d'instances réparties sur 11 268 images.
- DOTA8 : petit sous-ensemble de 8 images du jeu de données DOTA complet, adapté au test des workflows et aux vérifications d'intégration continue (CI) de l'entraînement OBB dans le dépôt
ultralytics. - DOTA8 multispectral : sous-ensemble TIFF de 8 images et 10 canaux destiné au test de l'entraînement OBB multispectral sur Ultralytics Platform.
- DOTA128 : sous-ensemble de 128 images du jeu de données DOTA, toutes les images se trouvant dans le dossier train (utilisé à la fois pour train et val), offrant un bon équilibre entre taille et diversité pour tester des modèles OBB.
Intégrer ton propre jeu de données OBB#
Si tu souhaites utiliser tes propres jeux de données avec des boîtes englobantes orientées, assure-toi qu'ils sont compatibles avec le « format OBB de YOLO » mentionné ci-dessus. Convertis tes annotations dans ce format requis et indique les chemins, les classes et les noms de classes dans un fichier de configuration YAML correspondant.
Convertir les formats d'étiquettes#
Du format de jeu de données DOTA au format OBB de YOLO#
Le passage des étiquettes du format de jeu de données DOTA au format OBB de YOLO peut être effectué 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, car il garantit leur compatibilité avec le format OBB d'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 efficaces de détection d'objets avec des boîtes englobantes orientées.
FAQ#
Les boîtes englobantes orientées (OBB) sont un type d'annotation de boîte englobante dans lequel la boîte peut être tournée pour s'aligner plus étroitement sur l'objet détecté, plutôt que de rester simplement alignée sur les axes. Cela est particulièrement utile pour les images aériennes ou satellitaires, où les objets peuvent ne pas être alignés sur 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 OBB de YOLO. Cela permet une détection d'objets plus précise, car les boîtes englobantes peuvent pivoter pour mieux s'adapter aux objets.
L'entraînement d'un modèle YOLO26 avec des OBB consiste à vérifier que ton jeu de données est au format OBB de YOLO, puis à utiliser l'API Ultralytics pour entraîner le modèle. Voici un exemple en Python et avec la 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 améliorer la précision de la détection.
Ultralytics prend actuellement en charge les jeux de données suivants pour l'entraînement OBB :
- DOTA-v1 : 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 : version intermédiaire du jeu de données DOTA, offrant des annotations et des améliorations supplémentaires par rapport à DOTA-v1 pour améliorer les tâches de détection d'objets.
- DOTA-v2 : ce jeu de données comprend 1,7 million d'instances avec des boîtes englobantes orientées et 11 268 images, principalement consacrées à la détection d'objets aériens.
- DOTA8 : 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 : sous-ensemble de 128 images dont toutes se trouvent dans le dossier train (utilisé à la fois pour train et val), offrant davantage de diversité que DOTA8 tout en restant facile à gérer pour le développement initial et l'expérimentation avec des modèles OBB.
Ces jeux de données sont conçus pour les scénarios dans lesquels les OBB offrent un avantage significatif, notamment 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 entraîner YOLO26. Assure-toi que les annotations de ton jeu de données sont converties au format OBB de YOLO, ce qui implique de définir les boîtes englobantes par leurs quatre points d'angle. Tu peux ensuite créer un fichier de configuration YAML indiquant les chemins du jeu de données, les classes et les autres informations nécessaires. Pour plus d'informations sur la création et la configuration de tes jeux de données, consulte la section Jeux de données pris en charge.




Tu peux convertir les étiquettes d'un jeu de données DOTA au format OBB de YOLO à l'aide de la fonction
convert_dota_to_yolo_obbd'Ultralytics. Cette conversion garantit la compatibilité avec les modèles Ultralytics YOLO et te permet d'exploiter les capacités OBB pour améliorer la détection d'objets. Voici un exemple rapide :Ce script reformatera tes annotations DOTA dans un format compatible avec YOLO.