RON: Reverse Connection with Objectness Prior Networks for Object Detection

RON: Reverse Connection with Objectness Prior Networks
for Object Detection

针对目标检测的基于目标先验网络反向连接

参考http://tongtianta.site/paper/6729

https://zhuanlan.zhihu.com/p/33128624

https://blog.csdn.net/linolzhang/article/details/75137050

摘要

我们提出了RON,一种用于通用对象检测的简单有效的框架。我们的动机是巧妙地将基于区域提出的最佳的方法(例如,更快的R-CNN)和无区域提出的(例如,SSD)方法相关联。在全卷积结构下,RON主要关注两个基本问题:(a)多尺度对象定位和(b)负样本挖掘。为了解决(a),我们设计了反向连接,使网络能够检测多层CNN上的对象。为了处理(b),我们提出了目标先验去减少目标的搜索空间。我们通过多任务损失函数联合优化反向连接,目标先验和目标检测,因此RON可以直接预测各种feature map的所有位置的最终检测结果。

针对富有挑战性的PASCAL VOC 2007PASCAL VOC 2012MS COCO基准测试的广泛实验证明了RON的竞争性能。具体而言,使用VGG-16和低分辨率384×384输入尺寸,PASCAL VOC 2007网络获得81.3mAPPASCAL VOC 2012数据集获得80.7mAP当数据集变得更大且更加困难时,它的优势会增加,正如MS COCO数据集上的结果所证明的那样。在测试阶段使用1.5G GPU内存,网络速度为15 FPS,比快速R-CNN3倍。代码将在https://github.com/ taokong / RON上提供。

简介

我们目睹了物体探测领域的重大进展,主要得益于深度网络。目前基于深度网络的*目标检测框架可以分为两个主要流:基于区域的方法[11] [23] [10] [16]和无区域方法[22] [19]

基于区域的方法将对象检测任务划分为两个子问题:第一阶段,在深度卷积神经网络(CNN)上产生专用区域提议生成网络,其可以生成高质量的候选框。然后在第二阶段,设计区域子网络以对这些候选框进行分类和重新分类。使用非常深的CNN [14] [27]Fast R-CNN[10] [23]最近在主流物体检测基准测试中表现出高精度[7] [24] [18]区域建议阶段可以拒绝大多数背景样本,因此用于物体检测的搜索空间大大减少[1] [32]通常开发多阶段训练过程用于区域建议生成和后检测的联合优化(例如,[4] [23] [16])。。在Fast R-CNN [10]中,区域性子网络重复评估数千个区域提议以生成检测分数。Fast R-CNN管道下,更快的R-CNN与检测网络共享全卷积特征,以实现几乎无成本区域提议。最近,R-FCN [4]试图通过添加位置敏感的得分图来使更快的R-CNN的非共享的每RoI计算可共享。从来没有,R-FCN仍然需要从区域提案网络[23]产生的区域提案。为确保检测准确性,所有方法都将图像调整为足够大的尺寸(通常最短边为600像素)。在训练和推理时间将图像输入深度网络时,这在某种程度上是资源/时间消耗。例如,对于VGG-16网络,使用大约5GBGPU内存,使用更快的R-CNN进行预测通常需要每个图像0.2[27]

 

 

另一个解决方案系列是无区域方法[22] [19]这些方法将对象检测视为单次拍摄问题,通过全卷积网络(FCN)直接从图像像素到边界框坐标。这些探测器的主要优点是效率高。SSD [19]起源于YOLO [19],试图用深层CNN处理物体检测问题。通过低分辨率输入,SSD检测器可以获得最先进的检测结果。然而,这些方法的检测精度仍有改进的余地:(a)没有区域提议,检测器不得不在检测模块处抑制所有负候选框。这将增加训练检测模块的难度。 bYOLO检测具有最顶层CNN层的对象,而不深入探索不同层的检测能力。SSD尝试通过添加以前的图层结果来提高检测性能。然而,SSD仍然在小目标中挣扎,主要是因为中间层的信息有限。这两个主要瓶颈影响了方法的检测精度。

