(37)[NIPS13] Deep Neural Networks for Object Detection

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37993251/article/details/89041948

计划完成深度学习入门的126篇论文第三十七篇,Google的Christian Szegedy等发表的在文本分类的Bag技巧的论文。


Abstract

深度神经网络(DNNs)最近在图像分类任务[14]中表现出了优异的性能。在本文中,我们进一步解决了使用DNNs进行目标检测的问题,即不仅分类而且精确定位各种类的目标。我们提出了一种简单而强大的对象检测公式,将其作为对象边界框Mask的回归问题。我们定义了一种multi-scale推理程序,它能够通过一些网络应用程序以较低的成本产生高分辨率的目标检测。该方法的最新性能显示在Pascal VOC上。


1 Introduction

随着我们对图像的理解越来越全面,更精确和详细的目标识别变得至关重要。在这种情况下,我们不仅要对图像进行分类,还要精确估计图像中包含的对象的类和位置,这就是所谓的对象检测问题。由于对象表示和机器学习模型的改进,实现了对象检测方面的主要进展。

最先进的检测系统的一个突出例子是Deformable Part-based Model (DPM)[9]。它建立在精心设计的表示和受运动学启发的对象部件分解的基础上,以图形模型的形式表示。使用图形模型的区别学习,可以为各种对象类构建高精度的基于部件的模型。

对于对象分类的相关问题以及[17],人工工程表示与浅层次的有区别训练的模型相结合已经成为性能最佳的范例之一。然而,在最近几年,深度神经网络(DNNs)[12]已经成为一个强大的机器学习模型。

DNNs与传统的分类方法有很大的不同。首先,它们是深度架构,能够学习比浅层架构[2]更复杂的模型。这种表达性和健壮的训练算法允许学习强大的对象表示,而不需要手工设计特性。这一点在跨越数千个类的富有挑战性的ImageNet分类任务[5]中得到了经验证明[14,15]。

在本文中,我们利用DNNs的强大功能来解决目标检测问题,我们不仅要对目标进行分类,而且要对目标进行精确定位。我们在这里要解决的问题很有挑战性,因为我们希望使用有限的计算资源检测同一映像中大小不同的潜在大量对象实例。

我们提出了一个公式,它能够预测给定图像中多个对象的边界框。更精确地说,我们制定了一个基于DNN的回归,它输出对象边界框(以及框的部分)的二进制Mask,如图1所示。此外,我们使用一个简单的边界框推理来从Mask中提取检测。为了提高定位精度,我们以多尺度的方式对整幅图像以及少量的大型图像作物应用DNN Mask生成,然后进行细化(见图2)。

这样,只有通过几十个dnn回归,我们才能实现最先进的边界框定位。

在本文中,我们证明了基于dnn的回归能够学习特征,这些特征不仅有利于分类,而且能够捕获强几何信息。我们使用[14]引入的一般分类体系结构,并用回归层替换最后一层。令人惊讶的是,在某种程度上编码平移不变性的网络也可以捕获目标位置。

其次,我们引入一个multi-scale box推理,然后进行细化步骤,以产生精确的检测。通过这种方式,我们可以应用DNN预测低分辨率Mask,受输出层大小的限制,以低成本的像素级精度,网络对每个输入图像只应用几十次。

此外,所提出的方法相当简单。不需要手工设计一个模型来显式地捕获部件及其关系。这种简单性的优点是易于适用于广泛的类,但也显示出更好的检测性能,在更大范围的对象刚性和可变形的。这是提出与最先进的检测结果Pascal VOC挑战[7]在第7节。


2 Related Work

研究最多的对象检测范例之一是deformable part-based model,其中[9]是最突出的例子。该方法将一组经过识别训练的部件组合在一个称为图像结构的星型模型中。它可以被认为是一个2层的模型部分是第一层,星型模型是第二层。与DNNs层的通用性不同,[9]的工作利用了领域知识,零件是基于手工设计的梯度直方图(HOG)描述符[4],零件的结构是由运动驱动的。

