专栏首页中科院渣渣博肆僧一枚OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_36670529/article/details/99644268


摘要

我们提出了一个使用卷积网络进行分类、定位和检测的集成框架。我们认为在一个卷积网络中可以有效地实现多尺度和滑动窗口方法。我们还介绍了一种新的深度学习方法,通过学习预测目标的边界来定位。然后,为了增加检测的置信度,对边界框进行累积而不是抑制。我们证明了使用一个共享网络可以同时学习不同的任务。该集成框架是ImageNet Large scale evisual Recognition Challenge 2013 (ILSVRC2013)定位任务的获胜者,在检测和分类任务上获得了非常有竞争力的结果。在比赛后的工作中,我们为检测任务建立了一个新的技术状态。最后,我们从我们最好的模型中发布了一个名为OverFeat的特性提取器。

1、简介

识别的类别主要目标是在一个图像是一种卷积网络任务(ConvNets)应用了很多年来,目标是否手写字符,房子数,碗筷玩具、交通标志,目标从Caltech-101数据集,或1000类的ImageNet数据集。ConvNets对小型数据集(如Caltech-101)的准确性虽然还算不错,但还没有破纪录。然而,更大数据集的出现使ConvNets能够显著提高数据集的技术水平,比如1000类ImageNet。ConvNets对于许多这类任务的主要优点是,整个系统从头到尾都经过训练,从原始像素到最终类别,从而减轻了手工设计合适的特征提取器的需求。主要缺点是需要大量标注的样本。本文的重点在于,训练卷积网络同时对图像中的目标进行分类、定位和检测,可以提高分类精度,提高所有任务的检测和定位精度。本文还介绍了一种新的基于累积预测边界框的定位检测方法。我们建议结合许多定位预测,可以在不训练背景样本的情况下进行检测,并且可以避免耗时且复杂的引导训练过程。没有背景训练也让网络只专注于积极的课程,以获得更高的准确性。对ImageNet ILSVRC 2012和2013年数据集进行了实验,建立了关于ILSVRC 2013年定位和检测任务的最新结果。

虽然ImageNet分类数据集中的图像在很大程度上被选择为包含一个粗略居中的目标,该目标填充了图像的大部分,但是感兴趣的目标有时在图像中的大小和位置上有很大的差异。解决这个问题的第一个想法是在图像中的多个位置,以滑动窗口的方式,在多个尺度上应用一个卷积神经网络。然而,即使有了这个,许多查看窗口也可能包含目标的一个完全可识别的部分(例如,狗的头部),但不是整个目标,甚至不是目标的中心。这导致了良好的分类,但较差的定位和检测。因此,第二个想法是训练系统不仅为每个窗口生成类别上的分布,而且生成包含相对于窗口的对象的边界框的位置和大小的预测。第三个想法是在每个地点和大小为每个类别积累证据。许多作者提出使用ConvNets进行检测和定位,并在多个尺度上使用滑动窗口,这可以追溯到20世纪90年代初的multi-character strings、face和hands。最近,ConvNets被证明在自然图像中的文本检测、人脸检测和行人检测方面具有最先进的性能。

一些作者还建议训练ConvNets来直接预测要定位的目标的实例化参数,比如相对于查看窗口的位置,或者目标的位置。例如Osadchy等人的描述了一个用于同时进行人脸检测和姿态估计的卷积网络。人脸在九维输出空间中由三维流形表示。歧管上的位置表示姿态(俯仰、偏航和横摇)。当训练图像为人脸时,对网络进行训练,在已知姿态的位置上生成流形上的点。如果图像不是人脸,则输出将被推离歧管。在测试时,到流形的距离表示图像是否包含人脸,流形上最近点的位置表示姿态。Taylor等利用卷积神经网络估计身体部位(手、头等)的位置,从而得到人体姿态。他们使用一个度量学习标准来训练网络来生成身体姿态流形上的点。Hinton等人还提出,作为识别过程的一部分,训练网络计算特征的显式实例化参数。其他作者提出了基于凸点分割的目标定位方法。最简单的方法是训练ConvNet将其查看窗口的中心像素(或体素,用于体积图像)分类为区域之间的边界或非。但是,当必须对区域进行分类时,最好执行语义分割。其主要思想是训练ConvNet将查看窗口的中心像素按照其所属目标的类别进行分类,并将窗口作为决策上下文。应用范围从生物图像分析,到移动机器人的障碍标记,到照片的标记。这种方法的优点是边界轮廓不需要是矩形,区域也不需要是界限分明的对象。缺点是它需要密集的像素级标签进行训练。这种分割预处理或对象建议步骤最近在传统的计算机视觉中得到了广泛的应用,它减少了用于检测的位置、尺度和纵横比的搜索空间。因此,一种昂贵的分类方法可以应用于搜索空间中的最优位置,从而提高识别精度。此外,这些方法通过大幅减少不太可能的目标区域,从而减少潜在的误报,从而提高了准确性。然而,在ILSVRC13检测数据集上,我们的密集滑动窗口方法能够胜过目标建议方法。

