Link to this section带 OBB 的 DOTA 数据集#
DOTA 是一个专业的数据集,专注于航拍图像中的 目标检测。它源自 DOTA 系列数据集,通过 带方向边界框 (OBB) 捕获各种航拍场景的标注图像。

Link to this section主要特性#
Watch: How to Train Ultralytics YOLO26 on the DOTA Dataset for Oriented Bounding Boxes in Google Colab
- 该数据集收集自各种传感器和平台,图像尺寸从 800 × 800 到 20,000 × 20,000 像素不等。
- 包含 18 个类别中超过 170 万个带方向边界框。
- 由于每张图像中对象尺寸分布广泛,它涵盖了多尺度目标检测。
- 实例由专家使用任意(8 自由度)四边形进行标注,从而捕获不同尺度、方向和形状的对象。
Link to this section数据集版本#
Link to this sectionDOTA-v1.0#
- 包含 15 个常见类别。
- 包含 2,806 张图像和 188,282 个实例。
- 分割比例:1/2 用于训练,1/6 用于验证,1/3 用于测试。
Link to this sectionDOTA-v1.5#
- 包含与 DOTA-v1.0 相同的图像。
- 还标注了非常小的实例(小于 10 像素)。
- 增加了一个新类别:“集装箱起重机” (container crane)。
- 总计 403,318 个实例。
- 为 DOAI 2019 航拍图像目标检测挑战赛 而发布。
Link to this sectionDOTA-v2.0#
- 收集自 Google Earth、GF-2 卫星及其他航拍图像。
- 包含 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 个实例。
Link to this section数据集结构#
DOTA 采用为 OBB 目标检测挑战量身定制的结构化布局:
- 图像:收集了大量捕捉各种地形和结构的高分辨率航拍图像。
- 带方向边界框:以旋转矩形形式进行的标注,无论对象方向如何均将其包围,非常适合捕获飞机、船舶和建筑物等对象。
Link to this section应用#
DOTA 是训练和评估专门针对航拍图像分析模型的基准。通过包含 OBB 标注,它提供了一项独特的挑战,支持开发能够满足航拍图像细微差别的专业 目标检测 模型。该数据集对于遥感、监视和环境监测等应用非常有价值。
Link to this section数据集 YAML#
数据集 YAML (Yet Another Markup Language) 文件用于指定图像/标签根目录、类名以及其他重要元数据。Ultralytics 为两个最常用的版本维护官方 YAML 文件:
请使用与你下载的版本相匹配的 YAML,或者如果你正在使用 DOTA-v2 或其他衍生版本,请创建一个自定义的 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
# └── 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.zipLink to this section分割 DOTA 图像#
原始图像的一边通常超过 10,000 像素,因此在将数据输入 YOLO 之前需要进行分块 (tiling)。使用下方的助手脚本,将原始图像切片为多尺度、重叠的 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 中引用它。
Link to this section用法#
要使用 DOTA v1 数据集训练模型,可以使用以下代码片段。请始终查阅你所用模型的文档,以获取可用参数的详尽列表。对于想要先尝试较小数据集的用户,可以考虑使用 DOTA8 数据集,它仅包含 8 张图像,方便快速测试。
请注意,DOTAv1 数据集中的所有图像及相关标注仅可用于学术目的,禁止商业用途。感谢你对数据集创建者意愿的理解与尊重!
from ultralytics import YOLO
# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)Link to this section示例数据与标注#
查看数据集可以领略其深度:

- DOTA 示例:此快照强调了航拍场景的复杂性,以及带方向 边界框 标注在捕捉对象自然朝向方面的重要性。
该数据集的丰富性为航拍图像特有的目标检测挑战提供了宝贵的见解。DOTA-v2.0 数据集 因其全面的标注和多样的对象类别,在遥感和航拍监视项目中特别受欢迎。
Link to this section引用与致谢#
如果你在工作中使用 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 官方网站。
Link to this section常见问题#
Link to this section什么是 DOTA 数据集,为什么它对于航拍图像的目标检测很重要?#
DOTA 数据集 是一个专注于航拍图像目标检测的专业数据集。它以带方向边界框 (OBB) 为特色,提供来自不同航拍场景的标注图像。DOTA 在 18 个类别、170 万个标注中展现出的对象方向、尺度和形状的多样性,使其成为开发和评估适用于航拍图像分析(如用于监视、环境监测和灾害管理)模型的理想选择。
Link to this sectionDOTA 数据集如何处理图像中不同的尺度和方向?#
DOTA 使用带方向边界框 (OBB) 进行标注,这由旋转矩形表示,能够包围不同方向的对象。这种方法确保了无论对象是小的还是处于不同角度,都能被准确捕获。数据集的多尺度图像(从 800 × 800 到 20,000 × 20,000 像素)进一步允许有效地检测小型和大型对象。这种方法对于对象以各种角度和尺度出现的航拍图像尤为有效。
Link to this section我该如何使用 DOTA 数据集训练模型?#
要使用 DOTA 数据集训练模型,你可以使用以下 Ultralytics YOLO 示例:
from ultralytics import YOLO
# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)有关如何分割和预处理 DOTA 图像的更多详细信息,请参考 分割 DOTA 图像部分。
Link to this sectionDOTA-v1.0、DOTA-v1.5 和 DOTA-v2.0 之间有什么区别?#
- DOTA-v1.0:包含 15 个常见类别,共 2,806 张图像和 188,282 个实例。数据集分为训练集、验证集和测试集。
- DOTA-v1.5:在 DOTA-v1.0 的基础上,标注了非常小的实例(小于 10 像素),并增加了一个新类别“集装箱起重机”,总实例数达 403,318 个。
- DOTA-v2.0:进一步扩展,包含来自 Google Earth 和 GF-2 卫星的标注,具有 11,268 张图像和 1,793,658 个实例。它包括了如“机场”和“直升机停机坪”等新类别。
如需详细对比和其他具体信息,请查看 数据集版本部分。
Link to this section我该如何准备高分辨率的 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 图像部分。