RelationNet++: Bridging Visual Representations for OD via Transformer Decoder论文阅读翻译 - 2020NIPS

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

论文下载地址:点击此链接跳转.
这是博主自己在github整理的目标检测方向论文的合集,应该算比较全,2020ECCV(细分版), 2020NIPS已更新完毕,欢迎下载…

一、Abstract

       现有的目标检测框架通常建立在目标/局部表示的单一格式上,即RetinaNet和Faster R-CNN中的锚点/建议矩形框,FCOS和RepPoints中的中心点以及CornerNet中的角点。尽管这些不同的表示形式通常会驱使框架在不同方面都表现良好,如更好的分类或更好的定位,但由于不同表示的异构性或非网格特征提取,通常很难在单个框架中组合这些表示来充分利用每种表示的优势。本文提出了一种基于注意力的解码器模块,该模块类似于Transformer中的模块,以端到端的方式将其他表示形式桥接到基于单一表示形式的目标检测器中。其他表示会被当作一组关键实例,以增强检测器中的主要query表示特征。作者提出了一个用于解码模块有效计算的新技术,包括密钥采样方法和共享定位嵌入法。作者称提出的模块为桥接视觉表示(BVR)。作者证明了该模块在将其他表示形式桥接到主流的目标检测框架(RetinaNet,Faster R-CNN,FCOS和ATSS)时具有广泛的有效性,可以实现约1.5〜3.0AP的改进。将SOTA框架提高了约2.0 AP,在COCO测试开发中达到了52.7AP。

二、Introduction

       在计算机视觉中目标检测是一个至关重要的问题。尽管有许多解决此问题的方法,但它们通常都是利用单一的视觉表示形式。大多数目标检测框架在所有的中间阶段都使用的矩形框来表示目标假设。最近也有一些框架采用点来表示对象假设,如CenterNet和FCOS中的中心点以及RepPoints和PSN中的点。与表示整个目标相反,一些基于关键点的方法(如CornerNet)利用角点的部分表示来组成目标。通常不同的表示方法会引导检测器在不同方面表现良好。例如边界框表示可以更好地与annotation的格式对齐以进行目标检测。中心表示则避免了anchor设计,通常对小物体较友好。角点表示则通常对更精细的定位而言更准确。
       作者想要将这些表示组合成一个单一的框架,以便更好地利用每一种表示的优势? 不同的表示及其特征提取通常都是异构的,组合困难。为了解决这个问题,作者提出了一个与Transformer类似的基于注意力的解码器模块,它可以有效建模异构特征之间的依赖关系。目标检测器中的主要表示被设置为query输入,其他可视化表示作为辅助keys,通过外观和几何关系的某些交互来增强query特征。
       通常所有特征图的点都可以当作角点/中心点key实例,通常对于实际注意力计算而言太多了。另外成对的几何项十分消耗计算和内存资源。为解决这些问题,作者提出了两种新的技术,包括用于有效计算几何项的key采样方法和共享位置嵌入方法。所提出的模块被称为桥接视觉表示(BVR)。
在这里插入图片描述
       图1a展示了此模块将中心点和角点表示桥接到基于anchor的目标检测器中的应用。中心点和角点表示是增强anchor特征的key实例,然后将增强的特征用于类别分类和边界框回归以生成检测结果。与原始目标检测器相比,主要的变化是用于分类和回归的输入特征被增强了,因此增强后的检测器在很大程度上还是保持了其使用便利性。
       作者提出的BVR模块是通用的。它适用于各种流行的目标检测框架,包括RetinaNet,Faster R-CNN,FCOS和ATSS。在COCO数据集上的大量实验表明,BVR模块可以将这些检测器的性能提高1.5〜3.0AP。ATSS检测器提高了约2.0 AP,开销却很小,在COCOtest-dev数据集上达到了52.7AP。网络被称为RelationNet++,它增强了RelationNet中从bbox-to-bbox到跨异构目标/部分表示的关系建模。

Contributions:

1)一个称为BVR的通用模块,用于桥接各种异构视觉表示并结合每种特征的优势。所提出的模块可以直接应用,并且不会破坏主要表示的整体推理过程。
2)使提出的桥接模块高效的新技术,包括key采样方法和共享位置嵌入方法。
3)所提出的模块对四个主流的目标检测器具有广泛的效果:RetinaNet,Faster R-CNN,FCOS和ATSS。

三、A Representation View for Object Detection

