DIOR是一个用于光学遥感图像目标检测的大规模基准数据集。数据集包含23463个图像和192472个实例,涵盖20个对象类。这20个对象类是飞机、机场、棒球场、篮球场、桥梁、烟囱、水坝、高速公路服务区、高速公路收费站、港口、高尔夫球场、地面田径场、天桥、船舶、体育场、储罐、网球场、火车站、车辆和风磨。
我按照7:1:2的比例划分了训练集、验证集和测试集
通过网盘分享的文件:DIOR.rar
链接: https://pan.baidu.com/s/1sGfzL4Ncq-OdlH_9VSYviQ?pwd=gnsb 提取码: gnsb
–来自百度网盘超级会员v7的分享
这是处理好的DIOR数据集的YOLO、COCO和VOC格式的数据集文件的网盘链接
如果使用YOLO系列算法进行训练和测试需要创建DIOR.yaml文件,这个文件我在网盘文件中也有
# 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: E:\PycharmProject\Datasets\CV\DIOR # dataset root dir
train: images/train # train images (relative to 'path') 16424 images
val: images/val # val images (relative to 'path') 2346 images
test: images/test # test images (optional) 4693 images
nc: 20
# Classes
names:
0: airplane
1: airport
2: baseballfield
3: basketballcourt
4: bridge
5: chimney
6: dam
7: Expressway-Service-area
8: Expressway-toll-station
9: golffield
10: groundtrackfield
11: harbor
12: overpass
13: ship
14: stadium
15: storagetank
16: tenniscourt
17: trainstation
18: vehicle
19: windmill
需要注意的是这里唯一需要修改的就是path,这是你下载了我处理好的DIOR数据集文件的存放路径
如果是需要使用mmdetection进行训练和推理
我这里也提供一个样例
# 新配置继承了基本配置,并做了必要的修改
_base_ = 'tood_r50_fpn_1x_coco.py'
# 我们还需要更改 head 中的 num_classes 以匹配数据集中的类别数
model = dict(
bbox_head=dict(
num_classes=20,
)
)
# 修改数据集相关配置
# data_root 指向包含 VisDrone2019-DET-train, VisDrone2019-DET-val 等子目录的父目录
data_root = "E:/PycharmProject/Datasets/CV/DIOR/"
metainfo = {
'classes': ('airplane', 'airport', 'baseballfield', 'basketballcourt', 'bridge', 'chimney','dam',
'Expressway-Service-area','Expressway-toll-station','golffield','golffield','groundtrackfield','harbor',
'overpass', 'ship','stadium','storagetank','tenniscourt','trainstation','vehicle','windmill'),
# 'palette': [
# (220, 20, 60),
# ]
}
train_dataloader = dict(
batch_size=8,
num_workers=4,
dataset=dict(
data_root=data_root,
metainfo=metainfo,
ann_file='Annotations/train.json', # 相对于 data_root 的路径
data_prefix=dict(img=''))) # 相对于 data_root 的路径
val_dataloader = dict(
batch_size=8,
num_workers=4,
dataset=dict(
data_root=data_root,
metainfo=metainfo,
ann_file='Annotations/val.json', # 相对于 data_root 的路径
data_prefix=dict(img=''))) # 相对于 data_root 的路径
test_dataloader = dict(
batch_size=8,
num_workers=4,
dataset=dict(
data_root=data_root,
metainfo=metainfo,
ann_file='Annotations/test.json', # 相对于 data_root 的路径
data_prefix=dict(img=''))) # 相对于 data_root 的路径
# 修改评价指标相关配置
# 注意:评价时 ann_file 需要是完整路径或相对于执行命令时的路径,这里拼接 data_root
val_evaluator = dict(ann_file=data_root + 'Annotations/val.json')
test_evaluator = dict(ann_file=data_root + 'Annotations/test.json')
# 使用预训练的模型权重来做初始化,可以提高模型性能
load_from = 'model_weight/tood_r50_fpn_1x_coco_20211210_103425-20e20746.pth'
#输出记录
default_hooks = dict(logger=dict(type='LoggerHook',interval=1))