当前位置:   article > 正文

Deep Residual Learning for Image Recognition_deep residual learning for image recognition.

deep residual learning for image recognition.

参考   Deep Residual Learning for Image Recognition - 云+社区 - 腾讯云

摘要

更深层次的神经网络更难训练。我们提出了一个残差学习框架来简化网络的训练,这些网络比以前使用的网络要深的多。我们显式地将层重新表示为参考层输入的学习残差函数,而不是学习未引用的函数。我们提供了全面的经验证据表明,这些残差网络更容易优化,并可以从大幅增加的深度获得精度。在ImageNet数据集上,我们评估了高达152层的剩余网—比VGG网深8倍,但仍然具有较低的复杂性。这些残差网的集合在ImageNet测试集上的误差达到3.57%,该结果在ILSVRC 2015年分类任务中获得第一名。我们还对CIFAR-10进行了100层和1000层的分析。

在许多视觉识别任务中,表征的深度是至关重要的。仅仅由于我们的深度表示,我们在COCO目标检测数据集获得了28%的相对提升。深度残差网是我们参加ILSVRC & COCO 2015竞赛s1的基础,并在ImageNet检测、ImageNet定位、COCO检测、COCO分割等方面获得第一名。

1、简介

深度卷积神经网络在图像分类方面取得了一系列突破。深度网络自然地以端到端多层方式集成了低/中/高级特性和分类器,而特性的“层次”可以通过堆叠层的数量(深度)来丰富。最近的证据表明网络深度是至关重要的,在颇具挑战性的ImageNet数据集上的领先结果都利用了“非常深”的模型,深度为16到30。许多其他非琐碎的视觉识别任务也从非常深入的模型中受益匪浅。

在深度重要性的驱动下,一个问题出现了:学习更好的网络就像叠加更多的层那么容易吗?回答这个问题的一个障碍是声名狼藉的梯度渐变消失/爆炸问题,它从一开始就阻碍了收敛。然而,这个问题主要通过规范化初始化和中间正则化层来解决,这使得具有数十层的网络可以开始收敛,使用反向传播进行随机梯度下降(SGD)。

当更深层次的网络能够开始收敛时,一个退化问题就暴露出来了:随着网络深度的增加,精度达到饱和(这可能并不奇怪),然后迅速退化。出乎意料的是,这种退化并不是由过拟合引起的,在一个合适的深度模型中增加更多的层会导致更高的训练误差,我们的实验也完全验证了这一点。图1给出了一个典型的例子。

(训练精度的)下降表明,并非所有系统都同样容易优化。让我们考虑一个更浅的体系结构及其更深层的对应结构,它在上面添加了更多的层。通过构造更深层的模型,存在一个解决方案:添加的层是身份映射,其他层是从学习的较浅的模型中复制的。该构造解的存在表明,较深的模型不会产生比较浅的模型更高的训练误差。但实验表明,我们现有的求解器无法找到比构造的解更好或更好的解(或在可行时间内无法找到)。

在本文中,我们通过引入一个深度残差学习框架来解决退化问题。我们不希望每个堆叠的层都能直接匹配所需的底层映射,而是显式地让这些层匹配残差映射。形式上,将所需的底层映射表示为,我们让堆叠的非线性层适合的另一个映射:。原始映射是。我们假设优化残差映射比优化原始的未引用映射更容易。在极端情况下,如果一个身份映射是最优的,那么将残差推到零要比通过一堆非线性层来匹配一个身份映射容易得多。

的表达式可以通过具有“跳跃连接”的前馈神经网络来实现(图2)。跳跃连接是指跳过一个或多个层的连接。在我们的例子中,跳跃连接只是执行标识映射,它们的输出被添加到堆叠层的输出中(图2)。整个网络仍然可以通过SGD使用反向传播进行端到端训练,并且可以使用公共库轻松实现,而无需修改求解器。

我们在ImageNet上进行了综合实验,证明了退化问题,并对我们的方法进行了评价。研究结果表明:1)极深残差网易于优化,而相对的“普通”网(即简单的叠加层)在深度增加时训练误差较大;2)我们的深度残差网可以很容易地从深度的大幅增加中获得精度增益,产生的结果大大优于以前的网络。