用于对象检测和解析的深层体系结构由基于部件的模型驱动,传统上称为组合模型,其中对象表示为图像原语的分层组合。一个值得注意的例子是And/Or graph[20],其中对象由树建模,其中And-nodes表示不同的部分,Or-nodes表示相同部分的不同模式。与DNNs类似,And/Or graph由多个层组成,其中较低的层表示小的通用图像原语,而较高的层表示对象部分。这种成分模型比DNNs更容易解释。另一方面,它们需要推理,而本文考虑的DNN模型是纯前馈的,没有潜在变量可以推理。

进一步的用于检测的成分模型的例子是基于片段作为基本的[1],关注形状[13],使用Gabor过滤器[10]或更大的HOG过滤器[19]。这些方法传统上受到训练困难和使用专门设计的学习程序的挑战。此外,在推理时,它们结合了自底向上和自顶向下的过程。

神经网络(NNs)可以被认为是一种组合模型,其中节点比上述模型更通用,可解释性更差。神经网络在视觉问题上的应用已有几十年的历史,卷积神经网络是[16]中最突出的例子。直到最近,这些模型才以DNNs的形式在大规模图像分类任务中获得了高度成功[14,15]。然而,它们在检测方面的应用是有限的。场景解析作为一种更为详细的检测形式,已经尝试使用多层卷积NNs[8]。利用DNNs[3]对医学图像进行分割。然而,这两种方法都使用NNs作为超像素或每个像素位置上的局部或半局部分类器。然而,我们的方法使用完整的图像作为输入,并通过回归执行定位。因此,它是一种更有效的NNs应用。

也许最接近我们的方法是[18],它具有类似的高级目标,但使用的网络要小得多,具有不同的特性、损失函数,并且没有一个机制来区分同一类的多个实例。


3 DNN-based Detection

我们方法的核心是基于dnn的对对象Mask的回归,如图1所示。基于这个回归模型,我们可以为整个对象以及部分对象生成Mask。一个单一的DNN回归可以为我们提供一个图像中多个对象的Mask。为了进一步提高定位精度,我们将DNN定位器应用于一小组大的子窗口上。整个流程如图2所示,解释如下。


4 Detection as DNN Regression

我们的网络基于[14]定义的卷积DNN。它总共由7层组成,前5层是卷积的,后2层是完全连接的。每一层都使用一个经过校正的线性单元作为非线性变换。其中三个卷积层还有最大池。要了解更多细节,请读者参考[14]。

我们采用上述通用体系结构进行本地化。我们使用回归层生成一个对象二进制Mask D N N(x ; \Theta) \in \mathbb{R}^{N},网络的参数和N是像素的总数。因为网络的输出一个固定的维度,我们预测一个固定大小的面具N = d x d。调整后的图像大小,由此产生的二进制Mask代表一个或多个对象:它应该在特定的像素值1如果这个像素位于给定类的对象的边界框和0。

该网络通过最小化L2误差来训练,用于预测Ground Truth Mask m \in[0,1]^{N},N表示图像x

\min _{\Theta} \sum_{(x, m) \in D}\left\|(\operatorname{Diag}(m)+\lambda I)^{1 / 2}(D N N(x ; \Theta)-m)\right\|_{2}^{2}

其中,和的范围是包含以二进制Mask表示的边界框对象的训练集D的图像。

由于我们的基本网络是非凸的,且不能保证最优性,因此有时需要根据ground truth mask对每个输出使用不同的权值来正则化损失函数。直观的感觉是,大多数对象相对于图像大小较小,并且网络很容易被为每个输出分配零值的平凡解所困。为了避免这种不良行为,它有助于增加输出对应的非零值的重量在地面真理由参数\lambda \in \mathbb{R}^{+} Mask。如果选择小λ,然后用ground truth错误输出值0处罚远远低于那些1,因此鼓励网络预测非零值,即使是信号弱。

在我们的实现中,我们使用了接受域为225 x 225的网络,输出预测d = 24时的Mask大小为d x d。


5 Precise Object Localization via DNN-generated Masks

