R-CNN阅读笔记

来源:互联网 发布:office 2016 for mac 编辑:程序博客网 时间:2024/06/05 19:16

前言

纵观目标检测算法领域的发展过程,从基于VJ的级联HAAR人脸检测器到Lowe的SIFT尺度不变目标检测,从Dalal的HOG行人检测,再到Felzenszwalb的DPM,无疑不是一次次里程碑式的发展变革,为后人的研究提供了更宽广的思路和更夯实的基础。然而即使是前几年被寄予重大希望的segDPM[2],在权威测试集PASCAL VOC上的MAP(MEAN AVERAGE PRECISION)也只有40%左右。神经网络计算,最初在90年被广泛应用,因其能够模拟人脑神经元间的信号激励作用,同指纹、虹膜、脑电波一样具有生物特征特性,因此受到了业界的广泛关注。然而随着支持向量机(SVM)的应运而生,对CNN,DNN的关注度日趋下降。直到2012年,Krizhevsky[3]利用CNN在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)上取得了惊人的图像分类效果后,人们才将目光重新投向了CNN,当人类自行设计的特征达到了性能瓶颈时,研究员们才意识到利用CNN自主学习到了特征具有不可比拟的性能优势,这无疑推进了计算机视觉再一次的大步前进!
虽然从12年至今,CNN在image classification上取得的进步已经与昨日不可同日而语,但在object detection上却甚少提及。究其原因,主要在于检测和分类在实施性上的差异。目标检测需要从一副图像上定位到需要检测的目标,输出该目标位置,而这一位置的不确定性,随机性,尺度未知性为检测算法带来了一定的复杂度。常用的方法是基于VJ框架的图像金字塔划窗扫描法,即基于原始图像生成多个尺度的金字塔图像,然后在每层图像上按照一定的步长和窗尺寸扫描检测。划窗检测的优点是不会漏掉图像中的任一区域,缺点则是需要的时间复杂度较高,用在可以快速计算的如HAAR、FERN、TREE等像素级的特征上没有问题,然而用在较大网络结构的CNN上显然有些困难。另一方面,检测和分类的评估准则也大为不同,分类仅需判断与groundtruth的label是否相同或不同,这是个非正即负的问题,不存在第三种结果,更像是一个二分类问题;然而检测的标注和结果通常用一个rectangular来具现化,通常用于两者面积的交比值来判断于groundtruth的接近程度,由于该值是连续的,因此些许的位置偏差也会对最终的结果造成不小的影响。
另一个值得思考的问题是,就算CNN在图像分类上取得了重大的突破,如何证明利用CNN学习到的特征同样适用于目标检测任务呢?本文作者给出了问题的答案,并用实验结果证明了CNN在目标检测领域具有的巨大潜力。


系统框架介绍

R-CNN,即Regions with CNN feature,整个检测系统框架图如图1所示。算法基于”recognition using regions”,首先利用selective search 算法提取约2000张proposals,然后通过仿射变化将这2000张图像变换到相同的尺寸上,接着再输入到CNN中提取固定的4096维特征,最后用SVM分类器对2000张区域进行分类,将检测问题转化为分类问题。对于每一类的scored region,采用NMS(Non-maximum suppression)来合并检测结果。
图1 系统框架图
这一检测系统框架在时间上来说是十分高效的,因为所有的类公用相同的CNN网络参数,而每类单独做的仅是SVM分类和NMS合并。


训练

训练部分分为三部分:
- Supervised pre-training
此部分在大的数据集(ILSVRC 2012)上进行训练,图像级标注(即没有bounding box),网络结构与Krizhevsky的类似。
- Domain-specific fine-tuning
此部分利用上一部分训练得到的网络进行fine-tuning。输入的训练数据来自VOC上小规模的经过cropped和warped的proposals,网络参数除了将分类部分的1000(ILSVRC1000类)改为21(VOC 20类+背景类),其他参数不变。初始学习率lr设为0.001,是pre-training阶段初始学习率的1/10。
SVM分类器
此部分输入的正样本为与groundtruth的交比(IOU)值大于0.3的区域,反之则为负样本。由于负样本数量巨大,采用传统的negative mining方法进行训练。


实验结果

该系统在VOC2011/12测试上均取得了53.3%的MAP,与传统的SVM方法相比提升将近20%(35.1% -> 53.3%)。


特征可视化

图2展示了pool5层激励最大的输入样本,白色框为其接受的区域和激励分数。可以看出CNN旨在学习融合了形状、纹理、颜色和材质等信息的特征。

图2 特征可视化

层级性能分析

从图3可以看出在未加fine-tuning前,一些类别的fc6,fc7层的性能不如pool5,难道这意味着fc6,fc7层是多余的?但在fine-tuning加入后,整体层的性能得到了巨大提升,其中,对fc6,fc7的提升要大于对pool5的性能提升,这意味着从ImageNet学习到的pool5特征具有更强的泛化性能,从domain-specific 非线性分类器能够获得更大的提升(fc6,fc7)。

图3VOC2007检测性能


错误分析及bounding box regression

从图4可以看出,主要的错误集中在定位错误上。为解决这个问题,文章采用bounding box regression,即基于pool5特征,训练一个线性回归模型来预测检测窗的位置。加入后,整体MAP提升了3%~4%。
这里写图片描述
文章后半部分,作者将此套框架稍微修改后也用在了图像分割问题上,同样取得了很大的性能提升,这里不再赘述。
总结本篇文章,应该算是目标检测领域的又一重大突破,随着硬件技术水平的不断提高,相信CNN将会克服时间效率这一屏障,被应用在更广泛的视觉算法中。


[1]: Rich feature hierarchies for accurate object detection and semantic segmentation, Ross Girshick, et al.
[2]: Bottom-up segmentation for top-down detection, S. Fidler, et al.
[3]:ImageNet classification with deep convolutional neural networks, A. Krizhevksy, et al.

0 0
原创粉丝点击