pb模型文件与.pbtxt配置不匹配导致OpenCV调用dnn模块出错(Mask R-CNN为例)

问题:pb模型文件与.pbtxt配置不匹配导致OpenCV调用dnn模块出错(Mask R-CNN为例)

OpenCV调用tensorflow的pb模型,需要.pb和.pbtxt文件。
在前期采用Tensorflow Object Detection API训练出自己的pb模型后,还需要准备该模型对应的.pbtxt文件。然而,所谓的对应并不是选择了一个框架的.pbtxt文件拷贝过来就能解决的,需要根据pb模型导出对应的.pbtxt文件,才能供OpenCV调用。
在这里插入图片描述
”frozen_inference_graph.pb"是利用自己的数据集训练出来的模型,“mask_rcnn_inception_v2_coco_2018_01_28.pbtxt"是网络的配置文件,从”models“或者其他地方拷贝过来的。
VS中调用执行一个识别程序,会发生"net.forward(outs, outNames);"处报错,说明模型与配置文件不匹配。

解决办法:由.pb文件导出对应的.pbtxt文件

OpenCV(Python版本)中已经提供了对应的程序,可将其源码下载下来找到以下两个文件,所在目录:opencv/samples/dnn/。网络不便的话,只下载这两个文件即可。
1.下载”tf_text_graph_mask_rcnn.py
2.下载tf_text_graph_common.py
3.准备mask_rcnn_inception_v2_coco.config
该文件的源文件可在”\models-master\research\object_detection\samples\configs“目录下找到,此处用到的是训练时根据项目要求修改后的.config文件。models可到此处下载。
在这里插入图片描述
4.按照tf_text_graph_mask_rcnn.py中提示运行程序
在这里插入图片描述
即终端输入:

 python tf_text_graph_ssd.py \
--input /path/to/xxx.pb \
--config /path/to/xxx.config \
--output /path/to/xxx.pbtxt 

其他识别框架导出方法类似,注意查看OpenCV源码中提供的程序说明。
在这里插入图片描述

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值