Ubuntu14.04下配置测试Faster R-CNN+Caffe(Matlab+CPU)目标检测

Faster R-CNN是当前目标检测领域内性能最好的算法之一,它将RPN(Region Proposal Network)网络和Fast R-CNN网络结合到了一起,实现了一个端到端的目标检测框架。作者Shaoqing Ren在github上公开了源代码,可以很方便地在自己的机器上进行测试。本文记录的是Ubuntu14.04下配置和测试Faster R-CNN的过程,其中包括Caffe的安装和编译过程,针对的是Matlab和仅使用CPU的环境。

文章arXiv链接:
https://arxiv.org/abs/1506.01497

下载源代码

Matlab源码链接:
https://github.com/ShaoqingRen/faster_rcnn

Python实现源码:
https://github.com/rbgirshick/py-faster-rcnn

下载源码faster_rcnn-master.zip以及其中的caffe源码,解压至本地目录。

安装编译Caffe

1.安装依赖项[1]

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
BLAS:
sudo apt-get install libatlas-base-dev
Python用户需安装,Matlab不需要:
sudo apt-get install the python-dev
GPU运行环境还需安装CUDA,使用CPU无需安装。 Ubuntu14.04依赖项:
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
Ubuntu12.04版本较低,需要手动安装依赖项:
# glog
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
# gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install
# lmdb
git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
make && make install

2.编译
Caffe可以采用Make或者CMake两种方式来编译,我使用的是Make,且编译之前需要根据个人情况修改caffe目录下的Makefile.config.example文件。具体需要修改的地方如下:

  • 仅使用CPU的情况下,需要取消该文件中CPU_ONLY := 1的注释。
  • 指定Matlab的安装路径,我的是MATLAB_DIR := /usr/local/MATLAB/R2016a

修改完成后,执行如下命令:

cp Makefile.config.example Makefile.config
make clean
make all
make test
make runtest
采用并行的方式可以更快地完成编译过程,只需使用`make all -j8`命令。其中数字8表示并行线程的数目,建议将该线程数目修改为机器的内核数。 为了能够在Matlab中正常使用,还需执行以下命令:
make matcaffe

之后在matlab/+caffe/private目录下将会生成caffe_.mex64文件,可以直接被Matlab调用。

3.测试示例[2]

在正式测试前,需要下载训练好的caffemodel文件[3]。有两种方式,直接在浏览器里输入地址下载,也可以运行脚本文件下载。我选择直接用浏览器下载,下载地址如下:
http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel

该模型文件243.9M,下载完成后将其拷贝到caffe根目录下的models/bvlc_reference_caffenet/文件夹中。

接着启动Matlab,切换到caffe的根目录,将caffe_.mex64的路径添加进来,便于加载。

addpath('./matlab/+caffe/private');
切换到`matlab/demo/`目录下,执行如下命令来测试示例:
I = imread('../../examples/images/cat.jpg');
[scores, maxlabel] = classification_demo(I, 0);
需要特别注意,classification_demo(I, 0)函数中的0表示使用CPU,如果改为1则表示GPU。执行成功后,将会返回如下信息:
Elapsed time is 0.025054 seconds.
Elapsed time is 1.069503 seconds.
Cleared 0 solvers and 1 stand-alone nets
其中maxlabel=282,表示具有最大分类概率的是第282个类别。输入`figure;plot(scores);`显示所有类别上的分类概率,如下图所示。
分类分数

从图中可以看出,该图片被分到第282类的概率最高。至此,程序测试完成,说明Caffe安装配置成功。

配置运行Faster R-CNN

Faster R-CNN的配置和运行十分简单,启动Matlab,切换到faster_rcnn目录下。运行faster_rcnn_build.m,在仅使用CPU的情况下,Compiling nms_gpu_mex时会出错[4]。但是其他能够编译成功,这里不用担心。

run faster_rcnn_build.m
run startup.m

获取训练好的模型,可以通过执行文件下载:

run fetch_data/fetch_faster_rcnn_final_model.m

个人建议直接通过作者github主页上的链接来下载模型,地址在主页最后一行给出,选择其一下载。

3.Final RPN+FastRCNN models: OneDrive, DropBox, BaiduYun

模型较大,下载完成后直接将其解压至faster_rcnn根目录下。

在experiments目录下有测试文件,因为只使用CPU,运行前需要将其设置为不使用GPU。

experiments/script_faster_rcnn_demo.m

文件中的第3、4行需要注释掉,第9行的opts.use_gpu改为false。以下是修改后的代码,

