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

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

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

  • 论文地址:https://arxiv.org/abs/2010.15831
  • 论文代码:https://github.com/microsoft/RelationNet2

Introduction


  指标检测算法有很多种指标示意办法,如图b所示,有基于矩形框的也有基于关键点的。不同的示意办法使得检测算法在不同的方面体现更优,比方矩形框能更好的对齐标注信息,中心点更利于小指标辨认,角点则可能更精密地定位。论文探讨是否将多种示意形式交融到单框架中,最终提出了基于注意力的解码模块BVR(bridging visual representations),该模块与Transformer的注意力机制相似,通过加权其它指标特色来加强以后指标特色,可能交融不同示意形式的异构特色。

  以BVR嵌入anchor-based办法为例,如图a所示,示意形式acnhor作为$query$,其它示意形式中心点和角点作为$key$,计算$query$和$key$间关联性权重,基于权重整合$key$的特色来加强$query$的特色。针对指标检测的场景,论文对权重计算进行了减速,别离为key sampling和shared location embedding,用于缩小$key$的数量以及权重计算量。除了嵌入到anchor-based办法外,BVR也可嵌入到多种形式的指标检测算法中。
  论文的奉献如下:

  • 提出通用模块BVR,可交融不同指标示意形式的异构特色,以in-place的形式嵌入到各种检测框架,不毁坏本来的检测过程。
  • 提出BVR模块的减速办法,key sampling和shared location embedding。
  • 经测试,在ReinaNet、Faster R-CNN、FCOS和ATSS四个检测器上有显著的晋升。

Bridging Visual Representations


  应用不同示意形式的检测算法有不同的检测流程,如图2所示,BVR注意力模块以算法本来的示意形式为主特色,退出其它示意形式作为辅助特色。将主特色$query$和辅助特色$key$作为输出,注意力模块依据关联性加权辅助特色来加强主特色:

  $f^q_i$,$f^{'q}_i$,$g^q_i$为第$i$个$query$实例的输出特色,输入特色和几何向量,$f^k_j$,$g^k_j$为第$j$个$key$实例的输出特色和几何向量,$T_v(\cdot)$为线性变动,$S(\cdot)$为$i$和$j$实例间的关联性计算:

  $S^A(f^q_i, f^k_j)$为外观特色类似度,计算方法为scaled dot product。$S^G(g^q_i, g^k_j)$为几何地位相干的项,先将绝对的几何向量进行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


  以RetinaNet为例,RetinaNet在特色图的每个地位设置9个anchor,共有$9\times H\times W$个预测框,BVR模块将$C\times 9\times H\times W$特色图作为输出($C$为特色图维度),生成雷同大小的加强特色。如图a所示,BVR应用中心点和角点作为辅助的$key$特色,关键点通过轻量级的Point Head网络预测,而后抉择大量的点输出到注意力模块中加强分类特色和回归特色。

Auxiliary (key) representation learning

  Point Head网络蕴含两层共享的$3\times 3$卷积,而后接两个独立的子网($3\times 3$卷积+sigmoid),预测特色图中每个地位为中心点(或角点)的概率及其相应的偏移值。如果网络蕴含FPN,则将所有GT的中心点和角点赋予各层进行训练,不需依据GT大小指定层,这样可能获取更多的正样本,放慢训练。

Key selection

  因为BVR模块应用了角点和核心作为辅助示意形式,特色图的每个地位会输入其为关键点的概率。如果将特色图的每个地位都作为角点和中心点的候选地位,会生成超大的$key$集,带来大量的计算耗费。此外,过多的背景候选者也会克制真正的角点和中心点。为了解决上述问题,论文提出top-k(默认为50)$key$抉择策略,以角点抉择为例,应用stride=1的$3\times 3$MaxPool对角点分数图进行转换,选取top-k分数地位进行后续计算。对于蕴含FPN的网络,则抉择所有层的top-k地位,输出BVR模块时不辨别层。

Shared relative location embedding

  对于每组$query$和$key$,公式2的几何项须要对输出的绝对地位进行cosine/sine embedding以及MLP网络转换后再计算关联度。公式2的几何项的几何复杂度和内存复杂度为$\mathcal{O}(time)=(d_0+d_0d_1+d_1G)KHW$和$\mathcal{O}(memory)=(2+d_0+d_1+G)KHW$,$d_0$,$d_0$,$G$,$K$别离为cosine/sine embedding维度,MLP网络内层的维度、multi-head attention模块的head数量以及抉择的$key$数量,计算量和内存占用都很大。

  因为几何向量的绝对地位范畴是无限的,个别都在$[-H+1, H-1]\times [-W+1, W-1]$范畴内,能够事后对每个可能的值进行embedding计算,生成$G$维几何图,而后通过双线性采样取得$key/query$对的值。为了进一步升高计算量,设定几何图的每个地位代表原图$U=\frac{1}{2}S$个像素,$S$为FPN层的stride,这样$400\times 400$的特色图就可示意$[-100S, 100S)\times [-100S, 100S)$的原图。计算量和内存耗费也升高为$\mathcal{O}(time)=(d_0+d_0d_1+d_1G)\cdot 400^2+GKHW$和$\mathcal{O}(memory)=(2+d_0+d_1+G)\cdot 400^2+GKHW$。

Separate BVR modules for classification and regression

  指标中心点示意形式可提供丰盛指标类别信息,角点示意形式则可促成定位准确率。因而,论文别离应用独立的BVR模块来加强分类和回归特色,如图a所示,中心点用于加强分类特色,角点用于加强回归特色。

BVR for Other Frameworks


  论文也在ATSS、FCOS和Faster R-CNN上尝试BVR模块的嵌入,ATSS的接入形式跟RetinaNet统一,FCOS跟RetinaNet也相似,只是将中心点作为$query$示意形式,而Faster R-CNN的嵌入如图4所示,应用的是RoI Aligin后的特色,其它也大同小异。

Experiment


  论文进行了短缺的比照试验,可到原文看看具体的试验步骤和要害论断。

Conclusion


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



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】