虽然提出的方法能够生成高质量的Mask,但是还有几个额外的挑战。首先,单个对象Mask可能不足以消除相邻对象之间的歧义。其次,由于输出大小的限制,我们生成的Mask比原始图像的大小小得多。例如,对于大小为400 x 400和d = 24的图像,每个输出对应一个大小为16  x 16的单元格,这不足以精确地定位一个对象,尤其是当它是一个小对象时。最后,由于我们使用完整的图像作为输入,所以小物体只会影响很少的输入神经元,因此很难识别。下面,我们将解释如何解决这些问题。

5.1 Multiple Masks for Robust Localization

为了处理多个触摸对象,我们生成的不是一个而是多个Mask,每个Mask要么表示完整的对象,要么表示它的一部分。由于我们的最终目标是生成一个边界框,所以我们使用一个网络来预测对象框Mask,并使用另外四个网络来预测框的四个半部分:底部、顶部、左右半部分,都用m^{h}, h \in\{\text { full, bottom, top }, \text { left. left }\}​​​​​​​。这五种预测过于完整,但有助于减少不确定性,并处理一些面具上的错误。此外,如果将两个相同类型的对象放在一起,则生成的五个Mask中至少有两个不会合并对象,这将允许消除它们的歧义。这将允许检测多个对象。

在训练时,我们需要将对象框转换为这五个Mask。由于Mask可以比原始图像小得多,所以我们需要将ground truth Mask减小到网络输出的大小。用T (i,j)通过输出(i;j)网络的。该矩形的左上角为\left(\frac{d_{1}}{d}(i-1), \frac{d_{2}}{d}(j-1)\right);其中d为输出Mask和d1的大小;d2图像的高度和宽度。在训练中,我们赋值为m(i;j)预测为T (i,j)的一部分由bb(h)框覆盖

m^{h}(i, j ; b b)=\frac{\operatorname{area}(b b(h) \cap T(i, j))}{\operatorname{area}(T(i, j))}

其中bb(full)对应于ground truth对象框。对于h的其余值,bb(h)对应于原始框的四部分。

注意,我们使用full对象框以及框的顶部、底部、左侧和右侧来定义总共五种不同的覆盖类型。groundtruth box bb的结果mh(bb)用于h类型网络的训练时。此时,应该注意的是,可以为所有mask训练一个网络,其中输出层将生成所有5个mask。这将支持可伸缩性。

这样,五个本地化器将共享大部分层,从而共享特性,这看起来很自然,因为它们处理的是同一个对象。对于许多不同的类,使用相同的本地化器的更积极的方法似乎也是可行的。

5.2 Object Localization from DNN Output

为了完成检测过程,我们需要为每个图像估计一组边界框。虽然输出分辨率小于输入图像,但我们将二进制Mask重新调整为输入图像的分辨率。目标是估计边界框bb = (i;j;k;l)由其左上角参数化(i;j)和右下角(k;l)输出mask坐标。

为此,我们使用一个分数S表示每个边界框bb与蒙板的一致性,并推断出得分最高的框。一个自然的协议将是测量什么部分的边界框被Mask覆盖:

S(b b, m)=\frac{1}{\operatorname{area}(b b)} \sum_{(i, j)} m(i, j) \operatorname{area}(b b \cap T(i, j))

其中,对(i;j),用m = DNN(x)表示网络输出。如果我们把上面的分数扩展到所有五种Mask类型上,那么最终的分数是:​​​​​​​

S(b b)=\sum_{h \in \text {halves}}\left(S\left(b b(h), m^{h}\right)-S\left(b b(\overline{h}), m^{h}\right)\right)

halves=\{\text { full, bottom, top, left, left }\}索引整个框及其四部分。因为h表示h的一个半h¯表示h的另一个半h,例如上面的口罩应该被上面的口罩很好地覆盖,而不是被下面的口罩完全覆盖。h =满;我们用h¯表示bb周围的一个矩形区域,如果整个口罩向bb外面延伸,这个矩形区域的得分将会被扣分。在上面的总和中,如果一个盒子与所有五个口罩一致,那么它的得分将会很大。