Krizhevsky等人最近使用一个大的ConvNet展示了令人印象深刻的分类性能。作者还参加了2012年的ImageNet竞赛,赢得了分类和本地化的挑战。尽管他们展示了令人印象深刻的本地化性能,但是还没有发表过描述他们的方法的工作。因此,我们的论文是第一个提供了一个明确的解释,ConvNets如何可以用于定位和检测的ImageNet数据。

在本文中,我们使用的定位和检测这两个术语与2013年ImageNet大赛中使用的术语是一致的,即唯一不同的是使用的评价标准,两者都涉及到预测图像中每个目标的边界框。

2、视觉任务

在本文中,我们探索了三个难度递增的计算机视觉任务:(i)分类、(ii)定位和(iii)检测。每个任务都是下一个任务的子任务。虽然所有任务都是使用一个框架和一个共享的特性学习基础来处理的,但是我们将在下面的部分中分别描述它们。在本文中,我们报告了2013年ImageNetLarge Scale Visual Recognition Challenge (ILSVRC2013)的结果。在这个挑战的分类任务中,每个图像都被分配一个对应于图像中主要目标的标签。允许五次猜测来找到正确答案(这是因为图像也可以包含多个未标记的目标)。定位任务与此类似,每个图像允许进行5次猜测,但是每次猜测都必须返回预测对象的包围框。要被认为是正确的,预测框必须与groundtruth匹配至少50%(使用PASCAL的IOU),并使用正确的类进行标记(即每个预测是一个标签和一个关联在一起的边界框)。检测任务与定位任务的不同之处在于,每个图像中可以有任意数量的目标(包括零),而误报则由平均平均精度(mAP)度量来惩罚。定位任务是分类和检测之间的一个方便的中间步骤,它允许我们独立于特定于检测的挑战(例如学习一个背景类)来评估我们的定位方法。在图1中,我们展示了带有定位/检测预测以及相应的groundtruth的图像示例。注意,分类和定位共享相同的数据集,而检测也有额外的数据,其中目标可以更小。检测数据还包含一组没有特定目标的图像。这可以用于引导,但在本文中我们没有使用它。

3、分类

我们的分类体系结构类似于krizhevsky等人的最佳ILSVRC12体系结构。但在网络设计和推理步骤上进行了改进。由于时间的限制,Krizhevsky模型中的一些训练特性没有得到充分的研究,因此我们期望我们的结果能够得到进一步的提高。这些将在以后的工作第6节中讨论

3.1、模型设计和训练

我们使用ImageNet 2012训练集(120万张图片,C = 1000个类)对网络进行训练。我们的模型使用了Krizhevsky等人在训练时提出的相同的固定输入大小方法,但是在下一节中我们将转向多尺度分类。每幅图像都向下采样,使最小的维数为256像素。然后我们提取5个大小为221x221像素的随机作物(以及它们的水平翻转),并以128像素的小批量呈现给网络。在网络初始化随机权重

。然后通过随机梯度下降更新,伴随着动量项的0.6和ℓ2重量1×10−5的衰减。学习速率最初为

