コンテンツにスキップ

OBBを使用したDOTAデータセット

DOTAは、航空写真における物体検出を重視した特殊なデータセットです。DOTAシリーズのデータセットから派生し、Oriented Bounding Boxes(OBB)を使用して、多様な航空シーンをキャプチャしたアノテーション付き画像を提供します。

DOTAクラスのビジュアル

主な特徴



見る: Google Colabで、Ultralytics YOLO11をDOTAデータセットでトレーニングして、向きのあるバウンディングボックスを作成する方法

  • 800×800から20,000×20,000ピクセルまでの画像サイズで、さまざまなセンサーやプラットフォームから収集。
  • 18のカテゴリーにわたる170万以上の向き付きバウンディングボックスを特徴とします。
  • マルチスケールオブジェクト検出を包含します。
  • インスタンスは、さまざまなスケール、向き、形状のオブジェクトをキャプチャする、任意の(8自由度)四辺形を使用して専門家によってアノテーションが付けられています。

データセットのバージョン

DOTA-v1.0

  • 15の一般的なカテゴリが含まれています。
  • 2,806枚の画像と188,282個のインスタンスで構成されています。
  • 分割比率:トレーニングに1/2、検証に1/6、テストに1/3。

DOTA-v1.5

  • DOTA-v1.0と同じ画像が組み込まれています。
  • 非常に小さなインスタンス(10ピクセル未満)もアノテーションされます。
  • 新しいカテゴリ「コンテナクレーン」の追加。
  • 合計403,318個のインスタンス。
  • 航空画像内の物体検出に関するDOAI Challenge 2019向けにリリースされました。

DOTA-v2.0

  • Google Earth、GF-2衛星、およびその他の航空画像からの収集。
  • 18の一般的なカテゴリが含まれています。
  • 11,268枚の画像と1,793,658個ものインスタンスで構成されています。
  • 新しいカテゴリ「airport」と「helipad」が導入されました。
  • 画像分割:
    • 学習: 1,830 枚の画像と 268,627 個のインスタンス。
    • 検証:593枚の画像と81,048個のインスタンス。
    • テスト開発:2,792枚の画像と353,346個のインスタンス。
    • テストチャレンジ:6,053枚の画像と1,090,637個のインスタンス。

データセットの構造

DOTAは、OBBオブジェクト検出の課題に合わせて構造化されたレイアウトを示します。

  • 画像: 多様な地形や構造物を捉えた、高解像度の航空写真の膨大なコレクション。
  • 指向性バウンディングボックス: 向きに関係なくオブジェクトをカプセル化する回転された長方形の形式のアノテーション。飛行機、船、建物などのオブジェクトをキャプチャするのに最適です。

アプリケーション

DOTAは、航空画像分析に特化したモデルをトレーニングおよび評価するためのベンチマークとして機能します。OBBアノテーションを含めることで、独自の課題を提供し、航空画像のニュアンスに対応する特殊な物体検出モデルの開発を可能にします。このデータセットは、リモートセンシング、監視、環境モニタリングのアプリケーションに特に役立ちます。

データセット YAML

通常、データセットには、データセットの構成を詳述する YAML (Yet Another Markup Language) ファイルが組み込まれています。DOTA v1 および DOTA v1.5 について、Ultralytics は以下を提供します。 DOTAv1.yaml および DOTAv1.5.yaml ファイル。これらおよびDOTA v2の詳細については、DOTAの公式リポジトリおよびドキュメントを参照してください。

DOTAv1.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA 1.0 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
# Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2/
# Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── dota1 ← downloads here (2GB)

# 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: DOTAv1 # dataset root dir
train: images/train # train images (relative to 'path') 1411 images
val: images/val # val images (relative to 'path') 458 images
test: images/test # test images (optional) 937 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/DOTAv1.zip

DOTA画像を分割

DOTAデータセットを学習させるために、高解像度の元のDOTA画像をマルチスケール方式で1024x1024の解像度の画像に分割します。元の画像が非常に大きい場合があるため、この前処理ステップは効率的なトレーニングに不可欠です。

画像を分割

from ultralytics.data.split_dota import split_test, split_trainval

