点击上方“CVer”,选择加"星标"置顶
重磅干货,第一时间送达
本文转载自:AI深度学习视线 | 论文已上传,文末附下载
将验证和回归进行组合,是目前最强的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
主要思路
问题提出:
解决方法:
3
本文方法
3.1 回顾RepPoints
3.2 Verification Tasks
我们首先讨论两个验证任务,它们可能有助于基于回归的定位方法。
角点验证的操作是将一个分数与特征图中的每个点关联起来,表明它是一个角点的概率。
由于特征图的分辨率较输入图像低,预测增加一个偏移量来产生连续的角点坐标,例如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所示。
融合只发生在特征层和结果层。有了这些辅助侧分支,探测器可以获得几个好处:
辅助验证任务提供了更丰富的学习监督,产生了更强的特征,提高了检测准确率,如表4所示。注意,这种多任务学习不同于Mask R-CNN[8]。在Mask R-CNN[8]中,边界框目标检测得益于目标mask预测任务,但需要对目标mask进行额外注释。相反,我们的附加辅助任务是仅从对象边界框注释自动生成的,允许它们在只有边界框注释可用的场景中应用。
验证输出包括有关角点位置和前景区域的强烈提示,这将有利于回归任务。由于这些验证任务的预测输出与每个FPN级别上用于回归的特征图具有相同的分辨率,因此我们通过在原始特征图上应用加号运算符以及将验证输出产生的嵌入式特征图直接加一个运算符,通过 1×1转换层将它们直接融合在一起。嵌入的目的是将任何验证输出投影到与原始要素图相同的维度,并在要素图级别之间共享。请注意,对于验证输出,将一个从反向传播分离出来的副本输入到嵌入卷积层,以避免影响该验证任务的学习。
我们明确地利用了角点预测的验证输出和基于回归的定位,以一种联合推理的方法融合它们的长处。具体来说,通过角点验证,小邻域内的亚像素角点定位通常比主回归分支的定位更准确,但由于缺少对象的全图,判断是否为真实角点的能力较差。与之相反,主回归分支对后者更有利,但在精确的亚像素定位方面较差。为了结合它们的优点,我们根据主回归分支完善预测的边界框的角点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
下载
在CVer公众号后台回复:0720,即可下载本论文
重磅!CVer-目标检测 微信交流群已成立
扫码添加CVer助手,可申请加入CVer-目标检测 微信交流群,目前已汇集4100人!涵盖2D/3D目标检测、小目标检测、遥感目标检测等。互相交流,一起进步!
同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加群
▲长按关注我们
整理不易,请给CVer点赞和在看!