,经过(30、50、60、70、80)个迭代后,学习速率依次降低0.5倍。在分类器的全连通层(6层和7层)上采用了速度为0.5的DropOut。我们在表1和表3中详细说明了体系结构的大小。注意,在训练期间,我们将此架构视为非空间(大小为1x1的输出映射),而不是生成空间输出的推理步骤。图层1-5与Krizhevsky等人的相似,使用校正(“relu”)非线性和最大池,但有以下区别:(i)没有使用对比度归一化;(ii)池区域不重叠,(iii)由于步长较小(2步而不是4步),我们的模型具有较大的第1层和第2层feature map。在图2中,我们展示了前两个卷积层的滤波系数。第一层过滤器捕获有方向的边缘、模式和水滴。在第二层,过滤器有各种各样的形式,一些是漫反射的,另一些具有很强的线结构或定向边缘。

3.1、特征提取

为了给计算机视觉研究提供强大的功能,本文同时发布了一个名为“OverFeat”的特征提取器。提供了两种模型,一种快速准确的模型。表1和表3描述了每种体系结构。我们还在表4中比较了它们的参数和连接。accuratemodel比fast模型更精确(表2中的分类错误为16.39%,而精确模型的分类错误为14.18%),但是它需要的连接数几乎是fast模型的两倍。使用7个精度指标组成的委员会,分类误差达到13.6%,如图4所示。

3.3、多尺度分类

在ImageNet中,使用多视图投票来提高性能:一组固定的10个视图(4个角和中心,水平翻转)平均。然而,这种方法可能忽略图像的许多区域,并且当视图重叠时在计算上是冗余的。此外,它只适用于一个单一的规模,这可能不是在该规模的卷积神经网络将作出最佳的置信度。相反,我们通过在每个位置和多个尺度上密集地运行网络来探索整个图像。虽然对于某些类型的模型,滑动窗口方法在计算上可能是禁止的,但是在使用ConvNets的情况下,它本质上是有效的。这种方法产生了更多的投票视图,在保持效率的同时增加了健壮性。对任意大小的图像进行卷积得到的结果是每个尺度上的c维向量的空间映射。

然而,上述网络的总子采样率为2x3x2x3,即36。因此,当应用密集时,该体系结构只能在沿每个轴的输入维中每36个像素生成一个分类向量。与10视图方案相比,这种输出的粗分布降低了性能,因为网络窗口与图像中的对象不匹配。网络窗口和目标的对齐越好,网络响应的置信度就越高。为了避免这个问题,我们采用了与Giusti等人介绍的类似的方法,并在每个偏移量上应用最后的子采样操作。这样就消除了这一层的分辨率损失,得到的总子采样率为x12,而不是x36。现在,我们将详细解释如何执行分辨率增强。我们使用了6种输入比例,这导致了不同分辨率的未合并的第5层映射(参见表5)。然后将这些数据汇集起来,通过如下步骤呈现给分类器,如图3所示:

(a)对于给定比例的单个图像,我们从未合并的layer 5 feature maps开始。

(b)每个未拼合的映射都进行3x3 max拼合操作(非重叠区域),对于{0,1,2}的(∆x,∆y)像素偏移量重复3x3次。

(d)分类器(第6、7、8层)的输入大小固定为5x5,并为池映射中的每个位置生成c维输出向量。分类器以滑动窗口的方式应用于合并的映射,生成c维输出映射(对于给定的(∆x,∆y)组合)。

(c)这产生了一组汇集的特征图,为不同的(∆x,∆y)组合复制(3x3)次。

(e)将不同(∆x,∆y)组合的输出映射重新构造为一个3D输出映射(两个空间维度x C类)。

