Win10下Faster_RCNN的MATLAB配置(CPU)

Win10下Faster_RCNN的MATLAB配置(CPU)


花了一周的时间,走了很多的弯路,终于是搞出来了,所以想分享一下,仅供参考。
转载请附上原文出处链接和本声明本:本文链接


前言

刚开始没有分清GPU和CPU,所以傻福福的跑去下载CUDA10.1及其CUDNN,其实这是属于GPU配置所需,MATLAB属于CPU,根本不需要下载CUDA,蓝瘦。

正文

1. 环境配置

在下的配置是 WIN10 + MATLAB2017B + VS2013,看到很多博主说先装VS再装MATLAB以防MATLAB找不到VS,其实我的就是先装MATLAB2017B,后装VS2013并没有出现找不到的情况。如下图所示,输入命令 mex -setup 出现下图文字即代表MATLAB可以找到VS2013。
Win10下Faster_RCNN的MATLAB配置(CPU)_第1张图片
基本需求下载链接:
MATLAB2017B:https://pan.baidu.com/s/1aNwfPnboIY-kj12BwfUrNA 提取码:0vfz
VS2013:https://pan.baidu.com/s/1qdI-AXTiTYu5eiRsyrHfDA 提取码:njt3
faster_rcnn:https://github.com/ShaoqingRen/faster_rcnn
caffe:https://github.com/microsoft/caffe
faster_rcnn_final_model:https://pan.baidu.com/s/1lzIyBnPyTZIph3-szz-QEQ 提取码:4mil

2. VS2013编译caffe

2.1 CommonSettings.props文件配置
解压caffe-master,找到./ caffe-master/windows/ CommonSettings.props.example。
复制该文件并改名为CommonSettings.props后用notepad打开(或者记事本),修该以下内容:
第7行: < CpuOnlyBuild > false < /CpuOnlyBuild >修改为< CpuOnlyBuild >true< /CpuOnlyBuild >
第8行: < UseCuDNN > true< /UseCuDNN >修改为< UseCuDNN >false< /UseCuDNN >
第16行: < MatlabSupport >false< /MatlabSupport >修改为< MatlabSupport >true< /MatlabSupport >
第53行: < MatlabDir >C:\ProgramFiles\MATLAB\R2014b< /MatlabDir >修改为< MatlabDir > D:\Program Files\MATLAB\R2017b< /MatlabDir >(你的MATLAB安装路径)
第55行: < IncludePath > $ (MatlabDir)\extern\include; $ (IncludePath)< /IncludePath >
修改成:< IncludePath > $ (MatlabDir)\extern\include; $(MatlabDir)\toolbox\distcomp\gpu\extern \include; $(IncludePath)< /IncludePath >

2.2 libcaffe工程编译

a. 双击./caffe/windows/Caffe.sln,将Debug模式调成Release模式;
b. libcaffe项目右键—> 属性—>配置属性—> C/C++ —> 常规,将将警告视为错误修改为否;
c. 找到工程libcaffe/cu/layers右键添加现有项,把roi_pooling_layers.cu,添加进去,roi_pooling_layers.hpp,roi_pooling_layers.cpp同理。
d. libcaffe项目右键—> 生成。如果成功的话,请移驾2.3

2.2.1 Nuget程序包下载问题

编译失败了吗?是下图错误吗?恭喜你即将学到新的知识。
在这里插入图片描述
其实直接右键libcaffe生成的话,Nuget会还原这些程序包(你可以点击管理Nuget程序包,但多半会操作超时),但是多半失败,那些还原成功的我真是既懵逼又羡慕,反正在下只能手动操作了。
打开libcaffe/packages.config,可以看到11个包,先把这11个包记下,然后删除,如下图:
Win10下Faster_RCNN的MATLAB配置(CPU)_第2张图片
Win10下Faster_RCNN的MATLAB配置(CPU)_第3张图片
然后去https://www.nuget.org/packages官网下载刚才删除的11个程序包,WIN10浏览器的下载器可以右键复制链接拿到迅雷下载。下载完后把.nupkg文件复制到新建的NugetPackage文件下(名字随你开心),这个文件的路径也没有要求,可放在工程同路径下。
Libcaffe右键—>管理Nuget程序包—>设置—>添加可用程序包源,把刚才的文件夹名字和路径放上去,更新,确定,如下图所示:
Win10下Faster_RCNN的MATLAB配置(CPU)_第4张图片
这时候你会发现,联机—>NugetPackage下有你刚才下载的程序包了,再把那11个的libcaffe工程需要的程序包安装上就行,如下图所示:
Win10下Faster_RCNN的MATLAB配置(CPU)_第5张图片再次libcaffe右键—>生成,如果编译成功,请移驾2.3。

2.2.2 OpenCV配置