在CIFAR-10数据集上也出现了类似的现象,说明我们的方法的优化难度和效果并不仅仅与特定的数据集类似。我们在这个超过100层的数据集中成功地展示了经过训练的模型,并探索了超过1000层的模型。

在ImageNet分类数据集上,利用极深残差网获得了很好的分类结果。我们的152层残差网是迄今为止在ImageNet上出现的最深的网络,但仍然比VGG复杂度低。我们的合集在ImageNet测试集中有3.57%的top-5错误,并在2015 ILSVRC分类竞赛中获得第一名。其极深的表示在其他识别任务上也具有良好的泛化性能,使我们在2015 ILSVRC & COCO竞赛中进一步获得了第一名:ImageNet检测、ImageNet定位、COCO检测、COCO分割。这一强有力的证据表明,残差学习原理是通用的,我们希望它能适用于其他视觉和非视觉问题。

2、相关工作

剩余的表示:

在图像识别中,VLAD是一种由字典中的剩余向量进行编码的表示,Fisher向量可以表述为VLAD的概率版本。它们都是图像检索和分类的强大浅层表示。对于矢量量化,残差矢量编码比原始矢量编码更有效。

在低层次视觉和计算机图形学中,为了求解偏微分方程(PDEs),广泛使用的多重网格方法[3]将系统重新表述为多个尺度上的子问题,其中每个子问题负责粗糙尺度和精细尺度之间的残差解。多重网格的替代方案是层次基础预处理,它依赖于表示两个尺度之间剩余向量的变量。已经证明这些求解器收敛得比不知道解的残差性质的标准求解器快得多。这些方法表明,良好的再配方或预处理可以简化优化。

快捷方式连接:

导致捷径连接的实践和理论已经研究了很长时间。训练多层感知器(MLPs)的早期实践是添加一个连接网络输入和输出的线性层。在[43,24]中,一些中间层直接连接到辅助分类器,用于寻址消失/爆炸梯度。[38,37,31,46]的论文提出了通过快捷连接实现对中心层响应、梯度和传播误差的方法。在[43]中,“初始”层由一个快捷分支和几个更深层次的分支组成。

与我们的工作同时,“highway networks”提供了具有门控功能的快捷连接。 这些门依赖于数据并具有参数,而我们的身份快捷方式是无参数的。 当门控快捷方式“关闭”(接近零)时,公路网中的层代表非残差函数。 相反,我们的公式总是学习残差函数; 我们的身份捷径永远不会关闭,所有的信息总是通过,还有额外的剩余函数需要学习。 此外,高速公路网络在深度(如超过100层)极大增加的情况下也没有显示出精度的提高。  

3、深度残差学习

3.1、残差学习

让我们考虑作为一个底层映射,由几个堆叠的层(不一定是整个网络)匹配,x表示这些层中第一个层的输入。假设多个非线性层可以渐近逼近复杂函数,则等价于假设它们可以渐近逼近残差函数,即, (假设输入和输出的维数相同)。因此,我们不期望堆叠层近似于,而是显式地让这些层近似于残差函数。原始函数因此成为。虽然这两种形式都应该能够渐进地逼近所需的函数(假设的那样),但学习的容易程度可能有所不同。

这种重新制定的动机是关于降解问题的反直觉现象(图1,左)。正如我们在介绍中所讨论的,如果可以将添加的层构造为标识映射,那么较深的模型应该不会比较浅的模型有更大的训练误差。退化问题表明,求解者可能难以用多个非线性层逼近身份映射。在残差学习重公式中,如果恒等映射是最优的,求解者可以简单地将多个非线性层的权值趋近于零来逼近恒等映射。

在实际情况中,标识映射不太可能是最优的,但是我们的重新构造可能有助于预先解决问题。如果最优函数更接近于恒等映射而不是零映射,那么求解者应该更容易找到与恒等映射相关的扰动,而不是将函数作为一个新的函数来学习。实验表明(图7),学习后的残差函数一般响应较小,这说明恒等映射提供了合理的预处理。

                               

