编译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行加入了
- 1
在265行加入了
- 1
在344行加入了
- 1
同时修改libcaffe.vcxproj.filters文件,在291行加入
- 1
- 2
- 3
- 4
在569行加入了
- 1
- 2
- 3
- 4
在781行加入了
- 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,如下:
- 1
- 2
- 3
- 4
- 5
然后把opts.use_gpu选项改了:
运行faster_rcnn-master\faster_rcnn_build.m
运行faster_rcnn-master\startup.m
运行demo:
有两种网络可以选择,在script_faster_rcnn_demo.m这个地方。上面是VGG-16,下面是zf5,上面的网络太大,奇慢无比。