一、数据集准备
数据集目录格式要求:
├── VOCdevkit(数据集名称)
│ ├── VOC2007
│ │ ├── Annotations
│ │ ├── JPEGImages
│ │ ├── ImageSets
│ │ │ ├── Main
│ │ │ │ ├── val.txt
│ │ │ │ ├── train.txt
PS:
1. 所有图片末尾统一为.jpg(注意小写)
数据集保存(创建软连接,方便数据集复用):
mkdir data
cd data
ln -s /home/存访路径/VOCdevkit
二、修改相关文件
1. 修改class_names.py文件
修改路径:
mmdetection/mmdet/core/evaluation/class_names.py
修改内容:将voc_classes的返回值改为要训练数据集的类别名称。
2. 修改voc.py文件
修改路径:
mmdetection/mmdet/datasets/voc.py
修改内容:将VOCDataset中的CLASSES改为对应训练数据集的类别集合。
3. 修改配置文件
配置文件路径:
mmdetection/configs
默认使用的是COCO格式,我们找到我们需要的模型,修改成我们所使用的VOC格式。假设我们使用的是cascade_rcnn_r50_fpn_1x_coco.py,我们可复制同一文件内容到cascade_rcnn_r50_fpn_1x_voc_(对应数据集名称).py。
里面内容为:
_base_ = [
'../_base_/models/cascade_rcnn_r50_fpn_xxx.py',
'../_base_/datasets/voc_xxx_detection.py',
'../_base_/schedules/schedule_1x_xxx_voc.py', '../_base_/xxx_voc_runtime.py'
]
# xxx为对应数据集名称
# models文件夹为模型结构设置
# datasets文件夹为数据集设置
# schedules文件夹为优化器、学习策略设置
# runtime文件为整体训练超参设置
1. models中对应文件修改num_classes变量
2. datasets中对应文件修改dataset_type、data_root、img_scale、ann_file、img_prefix变量。
3. schedules中新建schedule_xxx_voc.py设置对应优化器
4. 新建xxx_voc_runtime.py文件设置整体超参
三、开始训练
python tools/train.py configs/cascade_rcnn/cascade_rcnn_r50_fpn_1x_voc_xxx.py
对应log日志以及断点保存在work_dirs目录下。
Reference
1. https://blog.csdn.net/laizi_laizi/article/details/104256781