我们使用Eq.(3)中的分数在一组可能的边界框中进行彻底搜索。我们考虑平均维数等于[0:1;例如:;0:9]通过k-means聚类训练数据中目标的盒子,估计出图像的平均尺寸和10种不同的长宽比。我们使用图像中5个像素的stride来滑动上面的90个框。注意,在对Mask m的积分图像进行计算后,可以使用4个操作有效地计算式(3)的分数。操作的确切数量是5(2个像素+ 20个框),其中第一项度量积分Mask计算的复杂性,而第二项计算框分数。

为了生成最终的检测集,我们执行两种类型的过滤。第一个方法是按照Eq.(2)的定义保留得分高的盒子,例如大于0:5。我们通过对感兴趣的类使用[14]训练的DNN分类器进行分类,并保留正分类的w。t到当前检测器的类。最后,我们应用非最大抑制,如在[9]。

5.3 Multi-scale Refinement of DNN Localizer

解决网络输出分辨率不足的问题有两种方法:(i)在多个尺度和几个大的子窗口上应用DNN定位器;(ii)通过将DNN定位器应用于顶部推断的边界框来改进检测(见图2)。

使用不同尺度的大窗口,我们生成了多个Mask,并将它们合并到更高分辨率的Mask中,每个尺度对应一个Mask。合适的尺度的范围取决于图像的分辨率和定位器的接受域的大小——我们想要的图像由网络输出操作在更高的分辨率,同时我们希望每个对象属于至少一个窗口,这些窗口的数量很小。

为了实现上述目标,我们使用了三个尺度:完整的图像和另外两个尺度,以便在给定尺度下窗口的大小是前一个尺度下窗口大小的一半。我们用窗口覆盖每个比例的图像,使这些窗口有一个小的重叠面积的20%。这些窗口的数量相对较少,并且覆盖了图像的多个尺度。最重要的是,最小尺度的窗口允许以更高的分辨率进行定位。

在推理时,我们将DNN应用于所有窗口。注意,它与滑动窗口方法非常不同,因为我们需要为每个图像计算少量窗口,通常少于40个。在每个尺度上生成的对象Mask通过最大操作合并。这就给了我们三个图像大小的遮罩,每个遮罩都观察不同大小的对象。对于每一个尺度,我们都应用第5.2节中的边界框推理来得到一组检测。在我们的实施中,我们对每个量表进行了前5次检测,总共检测了15次。

为了进一步改进定位,我们经历了DNN回归的第二阶段,称为细化。在初始检测阶段定义的窗口上应用DNN定位器,将15个边界框中的每一个扩展1.2倍,应用于网络。高分辨率定位器的应用大大提高了探测精度。

完整的算法见算法1。

6 DNN Training

我们的网络的一个引人注目的特性是它的简单性:分类器被一个没有任何平滑先验或卷积结构的Mask生成层所代替。然而,它需要使用大量的训练数据进行训练:几乎每个位置都需要出现不同大小的对象。

为了训练Mask发生器,我们将每幅图像分成60%的负样本和40%的正样本,生成数千个样本。如果一个样本不与任何感兴趣的对象的边界框相交,则该样本被认为是负的。阳性样本是那些覆盖了某些对象边界框至少80%的区域的样本。对作物进行采样,使其宽度均匀地分布在规定的最小尺度和整个图像的宽度之间。

我们使用类似的准备步骤来训练分类器,用于最终剪枝我们的检测。同样,我们从每张图像中抽取了几千个样本:60%的阴性样本和40%的阳性样本。负样本的边框与任何小于0.2 Jaccard-similarity groundtruth对象的盒子的正面样本必须至少有0.6相似的对象边界框和标签使用最相似的类对象边界框的作物。添加额外的负类作为正则化器,提高了过滤器的质量。在这两种情况下,每个类的样本总数都选择为1000万个。