3.2、用短连接确认映射

我们将残差学习应用于每几个堆叠层。构建块如图2所示。在本文中,我们正式地将构建块定义为:

                                                \large y=F(x,\{W_i\}) + x               (1)

                                          

这里xy是考虑的层的输入和输出向量。函数表示要学习的剩余映射。对于图2中的示例有两层,\large F=W_2\sigma(W_1 x)表示ReLU和偏置值的简化符号。操作是通过快捷连接和元素添加来执行的。我们采用加法后的第二个非线性(即σ(y),请参见图2)。

式(1)引入额外的参数和计算复杂性。这不仅在实践中很有吸引力,而且在我们比较普通网络和剩余网络时也很重要。我们可以比较同时具有相同数量的参数、深度、宽度和计算成本的普通/剩余网络(除了可以忽略的元素添加)。

的维数必须相等。如果不是这样(例如,当改变输入/输出通道时),我们可以通过快捷连接执行线性投影\large W_s来匹配尺寸:

                                                     \large y=F(x,\{W_i\})+W_s x       (2)

我们也可以在式(1)中使用一个方阵。但是,我们将通过实验证明,身份映射足以解决退化问题,并且是节约的,因此,只在匹配维度时使用。

残差函数的形式是灵活的。本文的实验涉及到一个函数,它有两层或三层(图5),但可能有更多层。但是如果F只有单层,类似于线性层:y = W_1x + x,我们没有观察到它的优点。

我们还注意到,尽管为了简单起见,上面的表示法是关于全连接层的,但是它们适用于卷积层。函数F(x,\{Wi\})可以表示多个卷积层。元素方面的添加是在两个特征图上逐通道执行的。

                      

3.3、网络结构

我们测试了各种平网/残网,并观察到一致的现象。为了提供实例供讨论,我们将ImageNet的两个模型描述如下。

Plain网络:我们的简单baseline(图3,中间)主要受到VGG思想的启发(图3,左边)。卷积层大多有3×3个滤波器,并遵循两个简单的设计规则:(i)、对于相同的输出特征图大小,各层具有相同数量的滤波器;(ii)、如果将特征图的大小减半,则会将filter的数量增加一倍,以保持每一层的时间复杂度。我们直接通过步长为2的卷积层执行下行采样。网络以一个全局平均池层和一个带有softmax的1000路全连接层结束。图3(中)加权层数为34层。值得注意的是,我们的模型比VGG具有更少的滤波器和更低的复杂度(图3,左)。我们的34层baseline有3.6亿FLOPs(多次添加),这只是VGG-19(1.96亿FLOPs)的18%。

                           

残差网络:基于上面的纯网络,我们插入跳跃连接(图3,右侧),将网络转换为对应的剩余版本。身份快捷键时可以直接使用输入和输出是相同的维度。当维度增加(图3中虚线的快捷方式),我们认为两个选择:

(A)、快捷方式仍然执行标识映射,用额外的零增加维度的条目填充。此选项不引入额外参数;

(B)、式(2)中的投影跳跃用于匹配尺寸(1×1卷积)。

对于这两种选项,当跳跃方式跨越两种大小的功能映射时,它们的执行步骤都是2。

3.4、实现

我们对ImageNet的实现遵循了中的实践。在AlexNet中,图像的短边随机采样,然后调整大小,以便对AlexNet进行缩放。从图像或其水平翻转中随机抽取224×224裁剪,每个像素的平均值减去。使用AlexNet中的标准颜色增强。我们采用批标准化(BN)在每次卷积之后,在激活之前,在BN之后。我们从零开始训练所有普通/残差网格。我们使用SGD,小批量大小为256。学习率从0.1开始,当误差趋于平稳时,除以10,对模型进行多达60×104次迭代的训练。我们使用重量衰减为0.0001,动量为0.9。按照中的实践,我们不使用dropout。

在试验中,为了进行比较研究,我们采用了标准的10-crop试验。为了得到最好的结果,我们采用了完全卷积的形式,并在多个尺度上平均分数(图像的大小进行了调整,使较短的边为)。