又编译失败了吗?还是下图错误吗?再次恭喜你即将学到新的知识。
在这里插入图片描述
首先,卸载Nuget的OpenCV包,然后libcaffe右键->生成依赖项->自定义生成,把里面的opencv取消选中,如下图:
Win10下Faster_RCNN的MATLAB配置(CPU)_第6张图片
再次右键libcaffe->卸载项目->重新编辑libcaffe.vcxproj,删掉带OpenCV.2.4.10字样的4行代码(都是路径),保存,关闭,右键libcaffe->重新加载项目。
接着,下载opencv3.0(我用的3.0版本OK的,当然你也可以尝试新大陆)安装到随便哪个路径,然后把include和lib的路径添加到工程当中(OpenCV.3.0 提取码:qilt )如下图:
Win10下Faster_RCNN的MATLAB配置(CPU)_第7张图片
Win10下Faster_RCNN的MATLAB配置(CPU)_第8张图片
Win10下Faster_RCNN的MATLAB配置(CPU)_第9张图片
Libcaffe右键->设置为启动项->生成。
还不成的小伙伴们再去看看别的博主的教程学习一哈子,在下只能帮你到这儿啦~

2.3 VS2013编译matcaffe

a. 双击./caffe/windows/Caffe.sln,将Debug模式调成Release模式;
b. libcaffe项目右键—> 属性—>配置属性—> C/C++ —> 常规,将将警告视为错误修改为否;
c. matcaffe项目右键—> 生成。如果成功的话,请移驾3

2.3.1 matcaffe的Nuget程序包

不知道小伙伴注意了没有,matcaffe的package.config和libcaffe的是不一样的呢,同理,参考上文Nuget程序包添加就完了,别忘记删掉matcaffe.vcxproj的OpenCV.2.4.10路径,手动添加OpenCV3.0的路径哦。

3. 在MATLAB中使用caffe

a. 将./caffe-master/Build/x64/Release添加到系统变量的path中,如下图;
Win10下Faster_RCNN的MATLAB配置(CPU)_第10张图片
b. 将./ caffe-master/Build/x64/Release/matcaffe添加到matlab的搜索路径中,如下图;
Win10下Faster_RCNN的MATLAB配置(CPU)_第11张图片
c. 将 ./ caffe-master /matlab/+caffe/下的.m文件都复制到./ caffe-master /Build/x64/Release/
matcaffe/+caffe/文件夹下;
d. 打开之前下载的faster_rcnn,在MATLAB的./faster_rcnn-master路径下执行命令 caffe.reset_all(),输出结果如下:Cleared 0 solvers and 0 stand-alone nets,说明matlab接口可以使用了。
e. 执行 ./faster_rcnn-master/faster_rcnn_build.m 多半会报错说找不到 opencv_world300d.dll,没关系,把 ./OPENCV3.0/opencv/build/x64/vc12/lib路径下的opencv_world300d.dll 拷贝到 ./caffe-master/Build/x64/ Release路径下。如果你没出现提示缺少libgflags.lib的报错,那恭喜你,再运行一遍faster_rcnn_build.m,忽略下图错误,继续下一步。
Win10下Faster_RCNN的MATLAB配置(CPU)_第12张图片
f. 在./faster_rcnn-master/external/caffe/文件夹下新建一个空白名为matlab的文件夹,执行faster_rcnn-master/start_up.m,提示:fast_rcnn startup done,说明运行成功,继续下一步。
g. 解压faster_rcnn_final_model到./ faster_rcnn-master,得到5张图片,并覆盖原来的output文件,修改./faster_rcnn-master/experiments/ script_faster_rcnn_demo.m如下图:
Win10下Faster_RCNN的MATLAB配置(CPU)_第13张图片
运行./faster_rcnn-master/experiments/ script_faster_rcnn_demo.m,结果下图
Win10下Faster_RCNN的MATLAB配置(CPU)_第14张图片
Win10下Faster_RCNN的MATLAB配置(CPU)_第15张图片
Win10下Faster_RCNN的MATLAB配置(CPU)_第16张图片
恭喜通关~

PS. 找不到libgflags.dll问题

找不到libgflags.dll的解决方法。
参考博客:libgflags.dll的编译
需要注意的是,该博客的工程是win32的配置,需要自行修改成x64的然后编译。
Libgflags右键->属性->配置管理器,点击win32,点新建,把win32换成x64,取消勾选创建新的解决方案平台,如下图所示:
Win10下Faster_RCNN的MATLAB配置(CPU)_第17张图片
Win10下Faster_RCNN的MATLAB配置(CPU)_第18张图片
最后一步的build solution是编译libglog和libgflags,把编译生成的libgflags.dll和libgflags.pdb复制到./caffe-master/Build/x64/Release下,再执行script_faster_rcnn_demo.m就成功啦。

还不成的小伙伴们不要气馁,你要想,天选之子总要经历磨难【手动狗头】,干巴蝶~

你可能感兴趣的:(深度学习)