由于本地化训练比分类更难,因此从具有高质量低水平过滤器的模型的权重开始是很重要的。为此,我们首先对网络进行分类训练,重用除分类器外的所有层的权值进行定位。对于本地化,我们对整个网络进行了微调,包括卷积层。

利用ADAGRAD[6]对网络进行随机梯度训练,自动估计各层的学习速度。x

7 Experiments

Dataset: 我们评估了该方法在Pascal Visual Object Challenge (VOC) 2007[7]测试集上的性能。数据集包含约。5000个测试图像超过20个类。由于我们的方法有大量的参数,所以我们在VOC2012训练和验证集上进行了训练。11k图像。在测试时,算法为图像生成一组检测、定义的边界框及其类标签。我们使用精确回忆曲线和平均每类精度(AP)来衡量算法的性能。​​​​​​​

Evaluation: 表1给出了对VOC2007测试的完整评价。我们将我们的方法DetectorNet与三个相关的方法进行了比较。第一个是[14]的DNN分类器的滑动窗口版本。将该网络作为21路分类器(VOC类和背景)进行训练,生成8个不同方向比、10个不同尺度、间隔5像素的边界框。最小的尺度为图像大小的1=10,最大的尺度覆盖整个图像。结果大约是150;每张图片000个框。每个框都映射到225 225接受域。检测分数由softmax分类器计算。我们使用至少为Jaccard相似度的非最大抑制方法来减少盒的数量​​​​​​​0:5丢弃boxes。在初始训练结束后,我们对训练集进行了两轮的hard negative mining,在原始训练集的基础上增加了200万个样本,减少了误报率。

第二种方法是[19]的三层组合模型,可以认为是一种深层体系结构。作为2011年vocs的获奖者之一,这种方法表现出了出色的性能。最后,我们用[9]和[11]对DPM进行了比较。

虽然我们的比较有些不公平,但是当我们在更大的VOC2012训练集上训练时,我们在大多数模型上都展示了最先进的性能:我们在8节课上表现出色,在其他1节课上表现相同。请注意,可以调优滑动窗口,使其执行与DetectorNet相同的性能,但是,网络评估的数量之多使得这种方法不可行,而DetectorNet只需要(#windows #mask类型)评估每个类120个作物。在12核的机器上,每个类的每个映像的实现时间大约为5-6秒。

与[9]广泛引用的DPM方法相反,DetectorNet擅长于鸟类、猫、羊、狗等可变形物体。这表明,它能较好地处理刚性较低的物体,同时工作良好的刚性物体,如汽车,公共汽车等。

我们在图3中展示了检测的示例,其中显示了检测到的框以及所有五个生成的Mask。可以看出,探测器网不仅能够准确地发现大的物体,而且能够准确地发现小的物体。生成的Mask本地化得很好,在对象之外几乎没有响应。这种高质量的探测器响应是很难实现的,在这种情况下是可能的,因为DNN的表达能力和它的自然方式结合上下文。

常见的错误检测是由于外观相似的对象(图3最后一行中的左对象)或定位不精确(最后一行中的右对象)。后一个问题是由于训练数据对物体的模糊定义,在一些图像中,只有鸟的头部是可见的,而在另一些图像中则是整个身体。在许多情况下,如果身体和脸都出现在同一幅图像中,我们可能会观察到对它们的检测。

最后,细化步骤大大提高了检测的质量。这可以从图4中看出,我们展示了DetectorNet经过第一阶段检测和细化后的准确率vs召回率。一个明显的改善可以被观察到,主要是因为更好的局部真阳性有他们的分数提高。​​​​​​​

8 Conclusion

在这项工作中,我们利用DNNs的表达能力来实现目标检测。结果表明,当采用多尺度过程精细化方法时,作为dnn基对象Mask回归的检测公式可以得到较好的结果。这些结果在训练时需要花费一定的计算成本来训练每个对象类型和Mask类型的网络。作为未来的工作,我们的目标是通过使用单个网络检测不同类的对象来降低成本,从而扩展到更多的类。

猜你喜欢

转载自blog.csdn.net/weixin_37993251/article/details/89041948
今日推荐