这些操作可以看作是在不进行子采样的情况下,通过池化层将分类器的查看窗口移动1个像素,并在下一层使用skip- kernel(其中邻域中的值是不相邻的)。或者等价地,在每个可能的偏移量处应用最后的池化层和完全连接的堆栈,并通过交叉输出组装结果。对每个图像的水平翻转版本重复上述过程。然后,我们通过(i)在每个尺度和翻转中取每个类的空间最大值来生成最终的分类;(ii)对不同尺度和翻转得到的c维向量求平均值,(iii)从平均类向量中取前1或前5个元素(取决于评估标准)。在直观的层面上,网络的两部分——即特征提取层(1-5)和分类器层(6-输出)以相反的方式使用。在特征提取部分,过滤器在一次通过整个图像进行卷积。从计算的角度来看,这比在图像上滑动固定大小的特征提取器,然后聚合来自不同位置的结果要有效得多。但是,对于网络的分类器部分,这些原则是相反的。在这里,我们希望在不同位置和尺度的第5层特性映射中寻找固定大小的表示。因此,该分类器有一个固定大小的5x5输入,并完全应用于第5层映射。穷举池方案(单像素移位(∆x,∆y))保证了分类器与特征图中对象的表示之间能够获得良好的对齐。

3.4、结果

在表2中,我们对不同的方法进行了实验,并将其与Krizhevsky等人的单网络模型进行了比较,以供参考。上述方法采用6个量表,错误率前5名为13.6%。正如预期的那样,使用更少的尺度会损害性能:单尺度模型的性能更差,前5位误差为16.97%。图3所示的精细跨步技术对单尺度系统的改进相对较小,但对图中所示的多尺度增益也很重要。

我们在图4中报告了2013年比赛的测试集结果,我们的模型(OverFeat)通过对7个ConvNets(每个ConvNets都经过不同的初始化训练)的投票,获得14.2%的准确率,在18支队伍中排名第5。仅使用ILSVRC13数据的最佳准确度为11.7%。通过使用来自ImageNet Fall11数据集的额外数据进行预培训,这个数字提高到了11.2%。在比赛后的工作中,我们通过使用更大的模型(更多的特性和更多的层)将超专长结果的误差降低到13.6%。由于时间的限制,这些较大的模型没有得到充分的训练,更多的改进有望及时出现。

3.5、卷积网络和滑动窗效率

与许多每次为输入的每个窗口计算整个管道的滑动窗口方法相反,当以滑动方式应用ConvNets时,它本质上是高效的,因为它们自然地共享重叠区域的公共计算。当我们在测试时将网络应用于较大的图像时,我们只需在整个图像的范围内应用每个卷积。这扩展了每一层的输出,以覆盖新的图像大小,最终生成一个输出类预测的映射,为输入的每个“窗口”(视图字段)提供一个空间位置。如图5所示。卷积是自底向上应用的,因此对相邻窗口的计算只需执行一次。注意,我们架构的最后一层是完全连接的线性层。在测试时,这些层被具有1x1空间范围内核的卷积操作有效地替换。然后,整个ConvNet只是一系列卷积、最大池化和阈值化操作。

4、定位

从分类训练网络出发,用回归网络代替分类器层,训练其预测每个空间位置和尺度上的目标边界盒。然后,我们将回归预测与我们现在描述的每个位置的分类结果结合在一起。

4.1、生成预测

为了生成目标边界框预测,我们同时在所有位置和尺度上运行分类器和回归器网络。由于它们共享相同的特征提取层,因此只需要在计算分类网络之后重新计算最终的回归层。类c在每个位置的最后一个softmax层的输出提供了一个评分,以确定在相应的视图字段中是否存在类c的对象(尽管不一定完全包含)。因此,我们可以为每个边界框分配一个置信度。

4.2、回归器的训练

回归网络将来自第5层的汇集特性作为输入。它有两个完全连接的隐藏层,大小分别为4096和1024通道。最后的输出层有4个单元,它们指定边界框边缘的坐标。与分类一样,由于∆x、∆y的移动,整个分类中有(3x3)个副本。结构如图8所示。