在这两个解决方案系列的成功推动下,出现了一个关键问题:是否有可能开发出一个优雅的框架,可以巧妙地利用两种方法中的优点长处并消除它们的主要缺点?我们通过试图架起基于地区和无地区的方法之间的桥梁来解决这个问题。为实现这一目标,我们关注两个基本问题:(a)多尺度对象定位。各种尺度的物体可能出现在图像的任何位置,因此应该考虑具有不同位置/比例/纵横比的数万个区域。先前的工作[16] [3]表明,多尺度表示将显着改善各种尺度的物体检测。然而,这些方法总是在网络的一层检测各种尺度的物体[16] [23] [4]利用所提出的反向连接,在相应的网络规模上检测对象,这更优雅且更容易优化。 b)负样本空间挖掘。目标和非目标样本之间的比例严重不平衡。因此,物体探测器应该具有有效的负挖掘策略[26]为了减少目标的搜索空间,我们在卷积特征图上创建了一个目标先验(图1),并在训练阶段使用检测器优化它。

因此,我们提出RON(反向连接与目标先验网络)目标检测框架工作,它可以结合基于区域和无区域方法的优点。此外,最近的补充进展,如困难实例挖掘[26],边界框回归[11]和多层表示[16] [3]可以自然地采用。

贡献,我们所做的贡献如下:

我们提出了RON,一种用于端到端目标检测的全卷积框架。首先,反向连接为前一层CNN提供了更多的语义信息。其次,目标先验给出了对象搜索的明确指南。最后,多任务损失函数使我们能够针对检测性能从端到端优化整个网络。

2.为了实现高检测精度,已采用有效的训练策略,如负样本挖掘和数据增强。凭借384×384的低分辨率输入尺寸,RONPASCAL VOC 2007上实现了最先进的结果,mAP81.3%,VOC2012mAP80.7%,MS COCO27.4mAP

3. RON在时间和资源的有效性。凭借1.5G GPU内存,总前馈速度为15 FPS,比开创性的快速R-CNN3倍。此外,我们进行广泛的设计选择,如图层组合,有/无目标先验,以及其他变化。

相关工作

目标检测是计算机视觉领域的一项基础性和重要研究任务。它旨在使用边界框[7] [18]定位和识别每个对象样本。在深度CNN成功之前[17],广泛使用的检测系统基于独立成分的组合(HOG [30]SIFT [21]等)。DPM [8]及其变体[2] [5]多年来一直是主导方法。这些方法使用目标部分描述符作为特征,并扫描整个图像以找到具有特定类的最大响应的区域。随着深度学习在大量物体识别领域的巨大成功,已经提出了几种基于CNN的工作[31] [25]R-CNN [11]及其变体通常结合区域提议(由选择性搜索[29]Edgeboxes [32]MCG [1]等生成)和基于ConvNet的后分类。这些方法在检测精度方面取得了显着进步[17]在原始的R-CNN之后,研究正在以各种方式对其进行改进。SPP-Net [13]Fast R-CNN [10]利用RoI-PoolingSpatial-PyramidPooling)加速R-CNN方法,允许分类层重用通过CNN特征映射计算的特征。Fast R CNN管道下,一些工作试图提高检测速度和准确性,例如更有效的区域建议[23],多层融合[3] [16],背景信息[14] [9]和更有效的训练策略[26]R-FCN [4]试图通过ResNet架构下的位置敏感得分图来减少计算时间[14]由于FCN [20]可以提供输入图像的位置信息,因此有几项工作试图通过FCN解决物体检测问题。这些方法跳过区域建议生成步骤,直接预测多个类别的边界框和检测信度[6]YOLO [22]使用最顶层的CNN特征图来预测多个类别的置信度和位置。SSD [19]起源于YOLO,试图预测使用多个CNN层进行检测结果。通过精心设计的训练策略,SSD可以获得有竞争力的检测结果这些方法的主要优点是高时间效率。例如,YOLO的前馈速度为45 FPS,比快速R-CNN9倍。

RON: Reverse Connection with Objectness Prior Networks for Object Detection

2. RON目标检测概述。给定输入图像,网络首先计算骨干网络的特征。然后在每个检测尺度:(a)增加反向连接; b)产生先验对象; c)在其相应的CNN尺度和位置上检测物体。最后,所有检测结果都被融合并选择非最大抑制。

网络架构

本节介绍RON目标检测框架(图2)。我们首先在3.1节中介绍传统CNN的反向连接,以便不同的网络规模具有有效的检测能力。然后在3.2节中,我们将解释如何在不同的网络规模上生成候选框。接下来,我们介绍Objectness Prior去指导搜索目标在第3.3节和第3.4节中。最后,我们将目标先验和目标检测结合到一个统一的联合训练和测试网络中(第3.5节)。

