在搭配该环境前,请确保自己已经搭建好cuda与caffe环境,如果没有请参考我之前的博客
ubuntu14.04+cuda7.5安装 官方步骤版
与
ubuntu14.04+cuda7.5+caffe+cudnn7.5+anaconda+opencv2.4.9系统整合(2016.12.3)
切入正题
1.github中py-faster-rcnn地址为:
https://github.com/rbgirshick/py-faster-rcnn#requirements-hardware
2.按照步骤1
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
在你的主文件夹下会出现py-faster-rcnn文件夹
3.点开该文件夹找到在caffe-fast-rcnn文件夹中的Makefile.config.example文件,复制粘贴一份,改名为Makefile.config
修改Makefile.config里的参数,这里有两点是必须的
①打开python层
WITH_PYTHON_LAYER := 1
②打开cudnn加速
USE_CUDNN := 1
如果你还有anaconda库或者matlab链接,下面都有说明,只需将自己的文件中该接口的#号去除,修改里面的地址是自己的地址即可
这里需要注意一点,如果之前单独安装过numpy等库,建议不要打开anaconda库接口,这样会出现找不到numpy的情况
4.cd到py-faster-rcnn文件夹中的lib文件夹
make
5.cd到py-faster-rcnn/caffe-fast-rcnn文件夹
make -j8 && make pycaffe
6.cd到py-faster-rcnn文件夹,下载caffe训练集以及所需要的文件
./data/scripts/fetch_faster_rcnn_models.sh
中间可能出现的问题
①ImportError: numpy.core.multiarray failed to import,或者系统提示numpy版本问题不符合
一般情况下是系统找不到numpy接口,这就可能是之前所提的你之前安装过numpy等库,后又打开了anaconda接口所导致,这时候只需要关掉anaconda接口在Makefile.config文件中.还有就是你在系统的.bashrc文件中添加了之前已经安装好的caffe路径以及anaconda路径,关掉即可,按照之前两篇博文中的步骤来做
②cudnn不兼容问题,faster R-cnn大神应用的还是cudnn v4版本,而目前caffe中的cudnn都是v5版本
只需把自己cuda中关于cudnn文件进行置换
cp caffe-master/include/caffe/layers/cudnn_* py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers/
cp caffe-master/src/caffe/layers/cudnn_* py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers/
cp caffe-master/include/caffe/util/cudnn.hpp py-faster-rcnn/caffe-fast-rcnn/include/caffe/util/
③check failed:error ==cudaSuccess( 8 vs.0 )invalid device function
出现这个错误一般是由于你的显卡计算能力与系统默认的设置能力不同所导致的,例如我的显卡是GT650M,计算能力是3.0(这个可以去百度查到),而系统默认的为35.
只需修改py-faster-rcnn/lib文件夹中的 setup.py中的第135行 'nvcc': ['-arch=sm_35',改为 'nvcc': ['-arch=sm_30'.
然后再删除utils/bbox.c,nms/cpu_nms.c ,nms/gpu_nms.cpp 文件,再cd 到py-faster-rcnn/lib文件夹 ,重新make一下即可
注:官方给定的此套系统要求最小显存为3G,可我的GT650M显存为2G照样可以跑....一开始我没开启cudnn选项,会提示我显存溢出出错,当我配置好cudnn后就不报错了.哈哈哈哈,本来还要给我的另一个本子装双系统,结果也省事了,继续旧电脑上开发把 -_-..
③还有类似文问题可以查看
http://www.lai18.com/content/2535269.html?from=cancel#qa
7.跑demo
cd到py-faster-rcnn文件夹
./tools/demo.py
8.运行结果