下载模型
# 这个模型速度快 轻量级
http://download.tensorflow.org/models/object_detection/mask_rcnn_inception_v2_coco_2018_01_28.tar.gz
训练自己的分割模型
1. 准备好训练图片
训练集的图片必须小于1M,手机拍摄的原图会让CPU内存爆炸
标注产生的json文件必须和标图片在一个目录中
2. 准备好label_map.pbtxt文件
创建label_map.pbtxt文件,然后内容格式如下:
item {
id: 1
dispay_name:"cup"
}
3. 生成tfrecord文件
需要opencv
pip install opencv-python -i https://pypi.douban.com/simple
执行 create_mask_rcnn_tf_record.bat文件
注:
train.record文件为0kb时
标注的json文件内容有问题,其中格式如下
"imagePath": "IMG_20200304_163954.jpg"
==也就是说:你 标注的时候图片和生成的标注json数据要保存在同一个目录==
执行批处理文件时报错
p.checkVector(2, CV_32S) >= 0 in function 'cv::fillPoly'
需要修改 create_mask_rcnn_tf_record.py 的 199行
# 原函数为 [polygon] 但是会报错,需要改成np.int32([polygon])
cv2.fillPoly(mask, np.int32([polygon]), 1)
4. 准备经过预训练的分割模型
使用下载好的 mask_rcnn_inception_v2_coco 模型 解压到 项目目录下的training文件内
5. 设置config文件
config文件可以在目录
\train_object_segmentation\object_detection\samples\configs
中找到,复制你所对应的config到工程目录下,本次选用mask_rcnn_inception_v2_coco.config
改参数时要注意,有挺多要修改的
6. 训练模型
执行train.bat
7. 把模型转pb格式然后进行测试
需要修改参数
执行 export_inference_graph.bat