Scalable Object Detection using Deep Neural Networks

2022-09-04 21:29:43 浏览数 (1)

一、摘要

深度卷积神经网络最近在一系列图像识别基准测试中取得了最先进的性能,包括ImageNet大规模视觉识别挑战(ILSVRC-2012)。在定位子任务中获胜的模型是一个网络,它预测一个边界框和图像中每个目标类别的置信度得分。这样的模型捕获目标周围的整个图像上下文,但是如果不天真地复制每个实例的输出数量,就不能处理图像中相同目标的多个实例。在这项工作中,我们提出了一个显著性激发的神经网络模型用于检测,它预测了一组与类无关的边界框,以及每个框的一个得分,对应于它包含任何感兴趣的目标的可能性。模型自然地为每个类处理可变数量的实例,并允许在网络的最高级别进行跨类泛化。我们能够在VOC2007和ILSVRC2012上获得具有竞争力的识别性能,同时只使用每张图像中预测的前几个位置和少量的神经网络评估。

2、简介

目标检测是计算机视觉的基本任务之一。解决这一问题的一个常见范例是训练操作在子图像上的目标检测器,并以一种彻底的方式在所有位置和尺度上应用这些检测器。该范例成功地应用于一个经过鉴别训练的可变形零件模型(DPM)中。对所有可能的位置和范围进行彻底的搜索是一个计算上的挑战。随着类的数量增加,这一挑战变得更加困难,因为大多数方法都为每个类训练一个单独的检测器。为了解决这个问题,提出了多种方法,从检测器级联到使用分割来提出少量的目标假设。

在本文中,我们归属于后一种思想,并建议训练一个检测器,称为“DeepMultiBox”,它生成少量的边界框作为候选目标。这些框由单个深度神经网络(DNN)以类无关的方式生成。我们的模型有几个贡献。首先,我们将目标检测定义为对多个边界框坐标的回归问题。此外,对于每个预测框,净输出一个关于该框包含目标的可能性的置信度评分。这与传统方法有很大的不同,传统方法在预定义的框中对特性进行评分,并且具有以非常紧凑和高效的方式表示目标检测的优点。

第二个主要贡献是损失,它将训练边界框预测器作为网络训练的一部分。对于每个训练示例,我们解决当前预测和groundtruth框之间的分配问题,并通过反向传播更新匹配的框坐标、它们的置信度和底层特性。通过这种方式,我们学习了一个针对本地化问题的深度网络。我们利用DNNs良好的表示学习能力,如最近的图像分类和目标检测设置,并对表示和预测器进行联合学习。

最后,我们以一种与类无关的方式训练目标框预测器。我们认为这是一种可伸缩的方法,可以有效地检测大量目标类。实验结果表明,仅对单个网络应用程序获得的10个盒子进行后分类,就可以获得具有竞争力的检测结果。此外,我们还展示了我们的box预测器可以在不可见的类上进行泛化,因此可以灵活地在其他检测问题中重用。

3、提出的方法

我们的目标是通过预测一组表示潜在目标的边界框来实现与类无关的可伸缩目标检测。更精确地说,我们使用深度神经网络(DNN),它输出固定数量的边界框。此外,它为每个框输出一个分数,表示包含目标的该框的网络置信度。

模型:为了形式化上述思想,我们将第i个目标框及其相关置信度编码为最后一个net层的节点值:

Bounding Box:将每个框的左上角和右下角坐标编码为4个节点值,可以写成向量。这些坐标是归一化的,也就是图像尺寸,以实现对绝对图像大小的不变性。每个归一化坐标由最后一个隐层的线性变换产生。

Condidence:包含目标的框的置信度得分被编码为单个节点值c_{i} in[0,1] 。这个值是通过对最后一个隐藏层的线性变换产生的,后面跟着一个sigmoid。

在推理时,我们的算法产生K个边界框。在我们的实验中,我们使用K = 100和K = 200。如果需要,我们可以使用置信度评分和非最大抑制来获得推理时较少的高置信度框。这些盒子是用来代表物体的。因此,可以用后续的分类器对它们进行分类,实现目标检测。由于盒子的数量非常少,我们可以负担得起强大的分类器。在实验中,我们使用二次DNN对ImageNet进行分类。

训练目标:我们训练一个DNN来预测每个训练图像的边界框和它们的置信度得分,使得分最高的框与图像的ground truth目标框匹配得很好。假设对于一个特定的训练示例,M个目标由包围框g_j , j∈{1,…,M}标记。在实践中,预测K的数量远远大于ground truth boxM的数量。因此,我们只对与groundtruth最匹配的预测box子集进行优化。我们优化他们的位置,以提高他们的匹配和最大限度地提高他们的置信度。同时,我们将剩余预测的置信度降到最低,这些预测被认为不能很好地本地化真实目标。为了实现上述目标,我们为每个训练实例制定了一个分配问题。令x_{i j} in{0,1} 表示赋值:如果将第i个预测赋值给第j个真目标,则x_{i j}=1 。这种分配的目标函数可以写成:

F_{text {match }}(x, l)=frac{1}{2} sum_{i, j} x_{i j}left|l_{i}-g_{i}right|_{2}^{2}

其中,我们使用L2距离之间的标准化边界框坐标来量化边界框之间的差异。此外,我们还想根据赋值x对box的置信度进行优化。将赋值预测置信度最大化可以表示为:

F_{text {conf }}=-sum_{i, j} x_{i, j} log left(c_{i}right)-sum_{i}left(1-sum_{j} x_{i j}right) log left(1-c_{i}right)

在上面的目标函数sum_{j} x_{i j}=1 ,如果预测i与ground-truth的话。在这种情况下,c_i被最大化,而在相反的情况下,它被最小化。如果我们把sum_{j} x_{i j} 看作是包含一个感兴趣的目标的预测i的概率,则可以对上述术语作出不同的解释。然后,上面的损失是熵的负数,因此对应最大熵损失。最终损失目标结合匹配损失和置信损失:

F(x, l, c)=alpha F_{text {match }}(x, l) F_{text {conf }}(x, c)

alpha平衡不同损失项的贡献。

优化:对于每一个训练实例,我们求解一个最优分配x^* 的预测到ground truth框。

begin{array}{c} x^{*}=underset{x}{arg max } F(x, l, c) \ text { subject to } x_{i j} in{0,1}, sum_{i} x_{i j}=1 end{array}

其中约束强制执行分配解决方案。这是双边匹配的一个变种,其复杂度是多项式的。在我们的应用程序中,匹配是非常便宜的——每个图像中标记的目标的数量少于12个,而且在大多数情况下只有很少的目标被标记。然后,通过反向传播对网络参数进行优化。例如,反传播算法计算关于lc一阶偏导数:

frac{partial F}{partial l_{i}}=sum_{i}left(l_{i}-g_{i}right) x_{i j}^{*} quad frac{partial F}{partial l_{i}}=frac{sum_{j} x_{i j}^{*} c_{i}}{c_{i}left(1-c_{i}right)}

训练细节:虽然上面定义的损失在原则上是足够的,但是有三种修改可以显著更快地达到更好的精度。第一个修改是对ground truth位置进行聚类,找到K个这样的聚类/中心点,我们可以用它们作为每个预测位置的先验。因此,我们鼓励学习算法学习每个预测位置的残差到先验。第二个修改涉及到在匹配过程中使用这些先验:我们没有将N个ground truth位置与K个预测匹配,而是找到了K个先验与ground truth之间的最佳匹配。一旦匹配完成,就像前面一样计算目标置信度。此外,位置预测损失也没有变化:对于任何匹配的一对(目标,预测)位置,损失由groundtruth和对应于匹配先验的坐标之间的差来定义。我们称先验的使用为先验匹配,并假设它强制预测之间的多样化,因为线性分配迫使模型学习一组不同的预测。我们发现,在不进行先验匹配的情况下,模型的收敛速度和质量显著降低。需要注意的是,尽管我们以一种与类无关的方式定义了我们的方法,但是我们可以将它应用于预测特定类的对象框。要做到这一点,我们只需要训练我们的模型使用该类的包围框。此外,我们可以预测每个类的K个框。不幸的是,这个模型的参数数量会随着类的数量线性增长。此外,在典型的设置中,给定类的目标数量相对较少,这些参数中的大多数将很少看到具有相应梯度贡献的训练示例。因此,我们认为我们的两步过程——首先本地化,然后识别——是一个更好的选择,因为它允许使用少量参数利用来自同一图像中多个目标类型的数据。

4、实验细节

4.1、网络结构和实验细节

我们使用的本地化和分类模型的网络架构与ImageNet使用的相同。我们使用Adagrad来控制学习速率衰减、大小为128的小批量训练和具有多个相同副本的网络并行分布式训练,从而达到更快的收敛速度。如前所述,我们使用先验本地化损失——这些都是计算使用训练集上的k - means。我们也使用0.3的α平衡定位和信心损失。定位器可能输出用于推断的作物区域之外的坐标。坐标被映射并截断到最后的图像区域。此外,使用非最大抑制(Jaccard相似性阈值为0.5)对框进行剪枝。然后,我们的第二个模型将每个边界框分类为感兴趣的目标或“背景”。训练我们的定位器网络,生成大约数以百万计的图像(10 - 30个百万,这取决于数据集)从训练集通过以下过程中的每个图像训练集。对于每一个图像,我们生成相同数量的平方,这样样品的样品总数大约有一千万。对于每一幅图像,样本都进行了分块处理,对于0 - 5%、5 - 15%、15 - 50%、50 - 100%范围内的每一幅比率,边界框所覆盖的比例在给定范围内的样本数量相同。对于下面的实验,我们没有探索任何非标准数据生成或正则化选项。在所有的实验中,所有的超参数都是通过对训练集的一个保留部分(10%的样本随机选择)进行评估来选择的。

