コンテンツへスキップ

OBB(Oriented Bounding Box)データセットの概要

オリエンテッドバウンディングボックス(OBB)を使った正確な物体検出モデルのトレーニングには、綿密なデータセットが必要です。このガイドでは、Ultralytics YOLO モデルと互換性のあるさまざまな OBB データセット形式について説明し、その構造、適用、形式変換の方法についての洞察を提供します。

サポートされるOBBデータセットフォーマット

YOLO OBBフォーマット

YOLO OBBフォーマットは、0と1の間で正規化された座標を持つ4つのコーナーポイントでバウンディングボックスを指定する:

class_index x1 y1 x2 y2 x3 y3 x4 y4

内部的には、YOLO で損失とアウトプットを処理する。 xywhr フォーマットで表される。 バウンディングボックスの中心点(xy)、幅、高さ、回転。

OBBフォーマットの例

の一例である。 *.txt 上の画像のラベルファイルには、クラス 0 OBBフォーマットでは、次のようになる:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

使用方法

これらの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 Boxesを持つ以下のデータセットがサポートされています:

  • DOTA-v1:DOTAデータセットの最初のバージョンで、物体検出用のバウンディングボックスを備えた包括的な航空画像セット。
  • DOTA-v1.5:DOTAデータセットの中間バージョンで、DOTA-v1よりも注釈が追加され、物体検出タスクが改善されている。
  • DOTA-v2:DOTA (A Large-scale Dataset for Object Detection in Aerial Images)バージョン2は、空中視点からの検出に重点を置いており、170万インスタンスと11,268枚の画像を含む方向指定されたバウンディングボックスを含んでいる。
  • DOTA8:DOTAデータセットの8画像からなる小規模なサブセットで、テストワークフローやOBBトレーニングの継続的インテグレーション(CI)チェックに適している。 ultralytics リポジトリ

独自のOBBデータセットを組み込む

オリエンテッドなバウンディングボックスを持つ独自のデータセットを導入したい場合は、上記の"YOLO OBB format "との互換性を確認してください。アノテーションをこのフォーマットに変換し、対応する 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(Oriented Bounding Boxes)とは何か?また、Ultralytics YOLO モデルでどのように使われているのか?

OBB(Oriented Bounding Boxes)は、バウンディングボックスのアノテーションの一種で、単に軸を合わせるだけでなく、検出されるオブジェクトにより近くなるようにボックスを回転させることができます。これは、オブジェクトが画像軸と整列していない可能性がある空中画像や衛星画像で特に役立ちます。Ultralytics YOLO モデルでは、OBB はYOLO OBB フォーマットの四隅の点で表される。これにより、バウンディングボックスが回転してオブジェクトにフィットしやすくなるため、より正確なオブジェクト検出が可能になります。

Ultralytics YOLO11 で使用するために、既存の DOTA データセット・ラベルをYOLO OBB フォーマットに変換するには?

DOTA データセットラベルをYOLO OBB フォーマットに変換するには、次のようにします。 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 と互換性のあるフォーマットに再フォーマットします。

YOLO11モデルをOBB(Oriented bounding boxes)でトレーニングするには?

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 フォーマットに変換されていることを確認してください。このフォーマットでは、バウンディングボックスを四隅の点で定義します。その後、データセットのパス、クラス、その他必要な詳細を指定するYAML設定ファイルを作成します。データセットの作成と設定の詳細については、「サポートされるデータセット」のセクションを参照してください。

📅作成 1年前 ✏️更新:1ヶ月前

コメント