4、实验

4.1、ImageNet 分类

我们在包含1000个类的ImageNet 2012分类数据集上评估了我们的方法。模型在128万张训练图像上进行训练,并在50k验证图像上进行评价。我们还获得了测试服务器报告的100k测试图像的最终结果。我们评估了前1名和前5名的错误率。

Plain网络:

我们首先评估18层和34层的普通网。34层平面网如图3(中)所示。18层的普通网也是类似的形式。详细架构见表1。

表2的结果表明,较深的34层平面网比较浅的18层平面网具有更高的验证误差。为了揭示原因,在图4(左)中,我们比较了他们在训练过程中的训练/验证错误。我们已经观察到退化问题——34层的平面网络在整个训练过程中具有更高的训练误差,尽管18层平面网络的解空间是34层平面网络解空间的子空间。

我们认为这种优化困难不太可能是由梯度渐变消失引起的。这些普通网络使用BN进行训练,这确保了正向传播的信号具有非零方差。我们还验证了后向传播梯度具有BN的健康范数。因此,正向和反向信号都不会消失。事实上,34层的plain net仍然能够达到较好精度(表3),说明求解器在一定程度上是可行的。我们推测,深平原网可能具有指数低收敛速度,这影响了训练误差的降低。这种优化困难的原因将在未来进行研究。

                                                 

残差网络:

接下来我们评估18层和34层剩余网(ResNets)。基线架构与上面的普通网相同,除了在每对3×3滤波器中添加一个跳跃连接外,如图3(右)所示。在第一个比较中(表2和图4右),我们对所有跳跃方式使用标识映射,对增加维度使用零填充(选项A)。

我们从表2和图4中得到了三个主要的观察结果。首先,这种情况与剩余学习相反——34层的ResNet优于18层的ResNet(占2.8%)。更重要的是,34层的ResNet显示出相当低的训练误差,并可推广到验证数据。这表明退化问题在这个设置中得到了很好的解决,我们设法从增加的深度中获得精度增益。

其次,与普通的ResNet相比,34层ResNet将top-1的误差降低了3.5%(表2),这是由于成功地降低了训练误差(图4)。这一比较验证了残差学习在极深系统上的有效性。

最后,我们还注意到,18层的plain/residual nets是比较精确的(表2),但是18层的ResNet收敛得更快(图4)。当网络“不太深”(这里是18层)时,当前的SGD求解器仍然能够找到针对普通网络的良好解决方案。在这种情况下,ResNet通过在早期提供更快的收敛速度来简化优化。

                                   

身份和投影短连接:

我们已经证明,无参数、身份跳跃方式有助于训练。接下来我们研究投影捷径。在表3中,我们比较了三个选项:

(A)增加维度时使用零填充跳跃方式,并且所有跳跃方式都没有参数(与表2和图4相同);

(B)投影跳跃方式用于增加维度,其他跳跃方式为标识;

(C)所有跳跃都是投影。

表3显示,这三个选项都比普通选项好得多。B比A稍微好一点。我们认为这是因为A中的零填充维度确实没有残差学习。C略好于B,我们将其归因于许多(十三)个投影跳跃方式引入的额外参数。但是,A/B/C之间的微小差异表明,跳跃捷径对于解决退化问题并不是必需的。因此,在本文的其余部分中,我们没有使用选项C来降低内存/时间复杂度和模型大小。标识跳跃方式对于不增加下面介绍的瓶颈体系结构的复杂性尤其重要。

更深的Bottleneck结构:

接下来,我们将描述ImageNet的深层网络。考虑到我们能够负担的训练时间,我们将构建块修改为瓶颈设计。对于每个残差函数F,我们使用3层的堆栈代替2层(图5),这3层分别是1×1,3×3和1×1卷积,其中1×1层负责减少然后增加(恢复)维数,使得3×3层成为输入/输出维数更小的瓶颈。图5给出了一个例子,其中两种设计具有相似的时间复杂度。

