52.1 AP!RepPoints V2:用于目标检测的验证+回归,刚刚开源!

共 5280字,需浏览 11分钟

 ·

2020-07-28 15:10

本文转载自  AI深度视线

AICV


将验证和回归进行组合,是目前最强的Anchor-free目标检测网络,与前几天的AutoAssign并列。

论文链接:

https://arxiv.org/abs/2007.08508

代码昨天前刚刚开源!

https://github.com/Scalsol/RepPointsV2

作者团队:MSRA&北京大学





1


摘要



验证和回归是神经网络中用于预测的两种通用方法。每种方法都有其各自的优势:验证更容易准确推断,回归更有效并且适用于连续目标变量。因此,仔细地组合它们以利用它们的好处通常是有益的。

在本文中,我们采用了这种理念来改进最新的对象检测,特别是通过RepPoints。尽管RepPoints提供了高性能,但我们发现它严重依赖于回归来进行目标定位,因此还有改进的余地。

我们将验证任务引入RepPoints的位置预测中,从而生成RepPointsv2,它使用不同的主干和训练方法,在COCO对象检测基准上比原始RepPoints一致地提高了约2.0 mAP。RepPoints v2还可以通过单个模型在COCO test-dev上达到52.1 mAP。

此外,我们表明,提出的方法可以更普遍地提升其他目标检测框架以及诸如实例分割之类的应用。


2


主要思路


在这项工作中,我们研究了是否可以通过包含验证方法来增强基于纯回归的方法。我们观察到,以某些方式使用验证已证明对提升检测效果是有利的。例如在CornerNet [13]中,与在RetinaNet [16]中验证anchor box为粗略假设定位相反,而是将feature map points验证为边界框角点。如表1所示,这种验证的使用可显着提高定位性能
  • 问题提出:

为了提高基于回归的方法(特别是RepPoints [30])的性能,我们寻求纳入有效且兼容的验证形式。但是,由两种方法处理的对象表示的粒度不同,即RepPoints中的目标整体和角点验证中的目标parts(角点),都会带来障碍。

  • 解决方法:

为了解决此问题,我们建议通过辅助分支来对验证任务建模,这些辅助分支仅在功能级别和结果级别上添加到主要回归分支中,而不会影响中间表示。通过这些辅助分支,可以将验证与回归融合在一起,以提供以下好处:
  • 通过多任务学习获得更好的功能,通过包含验证提示来增强功能以及通过两种方法进行联合推理。
  • 融合非常简单,直观,通用,足以利用任何种类的验证提示,并且不会中断RepPoints算法的流程。
通过利用验证的不同技术,RepPoints的定位和分类能力得到了显着提高。所得的检测器称为RepPoints v2,与具有不同主干的COCO基准上的原始RepPoint相比,显示出约2.0 mAP的一致改进。使用单个ResNeXt-101-DCN模型,它在COCO对象检测测试开发集上也达到了52.1 mAP。


3


本文方法


3.1 回顾RepPoints

RepPoints[30]采用纯回归实现对象定位。从一个feature map 的位置p = (x, y)开始,直接回归一组点:
来表示一个目标的空间范围,通过下面连续两个步骤:
RepPoints[30]中的直接回归使其成为一个不需要固定anchor的简单框架。虽然没有采用锚点验证步骤,但其定位精度并不比基于锚点的检测器RetinaNet[16]差,如表1所示。然而,回归和验证之间潜在的协同作用促使我们考虑以下问题:
  • 什么样的验证任务能够使基于回归的RepPoints[30]受益?
  • 各种验证任务可以方便地融合到RepPoints框架中而不损害原始检测器吗?

3.2 Verification Tasks

我们首先讨论两个验证任务,它们可能有助于基于回归的定位方法。


    Corner Point Verification

角点验证的操作是将一个分数与特征图中的每个点关联起来,表明它是一个角点的概率