4.2. VOC 2007

Pascal VOC是对象检测算法中最常见的基准。它主要由复杂的场景图像组成,其中包含20个不同目标类的包围框。在我们的评估中,我们将重点放在2007版VOC上,并为此发布了一套测试集。我们通过对VOC 2012的训练展示了结果,其中包含了大约11000张图片。我们训练了一个100框定位器和一个基于深度网的分类器。

4.2.1 训练方法

我们将分类器训练在一个包含

•1000万正样本与至少0.5个Jaccard相似度的物体重叠。正样本被标记为20个VOC对象类之一。

•2000万负样本,与任何对象框的Jaccard相似性最多为0.2。这些作物被贴上特殊的“背景”类标签。超参数的选择和体系结构都遵循ImageNet。

4.2.2 评估方法

在第一轮中,定位器模型应用于图像中最大的中心方形裁剪。将裁剪调整为网络输入大小为220×220。只要通过这个网络,我们就可以得到多达100个候选框。在重叠阈值为0.5的非最大抑制后,保留前10个最高的检测值,并采用21路分类器模型在网络中进行单独遍历分类。最终的检测分值是给定方框的定位器分值乘以分类器在作物周围最大平方区域上的分值的乘积。这些分数被传递给评估,并用于计算精确的召回曲线。

4.3、讨论

首先,我们单独分析了定位器的性能。我们用Pascal检测标准定义的检测目标的数量来表示生成的边界框的数量。图1为我们对VOC2012的训练结果。此外,我们使用图像的最大中心方形裁剪作为输入,并使用两个尺度:第二次尺度的最大中心裁剪,我们选择3×3个窗口大小为图像大小的60%。正如我们所看到的,当使用10个边界框的预算时,我们可以用第一个模型本地化45.3%的目标,用第二个模型本地化48%的目标。这显示了比其他报告的结果更好的性能,例如objecty算法实现了42%。此外,这个图显示了在几个分辨率下查看图像的重要性。虽然我们的算法通过使用max-center作物来获得大量的目标,但是当使用更高分辨率的图像时,我们获得了额外的提升。此外,我们使用21路分类器对生成的边界框进行分类,如上所述。VOC 2007的平均精度(APs)见表1。实现的平均AP是0.29,这是相当有竞争力的。注意,我们的运行时间复杂度非常低——我们只使用前10个框。实例检测和全精度召回曲线分别如图2和图3所示。需要注意的是,可视化检测仅使用最大中心的方形图像裁剪,即使用完整的图像。然而,我们设法获得了相对较小的对象,如第2排和第2列的船,以及第3排和第3列的羊。

4.4. ILSVRC 2012分类和定位挑战

在这组实验中,我们使用了ILSVRC 2012分类与定位挑战数据集。该数据集由544,545张训练图像组成,这些图像被标记为类别和1000个目标类别的位置,相对均匀地分布在各个类中。计算性能指标的验证集由48,238张图像组成。

4.4.1、训练方法

除了一个与VOC模型相同的定位模型(取决于它所训练的数据集),我们还训练了一个关于ImageNet分类挑战数据的模型,作为识别模型。该模型采用与ImageNet基本相似的过程进行训练,能够在分类挑战验证集上获得相同的结果;注意,我们只训练了一个模型,而不是在分类精度方面带来了实质性的好处,但是7×昂贵,这是一个不可忽视的因素。推理完成与VOC设置:预测位置是K = 100的数量,然后减少Non-Max-Suppression (Jaccard重叠标准0.4),由分类器后打分:该分数是给定方框的定位器置信度乘以分类器在作物周围最小平方区域上的打分的乘积。最后的分数(检测分数乘以分类分数)按降序排序,只保留给定类的最高得分/位置对(根据挑战评估标准)。在所有的实验中,超参数的选择都是通过对训练集的一个保留部分(10%的样本随机选择)进行评估来选择的。

4.4.2、评估方法