3.1 Object / Part Representations

       目标检测旨在查找场景中的所有目标,其位置由矩形框表示。为了区分目标边界框与背景并对目标进行分类,需要具有相关特征的中间几何目标/部分候选目标。作者将联合的几何描述和特征提取称为表示,目标检测中的典型表示如图1b所示。

3.1.1 Object bounding box representation

       目标检测通常是使用边界框作为最终输出。一个边界框可表示为一个4-d向量,中心大小( x c x_c xc y c y_c yc,w,h)或作为相对角点( x t l x_{tl} xtl y t l y_{tl} ytl x b r x_{br} xbr y b r y_{br} ybr)。除了最终的输出,这种表示还通常被用作初始和中间目标表示,如anchor和proposal。
       对于边界框表示,特征通常是通过在图像特征图的边界框区域内提取的。常用的池化操作包括RoIPool,RoIAlign和Deformable RoIPool。也有简化的特征提取方法,例如在锚框表示中使用框中心特征。

3.1.2 Object center representation

       对于分辨率为H*W的图像,边界框表示的四维向量空间的规模为O( H 2 H^2 H2* W 2 W^2 W2),这太大了。为了减少表示空间,最近的一些框架使用中心点作为简化表示。几何上,中心点由一个二维向量( x c x_c xc y c y_c yc)表示,其中假设空间的尺度为O(H*W),更易于处理。对于中心点表示,通常采用中心点上的图像特征作为目标特征。

3.1.3 Corner representation

       一个边界框可以由两个点确定,例如左上角点和右下角点。有些方法首先检测这些点,然后由它们组成边界框。作者将这些表示方法称为角点表示。在角点位置处的图像特征可称为部分特征。

3.1.4 Summary and comparison

       不同的表示方法通常在不同的方面有优势。例如基于目标的表示(边界框和中心)在分类方面优于基于部分的表示(角点),而在目标定位方面则不如基于部分的表示(角点)。基于目标的表示对于端到端的学习也更友好,因为它们不需要像基于部分的表示方法那样,需要一个从角点组成对象的后处理步骤。对不同的基于目标的表示进行比较,边界框表示可以实现更复杂的特征提取。

3.2 Object Detection Frameworks in a Representation View

       目标检测方法可以看作是不断演化的中间目标/部件表示,直到最终的边界框输出。表示流在很大程度上塑造了不同的目标检测器。目标检测器的几种主要类别都是基于这样的表示流,比如自顶向下(基于目标的表示)vs自底向上(基于部件的表示),基于锚的(基于边界框的)vs无锚的(基于中心点的),单阶段(一次表示流)vs多阶段(多次表示流)。图2显示了几个典型的目标检测框架的表示流。
在这里插入图片描述

四、Bridging Visual Representations

       上述的典型框架主要采用了一种表示方法。虽然他们在某些方面有优势,但也可能在其他方面存在不足。由于他们是采用不同的表示方法提取非网格或异构的特征,通常很难将它们组合在一个框架中。作者提出了一种通用方法来桥接不同的表示。然后演示了它在各种框架中的应用,包括retinanet,Faster R-CNN,FCOS和ATSS。

4.1 A General Attention Module to Bridge Visual Representations

       在不失一般性的前提下,对于一个目标检测器,它利用的表示称为主表示,通用模块旨在桥接其他表示以增强这个主表示,其他表示被称为辅助表示。

       受神经机器翻译的解码器模块成功使用注意力块在不同语言(如Transformer])间桥接信息的启发,作者将这种机制应用于桥接不同的视觉表示。具体地说,主表示充当query输入,辅助表示充当key输入。注意力模块为输出强化后的主表示(queries)的特征,这些强化特征桥接了来自辅助表示(keys)的信息。作者使用一般注意力公式如下:
在这里插入图片描述
        f i q f^q_i fiq, f i ′ q f^{'q}_i fiq, g i q g^q_i giq是一个query实例i的输入特征,输出特征和几何向量。 f j k f^k_j fjk, g j k g^k_j gjk是key实例j的的输入特征和几何向量。Tv(.) 是线性值变换函数。S(.)是i和j之间的相似函数,实例化为:
在这里插入图片描述
       SA( f i q f^q_i fiq, f j k f^k_j fjk)表示通过query与key特征间的缩放点积计算的外观相似性。SG( g i q g^q_i giq, g j k g^k_j gjk)表示通过在i和j间的相对位置上用一个小网络计算出的一个几何项,即余弦/正弦位置嵌入加上一个2层MLP。对于在不同维度下query几何向量和key几何向量(4-d边界框vs2-d point),作者首先从边界框中提取2-d点,即中心点或角点,这样两个表示是均匀的几何描述以进行减法操作。作者使用默认数量为8的多头注意力,表现优于单头注意力。以上模块被称为桥接视觉表示(BVR),它将任何维度的query和key表示作为输入,并考虑到query的外观和几何关系生成增强后的特征。

4.2 BVR for RetinaNet

       作者以RetinaNet为例展示如何将BVR模块应用于现有的目标检测器。RetinaNet以anchor边界框作为其主表示,9个anchor铺设在每个特征图位置。对于HxW分辨率的特征图,总共有9×H×W个边界框实例。 BVR以C*9*H*W特征图(C为特征图通道)作为query输入,生成同维度增强的query特征。
       作者使用两种key(辅助)表示来增强query(主)特征。一个是目标中心,另一个是角点。如图3a所示,通过在主干输出的特征图上应用一个小的head网络来预测中心点/角点。然后从所有预测中选择一部分组成关键点集,将其输入到注意力模块中以分别加强分类和回归特征。下面是这些模块和关键设计的详细信息。
在这里插入图片描述

4.2.1 Auxiliary (key) representation learning

       Point head网络由两个共享的3×3conv层组成,其次是两个独立的子网络(一个3×3 conv层和一个sigmoid层),分别预测中心点和角点的分数和子像素偏移量。分数表示中心点/角点位于特征图bin的概率。子像素偏移则表示其精确定位与每个特征bin左上角(整数坐标)间的偏移,该偏移为特征图向下采样导致的分辨率损失。
       对于具有FPN结构的目标检测框架,我们将所有GT的中心点/角点分配给所有的特征层级。作者发现它的效果比将目标分配到特定层级要好,这可能是因为每个层级使用了更多的正样本,它可以加快中心点/角点表示的学习速度。中心点/角点分数和子像素偏移的学习采用focal loss和smooth L1 loss,损失权重分别为0.05和0.2。

4.2.2 Key selection

       由于中心点表示的原理与角点表示相同,因此使用角点来演示对于辅助表示选择的处理。作者将每个特征图位置视为目标角点候选点。如果所有候选者都在key集中使用,则BVR模块的计算成本无法承受。另外太多的背景候选者可能会压制真实的角点。为了解决这些问题,作者提出了top-k(默认为k=50)key选择策略。
       具体来说就是对角点分数图执行步长为1的3×3 MaxPool,根据其角点分数选择前k个候选角点。对于FPN骨干网,我们从所有金字塔层级中选择前k个key,并且该key集由所有层级共享。如表1所示,此共享key集的性能优于不同层级的独立key集。
在这里插入图片描述

4.2.3 Shared relative location embedding

       用于直接计算几何项的计算和内存复杂度是O(time)=( d 0 d_0 d0+ d 0 d_0 d0 d 1 d_1 d1+ d 1 d_1 d1G)KWH和O(memory)=(2+ d 0 d_0 d0+ d 1 d_1 d1+G)KHW。 d 0 d_0 d0, d 1 d_1 d1, G, K是MLP网络的余弦/正弦嵌入维数,多头注意力模块的头数和所选key实例的数量。如表3所示,默认设置( d 0 d_0 d0 = 512, d 1 d_1 d1 = 512,G = 8,K = 50)是耗时和占用空间的。
在这里插入图片描述

       由于相对位置的范围是有限的,如[- H + 1,H - 1] × [- W + 1,W - 1],作者在固定的2-d相对定位图上使用余弦/正弦嵌入和双层MLP网络生成G通道几何图,然后在该几何图上通过双线性采样计算key/query对的几何项。为了进一步减少计算量,作者使用一个单位长度U大于1的2-d相对定位图,如U = 4,其中每个定位bin表示原图像的长度U。作者采用U=1/2S(S表示特征层级的步长)以及一个400×400像素的定位图,占原始图像上范围为[-100S,100S)×[-100S;100S)的步幅为S的金字塔层级。计算和内存复杂度降低到O(time)=( d 0 d_0 d0+ d 0 d_0 d0 d 1 d_1 d1+ d 1 d_1 d1G)400×400+GKHW和O(memory)=(2+ d 0 d_0 d0+ d 1 d_1 d1+G)400×400+GKHW。显著小于直接计算。

4.2.4 Separate BVR modules for classification and regression

       目标中心点表示可以为目标分类提供丰富的上下文,而角点表示可以促进定位。因此,作者使用单独的BVR模块来分别增强分类和回归征性,如图3a所示。这种单独的设计是有益的,如表5所示。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值