由于特征图的分辨率较输入图像低,预测增加一个偏移量来产生连续的角点坐标,例如8倍的下采样,角点坐标被初始量化。在原始实现[13]的基础上,在头部进行角点池化计算,用一个focal loss[16]来训练角点分数预测,平滑的L1 loss来进行亚像素偏移预测。在标签分配中,如果一个GroundTruth角点位于其feature bin内,则每个特征图点被标记为正,其他点被标记为负。在计算损失时,每个GroundTruth周围的负样本由一个逆高斯函数根据其到GroundTruth角点的距离赋较低的权值。论文附录A给出了更详细的说明。

与CornerNet[13]采用特殊的沙漏结构和单级高分辨率特征图(从原始图像下采样4倍)的骨干网结构不同,大多数最近的物体探测器采用具有多级特征图的FPN骨干网。们采用角点验证来利用多级特征图,例如RepPoints[30]中的C3-C7设置。

具体来说,所有的ground truth角点都被分配到feature map的每个level,这与基于FPN的通常根据目标大小分配检测的做法不同。我们发现这种方式的赋值效果稍微好一些,尽管它忽略了尺度归一化的问题,这可能是因为在训练的每个层次上都有更多的正样本。它的性能也比在最高分辨率的单一feature map级别(例如C3)上进行训练,然后将预测的score/offset map复制/调整到其他级别上要好得多。


    Within-box foreground verification

另一项可能对基于回归的对象检测器有利的验证任务是验证特征映射点是否位于对象框内

这个框内的前景验证任务均匀地提供了一个对象框内的定位信息,与之形成对比的是,角点只关注box的极端部分。因此,在描述对象边界时,它不如角点精确,但在给定粗略的定位标准时,可能有利于对象检测器。

我们还通过使用非二进制分类感知前景热图来区分不同的对象类别。具体来说,对于C类对象,有一个C通道输出,每个通道表示一个特征点在对应对象类别中的概率。与角点验证一样,每个ground truth对象被分配到FPN骨干的每一层。

归一化局部损失。在训练中,普通的focal loss让较大的物体比较小的物体贡献更大,导致对小物体的前景得分学习得很差。为了解决这一问题,提出了一种归一化focal loss算法,该算法根据特征图中同一对象框内的正样本点总数来对每个正特征图点进行归一化。对于负样本点,归一化损失使用正样本点的数量作为分母。附录A给出了更详细的说明。


3.3 A General Fusion Method

在本节中,我们将结合这些验证形式来提高基于回归方法的性能。通常,基于回归的方法以自顶向下的方式检测对象,所有中间表示都对整个对象建模。由于这两个验证任务处理对象部分,如角点或前景点,它们不同粒度的目标表示使得两种方法的融合变得复杂。
为了解决这个问题,
我们建议通过与主要回归分支融合在一起的辅助分支来对验证任务建模,这种方式不会影响到它的中间表示,如图1所示。

融合只发生在特征层和结果层。有了这些辅助侧分支,探测器可以获得几个好处:


  • Better features by multi-task learning

辅助验证任务提供了更丰富的学习监督,产生了更强的特征,提高了检测准确率,如表4所示。注意,这种多任务学习不同于Mask R-CNN[8]。在Mask R-CNN[8]中,边界框目标检测得益于目标mask预测任务,但需要对目标mask进行额外注释。相反,我们的附加辅助任务是仅从对象边界框注释自动生成的,允许它们在只有边界框注释可用的场景中应用。


  • Feature enhancement for better regression

验证输出包括有关角点位置和前景区域的强烈提示,这将有利于回归任务。由于这些验证任务的预测输出与每个FPN级别上用于回归的特征图具有相同的分辨率,因此我们通过在原始特征图上应用加号运算符以及将验证输出产生的嵌入式特征图直接加一个运算符,通过 1×1转换层将它们直接融合在一起。嵌入的目的是将任何验证输出投影到与原始要素图相同的维度,并在要素图级别之间共享。请注意,对于验证输出,将一个从反向传播分离出来的副本输入到嵌入卷积层,以避免影响该验证任务的学习。


  • Joint inference by both methodologies