我们解决分类的特征提取层(1 - 5)网络和训练回归预测之间的网络使用一个ℓ2损失为每个示例和真正的边界框。最后一个回归层是特定于类的,有1000个不同的版本,每个类一个。我们使用与第3节中描述的相同的一组比例尺来训练这个网络。我们比较预测的回归量净在每个空间位置与真实边界框,转移到参照系的回归量翻译抵消在卷积(见图8)。然而,我们不训练回归量与不到50%重叠边界框输入字段的观点:因为目标主要是在这些位置,最好将由回归窗口确实包含的目标。多尺度回归方法的训练对跨尺度预测组合具有重要意义。单一规模的训练在这个规模上表现良好,在其他规模上也表现合理。然而,多尺度训练能够使预测在不同尺度下正确匹配,并成倍地提高合并预测的可信度。反过来,这允许我们只使用几个尺度就可以很好地执行,而不是像检测中的典型情况那样使用多个尺度。典型的比率从一个扩展到另一个在行人检测约为1.05至1.1,但是我们使用一个大的比例大约1.4(这个数字为每个不同规模由于维度的调整来适应完全网络)的脚步,让我们运行我们的系统更快。

4.3、组合预测

我们使用下面的算法,通过一个应用于回归函数边界框的greedymerge策略来组合单个预测(见图7)。

(a)对于每个scale s∈1 . .6、通过获取该尺度空间位置上的最大检测类输出。

(b)将回归器网络为Cs中每个类预测的一组边界框分配给Bs,这些边界框跨越s标度上的所有空间位置。

(c)分配

(d)重复合并单元:

(e)

(f)如果

,停止

(g)否则,设置

在上面的例子中,我们使用两个边界框的中心距离和框的交集面积之和来计算匹配得分。框合并计算边界框坐标的平均值。最后的预测是用带有最大类分数的边界框给出的。这是通过累积添加与预测每个边界框的输入窗口相关联的检测类输出来计算的。有关合并到单个高置信度边界框中的边界框的示例,请参见图6。在这个例子中,一些海龟和鲸鱼的边界框出现在中级仿真级的步骤中,但是在最终的检测图像中消失了。这些边界框不仅分类置信度较低(最多分别为0.11和0.12),而且它们的集合不像熊边界框那样连贯,从而获得显著的置信度提升。熊盒子有很强的信心(平均每个量表约0.5分)和高匹配分数。因此,在合并后,许多熊包围盒被融合成一个非常高的置信盒,而假阳性由于缺乏包围盒的一致性和置信度而在检测阈值以下消失。这一分析表明,通过奖励边界框一致性,我们的方法对来自纯分类模型的假阳性比传统的非最大抑制方法具有更强的鲁棒性。

4.4、实验

我们将我们的网络应用到Imagenet 2012验证集,使用为比赛指定的定位标准。结果如图9所示。图10为2012年和2013年国产化比赛结果(这两年的训练和测试数据相同)。我们的方法是2013年比赛的优胜者,误差为29.9%。我们的多尺度、多视图方法对于获得良好的性能至关重要,如图9所示:我们的回归网络仅使用一个集中的裁剪,错误率达到40%。通过结合来自两个尺度的所有空间位置的回归预测,我们获得了一个更好的错误率31.5%。添加第三和第四尺度进一步提高了性能,误差达到了30.0%。对于每个类,在回归网络中为每个类使用不同的顶层(图9中的Per-Class regression sor (PCR)),令人惊讶的是,仅使用所有类共享的一个网络并没有取得更好的效果(44.1% vs. 31.3%)。这可能是因为在训练集中,每个类中使用包围框标注的例子相对较少,而网络的顶层参数要多1000倍,导致训练不足。这种方法可以通过只在相似的类之间共享参数来改进(例如,为所有类的狗训练一个网络,为车辆训练另一个网络,等等)。

5、检测

