【detectron】训练自己的数据集

1.数据集格式需要转换成coco格式

需要coco数据集格式,json存储格式。如果用labelImg标注的voc格式需要转换格式。
https://github.com/xuhuasheng/labelImg_voc2coco

2.数据集文件夹准备

在datasets目录下建立三个文件夹,annotationstrainval
annotations存放train.json和val.json。
trainval文件夹分别存放训练集和测试集的图片,.jpg格式的RGB三通道图片

2. 链接到自己的数据集

detectron/datasets/dataset_catalog.py里的_DATASETS={}添加自己的数据集链接。
注意数据集变量的名字要包含coco_(因为这里是coco格式,其他的格式也有要求),这很重要,因为之后detectron会检查数据集的正确性。
【detectron】训练自己的数据集_第1张图片

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一开始调参时可以设小一点,能够短时间内看效果):
【detectron】训练自己的数据集_第2张图片

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

【detectron】训练自己的数据集_第3张图片

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

你可能感兴趣的:(深度学习实战)