%% -------------------- CONFIG --------------------
opts.caffe_version          = 'caffe_faster_rcnn';
% opts.gpu_id                 = auto_select_gpu;
% active_caffe_mex(opts.gpu_id, opts.caffe_version);

opts.per_nms_topN           = 6000;
opts.nms_overlap_thres      = 0.7;
opts.after_nms_topN         = 300;
opts.use_gpu                = false;

opts.test_scales            = 600;

此外,由于VGG16模型较大,运行过程中会崩溃,因此将模型改为ZF,修改后如下:

% model_dir = fullfile(pwd, 'output', 'faster_rcnn_final', 'faster_rcnn_VOC0712_vgg_16layers'); %% VGG-16
model_dir = fullfile(pwd, 'output', 'faster_rcnn_final', 'faster_rcnn_VOC0712_ZF'); %% ZF

至此,修改完毕。执行该程序,能够正常运行说明测试成功。我的处理器是Intel® Core™ i7-2600 CPU @ 3.40GHz × 8 ,输出如下信息:

001763.jpg (500x375): time 3.258s (resize+conv+proposal: 2.452s, nms+regionwise: 0.806s)
004545.jpg (500x375): time 4.073s (resize+conv+proposal: 2.543s, nms+regionwise: 1.530s)
000542.jpg (500x375): time 3.064s (resize+conv+proposal: 2.526s, nms+regionwise: 0.538s)
000456.jpg (500x375): time 3.757s (resize+conv+proposal: 2.497s, nms+regionwise: 1.259s)
001150.jpg (500x375): time 3.400s (resize+conv+proposal: 2.481s, nms+regionwise: 0.919s)
mean time: 3.510s
Cleared 0 solvers and 2 stand-alone nets

目标检测



参考文献:
[1]http://caffe.berkeleyvision.org/install_apt.html
[2]http://www.aichengxu.com/view/2422137
[3]http://www.cnblogs.com/denny402/p/5111018.html
[4]http://blog.csdn.net/qq_30040223/article/details/48491997

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
好的,下面是Hadoop安装教程-单机-伪分布式配置-Hadoop2.6.0-Ubuntu14.04详细教程教学: 1. 安装Java Hadoop是基于Java开发的,因此需要先安装Java。可以在终端中输入以下命令进行安装: ```bash sudo apt-get update sudo apt-get install default-jdk ``` 2. 下载Hadoop 可以在Hadoop官网下载Hadoop压缩包,也可以在终端中输入以下命令进行下载: ```bash wget https://archive.apache.org/dist/hadoop/core/hadoop-2.6.0/hadoop-2.6.0.tar.gz ``` 3. 解压Hadoop 在终端中输入以下命令解压Hadoop压缩包: ```bash tar -xzvf hadoop-2.6.0.tar.gz ``` 4. 配置Hadoop环境变量 打开终端中的/etc/environment文件,并在其中添加以下内容: ```bash export HADOOP_HOME=/path/to/hadoop export PATH=$PATH:$HADOOP_HOME/bin ``` 其中,/path/to/hadoop为Hadoop所在的路径。保存文件后,输入以下命令使配置生效: ```bash source /etc/environment ``` 5. 配置Hadoop 进入Hadoop目录,编辑etc/hadoop/hadoop-env.sh文件。找到以下行: ```bash export JAVA_HOME=${JAVA_HOME} ``` 将其修改为: ```bash export JAVA_HOME=/usr/lib/jvm/default-java ``` 保存文件并关闭。 6. 配置HDFS 进入etc/hadoop目录,编辑hdfs-site.xml文件。添加以下内容: ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/path/to/hadoop/data/dfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/path/to/hadoop/data/dfs/datanode</value> </property> </configuration> ``` 其中,/path/to/hadoop/data为Hadoop数据存储路径。 7. 配置YARN 进入etc/hadoop目录,编辑yarn-site.xml文件。添加以下内容: ```xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration> ``` 8. 配置MapReduce 进入etc/hadoop目录,编辑mapred-site.xml文件。添加以下内容: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` 9. 格式化HDFS 在终端中输入以下命令格式化HDFS: ```bash hdfs namenode -format ``` 10. 启动Hadoop 在终端中输入以下命令启动Hadoop: ```bash start-all.sh ``` 11. 验证Hadoop 在浏览器中输入http://localhost:50070,即可访问Hadoop Web UI。在该页面中可以查看HDFS的状态、数据块、节点等信息。 以上就是Hadoop安装教程-单机-伪分布式配置-Hadoop2.6.0-Ubuntu14.04详细教程教学。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值