精准的目标检测和语义分割下的丰富的特征层次结构
摘要:在最近几年,目标检测性能正如在经典的PASCAL VOC数据集上经过测试提到的那样,已经趋于稳定。最好的性能方法是复杂的集成系统,通常典型的做法是将多重低层的图像特征与高层的上下文(context)相结合。在这篇论文里,我们提出一个简单而且可扩展的检测算法,这种算法提高了平均精度(mAP:mean average precision ),并且相对于之前2012VOC挑战赛上获得的最好的结果(达到53.3的平均精度mAP
)还要高出30%。我们的方法结合了两个关键性的见解:一是我们把高容量的卷积神经网络特征应用在为了定位和分割物体的自下而上的region proposals。二是当标签训练数据稀缺的时候,作为辅助任务的监督预训练,以及紧跟的特定区域的微调(domain-specific fine-tuning),能够产生巨大的性能提升。因为我们把region proposals与CNNs结合,所以我们称之为R-CNN方法,也即Regions with CNN features,区域的CNN特征。我们也将R-CNN与OverFeat作比较,一种近来提出的基于类似CNN结构的滑动窗检测。我们发现R-CNN在200个类别的 ILSVRC2013检测数据集上大幅度的优于OverFeat。完整系统的源代码可供下载:http://www.cs.berkeley.edu/˜rbg/rcnn.
引言:特征主导。上一个十年在不断变化的视觉识别任务上的进步都是基于SIFT和HOG特征的广泛使用。但是当我们关注PASCAL VOC目标检测这个经典的目标识别任务时,大家都公认在2010~2012年期间这种进步放慢了,通过构建集成系统或者依赖一些小变异等的成功的方法获得的提升很小。
SIFT和HOG都是块方向梯度直方图,一种我们可以与V1区上复杂细胞粗略关联的表示,这个区也即人类视觉通路的第一皮质区。但是我们也知道识别发生在若干阶段的下游,这就暗示我们是否存在层次结构的多阶段进程的计算特征来丰富我们的视觉识别任务。
Fukushima的神经认知机一
个模式识别中受生物启发的分层结构和迁移不变模型,是早期在那样一个阶段的尝试。但是,这个神经认知机缺乏监督训练算法。建立在Rumelhart等人和 LeCun等人基础上的通过反向传播的随机梯度下降法是一种有效的训练卷积神经网络(一类神经认知机扩展的模型)的方法。
CNNs在90年代的时候得到大量的使用,但是随着支持向量机的出现而日渐衰落。在2012年Krizhevsky等人通过在 ImageNet上大规模的视觉识别挑战赛(the Large Scale Visual Recognition Challenge——ILSVRC)上达到的更高的分类准确率重新点燃了对CNNs的热情。他们的成功在于在120万张标签图片上训练巨大的CNN网络,并且在LeCun’s CNN 网络上采取了一些改进(例如:max(x; 0) 矫正非线性和“dropout”正则化)。
ImageNet上的显著结果在2012的视觉识别挑战赛的专题研讨会上得到了热烈的讨论。大家提炼出一个中心的议题:在ImageNet上CNN的分类结果推广到 PASCAL VOC数据集上做目标检测的挑战会达到怎样的程度?
我们通过构建图像分类和目标检测之间沟壑的桥梁来回答这一问题。这篇文章最大的亮点就是显示出在PASCAL VOC 数据集上一个CNN网络能够产生一个相当好的目标检测的性能相比较于基于简单的HOG之类特征的系统。为了达到这一结果。我们关注两个问题:用深度网络定位物体,并且用少部分标记的检测数据来训练高性能的模型。
不像图像分类,检测要求在一张图像中定位物体(可能很多)。一种途径是帧定位作为一种回归问题。但是从Szegedy等人的工作,同时我们自己的,表明这种策略在实际中可能表现会不好(他们报告中在VOC2007数据集上平均精度mAP是30.5%,而与之相比我们的方法达到的效果是58.5的平均精度mAP)。还有一个可选择的是构建一个滑动窗检测器。CNNs被用于这种方式至少20年,典型的是被约束的物体类别的分类对象,例如人脸和行人。为了维持高空间分辨率,这些CNNs网络通常仅有两个卷积层和一个池化层。我们也考虑到采用滑动窗口的方法。但是,窗口单元使我们的网络结构变得复杂,有五层卷积层,并且在输入图像上有一个巨大的可接受的区域(195*195像素范围)和跨度(32*32像素范围),这使得在滑动窗口模式下进行的精确定位成为一个开放的技术挑战。
与以上不同,我们解决CNN的定位问题通过“用区域识别”的模式去操控,这种方法已成功运用到物体检测和语义分割。在检测时,我们的方法在每张输入图片上产生大约2000个独立类别的region proposals,然后再用CNN网络从每一个proposal上提取一个固定长度的特征向量,接着我们用特定类别的线性SVMs去分类每一个区域。不管区域的形状大小,我们用一个简单的技术(图像仿射变换)从每个region proposal去计算固定大小的CNN网络的输入。图1展示了我们的方法概述并且突出了一些我们的结果。因为我们的系统把region proposals和CNNs结合在一起,我们给我们的方法起了个绰号叫R-CNN:Regions with CNN features.
图1:物体检测系统概述。我们的系统:(1)获取一张输入图片;(2)提取将近2000个自底向上的 region proposals;(3)用一个巨大的卷积神经网络(CNN)计算每一个proposal的特征;(4)用特定类别的线性SVMs去分类每一个区域。R-CNN在PASCAL VOC 2010数据集上达到53.7% 的平均精度(mAP)。作为对比,《Selective search for object recognition》论文用相同的 region proposals的方法达到了35.1%的平均精度(mAP),但是它结合了空间金字塔和视觉词袋的方法。而流行的可变形部件模型(DPM)的方法性能也只达到33.4%的平均精度(mAP)。在200个类别的ILSVRC2013 检测数据集上,R-CNN的平均精度(mAP)达到了31.4%。与OverFeat 算法最近的最好的24.3%的平均精度(mAP)的结果相比明显提高了不少。
在这篇论文的更新版本里,我们把分别在200类 ILSVRC2013检测数据集上用R-CNN的方法与最近提出的OverFeat 检测系统的方法做了正面的比较。OverFeat用CNN的滑动窗做检测并且直到现在也是在ILSVRC2013数据集上性能最好的检测方法。我们的R-CNN以31.4%压倒24.3%的平均精度(mAP)远远超出了OverFeat的方法。
在检测上面临的第二个挑战是对训练一个大型的CNN网络而言,标签数据的稀缺和当前可用数据量的不充足。传统的方法是用无监督预训练,紧接着监督微调。这篇论文第二个主要的贡献是在一个巨大的辅助训练集(ILSVRC)做监督预训练,紧接着在小数据集(PASCAL)做特定领域的微调,这是一个学习高性能CNNs网络的非常高效的模式,当我们的数据稀缺的时候。在我们的实验中,微调在检测过程中,提高了平均精度mAP八个百分点。在 VOC 2010的数据集上,相比于高度调整的以HOG特征为基础的可变形部件模型(DPM)的方法获得的33%的平均精度(mAP),在微调后,我们的系统可以达到54% 的平均精度(mAP)。我们也给读者指出了同时期的Donahue等人的工作,他们指出Krizhevsky’s的CNN(不带微调)像一个特征提取的黑箱一样也可以被使用,它在几个识别任务上也产生了不错的性能包括:情景分类,细粒度的子分类和域的适应性。
我们的系统也是非常高效的。仅有的特定类别的计算是一个相当小的矩阵向量的相乘和贪婪的非极大值抑制。这种计算属性是根据跨所有类别的共享特征和比之前使用的区域特征更低维的两个数量级的特征所得出的。
理解我们方法的失败的模型对改进它也是很关键的,所以我们报告了从 Hoiem等人的检测分析工具的结果。作为一个这种分析的直接结果,我们证明了一个简单的包围盒回归方法大大减少了误定位,这是主要的误差模式。
在阐述技术细节之前,我们指出正因为R-CNN在区域上操纵,它很自然地扩展到语义分割的任务。经过一些小的变化,我们在PASCAL VOC数据集上也达到了有竞争力的结果:在VOC 2011检测数据集上达到了47.9%的平均分割率。
2 用R-CNN的物体检测
我们的检测系统包括三个模块。第一模块产生类别独立的 region proposals。这些proposals定义我们检测器需要的候选可用的检测集。第二个模块是一个巨大的卷积神经网络来从每个区域提取固定长度的特征向量。第三个模块是一系列特殊类别的线性SVMs分类器。在这一部分,我们展示我们每个模块的设计决策,描述它们测试时间的使用,它们的参数如何学习的细节,以及在PASCAL VOC 2010-12和 ILSVRC2013上展示检测结果。
2.1 模块设计
Region proposals.最近很多论文提供了产生独立类别的 region proposals的方法。例子如下:一般物体检测(objectness),选择性搜索(selective search),独立类别的物体 proposals,受约束的参数分钟裁剪(constrained parametric min-cuts (CPMC)),多尺度组合分(multi-scale combinatorial grouping),和通过利用CNN网络到定期间隔平方生成去检测有丝分裂细胞的
Cires¸等方法。因为R-CNN对特定
region proposal
方法不可知,我们使用选择性搜索的方法与之前的检测工作产生可控的对比。
特征提取。我们提取用
Krizhevsky等人描述的CNN的Caffe实现
从每个
region proposal上提取4096维特征向量。特征由前向传播将一个均差的227*227RGB图像通过5个卷积层和两个全连接层。读者可以在《An open source convolutional architecture for fast feature embedding》http://caffe.berkeleyvision.org/, 2013. 3和《 ImageNet classificationwith deep convolutional neural networks.》这两篇论文中可以神经网络结构的信息。
为了能计算region proposal的特征,我们首先将图片数据转换成CNN网络兼容的格式(CNN网络的结构要求227*227像素固定大小的输入图片数据)。在我们任意大小区域可能转换的方式中,我们选择最简单的。不管候选区域的大小和长宽比,我们将物体附近的包裹紧密的包围盒中的像素warp到要求的大小尺寸。在warping之前,我们先膨胀扩张包围紧密的包围盒以至于在warped大小尺寸基础上在原有的包围盒周围恰好有p个像素的warped图像内容(我们用p=16).图2展示了随机采样的warped训练区域,可选择的warping方法在附录A讨论。
2.2测试时期的检测
在检测时期,我们用选择性搜索方法对每张测试图片提取2000个 region proposals(在所有的试验中我们的选择性搜索方法是最快的模式)。我warp每一个proposal并且通过CNN网络
前向传播来计算特征。然后对于每一个类别,我们用为该类别训练的SVM分类器去给每个提取的特征向量打分。考虑到图像上所有的低分区域,我们应用贪婪极大值抑制(对每一个独立类别)去拒绝一个区域,这个区域是
有着
intersection-overunion
(IoU)的重叠并
有着高于学习获得的阈值的高得分挑选的区域
。