faster r cnn matlab,Widows下Faster R-CNN的MATALB配置(CPU)

吐槽!!!

这都9012了,感觉自己太菜了;

终于将代码初步跑通了,报了很多错,费了很大劲,回过头来,再重新整理一遍;

这里需要说明的一点是这是CPU版本的;

另外,如果你的机器配置和Faster R-CNN源码中指定的配置完全一致,继续这篇文章可能就不太适合了;

如果你想在Windows下编译适合自己机器配置的提供matlab接口的caffe,并完成faster r_nn的matlab源码的测试,请继续阅读下去;

环境配置:

Windows 10

VS 2013

MATLAB 2018a

补充说明:

建议安装VS2013,我一开始安装的是VS2015,后来出了许多问题,浪费了不少时间,又装回了VS2013,至于哪里出问题,以及为什么要使用VS2013,后续会说明;

还有一点,有些博客中提到建议先安装VS,再安装MATLAB,防止MATLAB找不到C编译器;因为之前我就安装了MATALB,所以并没有按照其他博客中建议的来做,最后发现还是好使的;

1. Faster R-CNN的MATLAB源码

下载faster_rcnn的matlab源码:下载地址

得到./faster_rcnn文件夹;

补充说明:

如果你使用的是git进行clone的话,是./faster_rcnn/文件夹;如果直接Download Zip的话,解压出来的应该是./faster_rcnn-master/文件夹;当然,这一说明只做提醒,防止后续出乱子;

打开matlab,定位到./faster_rnn/,目录结构如下图所示;

96c1bea268573c6244dd0f638c258beb.png

部分文件夹介绍:

experiment/:主要是用于testing/training的脚本;

external/:主要存放成功编译的提供matlab接口的caffe;(后面将花费很多时间在这个上面)

fetch_data/:下载作者提供的caffe以及一些预训练好的模型文件;

其中的都是一些依赖方法,大家可以去看一下;

补充说明:

有关external/存放的是已经编译好的提供matlab接口的caffe,后续我们将使用VS进行编译,并将编译好的caffe放进其中;

有关fetch_data/中有一个脚本文件fetch_caffe_mex_windows_vs2013_cuda65.m用于下载作者提供的编译好的caffe,因为我们需要重新编译,所以并不会使用它;

2. Windows下的Caffe配置(matlab接口)

下面就开始编译提供matlab接口的caffe了,也就是上述./faster_rcnn/exteral/文件夹中所需的文件;

这里我们使用的Microsoft提供的caffe:下载地址;得到./caffe/文件夹;(也可能是./caffe-master/)

打开./caffe/windows/,找到CommonSettings.props.example文件,复制后,将名称改为CommonSettings.props,如下图:

1d80117143fc21c9d07da387b684cfe9.png

使用notepad打开CommonSettings.props,修改下面内容:

第7行: false 修改成:true

第8行: true 修改成: false

第16行: false 修改成: true

上述三处修改分别表示,仅仅使用CPU、不使用CudNN、使用MATLAB;

继续修改:

第53行: C:\Program Files\MATLAB\R2014b 修改成:F:\software\Matlab 2018a

第55行: $(MatlabDir)\extern\include;$(IncludePath) 修改成:$(MatlabDir)\extern\include;$(MatlabDir)\toolbox\distcomp\gpu\extern\include;$(IncludePath)

上述第一处修改指定MATLAB安装位置;

修改完成,使用VS2013打开./caffe/windows/Caffe.sln,双击即可;

打开之后,将Debug模式调成Release模式;(在调试的过程中,可能会重新加载项目,注意需要调整成Release)

添加roi_pooling_layer.cpp

打开解决方案资源管理器,找到libcaffe/cu/layers/右键—》添加—》现有项,在./caffe/src/caffe/layers/中找到roi_pooling_layers.cpp文件,进行添加,如下图;

添加成功后,可以看到libcaffe/cu/layers/下有roi_pooling_layers.cpp文件;

4d7313591d77094f1528d8e726bf3332.png

重新生成libcaffe

选择libcaffe,右键—》重新生成;

会自动还原NuGet包;

之后会出现一个错误:error C2220:....双击,弹出错误提示信息,确定后,会打开一个alt_sstream_impl.hpp文件;

Ctrl+S进行保存;然后重新生成;

补充说明:

