摘要:目标检测中定位与分类相结合的复杂性导致了各种方法的蓬勃发展。以前的工作试图提高在各种目标检测头部的性能,但未能呈现一个统一的视图。在本文中,我们提出了一种新的动态头部框架来统一目标检测头部和注意力。通过在尺度感知的特征层次之间、空间感知的空间位置之间以及任务感知的输出通道内连贯地组合多种自注意机制,该方法显著提高了目标检测头的表示能力,且不增加任何计算开销。进一步的实验证明了该方法在COCO基准上的有效性和有效性。使用标准的ResNeXt-101-DCN骨干网,我们大大提高了流行的目标检测器的性能,并实现了54.0 AP的新技术。——总结就是:feature levels for scale-awareness, among spatial locations for spatial-awareness, and within output channels for task-awareness.
,L为金字塔层数。令
,则特征变为3维tensor:
。
直接学习所有维度上的注意力函数计算量是很大的,相反,我们将注意功能转换为三个连续的注意,每个注意只关注一个角度:
式中πL(·)、πS(·)、πC(·)分别是作用于维度L、S、C上的三个不同的注意函数。
Scale-aware Attention
我们首先引入尺度感知关注,根据不同尺度的语义重要性动态融合特征。
其中f(·)是一个由1 × 1卷积层近似的线性函数,σ(x) = max(0, min(1, x+1 2))是一个硬sigmoid函数。
Spatial-aware Attention
我们采用另一种基于融合特征的空间感知注意力模块来关注空间位置和特征层次之间一致共存的判别区域。考虑到S的高维性,我们将该模块分解为两步,首先使用可变形卷积[7]使注意学习稀疏化,然后在同一空间位置跨层聚集特征(对L求平均):
其中K为稀疏采样位置的个数,pk +∆pk为自学习的空间偏移量∆pk所移位的位置,以聚焦于一个判别区域,∆mk为自学习的位置pk的重要标量。两者都是从F的中位数水平的输入特征中学习到的。
Task-aware Attention
为了实现联合学习和概括对象的不同表示,我们在最后部署了任务感知注意力。它动态地切换功能的ON和OFF通道,以支持不同的任务:
其中Fc为c-th通道的特征片,[α1, α2, β1, β2]T = θ(·)为学习控制激活阈值的超函数。θ(·)的实现与[3]类似,首先在L × S维上进行全局平均池化以降低维数,然后使用两个完全连接层和一个归一化层,最后使用移位的sigmoid函数将输出归一化为[−1,1]。
上图中πL(·)较好理解;
πS(·)index为稀疏采样过程,offset和sigmoid分别学习卷积空间位置偏移量和每个位置pk的重要性∆mk;
πC(·)主要在于学习θ(·)=[α1, α2, β1, β2]T四个控制激活阈值的超函数,首先对L✖S进行全局平均池化降维,再通过两个全连接层和一个norm层,这里加上[1,0,0,0]可能对应前面动态地切换功能的ON和OFF通道,文中没有很详细地解释,有点不理解。最后再经过一个移位的sigmoid函数将输出归一化到[-1,1]。
最后要注意的是在两阶段检测器的应用中,πC放在了ROI Pooling之后,使用任务感知注意力替换原来的全连接层,以支持分类和回归等不同的任务。