Ultralytics YOLO27:

方向付きバウンディングボックス(OBB)データセットの概要#

方向付きバウンディングボックス(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)、幅、高さ、回転を表します。

Oriented bounding box annotation format examples

上記の画像に対応する*.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/cfg/datasets/dota8.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.zip

trainvaltestはそれぞれ、ディレクトリ、ディレクトリのリスト、または1行に1つの画像パスを記載した*.txtファイルを受け取ります(./で始まるパスは、*.txtファイルを基準に解決されます)。*.txtファイルは、ディレクトリの一部だけを使用してトレーニングする場合、ラベルのない画像を除外する場合、または複数のソースの画像を1つの分割にまとめる場合に便利です。

`*.txt`ファイルとしての画像パス
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

# Load a pretrained YOLO26n-OBB model
model = YOLO("yolo26n-obb.pt")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)

サポートされているデータセット#

現在、以下の傾きを持たせた境界ボックス(OBB)を持つデータセットがサポートされています。これらのデータセットのほとんどは Ultralytics Platform でもホストされており、画像やアノテーションの閲覧、データセット統計情報の表示、クラウド学習用のクローンを行うことができます。

  • DOTA-v1:DOTAデータセットの最初のバージョンで、物体検出用の方向付きバウンディングボックスを備えた航空画像の包括的なセットを提供します。
  • DOTA-v1.5:DOTAデータセットの中間バージョンで、物体検出タスクの精度向上に向けて、DOTA-v1よりも多くのアノテーションと改善を提供します。
  • DOTA-v2:DOTA(航空画像における物体検出のための大規模データセット)のバージョン2です。航空視点からの検出に重点を置き、170万のインスタンスと11,268枚の画像を含む方向付きバウンディングボックスを備えています。
  • DOTA8:完全なDOTAデータセットから抽出した8枚の小規模なサブセットで、ultralyticsリポジトリにおけるOBBトレーニングのワークフローと継続的インテグレーション(CI)チェックのテストに適しています。
  • DOTA8 Multispectral:Ultralytics PlatformでマルチスペクトルOBBトレーニングをテストするための、8枚・10チャンネルのTIFFサブセットです。
  • 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形式との整合性を確保します。

データセットがモデルと互換性を持つことを検証し、必要な形式規則に従うことが不可欠です。適切に構造化されたデータセットは、方向付きバウンディングボックスを使用した効率的な物体検出モデルのトレーニングに極めて重要です。

FAQ#

  • 方向付きバウンディングボックス(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
    
    # 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データセットの最初のバージョンで、物体検出用の方向付きバウンディングボックスを備えた航空画像の包括的なセットを提供します。
    • DOTA-v1.5:DOTAデータセットの中間バージョンで、物体検出タスクの精度向上に向けて、DOTA-v1よりも多くのアノテーションと改善を提供します。
    • DOTA-v2:このデータセットには、方向付きバウンディングボックスを持つ170万のインスタンスと11,268枚の画像が含まれており、主に航空物体検出に重点を置いています。
    • DOTA8:テストと継続的インテグレーション(CI)チェックに使用される、DOTAデータセットのより小規模な8枚のサブセットです。
    • DOTA128:128枚のサブセットで、すべての画像がtrainフォルダーに含まれています(trainとvalの両方に使用)。DOTA8よりも多様性がありながら、初期のOBBモデル開発や実験に扱いやすい規模です。

    これらのデータセットは、航空画像や衛星画像の分析など、OBBが大きな利点をもたらすシナリオに適しています。

  • はい、方向付きバウンディングボックスを含む独自のデータセットをYOLO26のトレーニングに使用できます。データセットのアノテーションをYOLO OBB形式に変換してください。この形式では、4つの頂点によってバウンディングボックスを定義します。次に、データセットのパス、クラス、その他の必要な詳細を指定するYAML設定ファイルを作成できます。データセットの作成と設定の詳細については、サポートされているデータセットセクションを参照してください。

コメント