1.数据集格式需要转换成coco格式
需要coco数据集格式,json存储格式。如果用labelImg标注的voc格式需要转换格式。
https://github.com/xuhuasheng/labelImg_voc2coco
2.数据集文件夹准备
在datasets目录下建立三个文件夹,annotations
、train
、val
。
annotations存放train.json和val.json。
train和val文件夹分别存放训练集和测试集的图片,.jpg格式的RGB三通道图片
2. 链接到自己的数据集
在detectron/datasets/dataset_catalog.py
里的_DATASETS={}
添加自己的数据集链接。
注意数据集变量的名字要包含coco_
(因为这里是coco格式,其他的格式也有要求),这很重要,因为之后detectron会检查数据集的正确性。
4.修改配置文件config.yaml
配置文件里基本是模型的各种参数,调参也是在这里面调。
这里使用的是faster-rcnn-R50-FPN模型,仅用作目标检测,并没有mask目标分割
configs/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_1x.yaml
主要修改一下几项(蓝色修改部分,
NUM_CLASSES: 类别数+1(背景)
MAX_ITER一开始调参时可以设小一点,能够短时间内看效果):
5.训练
万事俱备,开始训练。
python tools/train_net.py --cfg configs/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_1x.yaml OUTPUT_DIR out_dir
–cfg 加载yaml配置文件
OUTPUT_DIR 模型权重的输出文件夹
6.测试之前修改coco数据集类别
修改
datasets/dummy_datasets.py
7.利用训练好的模型权重进行推断
python tools/infer_simple.py \
--cfg configs/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_1x.yaml \
--output-dir /tmp/detectron-visualizations \
--image-ext jpg \
--wts \home/watson/anaconda3/envs/pytorch/detectron/out_dir/train/coco_THz_2019_train/generalized_rcnn/model_final.pkl demo
–cfg 加载参数配置文件yaml
–output-dir 推断标注的输出pdf格式
–image-ext jpg 读取demo目录下的jpg格式图片
–wts 刚训练出来的模型权重文件.pkl