指向性バウンディングボックス (OBB) データセットの概要#
方向 bounding box (OBB) を持つ精度の高い object detection モデルのトレーニングには、徹底的なデータセットが必要です。本ガイドでは、Ultralytics YOLO モデルと互換性のあるさまざまな OBB データセットフォーマットについて、その構造、適用方法、およびフォーマット変換の方法についての知見を提供します。
サポートされているOBBデータセットフォーマット#
YOLO OBBフォーマット#
YOLO OBBフォーマットでは、バウンディングボックスを4つの角の点として指定し、座標は0から1の範囲で正規化されます。以下の形式に従います。
class_index x1 y1 x2 y2 x3 y3 x4 y4内部的に、YOLOは xywhr 形式で損失と出力を処理します。これは、bounding boxの中心点(xy)、幅、高さ、および回転を表します。

OBB フォーマットの 0 クラスのオブジェクトを含む上記画像の *.txt ラベルファイルの例は、次のようになります。
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758データセットYAML形式#
Ultralyticsフレームワークでは、OBBモデルの学習用にデータセットとモデルの構成を定義するYAMLファイルフォーマットを使用します。OBBデータセットを定義するために使用されるYAMLフォーマットの例を以下に示します。
# 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.ziptrain、val、およびtestのそれぞれは、ディレクトリ、ディレクトリのリスト、または1行に1つの画像パスが記載された*.txtファイルを受け入れます(./で始まるパスは、*.txtファイルからの相対パスとして解決されます)。*.txtファイルは、ディレクトリのサブセットでトレーニングを行ったり、ラベルのない画像をスキップしたり、複数のソースからの画像を1つのスプリットに結合したりする際に便利です。
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: plane使用方法#
これらの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)サポートされているデータセット#
現在、以下の指向性バウンディングボックス付きデータセットがサポートされています。
- DOTA-v1: DOTA データセットの最初のバージョンであり、オブジェクト検出用の方向 bounding box を持つ広範な航空画像セットを提供します。
- DOTA-v1.5: DOTA データセットの中間バージョンであり、より高度なオブジェクト検出タスクのために DOTA-v1 よりも追加のアノテーションと改善を提供します。
- DOTA-v2: DOTA (航空画像におけるオブジェクト検出のための大規模データセット) バージョン 2 は、航空視点からの検出を重視しており、170 万のインスタンスと 11,268 枚の画像を持つ方向 bounding box を含んでいます。
- DOTA8: フル DOTA データセットの小さない 8 枚の画像サブセットであり、
ultralyticsリポジトリでの OBB トレーニングのワークフローテストや継続的インテグレーション (CI) チェックに適しています。 - DOTA8 Multispectral: Ultralytics プラットフォームでのマルチスペクトル OBB トレーニングのテストを目的とした、8枚の画像と10チャンネルの TIFF サブセットです。
- DOTA128: すべての画像が train フォルダ内にある (train と val の両方に使用される) DOTA データセットの 128 枚の画像サブセットであり、OBB モデルのテストにおいてサイズと多様性の優れたバランスを提供します。
独自のOBBデータセットの組み込み#
独自の指向性バウンディングボックス付きデータセットを導入する場合は、前述の「YOLO OBBフォーマット」との互換性を確保してください。アノテーションをこの必要なフォーマットに変換し、対応するYAML設定ファイルでパス、クラス、クラス名を詳細に記述します。
ラベルフォーマットの変換#
DOTAデータセットフォーマットからYOLO OBBフォーマットへの変換#
DOTAデータセットフォーマットからYOLO OBBフォーマットへのラベルの移行は、このスクリプトで実行できます。
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")この変換メカニズムは DOTA フォーマットのデータセットにとって重要であり、Ultralytics YOLO OBB フォーマットとの整合性を確保します。
データセットとモデルの互換性を検証し、必要なフォーマット規則を遵守することが不可欠です。適切に構造化されたデータセットは、指向性バウンディングボックスを用いた効率的なオブジェクト検出モデルを学習するために極めて重要です。
よくある質問 (FAQ)#
方向 bounding box (OBB) は、単純に軸に平行にするのではなく、検出されるオブジェクトにより密に一致するように回転させることができる bounding box アノテーションの一種です。これは、オブジェクトが画像軸と一致しない可能性がある航空画像や衛星画像において特に役立ちます。Ultralytics YOLO モデルでは、OBB は YOLO OBB フォーマットにおける 4 つの角のポイントによって表現されます。これにより、bounding box がオブジェクトに合わせてより適切に回転できるため、より正確なオブジェクト検出が可能になります。
Ultralytics の
convert_dota_to_yolo_obb関数を使用して、DOTA データセットのラベルを YOLO OBB フォーマットに変換できます。この変換により Ultralytics YOLO モデルとの互換性が確保され、高度なオブジェクト検出のために OBB 機能を活用できるようになります。簡単な例を示します。from ultralytics.data.converter import convert_dota_to_yolo_obb convert_dota_to_yolo_obb("path/to/DOTA")このスクリプトは、DOTAアノテーションをYOLO互換フォーマットに再フォーマットします。
OBB を使用して YOLO26 モデルをトレーニングするには、データセットが YOLO OBB フォーマットであることを確認し、Ultralytics API を使用してモデルをトレーニングします。Python と CLI の両方での例を示します。
例from 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)これにより、モデルが詳細な OBB アノテーションを活用して検出精度が向上します。
現在、UltralyticsはOBB学習について以下のデータセットをサポートしています。
- DOTA-v1: DOTA データセットの最初のバージョンであり、オブジェクト検出用の方向 bounding box を持つ広範な航空画像セットを提供します。
- DOTA-v1.5: DOTA データセットの中間バージョンであり、より高度なオブジェクト検出タスクのために DOTA-v1 よりも追加のアノテーションと改善を提供します。
- DOTA-v2: このデータセットには、方向 bounding box を持つ 170 万のインスタンスと 11,268 枚の画像が含まれており、主に航空オブジェクト検出に焦点を当てています。
- DOTA8: テストおよび継続的インテグレーション (CI) チェックに使用される、DOTA データセットのより小さい 8 枚の画像のサブセット。
- DOTA128: train フォルダ内にあるすべての画像 (train と val の両方に使用) を持つ 128 枚の画像のサブセットであり、初期の OBB モデルの開発と実験にとって管理しやすいままで DOTA8 よりも多くの多様性を提供します。
これらのデータセットは、航空画像や衛星画像の解析など、OBBが大きな利点となるシナリオ向けに調整されています。
はい、YOLO26 のトレーニングに方向 bounding box を持つ独自のデータセットを使用できます。データセットのアノテーションが YOLO OBB フォーマットに変換されていることを確認してください。これには、4 つの角のポイントによって bounding box を定義することが含まれます。その後、データセットのパス、クラス、およびその他の必要な詳細を指定する YAML 設定ファイルを作成できます。データセットの作成と設定の詳細については、サポートされているデータセットセクションを参照してください。