无参数标识跳跃方式对于瓶颈体系结构尤其重要。如果将图5(右)中的identity跳跃方式换成投影,可以看出,由于跳跃方式连接到两个高维端,时间复杂度和模型大小都增加了一倍。因此,标识跳跃方式为瓶颈设计带来了更高效的模型。

                             

50层的ResNet:

我们将34层网络中的每个2层块替换为这个3层瓶颈块,得到一个50层ResNet(表1)。这个模型有3.8亿FLOPs。

101层和152层的ResNets:

我们使用更多的3层块构建了101层和152层ResNet(表1)。值得注意的是,虽然深度显著增加,但是152层ResNet(11.3亿FLOPs)的复杂度仍然低于VGG-16/19t(15.3/19.6亿FLOPs)。

50/101/152层的ResNets比34层的精度高很多(表3和表4)。我们没有观察到降解问题,因此从深度的大幅增加中获得了显著的精度收益。所有评估指标都可以看到深度的好处(表3和表4)。

                                             

和最先进方法的比较:

在表4中,我们与以前最好的单模型结果进行了比较。我们的基准34层ResNets实现了非常具有竞争力的准确性。我们的152层ResNet的单模型top-5验证误差为4.49%。这个单模型的结果优于之前所有的集成结果(表5)。我们将6个不同深度的模型组合成一个集成(在提交时只有两个152层的模型)。这导致了3.57%的测试集前5名错误(表5),该条目在ILSVRC 2015中获得第一名。

                                

4.2、CIFIAR-10和分析                         

我们对CIFAR-10数据集进行了更多的研究。CIFAR-10数据集包含10个类的50k训练图像和10k测试图像。我们在训练集上进行实验,并在测试集上进行评估。我们关注的是极深网络的行为,而不是推动最先进的结果,所以我们有意使用以下简单的架构。

平面/剩余架构遵循图3(中/右)中的形式。网络输入为32×32张图像,减去每像素均值。第一层是3×3个卷积。然后我们在尺寸为的特征图上分别使用6n层叠加3×3个卷积,每个特征图尺寸叠加2n层。滤波器的数量分别为。子采样是由步长为2的卷积构成的。网络以全球平均池、10路全连接层和softmax结束。共有6n+2层叠加加权层。下表总结了架构:

                                           

使用跳跃方式连接时,连接到3×3层(共3n个快捷方式)对。在这个数据集中,我们在所有情况下都使用标识跳跃方式。因此我们的残差模型与普通模型具有完全相同的深度、宽度和参数数量。

我们使用的权值衰减为0.0001,动量为0.9,在BN中采用权值初始化,但没有Dropout。这些模型在两个GPU上以128个小批处理大小进行训练。我们从0.1的学习率开始,在32k和48k迭代时除以10,在64k迭代时终止训练,这是在45k/5k的train/val分割上确定的。每边填充4个像素,从填充后的图像或其水平翻转中随机抽取32×32个裁剪。为了测试,我们只评估原始32×32图像的单一视图。

我们比较,得到20,32,44和56层网络。图6(左)为普通网的行为。深平网深度增加,训练误差较大。这一现象与ImageNet(图4,左)和MNIST上的现象相似,说明这种优化困难是一个基本问题。图6(中)为ResNets的行为。同样类似于ImageNet的情况(图4,右),我们的ResNets成功地克服了优化的困难,并在深度增加时显示出准确性的提高。

我们进一步研究n = 18导致110层ResNet。在本例中,我们发现初始学习率0.1略大,无法开始收敛。所以我们使用0.01来预训练,直到训练误差小于80%(大约400次迭代),然后回到0.1继续训练。剩下的学习计划和之前一样。这个110层的网络收敛得很好(图6,中间)。与FitNet和Highway等其他深、薄网络相比,它的参数更少(表6),但却是最先进的结果之一(6.43%,表6)。

                                  

层响应分析:图7为层响应的标准差(std)。响应为BN后、其它非线性(ReLU/加法)前各3×3层的输出。对于ResNets,该分析揭示了残差函数的响应强度。图7显示,ResNets的响应通常比普通的响应小。这些结果支持了我们的基本动机,即残差函数通常比非残差函数更接近于零。我们还注意到,更深的ResNet具有更小的响应幅度,从图7中ResNet-20、56和110之间的比较可以看出。当有更多的层时,单个的ResNets层倾向于较少地修改信号。

                    

