总流程
- 下载项目 项目克隆地址
- 准备数据集
- 修改参数训练
1.数据集准备(以COCO数据集为例)
建议使用COCO格式,利用一键生成数据集网站(可生成多种格式)
网站地址:roboflow
参考文章:roboflow导出数据集
导出的格式如下图:
将三个文件夹的annotations文件全部移动到新建的annotations文件夹,train中的照片复制到到新建的train2017,test中的照片复制到新文件夹test2017,最后的COCO数据集如下图所示
文件夹结构如下
--annotations
--instances_test2017.json
--instances_train2017.json
--instances_val2017.json
--train2017
--img...
--img...
...
--test2017
--img..
--img..
2.配置文件修改
1.新建配置文件文件夹
在mmdetection总目录下新建config文件(仅仅为了便于管理)
2.复制所需网络的config至你新建的config文件夹(以fasterrcnn为例)
将–mmdetection --configs --faster_rcnn中的faster_rcnn_r50_fpn_1x_coco.py复制到config文件
3.修改config文件
这里_base_后面有多个地址,相当于继承地址中的参数,分别有model文件、dataset文件、schdule文件、runtime文件。我们只需修改相对地址到mmdetection下面的configs中的_base_文件夹即可。
**----------------------------------------------------------
特别注意:由于我们新建了config目录,所以复制过去之后相对路径会变成 ../configs/_base_/...而不是../base/...
--------------------------------------------------------**
4.修改model文件
如上图,config文件继承了…/base/models/faster_rcnn_r50_fpn.py,因此我们需要对该文件进行修改,
5.修改coco.py中的类别
6.修改coco_detetion.py
3.程序运行
1.终端运行(在mmdetection目录下运行)
运行你改好的config文件
python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
2.简单调参
参数在config文件夹继承的schedule中:如下图
3.容易出现的问题
因为mmdetection原先设置的学习率比较大,可能会存在不收敛的问题,如果结果不收敛,在复制的config中调整初始学习率,或者在config继承的schedule.py文件中调节。