检测训练类似于分类训练,但在空间上存在差异。可以同时训练图像的多个位置。由于模型是卷积的,所以所有的权值在所有位置之间共享。与本地化任务的主要区别在于,当没有目标存在时,有必要预测一个后台类。传统上,负样本最初是随机抽取来训练的。然后,最令人讨厌的负面错误被添加到引导带传球的训练集中。独立的引导遍历使训练变得复杂,并且在负样本收集和训练时间之间存在潜在的不匹配风险。此外,需要调整引导传递的大小,以确保训练不会在一个小集合上过度。为了避免所有这些问题,我们动态地执行负面训练,为每张图像选择一些有趣的负样本,比如随机的例子或最令人讨厌的例子。这种方法计算开销更大,但使过程简单得多。由于特征提取最初是通过分类任务进行训练的,因此检测微调的时间并不长。在图11中,我们报告了ILSVRC 2013竞赛的结果,我们的检测系统以19.4%的平均精度(mAP)排名第三。我们后来建立了一个新的检测状态的艺术与24.3%的地图。注意,前3种方法与其他团队之间有很大的差距(第4种方法生成11.5%的map)。此外,我们的方法与前两个系统有很大的不同,前两个系统使用初始分割步骤将候选窗口从大约200,000个减少到2,000个。这种技术加快了推断速度,并大大减少了潜在的误报数量。结合我们的方法,我们可以看到类似的改进,在这里看到传统的密集方法和基于分割的方法。还需要注意的是,我们没有像NEC和UvA那样对检测验证集进行微调。验证集和测试集的分布与训练集有很大的差异,仅这一点就可以将结果提高大约1个百分点。图11中两个OverFeat结果之间的改善是由于训练时间的延长和上下文的使用,即每个scale也使用较低分辨率的scale作为输入。

6、讨论

我们提出了一种多尺度、滑动窗口的分类、定位和检测方法。我们将其应用于ILSVRC 2013数据集,目前分类排名第四,定位排名第一,检测排名第一。本文的第二个重要贡献是解释如何有效地将ConvNets用于检测和定位任务。我们提出的方案包括对设计用于分类的网络进行大量修改,但清楚地表明ConvNets能够完成这些更具挑战性的任务。我们的本地化方法赢得了2013年ILSVRC竞赛,显著优于2012年和2013年的所有方法。检测模型在比赛中表现优异,在赛后结果中排名第一。我们提出了一个完整的管道,可以执行不同的任务,同时共享一个共同的特征提取基础,完全从像素直接学习。我们的方法仍可能在几个方面得到改进。(1)就本地化而言,我们目前并没有透过整个网络进行支援;这样做可能会提高性能。(2)我们使用ℓ2损失,而不是直接优化intersection-over-union(借据)性能是衡量的标准。由于IOU仍然是可微的,只要有一些重叠,就应该可以把损失换成这个。边界框的其他参数化可能有助于减少输出之间的联系,这将有助于网络训练。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Scalable Object Detection using Deep Neural Networks

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    于小勇
  • Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    于小勇
  • EnlightenGAN: Deep Light Enhancement without Paired Supervision

    基于深度学习的方法在图像恢复和增强方面取得了显著的成功,但在缺乏成对训练数据的情况下,它们是否仍然具有竞争力?作为一个例子,本文探讨了弱光图像增强问题,在实践中...

    于小勇
  • 【OverFeat】Integrated Recognition, Localization and Detection using Convolutional Networks(2014) 全文翻译

    Pierre Sermanet, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus, Yann LeC...

    魏晓蕾
  • Sublime Text3作为React Native的开发IDE

    使用Sublime Text3作为React Native的开发IDE,首先就要安装插件,默认的Sublime 3中没有Package Control,要进行安...

    赵哥窟
  • Rust FFI 编程 - Rust导出共享库03

    我们已经了解了,Rust语言是多泛式(混合泛式)的语言,它可以做命令式(过程式)编程,也可以做面向对象编程,也可以做函数式编程。把Rust简单地归类为某种泛式的...

    MikeLoveRust
  • Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十)打包项目并发布到子目录

    Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十)打包项目并发布到子目录 前情回顾 通过上一章《Vue2+VueRou...

    FungLeo
  • 深度学习与机器学习中开源图片数据库汇总

    数据的准备工作是训练模型前的必要工作,显然这也是非常耗时的,所以在入门阶段我们完全可以用现有的开源图片库快速完成前期的准备工作: ImageNet ImageN...

    chaibubble
  • 游戏安全:某某游戏的反外挂检测

    目录: NDK的检测点 1.检测Xposed框架 2.检测是否ROOT 3.检测Magisk Manager工具

    箜道
  • GAN之父Ian Goodfellow :那个赋予机器想象力的人类

    大数据文摘

扫码关注云+社区

领取腾讯云代金券