原创 | 文 BFT机器人
01
摘要
本文关注经典的PASCAL VOC数据集上的对象检测性能问题,近年来性能趋于稳定。作者提出一种简单且可扩展的检测算法,相较于之前最佳结果,在VOC 2012数据集上将平均精度(mAP)提高了30%以上,达到了53.3%的mAP。
该方法的关键点在:
(1)将高容量的卷积神经网络(CNN)用于自底向上的区域建议,以实现对象的定位和分割。
(2)在标记训练数据稀缺的情况下,通过监督预训练辅助任务,然后进行领域微调,可以显著提升性能。
由于将区域建议与CNN相结合,该方法被称为R-CNN:具有CNN特征的区域。此外,作者还将R-CNN与OverFeat进行了比较,后者是基于类似CNN架构的滑动窗口检测器。结果显示,在200类ILSVRC2013检测数据集上,R-CNN的性能明显优于OverFeat。
02
介绍
在20世纪90年代,CNN得到广泛应用,但后来受支持向量机的兴起影响而逐渐退出。2012年,Krizhevsky等人通过在ImageNet上训练大型CNN取得了显著的图像分类成果,重新引起人们对CNN的兴趣。
他们的成功包括对网络结构的调整。作者介绍了CNN在目标检测中的应用,并解决了图像分类和目标检测之间的差距。作者表明CNN在PASCAL VOC目标检测中显著提高性能,专注于深度网络定位目标和在少量带注释的数据上训练高容量模型。
作者采用了“使用区域识别”范式来解决CNN定位问题,这一方法在目标检测和语义分割领域都获得了成功。在测试时,作者的方法生成了约2000个与类别无关的区域建议,通过CNN从每个建议中提取固定长度的特征向量,并使用特定类别的线性支持向量机进行分类。
作者还采用了一种简单的技术(仿射图像扭曲)来处理区域提议,使其适应固定大小的CNN输入,不受区域形状的限制。作者将这一方法称为R-CNN,即具有CNN特征的区域。
在更新版本中,作者将R-CNN与最近提出的OverFeat检测系统进行了比较,发现R-CNN在200类ILSVRC2013检测数据集上表现明显优于OverFeat,mAP分别为31.4%和24.3%。
检测面临的第二个挑战是标记数据稀缺,解决方案通常是使用无监督预训练和监督微调。作者的第二个主要贡献是证明,在大数据集(ILSVRC)上进行监督预训练,然后在小数据集(PASCAL)上进行特定领域微调,是有效学习高容量CNN的方法。
在实验中,微调使得检测性能的mAP提高了8个百分点。作者还提到了其他研究,表明Krizhevsky的CNN在多个识别任务上可以作为特征提取器,无需微调。
作者强调了了解方法的失效模式对改进至关重要,他们报告了一个边界盒回归方法可以显著减少错误定位,这是主要的误差模式。最后,作者指出由于R-CNN在区域上操作,将其扩展到语义分割任务是很自然的。作者在PASCAL VOC分割任务上也获得了竞争力的结果,平均分割准确率为47.9%。
图1:目标检测系统。(1)获取输入图像;(2)提取大约2000个自下而上的区域建议;(3)使用大型卷积神经网络(CNN)计算每个建议的特征;(4)使用特定类别的线性支持向量机对每个区域进行分类。
03
基于R-CNN的目标检测
3.1 模块设计
区域建议大量的论文提出了与类别无关的候选区域生成方法。例如:对象性、选择搜索、类别无关的候选目标、约束参数最小切割(CPMC)、多尺度组合、Ciresan[等。Ciresan用CNN检测有丝分裂的细胞,是候选区域方法的一个特例。当然,R-CNN是一种选择搜索的候选区域方法,用选择搜索是为了方便与之前的检测方法比较。
特征提取为了提取区域建议的特征,作者采用了Krizhevsky等人所描述的CNN(使用Caffe实现)。每个区域建议被转换为固定的227 × 227像素大小的输入,以便与CNN架构兼容。作者选择了简单的方法来实现这一点,即将候选区域周围的像素通过翘曲转换到所需的大小。
在翘曲之前,紧密边界框会被扩大,以确保在翘曲后的图像中包含足够的上下文像素(作者使用了p = 16)。图2展示了扭曲训练区域的随机抽样过程。此外,替代的扭曲方法在附录A中有详细讨论。
3.2 测试时间检测
在测试时,作者对测试图像进行选择性搜索以提取大约2000个区域建议(我们在所有实验中都使用选择性搜索的“快速模式”)。作者扭曲每个提议,并通过CNN向前传播,以计算特征。
然后,对于每个类,我们使用为该类训练的支持向量机对每个提取的特征向量进行评分。给定图像中所有得分区域,我们应用贪婪非最大抑制(独立于每个类),如果该区域与大于学习阈值的较高得分选择区域有交集-过并(IoU)重叠,则拒绝该区域。
3.3 训练
监督训练作者使用大规模辅助数据集(ILSVRC2012分类)对CNN进行了判别性预训练。在这个预训练阶段,他们仅使用图像级别的标注信息(不使用边界框标签)。
所使用的CNN架构与Krizhevsky等人的工作相似,性能接近于他们的模型。在ILSVRC2012分类验证集上,相对于前一名,错误率高出2.2个百分点。这个差距是由于训练过程的简化造成的。
特定领域的微调 为了使CNN适应新的任务(目标检测)和新的域(扭曲的区域建议),作者继续对CNN参数进行随机梯度下降(SGD)微调,使用扭曲的区域提议。
在微调过程中,作者用具有(N + 1)个分类层的随机初始化替换了原CNN的Imagenet特定的1000个分类层,其中N为对象类别数量,加1代表背景。网络结构保持不变。
对于VOC数据集,N = 20,而对于ILSVRC2013数据集,N = 200。作者将所有与ground-truth框重叠IoU大于0.5的区域建议视为阳性,其余视为阴性。SGD的初始学习率为0.001(预训练学习率的1/10),这样可以在微调的同时避免破坏初始参数。每次SGD迭代中,作者以32个正窗口(涵盖所有类别)和96个背景窗口的比例构建大小为128的小批量,因为正窗口比背景窗口更为罕见。
04
可视化,模型比较和误差模式
4.1 网络体系结构
本文主要使用了Krizhevsky等人[25]提出的网络架构来展示R-CNN的检测性能。然而,研究发现网络架构的选择对R-CNN的性能产生重要影响。在本文中,作者还尝试了使用Simonyan和Zisserman[43]最近提出的16层深度网络进行VOC 2007测试,这个网络被称为O-Net,与之前使用的T-Net进行比较。
作者从Caffe模型动物园下载了VGG ILSVRC 16层模型的预训练网络权重,并对O-Net进行微调,微调的过程与T-Net相似,只是使用了较小的minibatch来适应GPU内存。结果显示,使用O-Net的R-CNN在性能上明显优于使用T-Net的R-CNN,平均准确度从58.5%提升到66.0%。然而,需要注意的是,使用O-Net的R-CNN的计算时间较长,转发时间大约是使用T-Net的R-CNN的7倍。
4.2 检测误差分析
作者使用了Hoiem等人的优秀检测分析工具,以揭示我们方法的误差模式,了解微调如何改变它们,并将我们的误差类型与DPM进行比较。分析工具的完整总结超出了本文的范围,我们鼓励读者参考来理解一些更精细的细节(例如“规范化AP”)。由于分析最好是在相关图的上下文中进行,在图5和图6的标题中给出了讨论。
4.3 限定框回归
在误差分析的基础上,实现了一种简单的减小定位误差的方法。受DPM中使用的边界盒回归的启发,我们训练了一个线性回归模型,在给定pool5特征的情况下,为选择性搜索区域建议预测一个新的检测窗口。表1、表2和图5的结果表明,这种简单的方法修复了大量的错误定位检测,将mAP提高了3到4个点。
4.4 定性结果
对ILSVRC2013的定性检测结果如图8和图9所示。每张图像从val2集合中随机采样,并显示了精度大于0.5的所有检测器的所有检测结果。请注意,这些都不是精心设计的,并给出了实际运行中的探测器的真实印象。更多的定性结果显示在图10和图11中,但是这些都是经过整理的。我们选择每张图片是因为它包含了有趣的、令人惊讶的或有趣的结果。这里也显示了精度大于0.5的所有检测结果。
05
语义分割
区域分类是语义分割的标准技术,使得R-CNN能够轻松应用于PASCAL VOC分割挑战。为了与领先的语义分割系统“二阶池”(O2P)直接进行比较,作者在O2P的开源框架内进行了工作。
O2P系统利用CPMC生成每张图像的150个区域建议,通过支持向量回归(SVR)预测每个类别的每个区域的质量。O2P方法的高性能归功于CPMC区域质量和多种特征类型(如SIFT和LBP的多样变体)的强大二阶池化。
此外,作者还注意到Farabet等人最近使用CNN作为多尺度逐像素分类器,在一些密集场景标记数据集上展示了良好结果,尽管这些数据集不包括PASCAL。
为了进行比较和评估,作者在PASCAL分割训练集上遵循相关工作并进行了扩展,包括了Hariharan等人提供的额外注释。设计决策和超参数通过在VOC 2011验证集上进行交叉验证来完成。
CNN功能分割 在对CPMC区域进行特征计算方面,作者尝试了三种策略,这些策略都始于将区域周围的矩形窗口扭曲到227 × 227的尺寸。第一种策略(full)忽略了区域的形状,直接在扭曲的窗口上计算CNN特征,类似于在检测任务中的做法。然而,这样的特征计算忽略了区域的非矩形形状。
第二种策略(fg)只在区域的前景蒙版上计算CNN特征,背景部分使用均值进行替换,使得在均值减去后背景区域为零。第三种策略(full+fg)将前两种策略的特征连接在一起,作者的实验验证了它们在提取特征时的互补性。
在VOC2011数据集上的结果作者对比了他们在VOC 2011验证集上的结果与O2P方法的结果。作者使用了三种特征计算策略,发现在每个策略中,fc6层的性能总是优于fc7层。
在特征计算策略方面,fg策略稍微优于full策略,表明掩膜区域形状提供了更强的信号。然而,使用完整特征和掩膜区域形状的联合策略(full+fg)表现最佳,达到了47.9%的平均准确度,相比O2P方法稍高。
作者强调,即使在掩膜区域形状信息已知的情况下,完整特征仍然提供了丰富的上下文信息。此外,在VOC 2011测试集上,作者的方法在11个类别中取得了最高的分割精度,在各个类别之间的平均分割精度达到了47.9%。
06
总结
本文提出了一种简单且可扩展的目标检测算法,在PASCAL VOC 2012数据集上相对于最佳结果提高了30%。首先他们采用了大容量的卷积神经网络来处理自底向上的区域建议,从而实现目标的定位和分割。
其次,在数据稀缺的情况下,他们通过在具有丰富数据的辅助任务(如图像分类)上进行监督预训练,然后在目标检测这种数据稀缺的任务上进行微调,展示了训练大型卷积神经网络的范例。
作者认为,这种"有监督的预训练/特定领域微调"的方法对于解决各种数据稀缺的视觉问题都非常有效。
作者 | 不加糖
排版 | 居居手
更多精彩内容请关注公众号:BFT机器人
本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。