CVPR2019. Reasoning-RCNN Unifying Adaptive Global Reasoning Into Large-Scale Object Detection

CVPR2019. Reasoning-RCNN Unifying Adaptive Global Reasoning Into Large-Scale Object Detection

论文地址

支撑材料

代码地址


文章主要解决包含几千种类别的大规模目标检测问题,这类任务通常需要解决长尾分布、严重遮挡和类别歧义的问题。目前的目标检测网络仍然是将每个区域单独对待来执行检测,文章提出了Reasoning-RCNN,通过利用人类先验知识图,增强任何目标检测网络的自适应全局推理能力。文章首先通过收集以前针对每个类别分类层的权重来生成全局的语义池化,然后在全局语义池中通过获取语义情景来自适应地增强每个类别的特征,因此能够在特征演化过程中自适应地增强特征。Reasoning-RCNN足够轻量,能够自适应地增强任何目标检测网络的backbone环节。文章在VisualGenome获得约16%提升、ADE获得约37%提升,MSCOCO约15%。

主要问题

大规模检测任务中存在物体遮挡、类别歧义和小尺寸物体,目前的目标检测网络缺少像人类一样的借助先验知识来进行推理的能力。当前一些工作已经探索了利用知识来进行目标检测,包括利用图片自身的空间关系、结合空间和语义知识的迭代推理。然而这些方法只通过先验知识考虑每个局部区域内的特征,当面临较多的区域遮挡和类别歧义问题时,仍然难以通过较差的特征表示进行推理。

文章共享/创新点

文章提出了Reasoning-RCNN来利用人类先验知识增强任何检测网络的自适应全局推理能力。文章和以往直接传递视觉特征不同,而是全局性地演化所有类别的高级语义表示,避免干扰或较差的语义特征。

  • 文章首先通过收集以前分类层的权重来生成全局语义池化,这避免了传统方法对每个类别取平均或聚类所带来的的计算负担。
  • 按类别知识图用于编码特定的语言知识(属性、共存和关系)。
  • 自适应全局推理进一步通过注意力机制来自动发现每个物体最具相关性的特征类别,用于编码当前图片。
  • 每个增强特征拼接到一起实现端到端的分类和定位,文章在两种知识图中进行过了实验:关系知识(例如共存、主客体关系)和属性知识(颜色、状态)。

所提方法

Reasoning-RCNN采用外部知识来执行自适应全局推理,结构如下:

Reasoning-RCNN主要结构

该模型首先创建了全局语义池来通过收集原始分类层的权重信息来为每个类别集成高级语义表示信息,然后定义了一个类别到类别的无向图G=<N,E>\mathbf G=<\mathcal N,\mathcal E>,其中N\mathcal N是类别节点,#e_{i,j}\in\mathcal E#表示两个节点之间的一种信息,全局语义先验图G\mathbf G通过传递语义信息来强化区域特征,最后增强后的特征和原始特征拼接到一起来获得更好的检测效果。

自适应全局推理模块

自适应推理模块总体架构如下图,用f={fi}i=1Nr,fiRD\boldsymbol{f}=\{f_i\}_{i=1}^{N_r},f_i\in\mathbb R^D表示对于每个候选框Nr=NN_r=|\mathcal N|提取的DD特征。该模块利用特定的通用知识(例如承兑关系知识、属性知识)来增强原始的区域特征f\boldsymbol f。全局推理模块还会更新类别到类别知识图G\mathbf G中的全局语义池中的视觉目标参考。文章还实现了注意力机制来自动在每张图片中强调更具信息量和相关性的类别,最后促进自适应的全局推理,演化后的特征被用于增强f\boldsymbol{f},最后用于改善分类和定位的性能。

自适应全局推理模块

图中全局语义池M\mathbf M集成了原始检测器中最后分类层的权重信息,代表每个类别的高级语义表示信息。然后依据特定形式的知识图谱来传播语义表示信息,执行全局推理。自适应注意力使用图像特征来在自适应推理过程中自动发现最具相关性的类别。增强后的特征soft-mapped会候选框类别来获取按区域增强后的特征,最后f\boldsymbol f'和区域候选特征f\boldsymbol f拼接到一起,送入回归层和分类层。

全局语义池MM

文章方法传递涵盖所有类别的全局信息(不知当前出现在图片中的类别),因此采用了一个全局语义池来存储高级语义表示信息,这和人脑中的记忆机制相关。为了实现这种全局语义池,当前方法主要采用特征平均或聚类,以发现每个类别特征的参考“中心”,但会产生巨大的计算代价且不能端到端训练。

文章从零样本/小样本问题触发,认为每个分类器的权重信息会包含高级的语义信息,因为他们记录了从所有图片中训练到的特征激活值。让MRC×D\mathbf M\in\mathbb R^{C\times D}表示以前针对CC个类别的分类器权重信息。文章直接将权重参数M\mathbf M复制到检测网络的bbox头,由于网络训练过程中分类器的参数也在不断更新,因此M\mathbf M会变得越来越精确,且能够端到端训练。

图推理特征增强

在创建全局语义池MRD×D\mathbf M\in\mathbb R^{D\times D}之后,可以通过先验知识图G\mathbf G中的边ERC×C\mathcal E\in\mathbb R^{\mathcal C\times\mathcal C}来传播M\mathbf M中相关类别的信息,从而实现C个类别中全局推理过程。

