コンテンツへスキップ

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

Training a precise object detection model with oriented bounding boxes (OBB) requires a thorough dataset. This guide explains the various OBB dataset formats compatible with Ultralytics YOLO models, offering insights into their structure, application, and methods for format conversions.

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

YOLO OBBフォーマット

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

class_index x1 y1 x2 y2 x3 y3 x4 y4

内部的には、YOLO で損失とアウトプットを処理する。 xywhr format, which represents the bounding box's center point (xy), width, height, and rotation.

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: The first version of the DOTA dataset, providing a comprehensive set of aerial images with oriented bounding boxes for object detection.
  • DOTA-v1.5: An intermediate version of the DOTA dataset, offering additional annotations and improvements over DOTA-v1 for enhanced object detection tasks.
  • 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 フォーマットの四隅の点で表される。これにより、バウンディングボックスが回転してオブジェクトにフィットしやすくなるため、より正確なオブジェクト検出が可能になります。

How do I convert my existing DOTA dataset labels to YOLO OBB format for use with Ultralytics YOLO11?

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 と互換性のあるフォーマットに再フォーマットします。

How do I train a YOLO11 model with oriented bounding boxes (OBB) on my dataset?

Training a YOLO11 model with OBBs involves ensuring your dataset is in the YOLO OBB format and then using the Ultralytics API to train the model. Here's an example in both Python and 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

This ensures your model leverages the detailed OBB annotations for improved detection accuracy.

Ultralytics YOLO モデルのOBBトレーニングに現在対応しているデータセットは?

現在、Ultralytics はOBBトレーニング用に以下のデータセットをサポートしている:

  • DOTA-v1: The first version of the DOTA dataset, providing a comprehensive set of aerial images with oriented bounding boxes for object detection.
  • DOTA-v1.5: An intermediate version of the DOTA dataset, offering additional annotations and improvements over DOTA-v1 for enhanced object detection tasks.
  • DOTA-v2:このデータセットには、オリエンテッドなバウンディングボックスを持つ170万個のインスタンスと11,268枚の画像が含まれ、主に空中物体の検出に重点を置いている。
  • DOTA8:テストと継続的インテグレーション(CI)チェックに使用される、DOTAデータセットの小さい8画像のサブセット。

これらのデータセットは、航空画像や衛星画像の解析など、OBBが大きな利点を提供するシナリオ用に調整されている。

Can I use my own dataset with oriented bounding boxes for YOLO11 training, and if so, how?

Yes, you can use your own dataset with oriented bounding boxes for YOLO11 training. Ensure your dataset annotations are converted to the YOLO OBB format, which involves defining bounding boxes by their four corner points. You can then create a YAML configuration file specifying the dataset paths, classes, and other necessary details. For more information on creating and configuring your datasets, refer to the Supported Datasets section.


📅 Created 11 months ago ✏️ Updated 11 days ago

コメント