Oriented Bounding Box(OBB)データセットの概要#
正確な物体検出モデルを回転バウンディングボックス(OBB)でトレーニングするには、十分なデータセットが必要です。このガイドでは、Ultralytics YOLOモデルと互換性のあるさまざまなOBBデータセット形式を説明し、その構成や用途、形式変換の方法について解説します。
サポートされているOBBデータセット形式#
YOLO OBB形式#
YOLO OBB形式では、各バウンディングボックスを4つのコーナーポイントで指定し、座標は0から1の範囲に正規化されます。形式は次のとおりです。
class_index x1 y1 x2 y2 x3 y3 x4 y4内部では、YOLOは損失と出力をxywhr形式で処理します。この形式は、バウンディングボックスの中心点(xy)、幅、高さ、回転を表します。

上記の画像に対応する*.txtラベルファイルの例です。この画像には、OBB形式でクラス0のオブジェクトが含まれており、次のようになります。
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
# 事前学習済みのYOLO26n-OBBモデルを読み込む
model = YOLO("yolo26n-obb.pt")
# DOTAv1データセットでモデルをトレーニングする
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)サポート対象のデータセット#
現在、回転バウンディングボックスに対応する以下のデータセットがサポートされています。これらのデータセットの大半はUltralytics Platformでもホストされており、画像やアノテーションの閲覧、データセット統計の確認、クラウドトレーニング用のクローン作成ができます。
- DOTA-v1: DOTAデータセットの最初のバージョンで、物体検出用の回転バウンディングボックスが付いた航空画像を幅広く提供します。
- DOTA-v1.5: DOTAデータセットの中間バージョンで、物体検出タスクの強化に向けて、DOTA-v1より多くのアノテーションと改善を提供します。
- DOTA-v2: DOTA(航空画像における物体検出のための大規模データセット)のバージョン2です。航空視点からの検出に重点を置き、1,1268枚の画像に170万のインスタンスを含む回転バウンディングボックスを提供します。
- DOTA8: DOTAデータセット全体から抽出した8枚の小規模なサブセットです。ワークフローのテストや、
ultralyticsリポジトリでのOBBトレーニングに関する継続的インテグレーション(CI)チェックに適しています。 - DOTA8 Multispectral: 8枚の画像からなる10チャンネルのTIFFサブセットで、Ultralytics Platform上でのマルチスペクトルOBBトレーニングのテストに使用できます。
- DOTA128: DOTAデータセットの128枚の画像サブセットです。すべての画像がtrainフォルダーにあり(trainとvalの両方に使用)、サイズと多様性のバランスに優れているため、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形式に合わせるうえで重要です。
データセットがモデルと互換性があることを確認し、必要な形式規約に従うことが不可欠です。適切に構成されたデータセットは、回転バウンディングボックスを使った効率的な物体検出モデルのトレーニングに欠かせません。
よくある質問#
回転バウンディングボックス(OBB)は、軸に沿った配置に限定せず、検出対象のオブジェクトにより近く沿うように回転できるバウンディングボックス形式のアノテーションです。これは、画像の軸とオブジェクトの向きが一致しない場合がある航空画像や衛星画像で特に有用です。Ultralytics YOLOモデルでは、OBBはYOLO OBB形式の4つのコーナーポイントで表されます。バウンディングボックスをオブジェクトに合わせて回転できるため、より正確な物体検出が可能になります。
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 # スクラッチから新しいYOLO26n-OBBモデルを作成 model = YOLO("yolo26n-obb.yaml") # カスタムデータセットでモデルをトレーニング results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)これにより、モデルは詳細なOBBアノテーションを活用し、検出精度を向上できます。
現在、UltralyticsはOBBトレーニング用に次のデータセットをサポートしています。
- DOTA-v1: DOTAデータセットの最初のバージョンで、物体検出用の回転バウンディングボックスが付いた航空画像を幅広く提供します。
- DOTA-v1.5: DOTAデータセットの中間バージョンで、物体検出タスクの強化に向けて、DOTA-v1より多くのアノテーションと改善を提供します。
- DOTA-v2:このデータセットには、回転バウンディングボックス付きの170万インスタンスと11,268枚の画像が含まれており、主に航空画像の物体検出に重点を置いています。
- DOTA8:テストと継続的インテグレーション(CI)チェックに使用される、DOTAデータセットの8枚の画像からなる小規模なサブセットです。
- DOTA128:trainフォルダー内の全画像を使用する128枚の画像からなるサブセットで、trainとvalの両方に使用されます。DOTA8より多様性がありながら、初期のOBBモデル開発や実験に適した扱いやすい規模です。
これらのデータセットは、航空画像や衛星画像の解析など、OBBが大きな利点をもたらすシナリオに適しています。
はい、回転バウンディングボックス付きの独自データセットをYOLO26のトレーニングに使用できます。バウンディングボックスを4つの頂点で定義するYOLO OBB形式に、データセットのアノテーションを変換してください。その後、データセットのパス、クラス、その他の必要な詳細を指定するYAML設定ファイルを作成できます。データセットの作成と設定の詳細については、サポート対象のデータセットセクションを参照してください。