研究超过1000层的:我们探索了一个超过1000层的深度模型。我们设置n = 200,得到一个1202层的网络,如上所述进行训练。我们的方法没有优化难度,这个层的网络能够实现小于0.1%的训练误差(图6,右)。

它的测试错误仍然相当好(7.93%,表6),但是对于如此激进的深度模型仍然存在一些未解决的问题。这个1202层网络的测试结果比我们110层网络的测试结果要差,虽然两者的训练误差相似。我们认为这是因为过拟合。对于这个小数据集,1202层的网络可能是不必要的大(19.4M)。使用maxout或dropout等强正则化方法来获得该数据集上的最佳结果。在本文中,我们不使用maxout/dropout,而只是通过设计将正则化通过深度和瘦架构来实现,而没有分散对优化难点的关注。但是结合更强的正则化可能会改善结果,我们将在未来进行研究。

4.3、在PASCAL和COCO上的目标检测

该方法对其它识别任务具有较好的泛化性能。表7和表8显示了PASCAL VOC 2007和2012年和COCO的目标检测baseline结果。我们采用Faster R-CNN作为检测方法。这里我们感兴趣的是用ResNet-101替换VGG-16的改进。使用这两种模型的检测实现(见附录)是相同的,因此只能将收益归功于更好的网络。最引人注目的是,在具有挑战性的COCO数据集上,我们获得了COCO标准度量(mAP@[.5, .95]),相对提高了28%。这种增益完全是由于学习的表示。

基于深度残差网,我们在2015年ILSVRC&COCO2015的ImageNet检测、ImageNet定位、COCO检测、COCO分割等多个赛道中获得第一名。详情见附录。

                                  

A、目标检测的baseline

我们介绍了基于baseline的Fast R-CNN系统的检测方法。模型由ImageNet分类模型初始化,然后对目标检测数据进行微调。在2015年ILSVRC & COCO检测竞赛中,我们使用ResNet-50/101进行了实验。与Faster R-CNN中使用的VGG-16不同,我们的ResNet没有隐藏的FC层。为了解决这一问题,我们采用了“基于Conv特征映射的网络”(NoC)的思想。我们使用在图像上的步长不超过16个像素(即, conv1, conv2 x, conv3 x, conv4 x,共91个conv层;表1).我们认为这些层类似于VGG-16中的13个conv层,通过这样做,ResNet和VGG-16都具有相同总步幅(16像素)的conv feature maps。这些层由一个区域建议网络(RPN,生成300个建议)和一个Fast R-CNN检测网络共享。RoI池化在conv5 1之前执行。在这个roi池特性上,每个区域都采用了conv5 x和up的所有层,扮演VGG-16的fc层的角色。最后一个分类层由两个同级层(分类和box regression)替换。对于BN层的使用,经过预训练后,我们计算ImageNet训练集上每一层的BN统计量(均值和方差),然后在微调过程中固定BN层进行目标检测。因此,BN层成为具有恒定偏移量和尺度的线性激活,BN统计数据没有通过微调进行更新。我们修正BN层主要是为了减少Faster R-CNN训练的内存消耗。

PASCAL VOC

接下来Fast R-CNN和Faster R-CNN,对于PASCAL VOC 2007测试集,我们使用VOC 2007中的5k训练图像和VOC 2012中的16k训练图像进行训练(“07+12”)。对于PASCAL VOC 2012测试集,我们使用VOC 2007中的10k trainval+测试图像和VOC 2012中的16k trainval图像进行训练(“07++12”)。训练速度更快的R-CNN的超参数与Faster R-CNN相同。表7显示了结果。ResNet-101比VGG-16提高了>3%。这完全是因为ResNet改进了特性。

MS COCO

