来源:https://arxiv.org/abs/1711.11575

会议: CVPR 2018 ORAL

作者: Han Hu / Jiayuan Gu / Zheng Zhang / Jifeng Dai / Yichen Wei /

机构: Microsoft Research Asia / Department of Machine Intelligence, School of EECS, Peking University

背景

目前大部分的目标检测算法都是独立地检测图像中的目标,但如果模型能学到目标之间的关系,那么显然对于提升检测效果有帮助。大多数对于此问题的研究都是在深度学习盛行之前。在深度学习时代,利用对象关系进行检测学习并没有取得重大进展。一个原因是目标与目标之间的关系很难建模。目标可以出现在图像的任意位置,大小和类别也会不同,而且目标的数量可能因不同图像而异。

文章借鉴自然语言处理领域中注意力机制的思想,主要是“Attention Is All You Need”论文。注意力模块可以通过聚合来自一组元素的信息或特征来影响单个元素。本文第一次提出了一个适用于物体检测的适应性注意力模块。它建立在一个基本的注意力模块上,一个明显的区别是原始元素是目标(Object)而不是单词。

Object Relation Module

令一个目标包含两种特征,$f_A$是外观特征(appearance feature),维度取决于模型,一般为1024维;$f_G$是位置特征(geometric feature),4维的bounding box。这两种特征是后续算法的基础。

假设共有N个目标,公式2定义了第n个目标和所有目标之间的关系特征(relation feature)。其中$f_A^m$表示第m个目标的外观特征。$W_V$是一个线性变换操作,在代码中用1*1的卷积层实现。$ω^mn$是用来描述不同目标之间的关系权重(relation weight)。计算得到的关系特征f_R将和原有的外观特征$f_A$融合并传递给下一层网络,这就完成了Attention过程。此公式的设计灵感来源于“Attention Is All You Need”中基本的注意力模块 “Scaled Dot-Product Attention”的公式。

公式2中的关系权重$ω^mn$由公式3得来,从公式形式可以看出是一个归一化操作,因此在源码中也是通过Softmax层实现的。其中两个变量ω_G^mn$和ω_A^mn分别表示目标的位置特征权重(geometric weight)和外观特征权重(appearance weight)。

外观特征权重ω_A^mn由公式4计算得来。在代码中,W_K和W_Q是全连接层参数。最后再做一个缩放操作。

位置特征权重ω_G^mn由公式5计算得来。首先对位置特征做了坐标变换,如下所示,主要进行尺度归一化和log操作,可以增加尺度不变性,避免数值变化范围过大。

$ε_G$操作主要是将4维的坐标信息嵌入(embedding)到高维表示中。接着,将$W_G$和Embedding特征相乘,这里$W_G$也是通过全连接层实现的。最后的max操作类似ReLU层,主要目的在于对位置特征权重做一定的限制。

最后融合多个($N_r$个,默认16)关系特征后再和外观特征做融合,如公式6所示。

总结目标关系模型的算法:

  1. 分别根据外观特征和位置特征分别计算它们各自的权重
  2. 根据两个特征的权重获得总的关系权重
  3. 按照第m个物体对当前物体的总权重,加权求出各个关系特征,融合所有的关系特征,与原来的外观特征叠加,最终输出通道数不变的新特征。

下图描述算法过程,左图是整体上的注意力模块和外观特征的融合,右图是注意力模块的详细构建过程。

在目标检测的应用

作者将当前目标检测算法分为4步:1、特征提取主网络;2、提取候选区域特征;3、基于ROI做边框回归和分类(实例检测);4、非最大值抑制(NMS)处理,去除重复框。

Instance recognition

目标关系模型插入目标检测算法的示意图如上。左图是插入两个全连接层的情况,目标检测的ROI Pooling步骤之后会有两个全连接层。第一个全连接层之后将特征和ROI的坐标构建Attention,然后将Attention加到特征中传递给下一个全连接层,再重复一次后就开始做边框回归和类别预测。

每个全连接层后面接关系模块,输出的维度和输入维度一致,因为关系模块不改变输入的维度,所以关系模块的数量可以任意添加。

duplicate removal

右图提出了利用关系模块代替非最大值抑制(NMS)的消除重复框的方法。作者认为尽管NMS十分简单,但其贪婪特性和手动选择的参数使其成为明显的次优选择。 重复删除框可以当成一个二分类问题。对于每个真实目标,只有一个与之匹配的检测目标是正确分类,其他与之匹配的则被归类为重复目标。 到这一步之前,每个目标都有最终的1024维特征,分类分数s0和边界框。关系网络为每个对象输出二进制分类概率s1∈[0,1](1表示正确,0表示重复)。两个得分s0、s1的乘积是最终的分类得分。

s1的计算方式:首先按照目标的分数对它们进行排名,然后将分数转化为排名,然后将排名映射成高维向量,同时对该目标的1024维特征也做映射。两个值相加之后作为外观特征。外观特征和边界框(位置特征)输入关系模块,得到关系特征,最后通过线性变换和sigmoid输出概率s1∈[0,1]。

和NMS不同,duplicate removal是一个可以学习的模块,将此模块纳入端到端训练后,整体网络的损失函数不仅包含原来的坐标回归和分类损失函数,还包含NMS的二分类损失函数。

实验

所有实验均在具有80个对象类别的COCO数据集上进行。CNN模型使用ResNet-50和ResNet-101。作者进行了多组对比实验,包括: 验证引入位置特征(geometric feature)的有效性 验证关系特征数量的影响 验证关系模块在两个全连接层中的数量的影响 验证关系模块效果提升是否是因为参数量增加带来的。 验证分阶段训练和端对端训练的效果 验证不同算法(Faster RCNN、FPN、DCN)上引入关系模块的效果。

结论

关系模块在对各个对象进行学习时丢失的对象之间学习了信息。然而,目前尚不清楚在关系模块中学到了什么,特别是当多个堆叠模块时。 关系模块具有相同的输入和输出维度,因此可以成为任何网络架构的基本构建块。