您的位置:首页 > 编程语言

在Ubuntu系统、CPU模式下运行Fast R-cnn代码

2017-12-20 11:44 1116 查看
具体步骤

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

读者可以参考我的另一篇博客http://blog.csdn.net/tilltheworldend/article/details/78848334

2.从Github上下载Fast R-cnn的源代码

使用下载命令:

git clone –recursive https://github.com/rbgirshick/fast-rcnn.git

必须加上–recursive,才能递归下载所有相关链接中的内容。

3.下载一些基础软件

依次执行以下命令:

sudo apt-get install python-pip

sudo pip install cython

sudo apt-get install python-opencv

sudo pip install easydict
如安装不成功,请确认机器是否能上网。若能上网但仍安装不成功,请打开“软件和更新”更改软件源。


4.安装atlas

sudo apt-get install libatlas-base-dev

5.生成Cython模块

进入fast-rcnn目录下的lib,输入

cd <自己的安装目录>/fast-rcnn/lib

编译,输入:
make
根据提示有可能需输入make install


6.编译caffe和pycaffe

进入fast-rcnn/caffe-fast-rcnn目录

cd <自己的安装目录>/fast-rcnn/caffe-fast-rcnn

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

打开Makefile.config修改配置
我们是在仅cpu下运行代码的,所以:
USE_CUDNN=1,这个选项默认情况下时关闭的,保持不变

CPU_ONLY := 1 我们只用到了cpu,将前面的#取消掉。

WITH_PYTHON_LAYER = 1,这个在默认情况下也是关闭的,Fast 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

然后重新编译,依次执行以下命令:
cd <自己的安装目录>/FRCN_ROOT/caffe-fast-rcnn

make clean

make -j8 && make pycaffe


7.下载pre-computed Fast R-CNN detectors

依次输入以下命令:

cd <自己的安装目录>/fast-rcnn

./data/scripts/fetch_fast_rcnn_models.sh
本人的电脑开始出现了连接不上主机的问题,后来不知怎么就没有这个问题了,本人猜测是主机服务器那边的问题,读者可在不同时段多次尝试一下。


8.运行demo

依次执行以下命令:

cd <自己的安装目录>/fast-rcnn/tools

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

运行结果展示:






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu cpu fast-rcnn