Dynamic Head :Unifying Object Detection Heads with Attentions

159 阅读1分钟

Dynamic Head :Unifying Object Detection Heads with Attentions

整体框架图  作者针对目标检测中通过backbone提取特征金字塔后的输出后,会形成最基本的这种情况RL×H×W×C\R^{L\times H\times W\times C},其中L代表金字塔输有多少层特征图,H和W代表特征图的高和宽,C代表特征图的通道.本文提出的就是分别在每一个维度上都分别应用注意力,然后进行嵌套堆砌,用公式表示为如下 公式

Scale-aware Attention

基于语义的重要程度动态的融合不同尺度的特征

在这里插入图片描述

即在一层上进行空间和通道上面的全部求和,然后进行(1*1)卷积(相当于一个线性函数),最后进行σ\sigma函数操作(相当于一个hard-sigmoid 函数).

Spatial-aware Attention 这部分作者说的很不详细,需要看一下代码.

在尺度注意的基础上,通过使用可变形卷积对位置的重要性进行学习

在这里插入图片描述

 其中K是稀疏采样点的数量,Δpk是学习到到偏移位置,Δmk是自学习到的在pk的重要性标量K是稀疏采样点的数量,\Delta p_k是学习到到偏移位置,\Delta m_k是自学习到的在p_k的重要性标量

Task-aware Attention

动态的开关特征通道来有利于不同的任务的学习.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Grtg1nXp-1625114601787)(/home/brother/.config/Typora/typora-user-images/image-20210701123239176.png)]

θ函数首先通过池化变成C1的向量,然后进行两层fc中间加一个激活函数后变成四个,这四个值通过偏移sigmoid归一化后变成(1,1)的范围,再和(1,0,0,0)想加后得到最终的α1α2β1β2再通过上面的max函数来控制每一个通道的输出\theta 函数首先通过池化变成C*1的向量,然后进行两层fc中间加一个激活函数后变成四个,\\ 这四个值通过偏移sigmoid归一化后变成(-1,1)的范围,\\再和(1,0,0,0)想加后得到最终的\alpha_1\alpha_2\beta_1\beta_2再通过上面的max函数来控制每一个通道的输出

下面是整体的应用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YQy3kMmd-1625114601788)(/home/brother/.config/Typora/typora-user-images/image-20210701124257331.png)]