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
上記の画像のラベルファイル。クラスのオブジェクトが含まれています。 0
OBB形式では、次のようになります。
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758
データセットのYAML形式
Ultralytics フレームワークは、YAML ファイル形式を使用して、OBB モデルをトレーニングするためのデータセットとモデル構成を定義します。以下は、OBB データセットを定義するために使用される YAML 形式の例です。
ultralytics/cfg/datasets/dota8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# DOTA8 dataset 8 images from split DOTAv1 dataset 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 (1MB)
# 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.zip
使用法
これらのOBB形式を使用してモデルをトレーニングするには:
例
from ultralytics import YOLO
# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt epochs=100 imgsz=1024
サポートされているデータセット
現在、Oriented Bounding Box を持つ以下のデータセットがサポートされています。
- DOTA-v1: DOTAデータセットの最初のバージョンであり、オブジェクト検出用に、向きのあるバウンディングボックスを含む航空写真の包括的なセットを提供します。
- DOTA-v1.5: DOTAデータセットの中間バージョンであり、DOTA-v1に対する追加のアノテーションと改善を提供し、オブジェクト検出タスクを強化します。
- DOTA-v2: DOTA(航空画像内のオブジェクト検出用の大規模データセット)バージョン2は、航空視点からの検出を重視し、170万のインスタンスと11,268の画像を含む、向きのあるバウンディングボックスが含まれています。
- DOTA8: DOTAデータセット全体の小規模な8画像サブセット。ワークフローのテストや、OBBトレーニングにおける継続的インテグレーション(CI)チェックに適しています。
ultralytics
リポジトリ。
独自の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モデルでどのように使用されますか?
Oriented Bounding Box(OBB)は、軸に沿った境界ボックスだけでなく、検出対象のオブジェクトにより近い形状で配置されるように回転できる境界ボックス注釈の一種です。これは、オブジェクトが画像の軸と整列していない可能性がある航空写真や衛星画像で特に役立ちます。Ultralytics YOLOモデルでは、OBBはYOLO OBB形式で4つの角の点で表されます。これにより、境界ボックスを回転させてオブジェクトにより適切に適合させることができるため、より正確なオブジェクト検出が可能になります。
既存のDOTAデータセットのラベルを、Ultralytics YOLO11で使用するためにYOLO OBB形式に変換するにはどうすればよいですか?
Ultralyticsのconvert_dota_to_yolo_obb関数を使用して、DOTAデータセットのラベルをYOLO OBB形式に変換できます。この変換により、Ultralytics YOLOモデルとの互換性が確保され、OBB機能を活用してオブジェクト検出を強化できます。簡単な例を次に示します。このスクリプトは、DOTAアノテーションをYOLO互換形式に再フォーマットします。 convert_dota_to_yolo_obb
Ultralyticsの機能。この変換により、Ultralytics YOLOモデルとの互換性が確保され、OBB機能を活用してオブジェクト検出を強化できます。簡単な例を次に示します:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")
このスクリプトは、DOTAのアノテーションをYOLO互換の形式に再フォーマットします。
データセット上のoriented bounding boxes (OBB) を用いてYOLO11モデルをトレーニングするにはどうすればよいですか?
OBBを使用したYOLO11モデルの学習には、データセットがYOLO OBB形式であることを確認し、Ultralytics APIを使用してモデルを学習することが含まれます。次に、pythonとCLI両方の例を示します。
例
from ultralytics import YOLO
# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")
# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLO11n-OBB model on the custom dataset
yolo obb train data=your_dataset.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640
これにより、モデルが詳細なOBBアノテーションを活用して、検出精度が向上します。
Ultralytics YOLOモデルでのOBBトレーニングでは、現在どのようなデータセットがサポートされていますか?
現在、Ultralytics は OBB トレーニング用に以下のデータセットをサポートしています。
- DOTA-v1: DOTAデータセットの最初のバージョンであり、オブジェクト検出用に、向きのあるバウンディングボックスを含む航空写真の包括的なセットを提供します。
- DOTA-v1.5: DOTAデータセットの中間バージョンであり、DOTA-v1に対する追加のアノテーションと改善を提供し、オブジェクト検出タスクを強化します。
- DOTA-v2: このデータセットには、向きのあるバウンディングボックスを持つ170万のインスタンスと11,268の画像が含まれており、主に航空オブジェクト検出に焦点を当てています。
- DOTA8:テストおよび継続的インテグレーション(CI)チェックに使用されるDOTAデータセットのより小さい8画像のサブセット。
これらのデータセットは、OBB が大きな利点を提供するシナリオ、例えば航空写真や衛星画像の分析などに合わせて調整されています。
YOLO11トレーニング用に、向きのあるバウンディングボックスを持つ独自のデータセットを使用できますか?使用できる場合、どのようにすればよいですか?
はい、YOLO11トレーニング用に、独自のデータセットと、向きのあるバウンディングボックスを使用できます。データセットのアノテーションがYOLO OBB形式に変換されていることを確認してください。これには、4つのコーナーポイントでバウンディングボックスを定義することが含まれます。次に、データセットのパス、クラス、およびその他の必要な詳細を指定するYAML構成ファイルを作成できます。データセットの作成と構成の詳細については、サポートされているデータセットセクションを参照してください。