在Ubuntu系统、GPU模式下运行Faster R-cnn代码

具体步骤
1.安装并配置好caffe及python接口(前提工作)

2.从Github上下载Faster R-cnn的源代码
使用命令:git clone –recursive https://github.com/rbgirshick/py-faster-rcnn.git
必须加上 –recursive,递归下载所有相关链接中的内容。

3.生成Cython模块
进入faster-rcnn目录下的lib:
cd <自己的faster-rcnn安装目录>/py-faster-rcnn/lib

进行编译,输入:
    make

4.编译caffe和pycaffe
进入py-faster-rcnn/caffe-fast-rcnn目录
cd <自己的faster-rcnn安装目录>/py-faster-rcnn/caffe-fast-rcnn

    将Makefile.config.example 模板复制一份为Makefile.config 
    cp Makefile.config.example Makefile.config

打开Makefile.config修改配置
    我们是在GPU下运行代码的,所以:
    USE_CUDNN:=1,这个选项默认情况下时关闭的,把它打开。

# CPU_ONLY := 1 我们只用到了cpu,保留前面的#。

WITH_PYTHON_LAYER:= 1,这个在默认情况下也是关闭的,Faster RCNN需要支持Python接口,因此需要打开。

将    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
        LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
改为  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 /usr/lib/x86_64-linux-gnu/hdf5/serial

USE_PKG_CONFIG:=1记得打开,要不然会找不到一些库文件,PKG是linux用来管理库文件的。

保存后输入命令:make -j8 && make pycaffe

这一步过程中,我的电脑上出现了不能找到lippicv的错误,安装过opencv的同学可能会出现这个报错。

解决方法为:
把OpenCV下的libippicv.a文件复制到/usr/local/lib目录下,然后重新编译pycaffe。具体操作如下:
cd <自己opencv的安装目录>/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64

sudo cp libippicv.a /usr/local/lib



这一步我的电脑还出现了一个错误,具体报错及可参见这篇博客http://blog.csdn.net/jmt330/article/details/78568876。

根据这篇博客的分析,是因为作者发布faster-rcnn源码时的caffe版本较低,与当前cudnn版本不匹配(本人的cudnn版本为7.0.5),解决方法是把caffe-fast-rcnn里与cudnn有关的cpp文件和hpp文件全部替换为编译的caffe文件里与cudnn有关的cpp文件和hpp文件。

这次我又看了一下,在faster-rcnn的文件里所有与cudnn有关的文件都是在的。
![这里写图片描述](https://img-blog.csdn.net/20171222161956125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVGlsbFRoZVdvcmxkRW5k/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
之前fast-rcnn里面找不到的8个hpp文件,在faster-rcnn能找到。

所以读者直接把需要替换的文件进行替换。具体为:

将<caffe的安装目录>/include/caffe/util 里的cudnn.hpp替换到<faster-rcnn的安装目录>/caffe-fast-rcnn/include/caffe/util里的cudnn.hpp

将<caffe的安装目录>/src/caffe/util 里的cudnn.cpp替换到<faster-rcnn的安装目录>/caffe-fast-rcnn/src/caffe/util里的cudnn.cpp

将<caffe的安装目录>/include/caffe/layers 里的cudnn_xx.hpp替换到<faster-rcnn的安装目录>/caffe-fast-rcnn/include/caffe/layers里的cudnn_xx.hpp(共8个)

将<caffe的安装目录>/src/caffe/layers 里的cudnn_xx.cpp和cudnn_xx.cu替换到<faster-rcnn的安装目录>/caffe-fast-rcnn/src/caffe/layers里的cudnn_xx.cpp和cudnn_xx.cu(共16个)

如果读者嫌麻烦,不用cudnn跑也是完全可以的,只需将#USE_CUDNN:=1的#保留就行了。

替换完文件并解决完所有报错后,然后重新编译,依次执行以下命令:
cd <自己的安装目录>/FRCN_ROOT/caffe-fast-rcnn

make clean

make -j8 && make pycaffe

5.下载pre-computed Faster R-CNN detectors
cd <自己的faster-rcnn安装目录>/py-faster-rcnn
./data/scripts/fetch_faster_rcnn_models.sh

6.运行demo
cd <自己的faster-rcnn安装目录>/py-faster-rcnn/tools
./demo.py –gpu 0 –net zf

运行demo的时候,可以指定gpu或cpu的模式,也可以指定使用哪个网络进行测试。比较方便。如果你的内存不够大的话,运行大的网络可能会出现核心已转储的提示。

如果你的电脑只有一块GPU的话,那这块GPU的ID一般为0。

运行结果展示:

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值