环境:Ubuntu14.04.4 LTS + CUDA-8.0 + cuDNN-v5.0
下面介绍具体实现步骤
安装相关的依赖库
sudo apt-get install python-opencv
sudo pip install cython easydict
1.下载py-faster-rcnn源码
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn
2.编译lib库
cd $FRCN_ROOT/lib
make
3.编译caffe以及pycaffe
修改Makefile.config文件
删除下面两项前面的#
USE_CUDNN := 1
WITH_PYTHON_LAYER := 1
因为faster-rcnn使用的caffe版本比较老,不支持CUDA-8.0和cuDNN-v5.0,所以需要对于caffe进行更新。
对于刚刚接触Linux的童鞋不建议使用git命令更新,因为合并过程中可能会碰到各种Conflict。尤其是在使用git merge的过程中。
这里给出通过更换文件更新caffe的办法。
用最新caffe源码的以下文件替换掉faster-rcnn的对应文件
include/caffe/layers/cudnn_relu_layer.hpp, src/caffe/layers/cudnn_relu_layer.cpp, src/caffe/layers/cudnn_relu_layer.cu
include/caffe/layers/cudnn_sigmoid_layer.hpp, src/caffe/layers/cudnn_sigmoid_layer.cpp, src/caffe/layers/cudnn_sigmoid_layer.cu
include/caffe/layers/cudnn_tanh_layer.hpp, 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 -j4
make pycaffe
完美通过。
接着运行demo
cd $py-faster-rcnn
python ./tools/demo.py
会提示你没有模型文件
模型文件下载地址faster_rcnn_models
下载完成之后解压到data目录下
再次运行demo.py。
可能会提示你:SystemError: NULL result without error in PyObject_Call
解决办法:安装yaml
sudo apt-get install python-yaml
demo运行截图
参考文章
http://blog.csdn.net/u012177034/article/details/52288835
http://blog.csdn.net/u013832707/article/details/53501478
http://www.cnblogs.com/zjutzz/p/6099720.html