faster-rcnn(matlab版)在windows平台上的配置

caffe在windows平台上的编译一文提到了windows版本caffe编译。微软的官方说明上该版本支持faster-rcnn。但尝试了之后发现并不支持任少卿作者所给的MATLAB版faster-rcnn。按照@toothless_sun博客添加了roi的一些文件之后,可以正常跑demo,训练时会报错:

F0221 10:05:49.852730  9236 layer.hpp:385] Check failed: ExactNumBottomBlobs() == bottom.size() (2 vs. 3) SoftmaxWithLoss Layer takes 2 bottom blob(s) as input.

网上虽然有很多人提问,但是没有给出解决方案。应该还是caffe版本的问题。只好编译任少卿作者给出的caffe版本。

1.编译环境

  1. vs2013+cuda8.0(不使用cudnn)+matlab2014a
  2. faster-rcnn(matlab)
  3. caffe源码
  4. caffe_library,caffe的windows项目及其用到的库。

2.编译caffe

  1. 解压caffe_library,将caffe源码复制到/caffe_library/caffe中。
  2. 用记事本打开/caffe_library/caffe/windows/caffe/caffe.vcxproj,修改里面的cuda版本号为自己的版本号。有两处292行、481行。
  3. 用vs2013打开/caffe_library/caffe.sln
  4. 按照博客使用Nuget管理第三方库吧为caffe工程添加opencv、boost、OpenBLAS(用于替换mkl,mkl是收费的)。
  5. 为caffe添加maltlab需要的文件。Properties->C/C++->Genaral->Additional Include Directories。添加/你的MATLAB路径/extern/include和/你的MATLAB路径/toolbox/distcomp/gpu/extern/include
  6. 删除宏USE_MKL(如果使用mkl,则跳过此步).Properties->C/C++->Preprocessor->Preprecessor Definitions。删除USE_MKL。
  7. 删除无用的链接库。Properties->Linker Input->Adtional Dependences。删除opencv和mkl相关的库。
  8. 切换项目为x64,Release_Mex编译。

3.faster rcnn配置

  1. 将/caffe_library/x64/Release_Mex文件全部拷贝只/faster-rcnn/exteral/caffe/matlab/caffe-rcnn目录下,将caffe源码目录下的matlab中+caffe连同目录拷贝至/faster-rcnn/exteral/caffe/matlab
  2. 打开MATLAB切换至faster-rcnn目录。改./function/nms/nvmex.m文件第8行中的vs为自己的安装路径 。然后运行faster_rcnn_build.m编译faster-rcnn。
 Host_Compiler_Location = '-ccbin "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64"';

注:任少卿作者给的caffe仅支持GPU训练,使用CPU训练时会报错。Python版的faster r-cnn有人对其进行了扩展,支持CPU训练。

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