windows matlab cpu 测试faster rcnn

编译Caffe

有几个地方需要注意。建议大家采用2016年7月之后的Microsoft Caffe版本,因为在此之后这个Caffe分支添加了roi_pooling_layer.cpp和roi_pooling_layer.cu,Fast R-CNN的ROIPooling层需要这个源文件编译。

具体可以参考http://blog.csdn.net/sunmelon/article/details/54600178

看代码解决,主要原因是专用的caffe包含roi_pooling_layer.cpp和roi_pooling_layer.cu文件,但是windows版本根本没去编译它们,build的情况下没有生成,所以说windows版本啥时候都是坑。caffe的windows的项目所有依赖的文件都在libcaffe这个项目里面,所以我决定从这里入手,打开libcaffe.vcxproj,发现里面果然没有去生成这两个文件,我在157行加入了

\..\src\caffe\layers\roi_pooling_layer.cpp" />
  • 1

在265行加入了

\..\include\caffe\layers\roi_pooling_layer.hpp" />
  • 1

在344行加入了

\..\src\caffe\layers\roi_pooling_layer.cu" />
  • 1

同时修改libcaffe.vcxproj.filters文件,在291行加入

\..\src\caffe\layers\roi_pooling_layer.cpp">
src\layers

  • 1
  • 2
  • 3
  • 4

在569行加入了

\..\include\caffe\layers\roi_pooling_layer.hpp">
include\layers

  • 1
  • 2
  • 3
  • 4

在781行加入了

\..\src\caffe\layers\roi_pooling_layer.cu">
cu\layers

  • 1
  • 2
  • 3
  • 4

然后重新build下caffe-windows里的项目。roi_pooling_layer.cpp和roi_pooling_layer.cu,Fast R-CNN的ROIPooling就编译进去了。

运行Faster R-CNN的demo

接下来下载两个资源: 
1、下载这个Matlab版本的Faster R-CNN: https://github.com/ShaoqingRen/faster_rcnn 解压后,把我们得到的matcaffe文件夹复制到external/caffe/目录下 (因为人家的demo是在这个目录下搜的函数)。 
2、然后下载资源faster_rcnn_final_model.zip,下载地址我放到了百度云里: http://pan.baidu.com/s/1mioahvU ,下载完成后,在faster_rcnn-master目录下解压。output文件夹会被覆盖。

demo

如果你是CPU版本的,还要做以下修改:在experiments/script_faster_rcnn_demo.m这个文件里,注释掉以下两行,加上caffe.set_mode_cpu,如下:

%% -------------------- CONFIG --------------------
opts.caffe_version          = 'caffe_faster_rcnn';
%注释opts.gpu_id                 = auto_select_gpu;
%注释active_caffe_mex(opts.gpu_id, opts.caffe_version);
caffe.set_mode_cpu;
  • 1
  • 2
  • 3
  • 4
  • 5

然后把opts.use_gpu选项改了:

opts.use_gpu                = false;

运行faster_rcnn-master\faster_rcnn_build.m

 运行faster_rcnn-master\startup.m

运行demo:

addpath('experiments/')
script_faster_rcnn_demo
有两种网络可以选择,在script_faster_rcnn_demo.m这个地方。上面是VGG-16,下面是zf5,上面的网络太大,奇慢无比。



你可能感兴趣的:(windows matlab cpu 测试faster rcnn)