caffe及faster-rcnn详细配置安装过程

【引子】

2013年,来自微软的rbg大神发表了基于深度学习的detection方法:R-CNN。一年以后,大神单枪匹马又将自己之前的工作提升到了一个新的水平(fast R-CNN)。

2015年,来自微软亚洲研究院的Shaoqing Ren,Kaiming He研究组在rbg的基础上,进一步地将该方法提升到了实时的水平(faster R-CNN),这也是我们今天的主题。

值得说明的是,目前在github上有两个版本的faster R-CNN,一个版本是Shaoqing Ren的MATLAB版本,另外一个是rbg的Python版本,二者有细微的差别。此处我们使用MATLAB版本。

【依赖项】

安装faster R-CNN需要一些依赖项:

  1. caffe(此处需要Shaoqing Ren的caffe版本,下面会具体说)
  2. MATLAB(此处使用Ubuntu14.04下的R2014b)

【安装】

Step1. 下载源代码 
首先,下载源代码,在适当路径下,执行如下命令:

$ git clone --recursive https://ShaoqingRen/faster_rcnn.git
  
  
  • 1
  • 1

完成源代码的下载,主义此处的--recursive是递归下载,一些DNN框架,常常喜欢将caffe作为一个submodule放在external目录下,利用这一参数可以下载所有内容。

Step2. 安装caffe

完成第一步后,这个时候,你应该已经有Shaoqing Ren版本的caffe了,下面我们要编译它。 
执行下列代码:

$ cd external/caffe
$ cp Makefile.config.example Makefile.config
$ vim Makefile.config
  
  
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

利用vim对配置文件进行修改,此处我们主要指定MATLAB_DIR路径,在适当位置加入下面内容:

MATLAB_DIR := /usr/local/MATLAB/R2014b
  
  
  • 1
  • 1

接下来执行如下一系列命令,老司机应该挺熟的了吧…….

$ make all -j8
$ make test -j8
$ make runtest -j8
$ make pycaffe
$ make matcaffe
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

需要说明的一点是,我在执行make runtest这一命令之后,遇到了奇葩的问题”Unknown V1LayerParameter Layer type: 40”。如下图:

这里写图片描述

后来我Google了一下,发现有类似问题的还真不在少数!根据热心网友们的讨论结果。我发现问题出在这个文件上面(external/caffe/src/caffe/util/upgrade_proto.cpp)。我们需要补上Reshape,ROIPooling以及SmoothL1Loss这三个层,具体见下:

这里写图片描述

Step3. 下载Pre-trained Model

按理说,在MATLAB里面执行run fetch_data/fetch_model_VGG16.m就能下载了,不过天朝的网你懂得… …不过好在咱们Shaoqing Ren也是中国人,给咱们提供了百度云盘的下载地址,哈哈!http://pan.baidu.com/s/1dDCsSm9

需要注意的是,这个东东下载以后,请解压到faster R-CNN根目录下,里面有5张测试图片以及一个名为output的文件夹(文件夹里面是pre-train好的ZF-net以及VGG16-net)。

Step4. 运行

在MATLAB下面,运行faster_rcnn_build.mstartup.m。其中前者是要编出一个东西来,是必须必须执行的。

Step5. 测试

在MATLAB下面,运行experiments/script_faster_rcnn_demo.m,就能够得到如下结果啦~~~

这里写图片描述

下面是我的安装文件配置:
(1)我没使用cudnn,因为版本问题会与tensorflow冲突,为了不必要的安装麻烦;
(2)使用python2.7而不是Anaconda3,也是为了避免麻烦
具体修改部分如下:
(1)注释use_cudnn;
(2)修改MATLAB路径;
(3)因为Ubuntu16.04需要修改INCLUDE_DIRS和LIBRARY_DIRS;
具体可参考:


接着就是两个命令:

sudo make -j8

sudo make matcaffe

sudo make pycaffe

因为没有使用cudnn,所以编译过程出错少多了,就此结束。

猜你喜欢

转载自blog.csdn.net/Xiongchao99/article/details/79100787
今日推荐