【问题标题】:opencv 3.1 dnn (caffe) module model import failopencv 3.1 dnn(caffe)模块模型导入失败
【发布时间】:2017-01-17 12:36:51
【问题描述】:

环境:

操作系统:赢 10

IDE:Visual Studio 2013

opencv:来自https://github.com/Itseez/opencv的3.1 master

opencv_contrib:来自https://github.com/Itseez/opencv_contrib

显卡:nvidia GeForce 610M

CUDA:工具包 v7.5 和 cudnn 已安装

我做了什么:

  1. 通过http://docs.opencv.org/3.1.0/de/d25/tutorial_dnn_build.html 构建 dll 和 lib 和成功

  2. 使用示例代码(来自http://docs.opencv.org/3.1.0/d5/de7/tutorial_dnn_googlenet.html)with caffe 模型和prototxt(在当前文件夹下载)并构建成功

问题: 一旦我运行我的代码。导入caffe模型文件时会失败

请指出哪里错了,非常感谢....

错误如下:


[libprotobuf 错误 D:\openCV_root\opencv_contrib\modules\dnn\3rdparty\protobuf\src\google\protobuf\text_format.cc:245] 解析文本格式 caffe.NetParameter 时出错:6:15:消息类型“caffe.LayerParameter”没有名为“input_param”的字段。

OpenCV 错误:未指定的错误 (失败:ReadProtoFromTextFile(param_file,param)。无法解析 NetParameter 文件:./bvlc_googlenet.prototxt) 在 cv::dnn::ReadNetParamsFromTextFileOrDie,文件 D:\openCV_root\opencv_contrib\modules\dnn\src\caffe\caffe_io.cpp,第 1101 行

D:\openCV_root\opencv_contrib\modules\dnn\src\caffe\caffe_io.cpp:1101:错误:(-2) 失败:ReadProtoFromTextFile(param_file, param)。无法解析 NetParameter 文件:./bvlc_googlenet.prototxt

在函数 cv::dnn::ReadNetParamsFromTextFileOrDie 中

【问题讨论】:

  • 我从“github.com/BVLC/caffe/issues/3846”解决了根本原因,我应该在解决这个问题后更改为“旧定义”,我将在“net.forward();”处失败,错误消息如下:OpenCV错误: cv::dnn::ConvolutionLayerImpl::allocate 中的断言失败 (input.dims() == 4 && (input.type() == CV_32F || input.type() == CV_64F)),文件 D: \openCV_root\opencv_contrib\modules\dnn\src\layers\convolution_layer.cpp,第 89 行

标签: caffe opencv3.1 cudnn


【解决方案1】:

DNN 导入器不支持 caffe prototxt 文件的某些结构。不过,您可以修改和使用它。

Link 发布到 github。
Link 修改后的 prototxt。

【讨论】:

    【解决方案2】:

    build opencvopencv_contrib 带有标签 3.1.0 适用于 opencv dnn

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多