使用opencv3.20编译dnn模块,生成的库来加载caffe模型,从而在VS工程上跑。避坑锦集。

1、opencv的dnn解析

2、OpenCV dnn模块支持Caffe

http://dl.caffe.berkeleyvision.org/


参考博客:

http://blog.csdn.net/hanchan94/article/details/68926534  opencv3.2.0+contirb+cmake

在win10下实现openCV3.2.0+vs2015+cmake出错解决方案 

1、其中的使用Cmake进行编译纯opencv320版本(即不包含有扩展库contirb时)会出现的错误,主要有两个,一个是ffmpeg,一个是ippicv。其主要原因是这两个库未预先

下载。需要cmake在线下载,由于cmake下速度慢可能会导致下载失败。如下:

CMake Warning at cmake/OpenCVUtils.cmake:865 (message):
Download: Local copy of opencv_ffmpeg.dll has invalid MD5 hash:
d41d8cd98f00b204e9800998ecf8427e (expected:
89c783eee1c47bfc733f08334ec2e31c)

Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:10 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:193 (include)
CMakeLists.txt:527 (include)


Downloading opencv_ffmpeg.dll...
CMake Error at cmake/OpenCVUtils.cmake:888 (file):
file DOWNLOAD MD5 mismatch

for file: [C:/research/opencv300/sources/3rdparty/ffmpeg/downloads/89c783eee1c47bfc733f08334ec2e31c/opencv_ffmpeg.dll]
expected MD5 sum: [89c783eee1c47bfc733f08334ec2e31c]
actual MD5 sum: [d41d8cd98f00b204e9800998ecf8427e]

Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:10 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:193 (include)
CMakeLists.txt:527 (include)


CMake Error at cmake/OpenCVUtils.cmake:892 (message):
Failed to download opencv_ffmpeg.dll.  Status=1;"unsupported protocol"
Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:10 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:193 (include)
CMakeLists.txt:527 (include)
这时需要自己手动网上下载,放到相应位置即可。文件位置为:opencv\sources\3rdparty\ffmpeg。

其中ffmpeg下载链接为:http://download.csdn.net/detail/yangdashi888/9838952

ippicv文件路径为:opencv\sources\3rdparty\ippicv。

其中ippicv下载链接为:http://download.csdn.net/detail/yangdashi888/9840379

如果电脑为安装有cuda则把cmake里with_cuda给取消掉。

2、当我们添加了扩展库的时候有会出现其他问题,其中的contrib库有两个,不同的库会导致不同的问题,分别是:opencv_contrib-3.2.0和opencv_contrib-master,

这两个可以直接到百度搜即可下载。

其中的opencv_contrib-master问题的主要是:

When configuring opencv with opencv_contrib, the configure fails on the dnn and xfeatures2d modules. The CMake files use FILENAME in the call to ocv_download, but should use PACKAGE as specified in the opencv. This generates the following errors. I've replicated this on Mac OS X and on Windows 7 using CMake-gui.

Downloading ...
CMake Error at /Users/Documents/opencv/source/opencv-3.2.0/cmake/OpenCVUtils.cmake:1045 (file):
file DOWNLOAD cannot open file for write.
Call Stack (most recent call first):
/Users/Documents/opencv/source/opencv_contrib-master/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake:32 (ocv_download)
/Users/Documents/opencv/source/opencv_contrib-master/modules/dnn/CMakeLists.txt:5 (include)

CMake Error at /Users/Documents/opencv/source/opencv-3.2.0/cmake/OpenCVUtils.cmake:1049 (message):
Failed to download . Status=
Call Stack (most recent call first):
/Users/Documents/opencv/source/opencv_contrib-master/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake:32 (ocv_download)
/Users/Documents/opencv/source/opencv_contrib-master/modules/dnn/CMakeLists.txt:5 (include)

原因是这里的cmake文件不是最新的,其在调用ocv_download时使用的指令错误导致下载失败。其要修改的地方是:

opencv_contrib-master/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
opencv_contrib-master/modules/xfeatures2d/cmake/download_boostdesc.cmake
opencv_contrib-master/modules/xfeatures2d/cmake/download_vgg.cmake
三个地方,打开这些文件的把其里面的 FILENAME 改为“ PACKAGE”。让后cmake就会下载相应的文件,不过这个protobuf文件比较大,最好手动下载,文件百度。其它两个比较小,直接下载即可,(最好在翻墙情况下进行)。

其中opencv_contrib-3.2.0文件不出错,因为其cmake文件是最新的,这时我们把protobuf放到相应位置即可。











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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值