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

xiaoxiao2021-02-28  73

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放到相应位置即可。

转载请注明原文地址: https://www.6miu.com/read-33602.html

最新回复(0)