网站关键字优化工具,网站设计教程及在线模拟器,专业软件定制开发公司,软件开发流程图visio环境安装和测试可以参考mmrotate旋转目标检测实战指南_validate mmrotate-CSDN博客
使用自定义数据集训练
如果需要使用自己的数据集进行训练#xff0c;首先需要把自己数据的标签格式转换为dota数据集的格式#xff0c;形如#xff08;前八个数为坐标值#xff0c;第九个…环境安装和测试可以参考mmrotate旋转目标检测实战指南_validate mmrotate-CSDN博客
使用自定义数据集训练
如果需要使用自己的数据集进行训练首先需要把自己数据的标签格式转换为dota数据集的格式形如前八个数为坐标值第九个为类别名第十为识别困难程度
475.0 982.0 456.0 982.0 461.0 841.0 481.0 842.0 large-vehicle 0
我这里使用另一个公开数据集MSRA-TD500作为例子目录结构也模仿dota数据集
MSRA-TD500
├── train
│ ├── images
│ ├── labelTxt
├── val
│ ├── images
│ ├── labelTxt
├── test
│ ├── images在configs/_base_/datasets中创建一个新的数据集脚本msra-td500.py参照同级目录下的dotav1.py修改
# dataset settings
dataset_type DOTADataset
classes (words, ) # 注意如果是单类别要在类别后加一个逗号否则会报错
data_root data/MSRA-TD500/
img_norm_cfg dict(mean[123.675, 116.28, 103.53], std[58.395, 57.12, 57.375], to_rgbTrue)
train_pipeline [dict(typeLoadImageFromFile),dict(typeLoadAnnotations, with_bboxTrue),dict(typeRResize, img_scale(1024, 1024)),dict(typeRRandomFlip, flip_ratio0.5),dict(typeNormalize, **img_norm_cfg),dict(typePad, size_divisor32),dict(typeDefaultFormatBundle),dict(typeCollect, keys[img, gt_bboxes, gt_labels])
]
test_pipeline [dict(typeLoadImageFromFile),dict(typeMultiScaleFlipAug,img_scale(1024, 1024),flipFalse,transforms[dict(typeRResize),dict(typeNormalize, **img_norm_cfg),dict(typePad, size_divisor32),dict(typeDefaultFormatBundle),dict(typeCollect, keys[img])])
]
data dict(samples_per_gpu2,workers_per_gpu2,traindict(typedataset_type,classesclasses,ann_filedata_root train/labelTxt/,img_prefixdata_root train/images/,pipelinetrain_pipeline),valdict(typedataset_type,classesclasses,ann_filedata_root val/labelTxt/,img_prefixdata_root val/images/,pipelinetest_pipeline),testdict(typedataset_type,classesclasses,ann_filedata_root test/images/,img_prefixdata_root test/images/,pipelinetest_pipeline))同时超参数可以在configs/_base_/schedules目录下选择参考文件修改最后还要修改模型文件我这里选择configs/rotated_retinanet/rotated_retinanet_obb_r50_fpn_1x_dota_le90.py在文件的一开始选择数据集脚本和超参数脚本
_base_ [../_base_/datasets/MSRA-TD500.py, ../_base_/schedules/schedule_1x.py,../_base_/default_runtime.py
]
还需要注意在检测头中要将num_classes改为实际数据集的数量否则训练还会报错
bbox_headdict(typeRotatedRetinaHead,num_classes1,...
运行训练脚本添加指定参数即可开始训练。
# 单GPU如果要在命令中指定工作目录可以添加参数。--work_dir ${YOUR_WORK_DIR}
python tools/train.py configs/rotated_retinanet/rotated_retinanet_obb_r50_fpn_1x_dota_le90.py