点击关注上方“AI深度视线”,并“星标”公号
git
技术硬文,第一时间送达!github
AI视线算法
将验证和回归进行组合,是目前最强的Anchor-free目标检测网络,与前几天的AutoAssign并列。
微信
论文连接:
网络
https://arxiv.org/abs/2007.08508app
代码昨天前刚刚开源!
框架
https://github.com/Scalsol/RepPointsV2less
做者团队:MSRA&北京大学
编辑器
1函数
摘要

在本文中,咱们采用了这种理念来改进最新的对象检测,特别是经过RepPoints。尽管RepPoints提供了高性能,但咱们发现它严重依赖于回归来进行目标定位,所以还有改进的余地。
咱们将验证任务引入RepPoints的位置预测中,从而生成RepPointsv2,它使用不一样的主干和训练方法,在COCO对象检测基准上比原始RepPoints一致地提升了约2.0 mAP。RepPoints v2还能够经过单个模型在COCO test-dev上达到52.1 mAP。
此外,咱们代表,提出的方法能够更广泛地提高其余目标检测框架以及诸如实例分割之类的应用。
2
主要思路

问题提出:
解决方法:
-
经过多任务学习得到更好的功能,经过包含验证提示来加强功能以及经过两种方法进行联合推理。 -
融合很是简单,直观,通用,足以利用任何种类的验证提示,而且不 会中断RepPoints算法的流程。
3
本文方法
3.1 回顾RepPoints


-
什么样的验证任务可以使基于回归的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复制/调整到其余级别上要好得多。
另外一项可能对基于回归的对象检测器有利的验证任务是验证特征映射点是否位于对象框内。
这个框内的前景验证任务均匀地提供了一个对象框内的定位信息,与之造成对比的是,角点只关注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
最新人工智能、深度学习、SLAM干货奉上!
本文分享自微信公众号 - AI深度学习视线(AI_DeepSight)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。