的官方指标“分类与定位”ILSVRC- 2012的挑战是检测@5,一个算法在哪里只能生产一个盒子每5标签(换句话说,模型既不惩罚也不奖励生产有效的同一个类的多个检测),检测的标准是0.5 Jaccard重叠与任何真实的盒子(除了匹配的类标签)。表2包含了对建议的方法(称为DeepMultiBox)与直接对groundtruth框进行分类以及直接推断每个类一个框的方法的比较。报告的指标是检测@5和分类@5,这是ILSVRC-2012挑战指标的官方指标。在表中,我们改变应用分类器的窗口的数量(这个数字表示在非max-suppression之后选择的顶部窗口,该排名来自置信度得分)。每个类一个盒子的方法是对ILSVRC-2012获奖条目(“带有本地化的分类”挑战)的仔细重新实现,训练了1个网络(而不是7个)。

我们可以看到,DeepMultiBox方法非常具有竞争力:使用5-10个框,它的性能与竞争方法相当。虽然在这种情况下,就原始性能而言,每个类一个框的方法可能更有吸引力,但它也有一些缺点:首先,它的输出与类的数量成线性关系,因此需要有训练数据。multibox方法原则上可以使用迁移来检测某些类型的目标,虽然它从来没有专门针对这些目标进行过训练,但是这些目标与它所看到的目标有相似之处2。图5通过观察在ImageNet上训练定位模型并将其应用于VOC测试集(反之亦然)时的情况,探索了这一假设。图中显示了一个精确回忆曲线:在本例中,我们执行一个类无关的检测:如果两个窗口(预测和groundtruth)重叠超过0.5,则出现一个真正的阳性,而这两个窗口独立于它们的类。有趣的是,ImageNet-trained模型能够捕捉更多VOC windows比亦然:我们假设这是由于ImageNet类设置比VOC类set。更丰富,one-box-per-class方法不概括自然相同类型的目标的多个实例(除了通过这项工作的方法)。图5在DeepMultiBox和每个类一个方法的比较中也显示了这一点。对这样的场景进行一般化是算法实现实际图像理解的必要条件,因此需要克服这种局限性,而我们的方法是一种可伸缩的方法。支持这一说法的证据如图5所示,表明所提出的方法通常能够比单框方法更准确地捕获更多的目标。

5、讨论和结论

在这项工作中,我们提出了一种新的方法来定位目标在一个图像中,它预测多个边界框在同一时间。该方法采用深度卷积神经网络作为基本特征提取和学习模型。它制定了一个多框定位成本,能够利用给定图像中感兴趣的ground truth位置的可变数量,并学会预测不可见图像中的这些位置。我们在VOC2007和ILSVRC-2012两个具有挑战性的基准上给出了结果,该方法在这两个基准上具有竞争力。此外,该方法能够很好地预测后续分类器只能探测很少的位置。我们的结果表明,DeepMultiBox方法是可伸缩的,甚至可以在两个数据集中进行泛化,就能够预测感兴趣的位置而言,甚至对于它没有经过训练的类别也是如此。此外,它还能够捕获同一类目标的多个实例,这是旨在更好地理解图像的算法的一个重要特性。虽然我们的方法确实是有竞争力的,但也有一些方法具有较大的计算成本,但可以实现更好的检测性能,特别是在VOC2007和ILSVRC定位。OverFeat高效地在多个位置和尺度上滑动卷积网络,预测每个类一个边界框。该模型在GPU上需要2秒/幅图像,大约比我们模型的GPU实现慢40倍。图9显示了他们模型的单尺度、中心作物版本的结果,最接近我们的建议。这使得ILSVRC-2012排名前5名的比例由40.94%提高到40%,但是通过DeepMultiBox我们可以在一个网络评估中提取多个感兴趣的区域。

另一种方法是,使用选择性搜索为每幅图像提出2000个候选位置,从卷积神经网络中提取顶层特征,使用硬负训练SVM将位置分类为语音类。与我们的方法的主要不同之处是,这种方法比我们的方法贵200倍,作者在ImageNet上预先训练了他们的特征提取器,并且他们使用硬负挖掘来学习从特征到具有低假阳性率的类的映射。后两者是很好的经验教训,我们需要探索。虽然我们在图1中显示,通过预测更多的窗口,我们能够捕获更多的ground-truth边界框,但是我们没有观察到VOC2007上mAP的类似增长。我们假设,一个包含更好的硬负挖掘和学习更好的模型局部特征、上下文和检测器信心的分类模型可能会更好地利用所提议的窗口。在未来,我们希望能够将定位和识别路径折叠成一个单一的网络,这样我们就能够在一个单一的前馈通过网络提取位置和类标签信息。即使在目前的状态下,两步过程(本地化网络之后是分类网络)也需要5-10个网络评估。重要的是,这个数字不随要识别的类的数量线性伸缩,这仍然使得所提议的方法与类似DPM的方法非常有竞争力。

0 人点赞