7

RelationNet++:基于Transformer融合多种检测目标的表示方式 | NeurIPS 2020

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzI3MzU5NjQyMQ%3D%3D&%3Bmid=2247485475&%3Bidx=1&%3Bsn=f69f83eabc71aab9ff392cbfc8cc05c0
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

论文提出了基于注意力的BVR模块,能够融合预测框、中心点和角点三种目标表示方式,并且能够无缝地嵌入到各种目标检测算法中,带来不错的收益

来源:晓飞的算法工程笔记 公众号

论文: RelationNet++: Bridging Visual Representations for Object Detection via Transformer Decoder

6nUVj2z.png!mobile
  • 论文地址:https://arxiv.org/abs/2010.15831

  • 论文代码:https://github.com/microsoft/RelationNet2

Introduction

vqM7Znu.png!mobile

目标检测算法有很多种目标表示方法,如图b所示,有基于矩形框的也有基于关键点的。不同的表示方法使得检测算法在不同的方面表现更优,比如矩形框能更好的对齐标注信息,中心点更利于小目标识别,角点则能够更精细地定位。论文探讨能否将多种表示方式融合到单框架中,最终提出了基于注意力的解码模块BVR(bridging visual representations),该模块与Transformer的注意力机制类似,通过加权其它目标特征来增强当前目标特征,能够融合不同表示方式的异构特征。

EvIzeu.png!mobile

以BVR嵌入anchor-based方法为例,如图a所示,表示方式acnhor作为,其它表示方式中心点和角点作为,计算和间关联性权重,基于权重整合的特征来增强的特征。针对目标检测的场景,论文对权重计算进行了加速,分别为key sampling和shared location embedding,用于减少的数量以及权重计算量。除了嵌入到anchor-based方法外,BVR也可嵌入到多种形式的目标检测算法中。

论文的贡献如下:

  • 提出通用模块BVR,可融合不同目标表示方式的异构特征,以in-place的方式嵌入到各种检测框架,不破坏原本的检测过程。

  • 提出BVR模块的加速方法,key sampling和shared location embedding。

  • 经测试,在ReinaNet、Faster R-CNN、FCOS和ATSS四个检测器上有明显的提升。

Bridging Visual Representations

Aza6NjI.png!mobile

使用不同表示方式的检测算法有不同的检测流程,如图2所示,BVR注意力模块以算法原本的表示方式为主特征,加入其它表示方式作为辅助特征。将主特征和辅助特征作为输入,注意力模块根据关联性加权辅助特征来增强主特征:

,,为第个实例的输入特征,输出特征和几何向量,,为第个实例的输入特征和几何向量,为线性变化,为和实例间的关联性计算:

为外观特征相似度,计算方法为scaled dot product。为几何位置相关的项,先将相对的几何向量进行cosine/sine位置embedding,再通过两层MLP计算关联度。由于不同表示方式的几何向量(4-d预测框与2-d点)不同,需从4-d预测框提取对应的2-d点(中心或角点),这样两种不同表示方式的几何向量就对齐了。

在实现时,BVR模块采用了类似multi-head attention的机制,head数量默认为8,即公式1的+号后面改为Concate多个关联特征的计算,每个关联特征的维度为输入特征的1/8。

BVR for RetinaNet

QZvm2qq.png!mobile

以RetinaNet为例,RetinaNet在特征图的每个位置设置9个anchor,共有个预测框,BVR模块将特征图作为输入(为特征图维度),生成相同大小的增强特征。如图a所示,BVR使用中心点和角点作为辅助的特征,关键点通过轻量级的Point Head网络预测,然后选择少量的点输入到注意力模块中增强分类特征和回归特征。

Auxiliary (key) representation learning

Point Head网络包含两层共享的卷积,然后接两个独立的子网(卷积+sigmoid),预测特征图中每个位置为中心点(或角点)的概率及其相应的偏移值。如果网络包含FPN,则将所有GT的中心点和角点赋予各层进行训练,不需根据GT大小指定层,这样能够获取更多的正样本,加快训练。

Key  selection

由于BVR模块使用了角点和中心作为辅助表示方式,特征图的每个位置会输出其为关键点的概率。如果将特征图的每个位置都作为角点和中心点的候选位置,会生成超大的集,带来大量的计算消耗。此外,过多的背景候选者也会抑制真正的角点和中心点。为了解决上述问题,论文提出top-k(默认为50)选择策略,以角点选择为例,使用stride=1的MaxPool对角点分数图进行转换,选取top-k分数位置进行后续计算。对于包含FPN的网络,则选择所有层的top-k位置,输入BVR模块时不区分层。

Shared relative location embedding

对于每组和,公式2的几何项需要对输入的相对位置进行cosine/sine embedding以及MLP网络转换后再计算关联度。公式2的几何项的几何复杂度和内存复杂度为和,,,,分别为cosine/sine embedding维度,MLP网络内层的维度、multi-head attention模块的head数量以及选择的数量,计算量和内存占用都很大。

3QNfMbz.png!mobile

由于几何向量的相对位置范围是有限的,一般都在范围内,可以预先对每个可能的值进行embedding计算,生成维几何图,然后通过双线性采样获得对的值。为了进一步降低计算量,设定几何图的每个位置代表原图个像素,为FPN层的stride,这样的特征图就可表示的原图。计算量和内存消耗也降低为和。

Separate BVR modules for classification and regression

目标中心点表示方式可提供丰富目标类别信息,角点表示方式则可促进定位准确率。因此,论文分别使用独立的BVR模块来增强分类和回归特征,如图a所示,中心点用于增强分类特征,角点用于增强回归特征。

BVR for Other Frameworks

V7RJbm6.png!mobile

论文也在ATSS、FCOS和Faster R-CNN上尝试BVR模块的嵌入,ATSS的接入方式跟RetinaNet一致,FCOS跟RetinaNet也类似,只是将中心点作为表示方式,而Faster R-CNN的嵌入如图4所示,使用的是RoI Aligin后的特征,其它也大同小异。

Experiment

3uUJJvz.png!mobileUVr6F3i.png!mobilevemu63M.png!mobileqqAbIrB.png!mobile

论文进行了充足的对比实验,可到原文看看具体的实验步骤和关键结论。

Conclusion

论文提出了基于注意力的BVR模块,能够融合预测框、中心点和角点三种目标表示方式,并且能够无缝地嵌入到各种目标检测算法中,带来不错的收益。

如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

2AvAvi2.png!mobile work-life balance.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK