Link to this section指向性バウンディングボックス (OBB) データセットの概要#
高精度なオブジェクト検出モデルを指向性バウンディングボックス (OBB) で学習させるには、徹底したデータセットが必要です。本ガイドでは、Ultralytics YOLOモデルと互換性のある様々なOBBデータセットフォーマットについて、その構造や用途、フォーマット変換方法を交えて解説します。
Link to this sectionサポートされているOBBデータセットフォーマット#
Link to this sectionYOLO OBBフォーマット#
YOLO OBBフォーマットでは、バウンディングボックスを4つの角の点として指定し、座標は0から1の範囲で正規化されます。以下の形式に従います。
class_index x1 y1 x2 y2 x3 y3 x4 y4内部的に、YOLOは損失と出力をxywhrフォーマットで処理します。これはバウンディングボックスの中心点 (xy)、幅、高さ、および回転を表します。

上記の画像に対する*.txtラベルファイルの例(クラス0のオブジェクトがOBBフォーマットで含まれている場合)は以下のようになります。
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758Link to this sectionデータセット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.zipLink to this section使用方法#
これらの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)Link to this sectionサポートされているデータセット#
現在、以下の指向性バウンディングボックス付きデータセットがサポートされています。
- DOTA-v1:DOTAデータセットの最初のバージョンで、オブジェクト検出のための指向性バウンディングボックスが付いた広範な航空画像セットを提供します。
- DOTA-v1.5:DOTAデータセットの中間バージョンで、DOTA-v1に対する追加のアノテーションと改善がなされており、オブジェクト検出タスクを強化します。
- DOTA-v2:DOTA (航空画像におけるオブジェクト検出のための大規模データセット) のバージョン2であり、航空視点からの検出を重視しています。170万件のインスタンスと11,268枚の画像に指向性バウンディングボックスが含まれています。
- DOTA8:
ultralyticsリポジトリにおけるワークフローのテストおよびOBB学習の継続的インテグレーション (CI) チェックに適した、8枚の画像からなるDOTAデータセットの小規模サブセットです。 - DOTA128:trainフォルダ内の全画像(学習と検証の両方に使用)を含むDOTAデータセットの128枚の画像サブセットで、OBBモデルのテストにおいてサイズと多様性の適切なバランスを提供します。
Link to this section独自のOBBデータセットの組み込み#
独自の指向性バウンディングボックス付きデータセットを導入する場合は、前述の「YOLO OBBフォーマット」との互換性を確保してください。アノテーションをこの必要なフォーマットに変換し、対応するYAML設定ファイルでパス、クラス、クラス名を詳細に記述します。
Link to this sectionラベルフォーマットの変換#
Link to this sectionDOTAデータセットフォーマットから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フォーマットへの整合性を確保します。
データセットとモデルの互換性を検証し、必要なフォーマット規則を遵守することが不可欠です。適切に構造化されたデータセットは、指向性バウンディングボックスを用いた効率的なオブジェクト検出モデルを学習するために極めて重要です。
Link to this sectionよくある質問 (FAQ)#
Link to this section指向性バウンディングボックス (OBB) とは何か、またUltralytics YOLOモデルでどのように使用されるのか?#
指向性バウンディングボックス (OBB) は、軸に平行なだけでなく、検出対象のオブジェクトにより密着するようにボックスを回転させることができるバウンディングボックスアノテーションの一種です。これは、オブジェクトが画像軸と一致しない可能性がある航空画像や衛星画像において特に有用です。Ultralytics YOLOモデルでは、OBBはYOLO OBBフォーマットにおける4つの角の点で表されます。これにより、バウンディングボックスをオブジェクトに合わせて回転させることができるため、より正確なオブジェクト検出が可能になります。
Link to this section既存のDOTAデータセットのラベルを、Ultralytics YOLO26で使用するためにYOLO OBBフォーマットへ変換するにはどうすればよいか?#
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互換フォーマットに再フォーマットします。
Link to this sectionYOLO26モデルを指向性バウンディングボックス (OBB) で学習させるにはどうすればよいか?#
YOLO26モデルをOBBで学習するには、データセットが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アノテーションを活用し、検出精度を向上させることができます。
Link to this sectionUltralytics YOLOモデルでOBB学習のために現在サポートされているデータセットは何か?#
現在、UltralyticsはOBB学習について以下のデータセットをサポートしています。
- DOTA-v1:DOTAデータセットの最初のバージョンで、オブジェクト検出のための指向性バウンディングボックスが付いた広範な航空画像セットを提供します。
- DOTA-v1.5:DOTAデータセットの中間バージョンで、DOTA-v1に対する追加のアノテーションと改善がなされており、オブジェクト検出タスクを強化します。
- DOTA-v2:このデータセットには、指向性バウンディングボックスが付いた170万件のインスタンスと11,268枚の画像が含まれており、主に航空オブジェクト検出に焦点を当てています。
- DOTA8:テストおよび継続的インテグレーション (CI) チェックに使用される、8枚の画像からなるDOTAデータセットの小規模サブセットです。
- DOTA128:trainフォルダ内の全画像(学習と検証の両方に使用)を含む128枚の画像サブセットで、DOTA8よりも多様性に富み、初期のOBBモデル開発や実験に適した管理可能なサイズです。
これらのデータセットは、航空画像や衛星画像の解析など、OBBが大きな利点となるシナリオ向けに調整されています。
Link to this sectionYOLO26の学習に独自の指向性バウンディングボックス付きデータセットを使用できるか、また使用できる場合、その方法は?#
はい、YOLO26の学習に独自の指向性バウンディングボックス付きデータセットを使用できます。データセットのアノテーションをYOLO OBBフォーマット(4つの角の点でバウンディングボックスを定義)に変換してください。その後、データセットのパス、クラス、その他の必要な詳細を指定したYAML設定ファイルを作成します。データセットの作成と設定に関する詳細については、サポートされているデータセットセクションを参照してください。