在Ubuntu 16.04下配置 py-faster-rcnn
折腾了2天,终于在服务器上配置完成了faster rcnn,记录一下自己配置的过程和踩的坑
硬件环境:
E5 2630v3
nvidia TItanX 12G
系统环境:
Ubuntu 16.04 LTS
opencv 3.1.0
cuda 8.0
cudnn 5.0
python 2.7 ##(非常重要,如果使用python3.5,在最后运行demo时会出现 ImportError: dynamic module does not define init function (pyinit__caffe) 错误)
配置过程
0、默认已经配置过caffe,如果没有,网上教程有许多,这一步包含了安装显卡驱动及CUDA、CUDNN等。
必须安装:
pip install cython
pip install easydict
sudo apt-get install python-opencv
1、git下载代码
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn
2、与caffe主分支合并
由于py-faster-rcnn代码较为老旧,默认CUDNN版本支持4.0,故需要和caffe主分支合并以支持CUDNN5.0,否则编译时会报错
make: *** [.build_release/src/caffe/common.o] Error 1
解决方法:
cd caffe-fast-rcnn
git remote add caffe https://github.com/BVLC/caffe.git
git fetch caffe
git merge -X theirs caffe/master
并注释掉 include/caffe/layers/python_layer.hpp文件里的self_.attr(“phase”) = static_cast(this->phase_)行
3、编译lib目录
cd lib
make -j8
4、修改Makefile.config
进入py-faster-rcnn/caffe-fast-rcnn
执行
cp Makefile.config.example Makefile.config
打开Makefile.config进行修改
#使用CUDNN
USE_CUDNN := 1
#使用OPENCV3
OPENCV_VERSION := 3
#使用PYTHON_LAYER
WITH_PYTHON_LAYER := 1
#由于使用Ubuntu16.04,对于hdf5的支持有变化,故在这两行后面添加相关代码
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
5、保存并编译
cd caffe-fast-rcnn
make -j16 && make pycaffe
6、测试demo
在py-faster-rcnn目录下,下载demo预训练权值
./data/scripts/fetch_faster_rcnn_models.sh
在py-faster-rcnn/tools目录下,运行demo.py
./demo.py
效果如图:
参考: