由于DeepMask相关论文为纯英文版对于英语不太好的人读起来有一定的难度,因此本人自己全篇翻译了一下该论文,希望能帮助到一些同学,当然其中肯定会有一些翻译不足之处也希望大家能给我留言,使作者可以加以改进。(对于其中的一些数学字符建议参考原英文文献阅读)
摘要
最近的目标检测系统依赖于两个关键步骤: (1)尽可能有效地预测一组对象建议,(2)然后将这一组候选建议传递给一个对象分类器。这些方法已经证明它们可以快速,同时达到最先进的检测性能。本文提出了一种新的目标建议生成方法,并引入了一种基于判别卷积网络的方法。我们的模型通过两个目标共同训练:给定一个图像补丁,系统的第一部分输出一个类不可知的分割掩模,而系统的第二部分输出补丁以一个完整对象为中心的可能性。在测试时,该模型有效地应用于整个测试图像,生成一组分割掩模,每个掩模被分配相应的对象拟真分数。我们表明,我们的模型产生了比最先进的对象建议算法的显著改进。特别是,与以前的方法相比,我们的模型使用更少的建议获得了明显更高的对象召回率。我们还表明,我们的模型能够推广到在训练期间看不见的类别。与以前所有生成对象掩码的方法不同,我们不依赖于边缘、超像素或任何其他形式的低级分割。
一介绍
目标检测是计算机视觉[21]中最基本的任务之一。直到最近,对象检测的主要范式是滑动窗口框架:一个分类器被应用于每个对象的位置和比例[4,8,32]。最近,吉希克等人[10]提出了一种两阶段的方法。.首先,使用一种快速(但可能不精确)的算法生成一组丰富的包含目标对象的候选区域(即,一组可能包含一个对象的图像区域)。其次,对每个候选区域都应用了卷积神经网络分类器。与经典的滑动窗口方法相比,该方法在目标检测精度方面有了显著的提高。从那时起,大多数针对帕斯卡VOC [7]和ImageNet [5]数据集的最先进的对象检测器都依赖于包含目标对象的候选区域作为第一个预处理步骤[10,15,33]。
Object proposal算法对象建议算法的目标是找到图像中可能包含对象的不同区域。由于效率和检测性能的原因,一个理想的建议方法应该具有三个关键特征:(1)高召回率(即,建议的区域应包含可能对象的最大数量),(2)高召回率应达到可能区域的最小数量,以及(3)建议的区域应尽可能准确地匹配对象。
在本文中,我们提出了一种基于卷积网络(ConvNets)[20]的Object proposal算法,它比现有的方法更好地满足这些约束条件。卷积网络是一类重要的算法,在许多大规模目标识别任务中被证明是最先进的算法。它们可以被看作是一个可训练的过滤器的层次结构,与非线性交错和池化。在克里日夫斯基等人[18]证明它们在ImageNet分类基准上表现非常好之后,使卷积神经网络(CNN)看到了复苏。此外,这些模型学习了足够广泛的图像特征,可以转移到许多不同的任务[10,11,3,22,23]。
给定一个输入图像补丁,我们的算法生成一个类不可知的掩码和一个相关的分数,该分数估计补丁完全包含一个中心对象(没有任何对象类别的概念)的可能性。我们的模型的核心是一个卷积网,它预测掩码和对象得分。网络的大部分内容在这两个任务之间共享:只有最后几个网络层被专门用于分别输出掩码和分数预测。该模型通过优化同时针对两个任务的成本函数进行训练。我们在MS COCO [21]上进行了训练,并在两个基于VOC [7]和MS COCO的目标检测数据集上对该模型进行了评估。
通过利用在ImageNet上训练的强大的卷积神经网络特征表示,并适应COCO中可用的大量分割训练数据,我们能够击败在多个场景下的object proposals生成的最新水平。我们最值得注意的成就是,我们的方法在考虑数量较少的建议的同时,大大超过了其他方法。此外,我们通过在训练中没有看到的对象类别上进行测试,来证明我们的模型的泛化能力。最后,与之前所有生成分割建议的方法不同,我们不依赖于边缘、超像素或任何其他形式的低级分割。我们的该方法是第一个学习直接从原始图像数据生成分割建议的方法。论文组织如下:2介绍了相关工作,3描述了我们的架构选择,4描述了我们在不同数据集中的实验。我们在第5节中得出结论。
二相关工作
近年来,ConvNets被广泛应用于对象识别领域。值得注意的系统包括AlexNet[18]和最近的GoogleLeNet[29]和VGG[27],它们在ImageNet上表现出色。在物体检测的设置中,Girshick等人[10]提出R-CNN,一个基于ConvNet的模型,它在很大程度上击败了依靠手工设计的模型特征。他们的方法可以分为两个步骤:选择一组显著的对象提议[31],然后是ConvNet分类器[18,27]。目前,最先进的物体检测方法[30,12,9,25]依赖于该管道。尽管它们在分类步骤中略有不同,但它们都共享第一步,即选择一组丰富的包含目标对象的候选区域。
大多数对象建议方法都利用了低级别的分组和显著性线索。这些方法通常分为三类: (1)客观性得分[1,34],建议提取通过测量边界框的客观性得分,(2)种子分割[14,16,17],模型从多个种子区域和生成单独的前景背景分割每个种子,和(3)超像素合并[31,24],多个过度分割是根据各种启发式合并。这些模型根据生成的提案的类型(边界框或分段掩码)以及提案是否被排序而有所不同。为了对object proposal方法进行更完整的调查,我们推荐Hosang等人[13]最近的调查。
虽然我们的模型与这些方法有很高的相似性(我们生成了一组经过排序的分割建议),但这些结果的实现却完全不同。以前所有的生成分割掩模的方法,包括具有学习组件的[17],都依赖于低级的分割,如超像素或边缘。相反,我们提出了一种基于深度网络架构的数据驱动的鉴别方法来获得我们的分割建议。
与我们的方法最密切相关的是,多盒[6,30]提出了训练一个ConvNet模型来生成边界框对象建议。他们的方法与我们的方法类似,生成了一组与类别无关的排名建议。然而,我们的模型生成了分割建议,而不是信息较少的边界框建议。此外,我们的方法和[30]之间的模型架构、训练方案等都有很大的不同。最近,深度盒[19]提出了一个ConvNet模型,该模型学习对EdgeBox生成的提案进行重新排序,这是一种自下而上的边界盒提案的方法。这个系统与我们的评分网络有一些相似之处。然而,我们的模型能够生成建议,并从测试图像中直接从像素空间对它们进行排序。最后,在这项工作的同时,Ren等人[25]提出了“区域提案网络”,用于生成与我们的工作有相似之处的盒子提案。然而,我们强调,与所有这些方法不同,我们的方法生成分割掩码,而不是边界框。
图1:(上)模型架构:在共享特征提取层后,将网络分成两个分支。顶部分支预测位于中心的对象的分割掩码,而底部分支预测输入补丁的对象分数。(下)训练三联体的示例:输入补丁x、掩码m和标签y。绿色补丁包含满足指定约束的对象,因此被分配了标签y = 1。注意,没有使用否定例子的掩罩(红色显示),仅为说明目的。
三深度掩码建议
我们的对象建议方法预测一个给定一个输入补丁的分割掩码,并根据补丁包含一个对象的可能性分配一个分数。
掩码预测和分数预测都是通过一个单一的卷积网络来实现的。convnet是一种灵活的模型,可以应用于各种计算机视觉任务,它们减轻了对手动设计特性的需要。它们灵活的特性允许我们设计一个模型,其中这两个任务(掩码和分数预测)可以共享网络的大部分层。只有最后一层是特定于任务的(请参见图1)。在训练过程中,这两个任务是共同学习的。与对这两个任务有两个不同网络的模型相比,这种体系结构的选择降低了模型的容量,并增加了测试时全场景推理的速度。
训练集中的每个样本k都是一个三联体,其中包含(1)RGB输入补丁Xk,(2)与输入补丁mk对应的二进制掩码(与m ij k∈{±1},其中(i,j)对应于输入补丁上的一个像素位置),以及(3)一个标签Yk∈{±1}它指定补丁程序是否包含一个对象。具体来说,如果一个补丁Xk满足以下约束条件,则给它标签Yk=1:(1)该补丁包含一个大致位于输入补丁的中心的对象(2)该对象完全包含在该补丁中,并且在给定的比例范围内。
否则,Yk =−1,即使一个对象部分存在。我们很快地给出了在我们的实验中使用的位置和尺度公差。假设Yk =为1,地面真实掩模mk仅对于作为位于补丁中心的单个对象的一部分的像素具有正值。如果是Yk =−1,则不使用掩模。图1,底部,显示了训练三胞胎的例子。
图1展示了我们模型的整体视图,我们称之为DeepMask。顶部分支负责预测一个高质量的目标分割掩模,而底部分支负责预测一个目标存在的可能性,并满足上述两个约束条件。接下来,我们将详细描述体系结构的每个部分、训练过程和快速推理过程。
3.1网络架构
掩模预测和对象分数预测之间共享的层的参数通过一个网络初始化,该网络经过预先训练后在ImageNet数据集[5]上执行分类。然后对该模型进行微调,以便在训练期间生成对象建议。我们选择了VGGA架构[27],它由8个3×3卷积层(其次是ReLU非线性)和5个2×2最大池化层组成,并显示出了优异的性能。
由于我们对推断分割掩模感兴趣,在卷积特征图中提供的空间信息是很重要的。因此,我们删除了VGG-A模型的所有最终完全连接层。此外,我们还丢弃了最后一个最大池化层。由于剩下的4个2×2最大池化层,共享层的输出的降采样因子为16;给定一个维数为3×h×w的输入图像,输出是一个维数的特征图512×(h/16)×(w/16)。
分割:专用于分割的网络分支由一个单一的1×1卷积层(和ReLU非线性)和一个分类层组成。分类层由h×w像素分类器组成,每个都负责指示给定像素是否属于补丁中心的对象。请注意,输出平面中的每个像素分类器必须能够利用包含在整个特征图中的信息,从而具有对象的完整视图。这是至关重要的,因为与语义分割不同,我们的网络必须为一个对象输出一个掩码,即使存在多个对象(例如,参见图1中的大象)。
对于分类层,我们可以使用局部或完全连接的像素分类器。这两种选项都有缺点:在前者中,每个分类器只有对象的部分视图,而在后者中,分类器有大量的冗余参数。相反,我们选择将分类层分解为两个线性层,两者之间没有非线性。这可以看作是使用全连接线性分类器的一种“低秩”变体。这种方法大幅减少了网络参数的数量,同时允许每个像素分类器利用来自整个特征图的信息。实验证明了其有效性。最后,为了进一步降低模型容量,我们将分类层的输出设置为ho×wo和h o < h和w o < w,并将输出上采样到h×w以匹配输入维度。
评分:网络的第二个分支专门用于预测一个图像补丁是否满足约束(1)和(2):即一个对象是否在补丁的中心并处于适当的规模。它由一个2×2的最大池化层,然后是两个完全连接的(加上ReLU非线性)层组成。最终的输出是一个单一的“客观性”分数,表明一个对象存在于输入补丁的中心(并在适当的尺度上)。
3.2联合学习
给定一个输入patch xk∈I,训练模型联合推断一个像素级分割掩码和一个对象分数。损失函数是一个二元逻辑回归损失的总和,一个用于分割网络的每个位置,一个用于目标分数,在所有的训练三组(xk,mk,yk)上:
这里的θ是参数集,f ij segm(xk)是分割网络在位置(i,j)上的预测,而fscore(xk)是预测的对象得分。我们交替通过分割分支和评分分支进行反向传播(并设置λ = 1/ 32)。对于评分分支,对数据进行采样,使模型使用相同数量的正样本和负样本进行训练。
注意,因子乘以方程1的第一项意味着,如果yk = 1,我们只在分割分支上反向传播错误。另一种方法是使用负数来训练分割分支(如果yk=0,则为所有像素设置mijk=0)。然而,我们发现,只有积极的训练对于概括超出训练过程中看到的物体类别和实现高物体回忆是至关重要的。这样,在推理过程中,网络试图在每个补丁上生成一个分割掩码,即使没有已知的对象存在。
3.3全场景推理
在全图像推理过程中,我们在多个位置和尺度上密集地应用该模型。这是必要的,以便对于图像中的每个对象,我们测试至少一个完全包含该对象的补丁(大致在中心和适当的规模),满足在训练过程中所做的两个假设。这个过程给出了一个分割掩模和目标得分在每个图像的位置。图2说明了当模型在单一尺度上密集地应用于图像时的分割输出。
完整的图像推理过程是有效的,因为所有的计算都可以卷积计算。VGG特征可以通过给定的典型输入图像在一秒钟内进行密集计算。对于分割分支,最后一个全连接层可以通过卷积应用于VGG特征来计算。这些分数同样是通过对VGG特征的卷积来计算的,然后是两个1×1的卷积层。精确的运行时在4中给出。
图2:分割模型的输出密集地应用于一个具有16像素步幅的完整图像(在中央水平图像区域的单一尺度上)。多个地点的三只猴子都有很好的面具(分数没有显示)。请注意,在我们的训练集中没有出现任何猴子。
最后,需要注意的是,由于额外的最大池化层,网络的评分分支的降采样因子比分割分支大2倍。给定一个大小为ht×wt的输入测试图像,分割网络和目标网络分别生成维数h t /16×w t /16和h t /32×w t /32的输出,为了实现掩码预测和对象分数之间的一对一映射,我们在评分分支的最后一个最大池化层之前应用交叉技巧,使其输出分辨率翻倍(我们完全使用[26]中描述的实现)。
3.4实施细节
在训练过程中,如果一个对象精确地集中在补丁中心,并且最大维数恰好为128像素,则认为输入补丁xk包含一个“规范”正例子。然而,在一个对象的位置有一定的公差是至关重要的,因为在全图像推断过程中,大多数对象将被观察到从其规范位置略有偏移。因此,在训练过程中,我们随机抖动每个“规范”正例子,以增加我们模型的鲁棒性。具体来说,我们考虑平移位移(±16像素),比例变形(2±1/4),以及水平翻转。在所有情况下,我们对图像补丁xk和地面真实掩模mk应用相同的转换,并为示例分配一个正标签yk = 1。否定例子(yk =−1)是任何规范正例子中至少±32像素或2±1的补丁。
在全图像推断过程中,我们在多个位置(步幅为16像素)和尺度(2−2到21 ,步长为2 1/2)密集应用模型。这确保了至少有一个被测试的图像补丁,它完全包含了图像中的每个对象(在训练期间使用的公差范围内)。
与最初的VGG-A网络[27]一样,我们的模型采用了维度为3×224×224的RGB输入补丁。由于我们删除了第五个池化层,公共分支输出了一个维度为512×14×14的特征图。我们的网络的分数分支由2×2最大池化和两个全连接层(分别有512和1024个隐藏单元)组成。这两层之后都是ReLU非线性和一个以0.5的速率进行的辍学[28]程序。最后一个线性层生成对象分数。
分割分支从一个包含512个单元的1×1卷积层开始。然后,该特征图完全连接到大小为512的低维输出,该输出进一步完全连接到每个像素分类器,以生成尺寸为56×56的输出。如前所述,这两层之间不存在非线性。我们的模型总共包含了大约75M左右的参数。
在最后添加一个双线性上采样层,将56×56输出预测转换为224×224的全分辨率(直接预测全分辨率输出要慢得多)。我们选择了一个不可训练的层,因为我们观察到一个可训练的层只是学会了双侧上采样。或者,我们尝试对地面真相进行降采样,而不是对网络输出进行上采样;然而,我们发现这样做会略微降低准确性。
使用MS COCO验证数据的一个子集[21](与我们用于评估的数据不重叠)来选择设计架构和超参数。我们认为学习率为0.001。我们使用随机梯度下降来训练我们的模型,动量为0.9,权重衰减为0.00005。除了预先训练好的VGG特征外,权重也是从均匀分布中随机初始化的。我们的模型在英伟达K40m显卡上大约需要5天的训练。为了将预测掩模二值化,我们简单地对连续输出设置阈值(PASCAL阈值为0.1,COCO阈值为0.2)。所有实验均采用Torch71法进行。
图3:对COCO选定的图像进行最高的建议。丢失的对象(没有与IoU>0.5匹配的建议)用红色轮廓标记。
四实验结果
在本节中,我们评估了我们的方法在[21]的VOC 2007测试集[7]和MS COCO 2014验证集[21]的前5000张图像上的性能。我们的模型是在COCO训练集上训练的,该训练集包含大约8万张图像和近50万个分割对象。虽然我们的模型被训练来生成分割建议,但它也可以通过使用包围分割掩模的边界框来提供方框建议。图3和图6显示了对COCO的最高的例子。
度量:我们使用联合(IoU)上的公共交集度量来衡量准确性。IoU是一个候选提案和地面真实注释的交集,并除以它们的联合区域。这个度量可以应用于分割和盒子的建议。根据Hosang等人的[13],我们评估了提案方法的性能,考虑到固定数量的提案在0.5和1.0之间的平均召回(AR)的影响。AR已被证明与检测器性能非常好地相关(在单个IoU阈值下的召回率的预测性要低得多)[13]。
方法:我们与目前前五个公开的提案方法进行比较,包括:边框[34]、选择搜索[31]、测地线[16]、Rigor [14]和MCG [24]。这些方法在目标检测上取得了最高的结果(当与R-CNNs[10]结合时),也获得了最佳的AR [13]。
结果:图4(a-c)比较了我们的方法DeepMask与现有的pascal(使用盒子)和COCO(同时使用盒子和分割)上的建议方法的性能。所示是每种方法的AR作为生成的提案数量的函数。在所有场景下,DeepMask(及其变体)对于考虑的所有提案数量都实现了更好的AR。表1和表2分别报告了COCO和PASCAL的选定提案计数和所有计数(AUC)的AR。值得注意的是,在大多数情况下,DeepMask使达到给定AR所需的提案数量减少了一个数量级。例如,在100个分割方案中,DeepMask在COCO上的AR达到了0.245,而竞争方法需要近1000个分割方案来实现类似的AR。
图4:(a-c)不同数据集上的平均召回率与盒子和分割建议的数量。(d-f)AR与COCO中不同对象尺度的建议数量。(g-h)在COCO中,不同数量的分割建议的召回率与IoU阈值。
表1:在MS COCO数据集上的结果。我们报告了不同数量的提案(10、100和1000)的AR,也报告了AUC(在所有提案计数中的平均AR)。对于分割建议,我们报告了总体的AUC和不同尺度下的AUC(用上标S/M/L表示的小/中/大物体)。详情请参见文本。
比例:COCO数据集包含大范围尺度的对象。为了更详细地分析性能,我们根据对象像素区域a将验证集中的对象划分为大致相同大小的集合:小(a < 322),中型(322≤a≤962),和大型的(a > 962)对象。图4(d-f)显示了在每个尺度上的性能;所有模型在小物体上的表现都很差。为了提高深度掩模的精度,我们将它应用于一个更小的规模(深度放大缩放)。这提高了性能(特别是对于小对象),但以增加推理时间为代价。
本地化:图4(g-i)显示了每个模型随着IoU的变化而实现的召回率,显示了每张图像中不同的建议数量。DeepMask在几乎所有场景中都能获得更高的召回率,除了在非常高的IoU下,它略低于其他模型。这可能是由于我们的方法在每个位置和尺度上输出一个掩模的降采样版本;多尺度方法或跳过连接可以在非常高的IoU下改进定位。
泛化:为了看看我们的方法是否可以推广到不可见的类[2,19],我们训练了我们的模型的两个额外版本,DeepMask20和DeepMask20*。DeepMask20只使用属于20个帕斯卡类别(全部80个COCO类别的子集)之一的对象进行训练。DeepMask20*也类似,只是我们使用了来自原始DeepMask的评分网络。两种模型在所有80个COCO类别(如所有其他实验)上的评估结果如表1所示。与DeepMask相比,DeepMask20的AR性能有所下降(但仍然优于之前的所有方法)。DeepMask20* ,然而,这与DeepMask的性能相匹配。这一令人惊讶的结果表明,准确性的下降是由于经过区别训练的评分分支(DeepMask20无意中被训练给其他60个类别分配低分);即使在一组简化的类别上进行训练,分割分支也能推广得非常好。
架构:在分割分支中,卷积特征完全连接到一个512“低秩”层,该层又连接到56×56输出(没有中间非线性),见第3章。我们还实验了一个具有超过300M参数的“全秩”架构(DeepMaskFull),其中56个×56输出中的每一个都直接连接到卷积特征。从表1中可以看出,DeepMaskFull略低于我们最终的模型(而且要慢得多)。
检测:作为最终验证,我们评估了DeepMask在2007测试中与目标检测器结合时的性能。我们使用选择搜索[31]和我们的方法生成的建议,重新训练和评估了最先进的快速R-CNN [9]。图5显示了不同提案数量的Fast R-CNN的平均平均精度(mAP)。最值得注意的是,仅通过100个DeepMask提案,Fast R-CNN实现了68.2%的mAP,优于2000个选择搜索方案的最佳结果(mAP为66.9%)。我们强调,通过减少20个倍的提案,DeepMask的性能优于选择搜索(这与表1中的AR数字一致)。在500个DeepMask方案下,Fast R-CNN的mAP提高到69.9%,之后性能开始下降(在[9]中也观察到类似的效果)。
速度:在COCO数据集中,推断每张图像平均需要1.6秒(对较小的PASCAL图像为1.2秒)。我们的运行时与最快的分割建议方法(测地线[16]运行在每PASCAL图像~1秒)竞争,而且比大多数方法快得多(例如,MCG [24]需要~30秒)。通过在单个批中并行化所有尺度(消除GPU开销),推理时间可以被∼进一步减少30%。然而,我们确实需要使用GPU来进行有效的推断。
五结论
在本文中,我们提出了一个创新的框架来直接从图像像素生成分割对象的建议。在测试时,该模型在多个尺度上密集地应用于整个图像,并生成一组经过排序的分割方案。结果表明,学习特征对于生成对象提案不仅是可行的,而且是有效的。我们的方法在框和分割方案生成方面都以很大的优势超过了以前的技术水平。在未来的工作中,我们计划将我们的建议方法与最先进的检测方法更紧密地结合起来。
感谢:我们要感谢艾哈迈德·胡马雍和林义帮助产生实验结果,感谢安德鲁·图洛克、亚丹和阿列克谢·斯皮里多诺夫对计算基础设施的帮助,感谢罗布·费格斯、田远东和钦塔拉进行有价值的讨论。
图6:从COCO选择的图像的深度掩模建议。丢失的对象(没有与IoU>0.5匹配的建议)用红色轮廓标记。
下面是该论文的原版链接:http://arxiv.org/abs/1506.06204