我们提出了一个集成的框架,使用CNN来进行识别,定位和检测。我们展示如何在ConvNet中高效实现多尺度和滑动窗口方法。我们还通过学习预测对象边界来介绍一种新颖的深度学习方法来进行本地化。然后边界框需要累积起来而不是被抑制来达到增加检测置信度的目的。我们显示可以使用单个共享网络同时学习不同的任务。这个集成网络是ILSVRC-2013的定位方向的冠军,并且获得了非常有竞争力的检测和分类任务的结果。在竞赛后的工作中,我们为检测任务建立了新的最先进的技术。最后,我们从我们最好的模型OverFeat中开放了一个特征提取器。
识别图像中主要对象的类型是卷积网络(ConvNet)[17]已经应用多年的任务,无论对象是手写字符,房间号,无特色的玩具,交通标志[3,26],来自Caltech-10数据集[14],或来自于1000类ImageNet数据集[15]的物体。ConvNets对小数据集(如Caltech-101)的准确性,虽然不错,但并没有打破记录。然而,大型数据集的出现使ConvNets能够显著提高在数据集上的最好的表现,例如在1000类别的ImageNet[5]上。
ConvNets对许多这样的任务的主要优势是整个系统是端到端训练的,从原始像素到最终类别,从而减少手动设计合适的特征提取器的需求。主要缺点是他们对标记的训练数据样本是贪婪的。本文的主要目的是说明训练一个卷积神经网络的同时用来分类,定位和检测图像中的对象可以提高分类精度和所有任务的检测和定位精度。本文提出一种新的集成方法用单个ConvNet来进行目标检测,识别和定位。我们还引入了一种通过累积预测的边界框用于定位和检测的新方法。我们建议通过组合许多定位预测,即使不在背景样本下训练,也可以进行检测,并且可以避免耗时和复杂的自举训练passes(过程)。不训练背景也会让网络专注于正确的类,以提高准确性。在ImageNet2012和2013数据集上进行实验,并在ILSVRC2013的定位和检测任务上得到了非常好的结果。虽然来自ImageNet分类数据集选择的的图像大多数是目标填充图像大部分的大致中心化的图像,但是感兴趣的对象有时在图像内的大小和位置上会有显著的变化。解决这个问题的第一个想法是在图像中的多个位置,以滑动窗口的方式和多尺度上应用ConvNet。然而,即使这样,许多观察窗口可能包含对象的完全可识别的部分(例如,狗的头部),但是不是整个对象,甚至也不是对象的中心。这导致分类结果很好,但定位和检测很差。因此,第二个想法是训练系统不仅对每个窗口产生类别分布,而且产生包含对象的边界框相对于窗口的位置和大小的预测。第三个想法是对于每一个类别在每个位置和大小上累积置信度。许多作者建议使用ConvNets在多个尺度上的滑动窗口上进行检测和定位,可以追溯到20世纪90年代初的多字符串[20],人脸[30]和手[22]。最近,ConvNets已经被证明在自然图像的文本检测[4],人脸识别[8,23]和行人检测[25]中具有最佳的性能。
一些作者还提出训练ConvNets直接预测要定位的对象的实例化参数,例如相对于观察窗口的位置或者对象的姿态。例如Osadchy等人描述了一种同时用于面部检测和姿势估计的ConvNet。人脸是由九维输出空间中的3D管子表示的。管子上的位置表示姿势(俯仰、偏航滚动和)。当训练图像是人脸时,训练网络在管子上已知姿态的位置处产生一个点。如果图像不是人脸,则输出被推离出管子。在测试的时候,到管子的距离表示图像是否包含人脸,并且管子上最近的点的位置表示姿势。Taylor[27, 28] 等人使用ConvNet来估计身体部位(手,头等)的位置,以便推导出人体姿势。Hinton等人也提出训练网络来计算特征的显式实例化参数作为识别过程的一部分[12]。
其他作者也有建议通过基于ConvNet的分割执行目标定位的。最简单的方法在于训练ConvNet将其观察窗口的中心像素(或体积图像的体素)分类为区域之间的边界或不是[13]。但是当区域必须被分类时,优先执行语义分割。主要思想是训练ConvNet来将观察窗口的中心像素与它所属的对象的类别分类,使用窗口作为上下文用来决定。应用范围从生物图像分析[21],到移动机器人的障碍物标记[10],到照片的标记[7]。这种方法的优点就是,边界轮廓不需要是矩形,并且区域不需要是良好包围的对象。缺点就是它需要密集的像素级别的标签进行训练。这种分割预处理或者对象建议步骤最近在传统的计算机视频领域越来越受欢迎,以减少用于检测的位置,尺寸和宽高比的搜索空间[19,2,6,29]。因此可以在搜索空间的最佳位置应用好的分类方法,从而增加识别精度。此外,[29,1]表明这些方法通过大大减少了不可能的对象区域,从而减少潜在的误检率(false positive)来提高精度。然而, 我们的密集滑动窗口方法,能够在ILSVRC13检测数据集上胜过对象建议方法。Krizhevsky[15]等人最近使用一个大的ConvNet显示了令人印象深刻的分类表现。作者也参加了ImageNet2012挑战赛,赢得了分类和定位的挑战。虽然他们表示了令人印象深刻的定位性能,但是没有公布他们的方法。因此,我们的文章是第一个提供一个清晰的解释关于ConvNet是怎样应用于ImageNet数据的定位和检测的。
在本文中,我们使用的术语定位和检测的方式和他们在ImageNet2013竞赛中使用的一致,即唯一的不同就是使用的评估标准,并且都涉及到预测图像中每个物体的边界框。
在本文中,我们探讨了三个计算机视觉的任务,难度顺序递增(i)分类,(ii)定位,(iii)检测。每一个任务都是下一个任务的子任务。然而所有的任务都使用单一框架和共享的特征学习库来解决,我们将在下面的章节中单独的描述它们。
整篇论文中,我们报告了ILSVRC2013的结果。在分类任务中,每个图片都被分配一个单独的标签对应于图像中主要物体。允许猜5次来找到正确的类别(这是因为图像中也可能会包含很多未标注的物体)。定位任务是类似的,每个图像允许猜5次,但此外,对于每个猜测必须返回预测目标的的边界框。如果被认为是正确的,预测框与正确答案匹配程度必须达到50%(使用交叉并集的PASCAL标准),并且标记为正确的类(即,每一个预测都是标签和边界框连接在一起)。检测任务不同于定位任务,因为在每个图像中可以存在任何数量的物体(包括零个),并且误检率会通过平均精度(mAP)受到惩罚。定位任务是分类和检测之间的一个方便的中间步骤,并且允许我们独立于检测特有的挑战(例如学习背景类)来评估我们的定位方法。在图1中,我们用我们的定位/检测预测以及相应的groudtruth显示图像的示例。注意,分类和定位共享相同的数据集,然而检测还具有附加的数据集其中的对象可能会更小。检测数据也包含一组图像,其中某一些对象是缺失的。这可用于自举,但在本次工作中我们没有利用它。
我们的分类结构类似于Krizhevsky等人最好的ILSVRC12架构[15]。然而,我们改进了网络设计和推理步骤。由于时间限制, Krizhevsky模型的一些训练特征没有被探索,所以我们期望我们的结果可以进一步改差善。这些会在第6节未来工作中被讨论。
我们在ImageNet2012训练集上训练网络(120万图像和C=1000类)[5]。我们的模型在训练期间使用与 Krizhevsky等人相同的固定输入大小的方法,但是转向多尺度分类,如下一节中所述。每个图像都被下采样,使得最小的维度是256个像素。然后,我们提取了5个大小为221*221个像素的随机剪裁(及其水平翻转),并将这些图像以大小为128的小批量呈现给网络。这些网络中的权重用(μ,σ)=(0,1∗10−2)。它们用随机梯度下降算法更新,momentum系数是0.6并且l2权重衰减系数为1∗10−5。学习率最初设为5∗10−2,并且在(30,50,60,70,80)次训练次数之后依次减小0.5倍。在分类器中的全连接层(第6和第7)上dropout设为0.5。
我们在表1和表3中详细描述了结构大小。在训练期间,我们将我们的结构看成是非空间的(输出映射大小是1*1的),这对比于推理阶段,它产生了一个空间上的输出。1-5层 类似于Krizhevsky等人,使用了修正(“relu”)非线性单元和最大池化层,但是具有下面的不同:(i)对比正则化没用;(ii)池化区域是非重叠的;并且(iii)我们的模型有更大的第1和第2层的特征映射,是由于更小的步长(2而不是4)。较大的步幅有利于速度,但是会损害准确性。在图2中,我们展示了前两个卷积层的过滤器系数。第一层过滤器捕获定向的边缘,图案和斑点。在第二层中,过滤器具有各种形式,一些漫射,其他具有强线性结构或定向边缘。
随着本文,我们发布了一个特征抽取器取名为”OverFeat“,以便为计算机视觉研究提供强有力的特征。提供了2个模型,一个快速版本一个精确版本。每一个结构都在表1和表3中描述。我们在表4中关于参数和连接方面比较了他们的尺寸。我们准确模型比快速模型更准确(14.18%的分类错误率对比于16.39%的错误率,在表2中可以看到),然而它需要几乎两倍多的连接。使用7个精确模型的连合可以达到13.6%的分类误差,如图4所示。
在[15]中,多视角的投票被用来去提高性能:10个视觉的一个固定集合(4个角度和中心,加上水平翻转)被平均。然而,这种方法可能会忽略图像的请多区域,当视觉重叠的时候会产生计算冗余。而且,它仅被应用于单一尺度上,这可能不是ConvNet将以最佳置信度响应的规模。
相反,我们通过在在每个位置和多个尺寸上密集地运行网络来探索整个图像。虽然滑动窗口的方法对于某些类型的模型在计算上是不可能的,但是在ConvNet的情况下其在本质上是有效的(参见3.5节)。这种方法产生了更多的视角进行投票,并且在保持高效的同时增加了强健性。在任意大小的图像上执行一个ConvNet操作的结果就是一个在每一个尺寸下的C维的向量的空间映射。
然而,在上面描述的网络中的完整的下采样率是2∗3∗2∗3,或者说是36。因此当被密集应用时,该结构仅能够在沿着每个轴的输入维度中每36个像素产生一个分类向量。与10视图方案比,这种输出的粗分布减少了性能,因为网络窗口不能与图像中的目标很好的对准。网络窗口和对象对齐的更好,网络响应的置信度越高。为了解决这个问题,我们采取了类似于Giusti等人的方法[9],并且在每个偏移处应用最后的下采样操作。这消除了该层的分辨率损失,产生了*12而不*36的总的下采样率。
我们现在将详细解释分辨率增强是怎么执行的。我们使用6个比例的输入,其导致了不同分辨率的未经池化的第5层映射(详见表5)。然后将它们池化并使用以下程序呈现给分类器,如图3所示。
在表2中,我们用不同的方法做了实验,并且将它们和Krizhevsky 等人的模型进行对比用于推理。上面描述的方法,用6个尺度,实现了top-5的错误率到13.6%。正如可能期望的一样,使用理小的尺度不得于性能:单一比例的模型更差,top-5错误率为16.97%。图3中描述的精细的步长技术在单一尺度方案上带来了相对较小的改进,但对于这里所示的多尺度增益也是非常重要的。我们在图4中报告了2013竞赛的测试集结果,我们的模型(OverFeat)通过用7个ConvNets(每一个使用不同的初始化)的投票获得了14.2%的准确度并且在18个队伍里排名第5。仅仅使用ILSVRC13数据的最好的准确性是11.7%。使用ImageNet Fall11数据集的额外数据进行预训练将此数据提高到11.2%。在竞赛之后, 我们使用更大的模型(更多的特征和更的层次)将OverFeat的结果改进到13.6%的错误率。由于时间限制,这些更大的模型没有得到更大的训练,预计随着时间会有更多的改进。
许多滑动窗口一次为输入的每个窗口计算整个流水线,与它们相比,ConvNets当以滑动的方式被应用的时候本质上是高效的,因为它们自然的对重叠区域的公共部分共享计算。当在测试时将我们的网络应用于更大的图像时,我们简单地在整个图像范围内应用每个卷积。为了覆盖新的图像大小,这扩展了每个层的输出,最终产生了输出类别预测的地图,其中针对输入的每个”窗口“(视场)具有一个空间位置。这在图5中说明。卷积是从底向上的被应用的,使得相邻窗口的公共部分的计算只需要进行一次。
从训练的分类网络开始,我们用回归网络替换分类层并且训练它在每一个空间位置和尺寸上预测对象边界框。然后我们将回归预测结合在一起,连同每个位置的分类结果,如我们现在描述的这样。
为了生成对象边界框的预测值,我们在所有的位置和尺寸上运行分类器和回归网络。因为它们共享相同的特征提取层,因此在计算了分类网络之后,仅需要计算最后的回归层。在每个位置处的类c的最终softmax层的输出提供了类c的对象存在(但不一定完全包含)在对应视场中的置信得分。因此,我们可以为每个边界框分配置信度。
我们通过应用于回归器边界框的贪婪合并策略来组合各个预测(参见图7),使用以下算法:
我们使用为比赛指定的定位标准将我们的网络应用于ImageNet2012验证集上。其结果展示于图9中。图10展示了2012和2013定位比赛的结果(这几年的训练和测试数据是相同的)。我们的方法以29.9%的错误率成为2013竞赛的冠军。
检测训练类似于分类训练,但是是以空间方式。可以同时训练图像的多个位置。因为模型是卷积的,所有的权重在所有的位置都是共享的。与定位任务的主要区别是,当没有对象存在的时候,需要预测一个背景类。传统上,负例最初是随机地用于训练。然后,最令人不安的否定错误被添加到引导传递中的训练集。独立引导传递使训练复杂化,并且在负样本收集和训练时间之间存在潜在的不匹配。此外,引导传递的大小需要调整,以确保在小训练集上训练不会过拟合。为了解决所有的问题,我们通过选择每个图像的几个有趣的负例子,如随机的或最令人不安的,来执行负例训练。这种方法在计算上更昂贵,但是使得过程更简单。因为特征提取最初训练是用于分类任务,因此检测微调并不长。
在图11中,我们报告了在ILSVRC2013竞赛上的结果,其中我们的检测系统以19.4%的平均精度(mAP)排名第3。我们随后建立了具有24.3%mAP的新的检测状态。注意到前3种方法和其他团队之间具有很大的差距(第四种方法产生了11.5%mAP)。此外,我们的方法显著不同于前两个其他系统,其使用一个初始分割步骤来减少候选窗口从大约200000减少到2000。这种技术加速了推理并且大大减小了潜在的false positives的数量。[29,1]表明,当使用密集滑动窗口而不是选择性搜索时,检测精度下降,其丢弃不太可能的对象位置,从而减少false positives。结合我们方法,我们可以观察到类似的改进,如传统的密集方法和基于分割的方法之间所见。需要注意的是,我们和NEC和UvA做的不一样,我们并没有在检验证集上微调。验证和测试集分布与训练集明显不同,这单独地将结果提高大约一个点。图11中的两个OverFeat结果之间的改进是由于较长的训练时间和上下文的使用,即每个尺度也使用较低分辨率的尺度作为输入。
我们已经提出了一个多尺度,滑动窗口的方法,其可以用于分类,定位,和检测。我们将它应用于ILSVRC13数据集上,它目前在分类任务上排名第4,在定位上排名第1,在检测上排名第1。我们的文章的第二个重要的贡献就是解释了ConvNets是怎样被有效地应用于检测和定位任务的。这些在[15]中是从来没有被解决的,并且因此我们是第一个解释了如何在ImageNet2012的上下文中做到这一点的。我们提出的方案涉及对为分类设计的网络的大量修改,但是清楚地表明ConvNets能够执行这些更具有挑战性的任务。我们的定位方法赢得了2013ILSVRC竞赛,并且明显地优于其他的所有2012和2013年的方法。检测模型在比赛中排名靠前,在赛后结果中排名第一。我们提出了一个集成管道,可以执行不同的任务,同时共享一个共同的特征提取基础,完全直接从像素学习。
我们的方法可能仍然可以在几个方法上提到提升。(i)对于定位,我们当前不支持通过整个网络,这样做可能会提高性能。(ii)我们使用l2损失,而不是直接优化衡量性能的IOU标准。交换损失应该是可能的,因为IOU仍然是可区分的,只要有一些重叠。(iii)边界框的替代参数化可以帮助对输出进行去相关,这将有助于网络训练。