为了增强区域特征,还需要分辨NrN_r个候选框区域和C个类别之间的关系。文章没有直接采用之前候选框到类别的结果(hard-mapping),而是采用以前分类器中C个类别softmax后得到的概率分布PRNr×C\mathbf P\in\mathbb R^{N_r\times C}作为soft-mapping。

最后整个过程表示为矩阵乘法:

PEMWG\mathbf P\mathcal E\mathbf M\mathbf W_G

其中PRNr×C\mathbf P\in\mathbb R^{N_r\times C}为原始分类器得到的概率分布,ERC×C\mathcal E\in\mathbb R^{C\times C}为知识图谱,MRC×D\mathbf M\in\mathbb R^{C\times D}为全局语义池,WGRD×E\mathbf W_G\in\mathbb R^{D\times E}位变换权重矩阵。但在所有类别上进行全局图推理,可能会引入噪声信息,因此文章进一步引入了自适应地推理。

自适应注意力

文章采用压缩激励模块来强调相关性的特征,抑制无用特征。首先将整张图片的特征FRW×H×D\mathbf F\in\mathbb R^{W\times H\times D}作为输入,将其压缩到一半尺寸(3×33\times 3卷积核,输出通道为D/64D/64),然后softmax函数用于获得类别的注意力:

α=softmax(zsWsM)\alpha=\mathrm{softmax}(\boldsymbol{z}_s\mathbf W_s\mathbf M^\top)

其中WsRD/64×D\mathbf W_s\in\mathbb R^{D/64\times D}为全连接层权重,αRC\alpha\in\mathbb R^C。增强后特征的自使用推理过程可以表达为:

f=P(αEM)WG\boldsymbol f'=\mathbf P(\alpha\otimes\mathcal E\mathbf M)\mathbf W_G

其中\otimes为按通道的乘积,剩余部分为矩阵乘法,fRNr×E\boldsymbol f'\in\mathbb R^{N_r\times E}为增强后的特征。最后增强后的特征f\boldsymbol f'会拼接到原始特征层中进行毛框的回归和分类。由于f\boldsymbol f'是通过连接的边考虑了相似属性和关系后的蒸馏特征,因此包含了相似类别之间的通用特征,从而缓解小样本问题。此外,通过发现由外部知识指导的来自全局语义池化的自适应情景信息,也能够帮助缓解严重遮挡、类别歧义和小尺寸问题。

Reasoning-RCNN自适应推理流程图

结合关系知识的模型

文章指出,Reasoning-RCNN能够使用任意类型的知识图,文章介绍了利用关系知识的过程,并在实验中使用了属性知识。

关系知识GR\mathbf G^{\mathbf R}是一种表示类别间成对关系的知识图,例如“主客体”关系、空间关系。首先文章计算了C×CC\times C维度的频率统计矩阵Rc\mathbf R^c,该矩阵或者从语义知识得到,或者简单地从所有类别对之间的共存得到。然后增加转置,还表示为Rc\mathbf R^c。最后执行行归一化获得GR\mathbf G^\mathbf{R}

eijR=RijcDiiDjje_{ij}^R=\frac{R_{ij}^c}{\sqrt{D_{ii}D_{jj}}}

其中Dii=j=1CRijcD_{ii}=\sum_{j=1}^CR_{ij}^c

存在疑问,e_{ij}^R表示处于第ii行和第jj列的元素,行归一化是行内元素之间进行归一化,按文中公式,DiiD_{ii}表示第ii行元素之和,DjjD_{jj}表示什么?表示第jj行元素之和,还是第jj列元素之和,两者都不止涉及单行,都不是行归一化。

仿真实验

数据集和评价指标

文章采用的数据集包括Visual Genome、ADE、PASCAL VOC 2007和MSCOCO 2017。文章分别选择了Visual Genome中频率最高的1000和3000个类别。对于ADE,为了验证泛化性能,文章采用了和VG有重叠的445类数据集作为目标,并且将分割数据集转化为bounding boxes形式。对于MSCOCO和PASCAL VOC,文章采用通用的训练和数据集划分方式。对于VG、ADE和COCO评价,文章选择mAP[@0.5:0.95]来评价,PASCAL VOC选择了mAP[@0.5]来评价。

构建知识图谱

关系图谱:文章采用VG中200个最常见的关系标注(例如位置关系、主客体关系和频率统计)来构建通用知识图,文章将其他数据集的类别种类和VG数据集中进行疲累来获取对应的知识图谱,从而验证通用知识的泛化性能。

属性图谱:文章将属性知识图GA\mathbf G^\mathbf A定义为考虑颜色、尺寸、材料等物体属性的类别相似性,考虑VG数据集3000类样本中最常见的200个属性标注,统计他们的频率信息作为类别-属性分布表。然后两个类别之间的**Jensen-Shannon(JS)**散度来作为两类之间的边的权重eci,cjA=JS(PciPcj)e_{c_i,c_j}^A=JS(P_{c_i}||P_{c_j})

实验结果

Reasoning-RCNN-实验结果

Reasoning-RCNN-VOC和COCO结果

可视化

Reasoning-RCNN-可视化结果

文章还对增强后的特征fr\boldsymbol f_r'利用t-SNE方法进行了三维可视化:

Reasoning-RCNN-t-SNE可视化

对不同类别的出现频率和检测增益进行了统计:

Reasoning-RCNN-检测增益和类别频率

消融实验

Reasoning-RCNN-消融实验