准备数据集
数据集格式一般是两种,coco和voc数据集,这里建议大家改成coco的,因为voc格式的config文件真的比较少,大部分都是coco的,而且改起来很麻烦
voc的xml文件转coco的json我已经放在这里了。
mmdetection
├── mmdet
├── tools
├── configs
├── data
│ ├── coco
│ │ ├── annotations
│ │ ├── train2017
│ │ ├── val2017
│ │ ├── test2017
coco的数据集存放位置如上所述。annotation存放json文件
test2017、train2017、val2017都是图片
然后建立软连接,coco_root是你的数据集地址哦
cd mmdetection
mkdir data
ln -s $COCO_ROOT data
2.修改类别
1.代码位于mmdetection/mmdet/datasets/coco.py
将其注释并修改为自己的数据集
2.mmdetection/mmdet/core/evaluation/class_names.py中修改类别
在return中修改为自己的数据集
3.修改基础信息
打开config/_base_datasets,找到coco_instance.py,里面可以修改dataroot等信息。
resize是你想要的图片大小,后面的keep_ratio是多尺度训练
4.修改config文件
在跑代码前需要知道自己想跑那个模型,比如想跑faster_rcnn算法中的r50_fpn_1x找到
修改学习率位置
optimizer = dict(type=‘SGD’, lr=0.0025, momentum=0.9, weight_decay=0.0001) #当gpu数量为8时,lr=0.02;当gpu数量为4时,lr=0.01;我只要一个gpu,所以设置lr=0.0025
5.训练
单GPU训练:python ./tools/train.py ./configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
多GPU训练: ./tools/dist_train.sh configs/cascade_rcnn_r101_fpn_1x.py 4 --validate