Skip to content

Aperçu des ensembles de données OBB (Oriented Bounding Box)

L'apprentissage d'un modèle précis de détection d'objets à l'aide de boîtes de délimitation orientées (OBB) nécessite un ensemble de données approfondi. Ce guide explique les différents formats d'ensembles de données OBB compatibles avec les modèles Ultralytics YOLO , et donne un aperçu de leur structure, de leur application et des méthodes de conversion de format.

Formats de jeux de données OBB pris en charge

YOLO Format OBB

Le format OBB de YOLO désigne les boîtes de délimitation par leurs quatre points d'angle dont les coordonnées sont 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 produits dans le cadre de la xywhr qui représente le point central (xy), la largeur, la hauteur et la rotation de la boîte de délimitation.

Exemples de formats OBB

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

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Utilisation

Pour former un modèle à l'aide de ces formats OBB :

Exemple

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

Ensembles de données pris en charge

Actuellement, les ensembles de données suivants sont pris en charge avec des boîtes de délimitation orienté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 de délimitation 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 de l'intégration continue (CI) de la formation à l'OBB dans le cadre du programme de formation à l'OBB. ultralytics dépôt.

Incorporer ton propre jeu de données OBB

Pour ceux qui souhaitent introduire leurs propres ensembles de données avec des boîtes de délimitation orientées, assure-toi de la compatibilité avec le "YOLO OBB format " mentionné ci-dessus. Convertis tes annotations à ce format requis et détaille les chemins, les classes et les noms de classes dans un fichier de configuration YAML correspondant.

Convertir les formats d'étiquettes

DOTA Dataset Format vers YOLO OBB Format

Ce script permet de faire passer les étiquettes du format DOTA dataset au format YOLO OBB :

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, car il garantit l'alignement sur le format OBB de Ultralytics YOLO .

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

FAQ

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

Les boîtes de délimitation orientées (OBB) sont un type d'annotation de boîte de délimitation où la boîte peut être tournée pour s'aligner plus étroitement sur l'objet détecté, plutôt que d'être simplement alignée sur l'axe. Cela est particulièrement utile dans 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és par leurs quatre points d'angle dans le format YOLO OBB. Cela permet une détection plus précise des objets puisque les boîtes de délimitation peuvent pivoter pour mieux s'adapter aux objets.

Comment puis-je convertir les étiquettes de mes jeux de données DOTA existants au format OBB YOLO pour les utiliser avec Ultralytics YOLOv8 ?

Tu peux convertir les étiquettes des jeux de données DOTA au format YOLO OBB à l'aide de la fonction convert_dota_to_yolo_obb UltralyticsCette conversion assure la compatibilité avec les modèles Ultralytics YOLO , ce qui te permet d'exploiter les capacités de l'OBB pour améliorer la détection des objets. 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 tes annotations DOTA dans un format compatible avec YOLO.

Comment entraîner un modèle YOLOv8 avec des boîtes de délimitation orientées (OBB) sur mon ensemble de données ?

Pour entraîner un modèle YOLOv8 avec des OBB, tu dois t'assurer que ton jeu de données est au format OBB YOLO , puis utiliser l'API Ultralytics pour entraîner le modèle. Voici un exemple dans les deux formats Python et CLI:

Exemple

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

Cela garantit que ton modèle exploite les annotations détaillées de l'OBB pour améliorer la précision de la détection.

Quels sont les ensembles de données actuellement pris en charge pour la formation à l'OBB dans les modèles Ultralytics YOLO ?

Actuellement, Ultralytics prend en charge les ensembles de données suivants pour la formation à l'OBB :

  • DOTA-v2: Cet ensemble de données comprend 1,7 million d'instances avec des boîtes de délimitation 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 de l'ensemble de données DOTA utilisé pour les tests et les vérifications d'intégration continue (CI).

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

Puis-je utiliser mon propre jeu de données avec des boîtes de délimitation orientées pour la formation YOLOv8 , et si oui, comment ?

Oui, tu peux utiliser ton propre jeu de données avec des boîtes de délimitation orientées pour la formation YOLOv8 . 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 de délimitation par leurs quatre points d'angle. Tu peux ensuite créer un fichier de configuration YAML spécifiant les chemins d'accès au jeu de données, les classes et les autres détails nécessaires. Pour plus d'informations sur la création et la configuration de tes jeux de données, reporte-toi à la section Jeux de données pris en charge.



Créé le 2023-11-12, Mis à jour le 2024-07-23
Auteurs : glenn-jocher (11)

Commentaires