01-使用训练好的分割模型

下载模型

地址: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

# 这个模型速度快 轻量级
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