OBB付きDOTAデータセット#
DOTAデータセットは、航空画像における物体検出の大規模ベンチマークです。3つのバージョン(v1.0、v1.5、v2.0)でリリースされており、18カテゴリにわたる最大170万件の方向付きバウンディングボックス(OBB)アノテーションが含まれています。さまざまな航空センサーやプラットフォームから取得された画像で構成されています。
Ultralytics Platformで公式にホスティングされているDOTA v1.5およびDOTA v1.0データセットを確認して、方向付きアノテーションをプレビューし、統計情報を調べ、トレーニング用にクローンできます。

主な特徴#
Watch: How to Train Ultralytics YOLO on the DOTA Dataset for Oriented Bounding Boxes in Google Colab
- さまざまなセンサーやプラットフォームから収集され、画像サイズは800 × 800ピクセルから20,000 × 20,000ピクセルまであります。
- 18カテゴリにわたる170万件を超える方向付きバウンディングボックスを備えています。
- 画像ごとの物体サイズのばらつきが大きいため、マルチスケール物体検出に対応しています。
- 各インスタンスは、任意形状の(8 d.o.f.)四辺形を使用して専門家がアノテーションしており、さまざまなスケール、向き、形状の物体を捉えています。
データセットのバージョン#
DOTA-v1.0#
- 一般的な15カテゴリが含まれています。
- 2,806枚の画像と188,282個のインスタンスで構成されています。
- 分割比率は、トレーニングが1/2(1,411枚)、検証が1/6(458枚)、テストが1/3(937枚)です。
DOTA-v1.5#
- DOTA-v1.0と同じ画像が含まれています。
- 非常に小さいインスタンス(10ピクセル未満)にもアノテーションが付けられています。
- 新しいカテゴリ「container crane」が追加されています。
- インスタンスの総数は403,318個です。
- 航空画像における物体検出に関するDOAI Challenge 2019向けにリリースされました。
DOTA-v2.0#
- Google Earth、GF-2 Satellite、その他の航空画像から収集されています。
- 一般的な18カテゴリが含まれています。
- 11,268枚の画像と、合計1,793,658個のインスタンスで構成されています。
- 新しいカテゴリとして「airport」と「helipad」が導入されています。
- 画像の分割:
- トレーニング: 1,830枚の画像、268,627個のインスタンス。
- 検証: 593枚の画像、81,048個のインスタンス。
- Test-dev: 2,792枚の画像、353,346個のインスタンス。
- Test-challenge: 6,053枚の画像、1,090,637個のインスタンス。
データセットの構成#
DOTAは、OBB物体検出の課題に適した構造化レイアウトを備えています。
- 画像: 多様な地形や構造物を捉えた、高解像度の航空画像を大量に収録しています。
- 方向付きバウンディングボックス: 向きにかかわらず物体を囲む回転矩形の形式でアノテーションされています。飛行機、船、建物などの物体を捉えるのに適しています。
アプリケーション#
DOTAは、航空画像解析に特化したモデルのトレーニングと評価のためのベンチマークです。OBBアノテーションを含むことで、航空画像特有の性質に対応する専門的な物体検出モデルの開発を可能にする、独自の課題を提供します。このデータセットは、リモートセンシング、監視、環境モニタリングの用途で特に価値があります。
データセット YAML#
データセットYAMLファイルでは、画像とラベルのルート、クラス名、その他の重要なメタデータを指定します。Ultralyticsでは、最も一般的に使用される2つのリリース向けに公式YAMLファイルを提供しています。
ダウンロードしたリリースに対応するYAMLを使用するか、DOTA-v2または別の派生データセットを使用する場合はカスタムYAMLを作成してください。どちらのリリースも、初回のトレーニング時にUltralytics GitHubアセットから自動的にダウンロードされます(2 GB)。
# 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
# └── DOTAv1 ← downloads here (2 GB)
# 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.zipDOTA画像の分割#
元の画像は一辺が10,000ピクセルを超えることが多いため、YOLOにデータを入力する前にタイリングが必要です。以下のヘルパーを使用すると、アノテーションの整合性を保ちながら、元画像を複数のスケールで重複する1024 × 1024のクロップに分割できます。
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,
)出力ディレクトリは標準的なYOLOレイアウト(images/train、labels/trainなど)で整理してください。これにより、データセットYAMLから直接参照できます。
使用方法#
DOTA v1データセットでモデルをトレーニングするには、次のコードスニペットを使用できます。利用可能な引数の詳細な一覧については、必ずモデルのドキュメントを参照してください。まず小規模なサブセットで試したい場合は、8枚の画像のみを含み、迅速なテストに利用できるDOTA8データセットをお試しください。DOTA8はUltralytics Platformで閲覧できます。
DOTAv1データセット内のすべての画像と関連アノテーションは学術目的で使用できますが、商用利用は禁止されています。データセット作成者の意向をご理解いただき、尊重していただけますと幸いです。
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)サンプルデータとアノテーション#
データセットを一目見るだけでも、その内容の豊富さが分かります。

- 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={2022},
volume={44},
number={11},
pages={7778-7796},
doi={10.1109/TPAMI.2021.3117983}
}このデータセットのキュレーションに尽力したDOTAデータセット開発チームに、特別な感謝を表します。データセットとその特徴を詳しく理解するには、DOTA公式Webサイトをご覧ください。
FAQ#
DOTAデータセットは、航空画像の物体検出に特化したデータセットです。方向付きバウンディングボックス(OBB)を特徴とし、さまざまな航空シーンのアノテーション付き画像を提供します。170万件のアノテーションと18カテゴリにわたる物体の向き、スケール、形状の多様性により、監視、環境モニタリング、災害管理など、航空画像解析に特化したモデルの開発および評価に適しています。
DOTAでは、アノテーションに方向付きバウンディングボックス(OBB)を使用します。これは、向きにかかわらず物体を囲む回転矩形で表現されます。この方法により、小さい物体やさまざまな角度の物体も正確に捉えられます。800 × 800ピクセルから20,000 × 20,000ピクセルまでのマルチスケール画像を含むため、小さい物体と大きい物体の両方を効果的に検出できます。このアプローチは、物体がさまざまな角度やスケールで現れる航空画像において特に有用です。
DOTAデータセットでモデルをトレーニングするには、Ultralytics YOLOを使用した次の例を利用できます。
トレーニング例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)DOTA画像の分割と前処理の詳細については、DOTA画像の分割セクションを参照してください。
- DOTA-v1.0: 2,806枚の画像にわたる15の一般的なカテゴリと、188,282個のインスタンスが含まれています。データセットはトレーニング、検証、テストセットに分割されています。
- DOTA-v1.5: 非常に小さいインスタンス(10ピクセル未満)にもアノテーションを付け、新しいカテゴリ「container crane」を追加することでDOTA-v1.0を拡張しています。インスタンスは合計403,318個です。
- DOTA-v2.0: Google EarthおよびGF-2 Satelliteからのアノテーションを追加し、11,268枚の画像と1,793,658個のインスタンスに拡張されています。「airport」や「helipad」などの新しいカテゴリが含まれています。
詳しい比較や追加情報については、データセットのバージョンセクションを確認してください。
非常に大きくなる可能性がある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画像の分割セクションをご覧ください。