# split train and val set, with labels.
split_trainval(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
# split test set, without labels.
split_test(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)

使用法

DOTA v1データセットでモデルを学習させるには、次のコードスニペットを利用できます。利用可能な引数の完全なリストについては、必ずモデルのドキュメントを参照してください。最初に小さいサブセットで試したい場合は、クイックテスト用に8つの画像のみを含むDOTA8データセットの使用を検討してください。

警告

DOTAv1データセット内のすべての画像と関連するアノテーションは学術目的で使用できますが、商用利用は禁止されています。データセット作成者の意向をご理解、尊重していただきますようお願い申し上げます。

学習の例

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

サンプルデータとアノテーション

データセットをざっと見てみると、その奥深さがわかります。

データセットのサンプル画像

  • DOTAの例: このスナップショットは、航空写真シーンの複雑さと、オブジェクトを自然な向きで捉える、向き付きバウンディングボックスアノテーションの重要性を強調しています。

このデータセットの豊富さは、航空画像に特有の物体検出の課題に対する貴重な洞察を提供します。DOTA-v2.0データセットは、包括的なアノテーションと多様なオブジェクトカテゴリにより、リモートセンシングおよび航空監視プロジェクトで特に人気があります。

引用と謝辞

DOTAを活用する際は、関連する研究論文を引用することが重要です。

@article{9560031,
  author={Ding, Jian and Xue, Nan and Xia, Gui-Song and Bai, Xiang and Yang, Wen and Yang, Michael and Belongie, Serge and Luo, Jiebo and Datcu, Mihai and Pelillo, Marcello and Zhang, Liangpei},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Object Detection in Aerial Images: A Large-Scale Benchmark and Challenges},
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3117983}
}

このデータセットのキュレーションにおける彼らの称賛に値する努力に対して、DOTAデータセットの背後にあるチームに特別な感謝の意を表します。データセットとそのニュアンスの包括的な理解については、DOTAの公式ウェブサイトをご覧ください。

よくある質問

DOTAデータセットとは何ですか?また、航空写真における物体検出において、なぜ重要なのでしょうか?

DOTAデータセットは、航空写真のオブジェクト検出に焦点を当てた特殊なデータセットです。Oriented Bounding Boxes(OBB)を備えており、多様な航空シーンからのアノテーション付き画像を提供します。DOTAのオブジェクトの向き、スケール、形状の多様性は、170万のアノテーションと18のカテゴリにわたって、監視、環境モニタリング、災害管理で使用されるものなど、航空画像分析用に調整されたモデルの開発と評価に最適です。

DOTAデータセットは、画像内の異なるスケールと方向をどのように処理しますか?

DOTAは、アノテーションにOriented Bounding Boxes(OBB)を利用します。これは、オブジェクトの向きに関係なく、オブジェクトをカプセル化する回転された長方形で表されます。この方法により、オブジェクトが小さくても、異なる角度にあっても、正確にキャプチャされることが保証されます。800×800から20,000×20,000ピクセルに及ぶデータセットのマルチスケール画像により、小規模および大規模オブジェクトの両方を効果的に検出できます。このアプローチは、オブジェクトがさまざまな角度とスケールで表示される航空画像に特に役立ちます。

DOTAデータセットを使用してモデルをトレーニングするにはどうすればよいですか?

DOTAデータセットでモデルを学習させるには、Ultralytics YOLOで次の例を使用できます。

学習の例

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

DOTA画像を分割および前処理する方法の詳細については、DOTA画像分割セクションを参照してください。

DOTA-v1.0、DOTA-v1.5、DOTA-v2.0の違いは何ですか?

  • DOTA-v1.0: 2,806枚の画像にわたる15の一般的なカテゴリと188,282のインスタンスが含まれています。データセットは、トレーニング、検証、およびテストセットに分割されています。
  • DOTA-v1.5: 非常に小さいインスタンス(10ピクセル未満)にアノテーションを付け、「コンテナクレーン」という新しいカテゴリを追加することで、DOTA-v1.0を基に構築され、合計403,318のインスタンスがあります。
  • DOTA-v2.0: Google EarthおよびGF-2 Satelliteからのアノテーションによりさらに拡張され、11,268枚の画像と1,793,658のインスタンスを特徴としています。「空港」や「ヘリポート」などの新しいカテゴリが含まれています。

詳細な比較と追加の仕様については、データセットのバージョンセクションを確認してください。

トレーニング用に高解像度のDOTA画像を準備するにはどうすればよいですか?

DOTAの画像は非常に大きくなる可能性があるため、管理しやすいように小さな解像度に分割されます。画像を分割するためのpythonスニペットを次に示します。

from ultralytics.data.split_dota import split_test, split_trainval

# split train and val set, with labels.
split_trainval(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
# split test set, without labels.
split_test(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)

このプロセスは、トレーニング効率とモデルのパフォーマンス向上に役立ちます。詳細な手順については、DOTA画像の分割セクションをご覧ください。



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

コメント