在选择重新生成后,会自动还原BuGet包,如果幸运,还原成功后,会出现上述错误;如果失败,那就是其他问题;

需要还原哪些NuGet包,都在ibcaffe/packages.config中定义,如下图所示;其中有些包的名称为vc120表示适用于VS2013;而VS2015的话,对应名称则为vc140;

之前说过我将VS2015卸载,重新装的VS2013;你可能会想将对应的vc120改成vc140不就ok了吗?当然了,卸载VS2015前,还没有看到这个packages.config文件,那会啥也不懂啊;后来也考虑这样做行不行,但是应该不行,因为在NuGet网站,有些包根本就没有vc140版本的,只有vc120版本;

总不能一部分使用VS2013的包,一部分使用VS2015的吧。不过没试过,结果谁知道呢。

7a4ae5411d993dcda35d561532544edc.png

重新生成matcaffe

如果上面幸运的话,没出什么错,那这里也不会遇到什么麻烦了;

类似重新生成libcaffe,以同样的方式,选择matcaffe,右键—》重新生成;

到目前为止,我们已经有了三个文件夹,如下图所示:

./caffe/:表示microsoft提供的caffe;

./faster_rcnn/:表示faster r-cnn的matlab源码;

./NugetPackages/:就是在编译libcaffe时还原出来的NuGet包;

另外,./caffe/Build/x64/Release/下就是得到caffe;

9a2ee635ec2fa9243b1f8fb631de8c72.png

经过上面一系列的操作,我们已经成功编译了支持matlab接口的caffe;

为保证后续测试的正常执行,这里仍需要一步配置:

在./faster_rcnn/external/caffe/下新建文件夹/matlab/;

将./caffe/Build/x64/下将Release文件夹复制到上述新建的/matlab/文件夹中;

将./faster_rcnn/external/caffe/matlab/Release/添加到系统的path中,见下图;

892bb6c18368b02c897d91e7321df2bd.png

在matlab命令行执行:

mex -setup

选择 Microsoft Visual C++ 2013 (C) 进行C语言编译,如下图:

088fce91f083347d97ef96a6c2cf6244.png

3. Preparation for Testing

Preparation

下面就开始配置Faster R-CNN的Matlab源码进行测试了;

根据Faster R-CNN源码中的使用方法进行Preparation for Testing,如下图;

3328fe967303a2d437a2e2531b335671.png

需要执行fetch_data/fetch_caffe_mex_windows_vs2013_cuda65.m,该脚本文件使用来下载作者提供的编译好的caffe的,因为上面我们已经编译好了适合我们自己机器的caffe,这里不需要执行;

执行faster_rcnn_build.m文件,如果出现错误,重启matlab;遇到下图错误,则表示正常,因为我们配置是CPU版本;

f3282b1f03b8dd37456a9daa3c509a33.png

执行start_up.m,应该不会出现什么错误;

该脚本的目的是创建所需文件夹、添加搜索路径;此时,已经将我们编译好的caffe加载到搜索路径了;

% 输入

caffe.reset_all();

% 输出

Cleared 0 solvers and 0 stand-alone nets

表示matlab接口的caffe测试成功;

Testing

根据Faster R-CNN源码中的使用方法进行Testing,如下图;

01e8cef6e86f89e7c07efc50b865e584.png

别着急,执行fetch_data/fetch_faster_rcnn_final_model.m;该文件是作者提供的训练好的模型文件,以及一些预训练模型用于Training;其中下载链接好像需要FQ,如果有需要的话,可以从这里下载:下载地址,提取码:62n6;

下载完成后,解压到./faster_rcnn/中,覆盖原来的./faster_rcnn/output/文件夹,以及多出了五张图片;

打开`./faster_rcnn/experiments/script_faster_rcnn_demo.m,进行如下修改:

至于第三处修改,是因为VGG-16网络太大了,试着跑了一下,跑不动,换成了ZF-Net;

ba14d9c37935428243932028d8ba374e.png

修改完成后,执行script_faster_rcnn_demo.m;得到结果如下图;

5cfcacee591ae64990ed1f709a414983.png

94a6ab01d5a3aa71e1efee933a0e2bec.png

应该完事了吧。。。至于Training,就我这机器的渣渣配置,还是算了吧(希望能换台本子啊,,,);

后面想要尝试改一下,安装GPU版本的;

Reference

原文:https://www.cnblogs.com/chenzhen0530/p/10933414.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值