ubuntu16.04 pyfasterrcnn 安装教程

准备工作,假设你的系统是ubuntu16.04,并且已经在home路径下安装完caffe,并且已经编译成功。

开始:

1.下载faster-rcnn,l利用下面的命令。(一定要用下面的命令,这样下载的版本才是正确的)

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

如果你下载的版本对的话,home路径下py-faster-rcnn,路径下应该有。caffe-faster-rcnn这个文件。

将已经编译好的caffe路径下的 Makefile ,Makefile.config文件拷贝到py-faster-rcnn\caffe-faster-rcnn,路径下。也可以自己修改。

修改方法如下:

sudo mv Makefile.config.example Makefile.config

Makefile.config中需要修改的行:

#使用cudnn

USE_CUDNN := 1

#去掉不合适的cuda计算能力参数

CUDA_ARCH := -gencode arch=compute_50,code=sm_50 \

            -gencode arch=compute_52,code=sm_52 \

            -gencode arch=compute_60,code=sm_60 \

            -gencode arch=compute_61,code=sm_61 \

            -gencode arch=compute_61,code=compute_61

# 开启PYTHON支持

WITH_PYTHON_LAYER := 1

# INCLUDE_DIRS路径上,追加/usr/include/hdf5/serial,因为hdf5这个包在ubuntu16.04换成hdf5/seiral这种用法

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

其他项,比如atlas、anaconda的python等,看情况修改,不修改也OK。

 

Makefile中需要修改的行:

# LIBRARIES变量,把hdf5的两个库名换掉,从hdf5_hl->hdf_serial_hl  hdf5->hdf5_serialLIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

 

(老版本的cuda可能需要下面这个修改,cuda8则不必:
找到第397行,NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)修改为NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) (添加了-D_FORCE_INLINES参数) 

2. Faster R-CNN 并不支持CUDNN5.1 所以需要合并Caffe来支持。(注意:一定要先走这一步,不要出错了才做,其实还有另外一种方法,通过自己替换已经编译好的caffe下面的相关文件。只是比较麻烦,不建议。)

cd caffe-fast-rcnn
git remote add caffe https://github.com/BVLC/caffe.git
git fetch caffe
git merge -X theirs caffe/master
(git checkout -f )
 (git pull)
:这一步的每个命令需要的时间比较长,所以需要你的耐心等待。

注意:在执行 git merge -X theirs caffe/master 后,如果出现下面的画面,


则按照步骤分别执行git checkout -f, git pull。


执行完成之后 在分别执行 git fetch caffe,git merge -X theirs caffe/master。

这时,执行git merge -X theirs caffe/master会出现下面的界面要求输入注释信息: 不必输入任何内容,直接按Ctrl-X 离开

提示是否存储更动过的缓冲区,输入Y ,ENTER

就完成了分支合并过程。没有出现错误,就表示成功完成合并。参考下面画面。


整个过程如下图:


测试:

python

import caffe

方法2:纯手工修改
用最新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


3.修改python_layer.hp

版本合并后,打开caffe-fast-rcnn/include/caffe/layers/python_layer.hp,self_.attr("phase") = static_cast<int>(this->phase_);这一行(line29)删除(如果有的话就删除,没有就不修改,可能会没有)

4.Build the Cython modules

进入py-faster-rcnn下面的lib文件下,编译。(注意:$FRCN_ROOT为py-faster-rcnn的路径也可以直接在lib文件下打开终端执行make)

cd $FRCN_ROOT/lib (或者cd py-faster-rcnn/lib)
make

5.编译caffe

进入到caffe-faster-rcnn,路径下编译。可以直接编译,也可以建立一个build文件,用camke编译。

方法一:camke编译

cd caffe-fast-rcnn

mkdir build

cd build

cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="5.3" -D CUDA_ARCH_PTX="" -D WITH_GSTREAMER=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..


出现上面的画面表示cmake成功。然后执行下面的步骤。

make -j8

make install

sudo make install

make clean(必须在build文件夹里面make clean之后在 make pycaffe。必须在build文件夹里面make pycaffe)

make pycaffe

至此编译成功



方法二:直接编译,不建立build文件。


make -j8
make pycaffe


6.配置环境变量

不建议在/etc/profile中进行存放,因为这是局部变量,在bashrc中添加环境变量是全局变量。

sudo gedit /etc/bash.bashrc

PYTHONPATH=/home/yll/py-faster-rcnn/caffe-fast-rcnn/python:$PYTHONPATH

添加完成后记得更新环境变量

# source /etc/bash.bashrc

查看环境变量设置是否成功:

echo $PYTHONPATH

echo $PATH

7.测试是否安装成功

打开终端输入:

python    /(这是打开python界面)
import caffe
如果没有出错,就是正确安装。

8.测试faster-rcnn

8.1 下载模型文件

cd py-faster-rcnn/data/scriptsgedit fetch_faster_rcnn_models.sh

复制其中的URL地址(http://www.cs.berkeley.edu/~rbg/faster-rcnn-data),打开下载faster_rcnn_models.tgz文件。我在windows系统下用迅雷下的,ubuntu里下载速度太慢了…… 
下载后把文件放在这里,

cd py-faster-rcnn/data

并解压

tar zxvf faster_rcnn_models.tgz -C ./

8.2 运行demo

cd py-faster-rcnn/tools 
 ./tools/demo.py


如果能正常出现图片就表示成功。













成功编译完成py-fasterrcnn成功编译完成py-fasterrcnn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值