DOTA数据集(v1.0版本和v1.5版本),训练集1411张,验证集458张,测试集若干,共16种类别。数据集图片大小不一,需要进行裁剪,可设置裁剪重叠大小以及裁剪图片大小。此处按照默认参数裁剪,重叠200像素,大小1024×1024,删除空白标签后得到训练集11119张,验证集3626张,提供yolo归一化txt格式标签。
数据集名称
DOTA数据集 v1.0 版本 和 v1.5 版本
数据集概述
DOTA数据集(Detection of Objects from TOp-down perspectives)是一个专为遥感图像中的目标检测设计的大规模数据集。该数据集涵盖了16种不同的类别,包括飞机、船舶、棒球场、桥、车辆、风力发电机等,适用于遥感图像中的小目标检测任务。DOTA数据集因其广泛的类别和多样化的图像背景,成为了遥感图像分析领域的重要基准之一。
数据集特点
- 类别丰富:包含16种不同类型的遥感目标,涵盖了从大型结构(如桥梁、棒球场)到小型移动物体(如飞机、车辆)。
- 图像多样性:图像大小不一,来源于不同的视角和地理位置,提供了丰富的图像背景和光照条件。
- 精细标注:每个目标都被仔细标注,提供了准确的位置信息。
- 数据处理:为了便于处理和训练模型,数据集中的图像按照默认参数裁剪成1024×1024像素大小,重叠200像素,去除了空白标签。
- 标签格式:提供了YOLO格式的归一化标签文件,方便用户直接导入现有的YOLO训练流程。
数据集构成
-
类别:
- Plane(飞机)
- Ship(船)
- Storage-tank(储油罐)
- Baseball-diamond(棒球场)
- Tennis-court(网球场)
- Bridge(桥)
- Ground-track-field(田径场)
- Large-vehicle(大型车辆)
- Small-vehicle(小型车辆)
- Helicopter(直升机)
- Swiming-pool(游泳池)
- Roundabout(环形交叉路口)
- Soccer-ball-field(足球场)
- Container-crane(集装箱起重机)
- Wind-mill(风力发电机)
- Harbor(港口)
-
原始图像数量:
- 训练集:1411张
- 验证集:458张
- 测试集:若干
-
裁剪后图像数量:
- 训练集:11119张
- 验证集:3626张
-
图像大小:1024×1024像素,重叠200像素
-
标签格式:YOLO归一化txt格式
数据集用途
- 目标检测:用于训练和测试遥感图像中的目标检测算法。
- 遥感分析:在实际应用中,可以用于自动化识别和分类遥感图像中的目标,如城市规划、灾害评估、军事侦察等。
- 研究与开发:为研究人员提供一个基准数据集,用于比较不同算法的效果。
- 教育与培训:作为教学资源,帮助学生理解计算机视觉和遥感图像处理的基本概念。
应用案例
- 城市规划:通过检测建筑物、道路等基础设施,辅助城市规划师制定更合理的规划方案。
- 环境保护:监测森林砍伐、河流污染等环境问题。
- 军事侦察:识别和跟踪敌方设施或活动。
- 灾害响应:快速评估地震、洪水等自然灾害的影响范围。
数据集
示例代码
下面是一个简单的示例代码,展示了如何使用Python加载和预览DOTA数据集中的图像及其YOLO格式的标签信息.
1import os
2import random
3import matplotlib.pyplot as plt
4import numpy as np
5
6# 数据集目录路径
7data_dir = 'path/to/dota_dataset'
8image_dir = os.path.join(data_dir, 'images')
9label_dir = os.path.join(data_dir, 'labels')
10
11# 随机选择一张图像
12image_files = os.listdir(image_dir)
13image_file = random.choice(image_files)
14image_path = os.path.join(image_dir, image_file)
15
16# 加载图像
17image = plt.imread(image_path)
18
19# 加载YOLO标签
20label_file = os.path.splitext(image_file)[0] + '.txt'
21label_path = os.path.join(label_dir, label_file)
22
23with open(label_path, 'r') as f:
24 lines = f.readlines()
25
26# 解析YOLO标签
27class_names = ['Plane', 'Ship', 'Storage-tank', 'Baseball-diamond', 'Tennis-court', 'Bridge',
28 'Ground-track-field', 'Large-vehicle', 'Small-vehicle', 'Helicopter', 'Swiming-pool',
29 'Roundabout', 'Soccer-ball-field', 'Container-crane', 'Wind-mill', 'Harbor']
30
31for line in lines:
32 class_id, x_center, y_center, width, height = map(float, line.strip().split())
33 x_min = int((x_center - width / 2) * image.shape[1])
34 y_min = int((y_center - height / 2) * image.shape[0])
35 x_max = int((x_center + width / 2) * image.shape[1])
36 y_max = int((y_center + height / 2) * image.shape[0])
37
38 # 在图像上绘制边界框
39 plt.gca().add_patch(plt.Rectangle((x_min, y_min), x_max - x_min, y_max - y_min, edgecolor='r', facecolor='none'))
40 plt.text(x_min, y_min, class_names[int(class_id)], color='r', fontsize=8)
41
42# 绘制图像
43plt.figure(figsize=(10, 10))
44plt.imshow(image)
45plt.axis('off')
46plt.show()
总结
DOTA数据集是一个高质量的遥感图像目标检测数据集,涵盖了16种不同类型的遥感目标。数据集的特点是类别丰富、图像多样性高和精细标注,能够满足不同研究需求。通过使用该数据集,研究者可以在遥感图像分析领域推动技术进步,提高目标检测的准确性和效率。