网络准备我们使用VGG-16作为测试用例参考模型,该模型使用ImageNet数据集预训练[27]回想一下,VGG-1613个卷积层和3个全连接的层。我们将FC6(第14层)和FC7(第15层)转换为卷积层[20],并使用2×2卷积核和2步幅将FC7的分辨率降低一半。到目前为止,用于对象检测的特征映射大小是输入大小的1/8conv4_3),1/16conv5_3),1/32conv 6)和1/64conv7),宽度和高度均如图所示(参见图2顶)。

RON: Reverse Connection with Objectness Prior Networks for Object Detection

图3.反向连接块

3.1反向连接

将细粒度的细节与高度抽象的信息相结合,有助于不同尺度的物体检测[12] [20] [14]基于区域的网络通常将多个CNN层融合为单个特征图[3] [16]然后在具有区域子网络的融合地图上执行目标检测[10]由于需要根据固定特征检测所有对象,因此优化变得非常复杂。 SSD [19]检测多个CNN层上的对象。但是,以前层的语义信息是有限的,这会影响这些层的检测性能。这就是为什么SSD在较小的物体上比较大的物体具有更差的性能[19]

受到残差连接[14]成功的启发,它简化了更深层次网络的训练,我们提出了传统CNN架构的反向连接。反向连接使以前的特征具有更多的语义信息。一个反向连接块如图3所示。首先,将反卷积层应用于反向融合图(注释为rf-mapn+1,并且在主干层n上移植卷积层以保证输入具有相同的维度。然后通过逐元素加法合并两个对应的地图。反向融合图7是骨干层7的卷积输出(3×3×512)。生成此层后,将以相同的方式生成每个反向连接块,如图2所示。总共有四个具有不同尺度的反向融合图。

与使用单层进行物体检测的方法[16] [23]相比,多尺度表示在定位所有物体尺度方面更有效(如实验中所示)。更重要的是,由于反向连接是可学习的,因此可以得到前几层丰富的语义信息。与[19]相比,这种特性使RON在检测所有物体尺度方面更有效。

3.2参考框

在本节中,我们将介绍如何在3.1节生成的feature map上生成边界框。已知网络中不同级别的特征图具有不同的感受野尺寸[13]由于反向连接可以生成具有不同比例的多个特征图。我们可以设计盒子的分布,以便可以学习特定的特征图位置以响应特定的对象尺度。使用Smin表示最小比例,每个特征映射k的框的Sk

RON: Reverse Connection with Objectness Prior Networks for Object Detection

我们还为默认框施加了不同的宽高比RON: Reverse Connection with Objectness Prior Networks for Object Detection每个盒子的宽度和高度是根据纵横比[23]计算的。总的来说,每个特征地图位置有2个比例和5个纵横比。Smin是输入尺寸的110(例如,320×320模型的32像素)。通过组合具有不同比例和宽高比的所有默认框的预测,我们有各种各样的预测,涵盖各种对象大小和形状。

3.3目标先验

如第3.2节所示,我们考虑来自许多feature map的具有不同比例和宽高比的默认框。但是,只有一小部分盒子可以遮盖物体。换句话说,对象和非对象样本之间的比例严重不平衡。基于区域的方法通过区域提案网络[16] [23]克服了这个问题。但是,与默认框相比,区域提案将带来转化差异。因此,Fast R-CNN管道通常使用区域网络进行后检测,这带来了重复计算[4]相反,我们在引导对象搜索之前添加了一个对象性,而不生成新的区域提议。具体来说,我们添加一个3×3×2卷积层,后跟一个Softmax函数,以指示每个框中是否存在对象。对象性先前映射的通道数是10,因为每个位置有10个默认框。

1显示了从特定图像生成的多尺度对象性。对于可视化,目标先验图沿着通道维度进行平均。我们看到目标先验图可以明确地反映对象的存在。因此,可以显着减少对象的搜索空间。各种尺度的物体将在其相应的特征图上作出响应,我们通过适当的匹配和端到端训练来实现这一点。在实验部分可以看到更多结果。

RON: Reverse Connection with Objectness Prior Networks for Object Detection

图4:一个初始块

3.4检测和边界框回归

与目标先验不同,检测模块需要将区域分类为k+1类别(PASCAL VOC数据集为k=20MS COCO数据集为k=80,背景为1)。我们使用初始模块[28]3.1节中生成的特征图上执行检测。具体地说,我们在特征映射上添加两个inception模块(图4中显示了一个块),并对最终的初始输出进行分类。有很多初始选择,如[28]所示。在本文中,我们只使用最简单的结构。

使用Softmax,子网络输出每类分数,表明存在类特定实例。对于边界框回归,我们预测相对于单元格中默认框的偏移(参见图5)。

RON: Reverse Connection with Objectness Prior Networks for Object Detection

图5.目标检测和边界框回归模块。上:边界框回归;底部:对象分类。

3.5将目标先验和检测相结合

在本节中,我们将解释RON如何将目标先验与对象检测相结合。为了训练网络,我们首先为第3.2节生成的每个候选区域分配一个二进制类标签。然后,如果该区域覆盖了对象,我们还为其分配了一个类别标签。对于每个真实框,(i)我们将其与具有最多重叠面积的候选区域匹配; ii)将候选区域与重叠面积大于0.5的真实框相匹配。这种匹配策略保证每个真实框至少有一个候选框和他对应。我们将负标签分配给重叠面积小于0.3的框。