我们明确地利用了角点预测的验证输出和基于回归的定位,以一种联合推理的方法融合它们的长处。具体来说,通过角点验证,小邻域内的亚像素角点定位通常比主回归分支的定位更准确,但由于缺少对象的全图,判断是否为真实角点的能力较差。与之相反,主回归分支对后者更有利,但在精确的亚像素定位方面较差。为了结合它们的优点,我们根据主回归分支完善预测的边界框的角点pt:

该融合方法灵活通用,利用了任何一种验证线索,避免了与主分支中的中间表示交互,对验证目标的类型要求较少。它也不会中断主分支的总体流程,并在很大程度上保持了建立在主分支上的原始检测器的便利性。


3.4 RepPoints v2: Fusing Verification into RepPoints

RepPoints是一个纯粹的基于回归的对象检测器。我们现在用不同形式的验证任务来补充它,特别是对于角点和box内前景。为了增加reppoint与辅助验证任务的兼容性,我们首先对它做了一个小修改,使前两个点显式地表示左上角和右下角的点。我们称之为显性角点变体。这些角点替代了原始RepPoints中使用的转换函数,从而使边界框由这些角点定义,而不是通过点集上的最小-最大或动量操作。有了角点,转换函数变为:

对于这种明确的角点替换,我们添加了辅助的边分支来进行验证。具体来说,我们将定位头的第3 conv层之后的feature map作为输入,重用现有的头以节省计算。

如图2所示,在该feature map上使用一个3×3的卷积层,然后对两个验证任务使用两个小子网络。角子网络由角池层[13]和1×1 conv层组成,用于预测热图得分和亚像素偏移量。前景子网络是一个单一的1×1 conv层,用于预测前景得分热图。在训练中,我们采用多任务损失:


3.5 扩展到其他检测器和问题

用于reppoint的融合方法也可以改进FCOS[27]等检测器。由于FCOS的分类和定位头与RepPoints相似,因此可以直接将RepPoints v2的融合应用到FCOS中。具体来说,在第3层的特征图上应用了角点和前景验证头。验证输出映射融合到主分支中,通过3.3节所述的联合推理得到最终的回归结果。
该融合方法也可以推广到其他任务中,如使用Dense RepPoints [31]进行实例分割,这是一种回归的方法。由于有额外的目标掩码注释,可以使用更细粒度的验证格式,例如对象轮廓验证和感知分类的语义分割。如表8所示,额外的验证方法为COCO test-dev集中的Dense RepPoints带来了1.3 mask AP收益。更多细节见附录B。


4


实验效果


4.1 消融实验

  • Explicit-corners变体

这个变体的性能与原始reppoint中使用的三个变体相当,但是在添加了验证模块后,它的0.2-0.3映射性能比其他变体要好。这将有助于验证和回归任务之间更有效的交互。


  • Forms of verification

仅角点验证任务就比RepPoints基线获得1.4个mAP。收益主要针对较高的IoU标准,例如AP 90提高4.0 mAP,而AP 50仅增加0.2 mAP。额外的前景验证任务增加了0.5 mAP,但主要是在较低的IoU标准下,例如,AP 50提高了0.9,而AP 90保持不变。


  • Types of fusion

附加的特征增强操作又带来0.7的增益。通过联合推理的显式融合增加了0.8个mAP,这样完整的方法比没有验证模块的同类方法增加1.9个mAP。


4.2 Comparison to State-of-the-art Methods


在回归分支中我们使用GIoU[22]损失代替平滑-l1损失。以ResNet-101为骨干,我们的方法实现了无附加功能的46.0 mAP。采用更强的ResNeXt-101[29]和DCN[3]模型,mAP精度提高到49.4。在增加了[32]中多尺度测试的基础上,该方法实现了52.1 mAP


4.3 扩展到其他

  • Direct application to FCOS

  • Extension to instance segmentation


机器视觉 CV

与你分享 AI 和 CV 的乐趣

分享数据集、电子书、免费GPU

长按二维码关注我们

浏览 28
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报