ubuntu16.04 配置使用faster-rcnn

在安装配置好caffe之后,安装faster-rcnn。
安装的过程中遇到了很多问题,在这里写个博客记录一下。

1.下载

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

2.生成Cython模块

$cd py-faster-rcnn/lib
$make

3.生成Caffe和pycaffe

$ cd py-faster-rcnn/caffe-fast-rcnn
$ cp Makefile.config.example Makefile.config

打开Makefile.config,修改方式和caffe中的修改方式一样。
打开Makefile文件,也按照caffe中的方式进行修改。
参考我的第一篇博客,https://blog.csdn.net/yato0514/article/details/72902729

编译

$ make -j8 
$ make pycaffe

在make的过程中出现了诸多问题,后来查了很多资料终于make成功。

因为faster-rcnn默认的caffe支持的cudnn版本是V4,而我的是cuda8.0+cudnn7,因此编译caffe会出现版本不兼容而导致的函数参数不对应的错误。

错误一:
编译可能会出现libopencv_imgcodecs.so : undefined reference to `TIFFIsTiled@LIBTIFF_4.0’等

解决方法:
在cmake 编译OpenCV时加上: cmake -D BUILD_TIFF=ON

原因:
OpenCV需要libtiff4库,然而Ubuntu16.04系统安装不会自带libtiff4,因此当以OpenCV为接口时便会自动编译libtiff4,然后再以OpenCV做接口编译时,Bug消除!

还需要做的:
用最新caffe源码的以下文件替换掉faster rcnn 的对应文件

include/caffe/layers/cudnn_relu_layer.hpp, 
include/caffe/layers/cudnn_sigmoid_layer.hpp, 
include/caffe/layers/cudnn_softmax_layer.hpp, 
include/caffe/layers/cudnn_tanh_layer.hpp, 

src/caffe/layers/cudnn_relu_layer.cpp, 
src/caffe/layers/cudnn_relu_layer.cu 
src/caffe/layers/cudnn_sigmoid_layer.cpp, 
src/caffe/layers/cudnn_sigmoid_layer.cu 
src/caffe/layers/cudnn_softmax_layer.cpp, 
src/caffe/layers/cudnn_softmax_layer.cu 
src/caffe/layers/cudnn_tanh_layer.cpp, 
src/caffe/layers/cudnn_tanh_layer.cu

用caffe源码中的这个文件替换掉faster rcnn 对应文件:include/caffe/util/cudnn.hpp

将 faster rcnn 中的 src/caffe/layers/cudnn_conv_layer.cu 文件中的所有 cudnnConvolutionBackwardData_v3 函数名替替换为cudnnConvolutionBackwardData ;
cudnnConvolutionBackwardFilter_v3函数名替换为 cudnnConvolutionBackwardFilter

make后还是出错:
这里写图片描述

我的解决方法是在Makefile.config加入下列信息:

LINKFLAGS := -Wl,-rpath,$(HOME)/anaconda3/lib

重新make,成功
这里写图片描述

备注:
如果在cpu上配置时,则需要把py-faster-rcnn/lib/setup.py里含有gpu的信息都注释掉。

4.下载模型

$cd py-faster-rcnn/data/scripts
$sh fetch_faster_rcnn_models.sh

运行后发现路径不可达,复制里面的url(https://dl.dropboxusercontent.com/s/o6ii098bu51d139/faster_rcnn_models.tgz?dl=0),下载到本地,然后将其放置在py-faster-rcnn/data/下,并解压

猜你喜欢

转载自blog.csdn.net/yato0514/article/details/79842154