1. 实验问题
  2. 实验环境
  3. 实验过程
    1. 下载代码
    2. 编译Cython模块
    3. 编译Caffe and pycaffe
    4. 下载预计算的Faster R-CNN检测器
    5. 运行demo
  4. 实验数据集
    1. PASCAL VOC 2007数据集
  5. 实验结果
  6. 参考

使用Faster RCNN1进行实验。

实验问题

目标检测(Object detection)2:给定一张图片,对其中的某些目标进行检测,输出相应的目标类别和包围盒(bounding box)。

实验环境

操作系统:Ubuntu 14.04.3 LTS

开发环境:gcc v4.7.3, MATLAB R2014b, Anaconda2-4.0.0

实验过程

github上有相应的代码,我们把它下载下来再进行相应的安装和运行即可。

下载代码

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

编译Cython模块

1
2
3
4
cd py-faster-rcnn
cd lib
make
cd ..

编译Caffe and pycaffe

参考 http://caffe.berkeleyvision.org/installation.html

1
2
3
4
5
6
cd caffe-fast-rcnn
wget http://people.eecs.berkeley.edu/~rbg/fast-rcnn-data/Makefile.config
# 修改MATLAB\_DIR := /usr/local/MATLAB/R2014b
# 修改ANACONDA\_HOME := \$(HOME)/anaconda2
make -j8 && make pycaffe
cd ..

下载预计算的Faster R-CNN检测器

1
./data/scripts/fetch_faster_rcnn_models.sh

运行demo

1
./tools/demo.py

demo使用一个在PASCAL VOC 20073目标检测任务预训练的VGG16网络,进行一些图片的目标检测。

实验数据集

PASCAL VOC 2007数据集

PASCAL VOC 2007数据集相关地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html

PASCAL VOC(Pattern Analysis, Statistical Modelling and Computational learning, Visual Object Classes) 2007指2007年一个视觉对象的分类识别和检测的挑战赛。

挑战的主要目标是识别一些现实场景中的视觉对象类。数据集中有20个分类,分别是:

  • 人:人

  • 动物:鸟、猫、牛、狗、马、羊

  • 交通工具:飞机、自行车、船、公共汽车、汽车、摩托车、火车

  • 室内物体:瓶子、椅子、餐桌、盆栽植物、沙发、电视/显示器

比赛主要分为分类、检测2个部分,这里我们只关注检测比赛。

检测比赛需要预测每个给定分类的目标标签(label)及包围盒(bounding box)。

实验结果

输出的log信息如下,可以看出,每张图片只需约0.1s即可预测出其中的所有目标及其包围盒。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/000456.jpg
Detection took 0.136s for 300 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/000542.jpg
Detection took 0.121s for 160 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/001150.jpg
Detection took 0.108s for 192 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/001763.jpg
Detection took 0.117s for 203 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/004545.jpg
Detection took 0.135s for 300 object proposals

部分结果如下图所示,可以看出,对于不同图像不同大小的目标,均能较好地得到其相应的包围盒;同一张图片也能在不同区域得到相应的目标包围盒。

参考


  1. Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[C]. Neural Information Processing Systems, 2015.↩︎

  2. Object detection. Wikipedia. 最后修订于2016年5月21日. https://en.wikipedia.org/wiki/Object_detection↩︎

  3. The PASCAL Visual Object Classes Challenge 2007. PASCAL2. http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html↩︎