MS COCO数据集涉及80个目标类别。我们评估PASCAL VOC度量(mAP @ IoU = 0.5)和标准COCO度量(mAP @ IoU =.5:.05:.95)。我们使用训练集上的80k张图像进行训练,使用val上的40k张图像进行评估。我们对COCO的检测系统类似于PASCAL VOC的检测系统。我们使用8- GPU实现来训练COCO模型,因此RPN步骤有一个8张图像的小批处理大小(即FastR-CNN步骤有16张图像的小批量大小。RPN步和Fast R-CNN步分别训练240k迭代和80k迭代,学习率分别为0.001和0.0001。表8显示了MS COCO验证集的结果。ResNet-101增加了6%的mAP@[.5, .95]相对于VGG-16,这是28%的相对改进,完全是由于更好的网络学习到的特性。值得注意的是,mAP@ [。绝对增长率(6.0%)几乎和mAP@一样大。这表明,更深层次的网络可以提高识别和定位。

B、目标检测的提升

为了完整起见,我们报告了比赛的改进情况。这些改进基于深层特性,因此应该受益于残差学习。

MS COCO

框细化:我们的框细化部分遵循了迭代定位。在Faster R-CNN中,最终的输出是一个回归框,与它的建议框不同。因此,对于推理,我们从回归框中汇集一个新的特征,得到一个新的分类分数和一个新的回归框。我们把这300个新的预测和原来的300个预测结合起来。将非最大抑制(NMS)应用于预测框的联合集,IoU阈值为0.3,然后进行框投票。框细化将mAP提高了约2个点(表9)。

                     

全局上下文:我们在Fast R-CNN步骤中结合了全局上下文。针对全图像conv feature map,我们通过全局空间金字塔池(带有“单层”金字塔)来汇聚一个特征,该特征可以使用整个图像的边界框作为RoI实现为“RoI”池。这个合并的特性被输入到后RoI层中,以获得全局上下文特性。这个全局特性与原始的每个区域特性连接在一起,然后是同级分类和框回归层。这种新结构是端到端训练的。全局上下文改进了mAP @.5约1个点(表9)。

多尺度测试:在上面,所有的结果都是通过单尺度的训练/测试得到的,就像在Faster R-CNN中,图像的短边是s = 600像素。在Fast R-CNN和SPPnet中,通过从特征金字塔中选择一个尺度开发了多尺度训练/测试,通过使用maxout层开发了多尺度训练/测试。由于时间有限,我们没有进行多尺度的训练。此外,我们只对Fast R-CNN步骤进行了多尺度测试(但还没有对RPN步骤进行测试)。利用训练好的模型,计算图像金字塔上的conv feature maps,其中图像的短边s∈{200,400,600,800,1000}。RoI池化和后续层在这两个尺度的feature map上执行,由maxout合并。多尺度测试将地图改进了2个点(表9)。

使用验证数据:接下来,我们使用80k+40k trainval集进行培训,并使用20k test-dev集进行评估。测试开发集没有公开可用的基本事实,结果由评估服务器报告。在此设置下,结果是mAP@.55.7%中的5和一个mAP@[.5, .95](表9)。这是我们的单模型结果。

全局:在Faster R-CNN中,该系统被设计用来学习区域建议和目标分类器,因此一个集成可以用来提高这两个任务。我们使用一个集合来提出区域,并通过每个区域分类器的集合来处理联合集。表9显示了基于3个网络集成的结果。在test-dev set上mAP分别为59.0%和37.4%,该结果在COCO 2015年的检测任务中获得第一名。

PASCAL VOC

基于上述模型,我们重新研究了PASCAL VOC数据集。使用COCO数据集上的单个模型(55.7% mAP@),表9)中,我们对PASCAL VOC集合上的模型进行了微调。还采用了框细化、上下文和多尺度测试的改进。通过这样做,我们在PASCAL VOC 2007上实现了85.6%的mAP(表10),在PASCAL VOC 2012上实现了83.8%的mAP(表11)。在PASCAL VOC 2012上的成绩比之前的最高分高出10分。

       

ImageNet检测

图像集检测(DET)任务涉及200个目标类别。精度通过map @ .5进行评估。我们针对ImageNet DET的目标检测算法与表9中的MS COCO相同。该网络在1000级的ImageNet分类集上进行预训练,并对DET数据进行微调。我们按照R-CNN将验证集分为两部分(val1/val2)。我们使用DET训练集和val1集对检测模型进行微调,使用val2集进行验证。我们不使用其他ILSVRC 2015数据。我们使用ResNet-101的单一模型在DET测试集上有58.8%的mAP,我们的3个模型的集成有62.1%的mAP(表12)。该结果在ILSVRC 2015年的ImageNet检测任务中获得第一名,以8.5分(绝对)的优势超过第二名。

                                           

C、ImageNet定位

ImageNet本地化(LOC)任务需要对目标进行分类和定位。在Overfeat之后,我们假设首先使用图像级分类器来预测图像的类标签,定位算法只考虑基于预测类来预测边界框。我们采用“每类回归”(per-class regression, PCR)策略,为每一类学习一个边界盒回归因子。我们对图像网络进行分类训练,然后对其进行本地化微调。我们在提供的1000级ImageNet训练集上训练网络。我们的定位算法基于RPN框架,只做了一些修改。与RPN中不区分类别的方法不同,我们用于本地化的RPN是按每个类的形式设计的。这个RPN以两个同级的1×1卷积层结束,用于二进制分类(cls)和box regression (reg)。与Faster R-CNN相比,cls和reg层都位于每个类的形式中。具体而言,cls层输出为1000-d,每个维度为二元逻辑回归,用于预测是否为目标类;reg层有一个1000×4-D的输出,由1000个类的box regression组成。就像在Faster R-CNN中一样,我们的边界框回归是参考每个位置上的多个平移不变的“锚”框。

在我们的ImageNet分类训练中,我们随机抽取224×224个作物样本进行数据增强。我们使用256张图像的小批处理大小进行微调。为避免负样本占主导地位,每张图像随机抽取8个锚点,其中正、负样本点的比例为1:1。为了进行测试,对图像进行全卷积处理。表13比较了定位结果。在VGG之后,我们首先使用ground truth类作为分类预测执行“oracle”测试。VGG的论文使用ground truth类重新报告了中心作物误差为33.1%(表13)。在相同的设置下,我们使用ResNet-101 net的RPN方法显著地将中心作物误差降低到13.3%。这个比较显示了我们的框架的出色性能。通过密集(全卷积)和多尺度测试,我们的ResNet-101使用ground truth类的错误率为11.7%。使用ResNet-101对分类进行预测(top-5位分类误差4.6%,表4),前5位定位误差为14.4%。以上结果仅基于Faster R-CNN中的proposal network (RPN)。可以在Fast R-CNN中使用检测网络(Fast R-CNN)来改进结果。但是我们注意到,在这个数据集中,一个图像通常包含一个主导目标,建议区域彼此高度重叠,因此具有非常相似的RoI池特性。因此,Fast R-CNN的以图像为中心的训练产生了小变化的样本,这对于随机训练可能是不需要的。受此启发,在我们目前的实验中,我们使用原始的R-CNN,它是以ROI为中心的,而不是Fast R-CNN。

我们的R-CNN实现如下。我们应用上述训练图像上的每个类RPN来预测ground truth类的边界框。这些预测框扮演着与类相关的建议的角色。对于每个训练图像,提取得分最高的200个proposal作为训练样本,训练R-CNN分类器。图像区域从建议中裁剪出来,扭曲到224×224像素,然后像R-CNN一样输入分类网络。这个网络的输出由cls和reg的两个同级fc层组成,也以每个类的形式。这个R-CNN网络使用以ROI为中心的256个小批处理大小在训练集上进行微调。对于测试,RPN为每个预测类生成得分最高的200个个建议,R-CNN网络用于更新这些提案的得分和框位置。该方法将前5位的定位误差降低到10.6%(表13)。这是我们在验证集上的单模型结果,使用网络集成进行分类和定位,我们在测试集上获得了9.0%的前5位定位误差,这个数字显著优于ILSVRC 14的结果(表14),表明相对误差降低了64%。该结果获得了2015年ILSVRC ImageNet定位任务第一名。

                                  

                                   

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/957488
推荐阅读
相关标签
  

闽ICP备14008679号