首先要知道怎么配置caffe,如果还没有配置过caffe,建议从头学起。详情见博主博文:
gpu版caffe:点击打开链接
开始!!!
1. 获取源码
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
2. 安装Cpython和easydict,已安装过的请忽略。
sudo pip install cython sudo pip install easydict
3. 配置cpython
首先在py-faster-rcnn/lib目录下修改setup.py文件,注释掉gpu相关项。
#CUDA = locate_cuda() //第一处 #self.set_executable('compiler_so',CUDA['nvcc']) //第二处 #Extension('nms.gpu_nms',//第三处,就是把cuda,gpu部分修改 #['nms/nms_kernel.cu','nms/gpu_nms.pyx'],#library_dirs=[CUDA['lib64']],#libraries=['cudart'],#language='c++',#runtime_library_dirs=[CUDA['lib64']],# this Syntax is specific to this build system # we're only going to use certain compiler args with nvcc and not with # gcc the implementation of this trick is in customize_compiler() below #extra_compile_args={'gcc': ["-Wno-unused-function"],# 'nvcc': ['-arch=sm_35',# '--ptxas-options=-v',# '-c',# '--compiler-options',# "'-fPIC'"]},#include_dirs = [numpy_include,CUDA['include']] #),
注释完成之后,在py-faster-rcnn/lib目录下使用:
make
4. 编译caffe
cd caffe-fast-rcnn cp Makefile.config.example Makefile.config;
参照博主给的编译cpu版caffe,将Makefile.config文件中的ONLY_cpu,USE_OPENCV,WITH_PYTHON_LAYER=1的注释去掉后编译。
sudo make all -j4 sudo make pycaffe
如果中图出现
src/caffe/test/test_smooth_L1_loss_layer.cpp:11:35: fatal error: caffe/vision_layers.hpp
则将src/caffe/test/test_smooth_L1_loss_layer.cpp文件的第11行#include <vision_layers.hpp>注释掉即可。
这里注意cpu版注释掉该句之后无法使用sudo make runtest。
5. 测试demo
cd /home/username/py-faster-rcnn/data/scripts ./ fetch_faster_rcnn_models.sh
使用.sh下载,一般较慢,可以在这http://pan.baidu.com/s/1jIcfmrO 密码:l8nb下载,解压到py-faster-rcnn/data文件下即可。
然后修改一些文件:
A:修改/py-faster-rcnn/lib/fast_rcnn/config.py文件(True改成False)
# Use GPU implementation of non-maximum suppression
__C.USE_GPU_NMS = False
B:将/py-faster-rcnn/tools/test_net.py和 /py-faster-rcnn/tools/train_net.py的caffe.set_mode_gpu()修改为caffe.set_mode_cpu().
C:修改/py-faster-rcnn/lib/fast_rcnn/nms_wrapper.py文件(注释该引用,并将False改成True)
#from nms.gpu_nms import gpu_nms
def nms(dets,thresh,force_cpu=True)
cd pt-faster-rcnn/tools ./demo.py --cpu或者./demo.py --cpu --net zf