前言:
1、安装faster-rcnn之前请确保caffe已安装且配置成功(由于faster-rcnn是两年以前提出来的,故不支持cudnn 5以上的版本,所以需要在faster-rcnn里替换一些文件,下文有提及)。
2、特别注意,你每一次编译的时候都需要把之前编译好的文件清除,否则编译不成功,在 ~/py-faster-rcnn/caffe-fast-rcnn下执行 make clean 操作就是清除上一次编译(没有成功的编译在你希望重新编译的时候都需要make clean)。
安装过程:
(1)安装cython, python-opencv,easydict
pip install cython pip install easydict apt-get install python-opencv(2)下载py-faster-rcnn
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.gitPS : —recursive 是用来caffe-fast-rcnn (也就是caffe branch)的,这个必须要加上,否则此文件夹为空
(3)进入py-faster-rcnn/lib,执行make
cd ~/py-faster-rcnn/lib make(4)进入py-faster-rcnn\caffe-fast-rcnn
cd ~/py-faster-rcnn/caffe-fast-rcnn cp Makefile.config.example Makefile.config #拷贝Makefile.config,并修改Makefile.config修改配置Makefile.config文件:去掉以下的注释
# In your Makefile.config, make sure to have this line uncommented WITH_PYTHON_LAYER := 1 # Unrelatedly, it's also recommended that you use CUDNN USE_CUDNN := 1
在Makefile.config文件找到相应的地方添加下面的红色的内容
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/
注意:新加的内容(红色)和原来内容用空格隔开,否则会出现什么hdf5.o文件找不到的情况
(5) 因为这个版本所用的cudnn为旧版本的,可能与新环境的cudnn不兼容,所以还需要替换一些文件:
1).将/py-faster-rcnn/caffe-fast-rcnn/include/caffe/util/cudnn.hpp换成最新版的caffe里的cudnn的实现,即相应的
cudnn.hpp.
2).把/py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers中所有以cudnn开头的文件都(建议到该目录下了之后,使用文件搜索功能替换)用最新caffe源码的以下文件替换掉faster-rcnn 的对应文件(一般在caffe目录下的相同目录下:
~caffe/include/caffe/layers/xx文件)
3).把/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers中所有以cudnn开头的文件都(建议到该目录下了之后,使用文件搜索功能替换)用最新caffe(就是贾阳青的那个框架里面的文件)源码的中对应文件替换掉(一般在caffe目录下的相同目录下:~caffe/src/caffe/layers/xx文件)
注意:是所有的以cudnn开头的文件,否则容易报错。
(6)完成上述操作件后,执行
make -j8 && make pycaffe(7)下载已训练好的Faster R-CNN模型
cd py-faster-rcnn ./data/scripts/fetch_faster_rcnn_models.sh
注意这个脚本中提供的网址现在需要翻墙才能连接并下载,如果下载不了就去网盘找一个下载下来,下载后存放在:
~/py-faster-rcnn/data/faster_rcnn_models/XXXX.caffemodel
(8)运行演示文件demo.py
cd ~/py-faster-rcnn/tools ./demo.py