每一个参考框有两个label,一个是不是目标的label,另一个类别label。在训练的时候,网络会根据目标先验动态更新类别label。在前向传播时,网络首先产生目标先验,并进行类别检测。但是当反向传播时,网络首先会产生目标先验,然后对于检测,只会在objectness得分大于某个阈值的区域内进行目标检测。额外的计算仅仅在于为反向传播选择训练样本。当选择合适的阈值时,样本的数量减少了,这样反向传播的时间就缩短了。

RON: Reverse Connection with Objectness Prior Networks for Object Detection

6.目标先验。我们首先根据Op对映射前的对象性进行二值化,然后将二进制掩码投影到最后一个卷积特征映射的检测域。收集掩模内的位置以检测对象。

4.训练和测试

在本节中,我们首先介绍了用于优化网络的多任务损失函数。然后我们解释如何联合优化网络并直接进行推理。

4.1损失函数

RON: Reverse Connection with Objectness Prior Networks for Object Detection

这里有个疑问Pobj应该只有01,不清楚Lobj是什么样的形式。

4.2联合训练和测试

我们通过端到端的训练优化上述模型。在匹配步骤之后,大多数默认框都是负样本,尤其是当默认框的数量很大时。在这里,我们介绍了一种动态训练策略来扫描负样本空间。在训练阶段,每个SGD小批量由从数据集中均匀选择的N个图像构成。在每个小批次中,(a)选择所有阳性样本用于训练。从具有阴性标记的区域中随机选择阴性样本,使得阳性和阴性样本之间的比例为13; b)为了检测,我们首先根据在这个小批量产生目标先验分数来减少样本数量(如第3.5节所述)。然后选择所有阳性样品。我们随机选择阴性样本,使得阳性和阴性样本之间的比例为13我们注意到最近的作品如Fast R-CNN [23]R-FCN [4]通常使用多阶段训练进行联合优化。相反,损失函数2在我们的实现中通过反向传播和SGD进行端到端训练,这在训练阶段更有效。在训练开始时,对象性先验地图处于混乱状态。然而,随着训练进度,对象性先验图更集中于覆盖对象的区域。

数据增强

为了使模型对各种对象尺度更加健壮,每个训练图像通过以下选项之一随机采样:(i)使用原始/ flped输入图像; ii)随机采样边缘长度为原始图像的(4/10,510,610,710,8109/10的补丁,并确保至少一个对象的中心位于该补丁内。我们注意到上面描述的数据增强策略将增加大对象的数量,但是小对象的优化优势是有限的。我们通过增加一个小尺度训练来克服这个问题。某个尺度下的大目标在较小的尺度下,就会变成小目标。这个训练策略可以避免对特定目标的尺寸过拟合。

预测

每个 Box 的类置信度表示为:   RON: Reverse Connection with Objectness Prior Networks for Object Detection这个得分包含两部分,一是 Objectness 的概率,二是目标的类别概率。得到目标 Score之后,通过边框回归调整 Box位置,最后用 NMS 得到最终检测结果。

7.结论

我们介绍了RON,一种有效且有效的对象检测框架。我们设计反向连接以使网络能够检测多级CNN上的对象。并且还提出了对象性先验以指导对象的搜索。我们通过多任务损失函数优化整个网络,因此网络可以直接预测最终的检测结果。在标准基准测试中,RON实现了最先进的物体检测性能。

 

总体来看,在各个测试集上的结果表明,效果略优于SSD512。