论文地址:arxiv
摘要
提出了一种上采样的模块,有着较好的效果。
正文
常见的上采样方法有最近邻插值和双线性插值,通过手动的范式从邻近点聚合特征。之后又提出了可学习的上采样方法,比如反卷积,像素洗牌等。但是这些方法通常学习一组固定的上采样核参数,对输入特征图的所有空间位置应用相同的操作,这会导致上采样结果不理想。之后又提出了动态滤波器,但是这些要么缺乏特定的特征引导,要么需要高分辨率图像的干预,奶牛了其应用场景和性能。
大多数现有的上采样操作可以被视为对上采样点周围局部邻域内特征的加权聚合(即特征重组)。注意到,这与局部自注意力机制的概念一致,后者涉及确定注意力权重,然后从均匀的邻近点中获取必要的上下文信息。不同之处在于,局部自注意力机制自然融入了引导机制(即查询引导),这与上采样任务的性质非常契合。这涉及根据上采样点的属性自适应地聚合邻域特征,从而形成明确的点关联。
作者提出了一种将局部自注意力机制引入特征上采样任务的方法。
从上图中可以看出,使用固定且均匀的邻近点的效果并不好,所以作者引入了变形的机制,根据查询点(上采样点)的特征及其上下文信息动态调整邻近点的位置。
与二次线性插值的区别:
优势:
- 在单层上操作,不需要高分辨率特征图作为输入
- 具有查询引导能力,能够利用查询点及其邻近点的特征交互生成动态上采样核
- 具有局部变形能力,允许根据查询点的上下文信息动态调整邻近点的位置
总体结构
首先使用以下的公式生成 Q, K, V:
(
Q
,
K
,
V
)
=
(
W
X
Q
,
X
W
K
,
X
W
V
)
(Q, K, V) = (WX^Q, XW^K, XW^V)
(Q,K,V)=(WXQ,XWK,XWV)
,然后使用双线性插值将
Q
∈
R
H
∗
W
∗
C
Q \in R^{H * W * C}
Q∈RH∗W∗C 变成
Q
′
∈
R
α
H
∗
α
W
∗
C
Q' \in R^{\alpha H* \alpha W * C}
Q′∈RαH∗αW∗C。然后使用
m
e
s
h
g
r
i
d
meshgrid
meshgrid 函数,就可以为上采样特征图生成均匀矩阵
P
∈
R
α
H
∗
α
W
∗
1
∗
2
P \in R^{\alpha H * \alpha W *1 *2}
P∈RαH∗αW∗1∗2,这里矩阵
P
P
P 的意思为表示待插值点的坐标的集合。再使用以下的公式,就可以通过将 P 投影到输入特征图上得到参考点坐标矩阵
P
′
P'
P′。
p
′
=
ψ
(
p
)
=
(
x
W
α
W
−
1
,
y
H
α
H
−
1
)
p' = \psi(p) = \left( x\frac{W}{\alpha W - 1} , y\frac{H}{\alpha H - 1} \right)
p′=ψ(p)=(xαW−1W,yαH−1H)
设,领域采样的核大小为
k
u
k_u
ku,领域点的初始偏移
Δ
P
\Delta P
ΔP 可以表示为
Δ
P
=
{
(
−
⌊
k
u
2
⌋
,
−
⌊
k
u
2
⌋
)
,
…
,
(
⌊
k
u
2
⌋
,
⌊
k
u
2
⌋
)
}
\Delta P = \left\{ \left( -\left\lfloor \frac{k_u}{2} \right\rfloor, -\left\lfloor \frac{k_u}{2} \right\rfloor \right), \ldots, \left( \left\lfloor \frac{k_u}{2} \right\rfloor, \left\lfloor \frac{k_u}{2} \right\rfloor \right) \right\}
ΔP={(−⌊2ku⌋,−⌊2ku⌋),…,(⌊2ku⌋,⌊2ku⌋)}
此时,就可以提到上采样点的领域点坐标矩阵
R
∈
R
α
H
∗
α
W
∗
k
u
2
∗
2
R \in R^{\alpha H * \alpha W *k^2_u *2}
R∈RαH∗αW∗ku2∗2,
R
=
P
′
+
Δ
P
R = P'+\Delta P
R=P′+ΔP。
同时,为了可以让领域点能动态调整位置,引入了一个子网络
ζ
(
∗
)
\zeta(*)
ζ(∗),查询特征生成查询引导的采样点偏移矩阵
Δ
R
\Delta R
ΔR。基于均匀领域点坐标矩阵 R 和预测的偏移矩阵
Δ
R
\Delta R
ΔR,最终的可变形领域点坐标矩阵
R
′
R'
R′ 可以通过以下公式获得:
R
′
=
R
+
Δ
R
=
R
+
ζ
(
Q
)
R'=R+\Delta R = R + \zeta(Q)
R′=R+ΔR=R+ζ(Q)
这里的
R
′
R'
R′ 是与上采样后的
Q
′
Q'
Q′ 的图像大小一样。在代码中,会使用
R
′
R'
R′ 对
K
,
V
K,V
K,V 进行采样,从而得到了
K
,
V
K,V
K,V 的上采样图像
K
~
,
V
~
\widetilde{K}, \widetilde{V}
K
,V
。
最后,使用矩阵
Q
′
Q'
Q′ 的点特征与
K
K
K,
V
V
V 的局部点特征进行交互,即可完成上采样任务。可以表示为
(
Q
~
,
K
~
,
V
~
)
=
(
Reshape
(
Q
′
)
,
Φ
(
K
,
R
′
)
,
Φ
(
V
,
R
′
)
)
(\widetilde{Q}, \widetilde{K}, \widetilde{V}) = \left( \text{Reshape}(Q'), \Phi(K, R'), \Phi(V, R') \right)
(Q
,K
,V
)=(Reshape(Q′),Φ(K,R′),Φ(V,R′))
Y
=
Softmax
(
Q
~
K
~
T
d
k
)
V
~
Y = \text{Softmax}\left( \frac{\widetilde{Q} \widetilde{K}^T}{\sqrt{d_k}} \right) \widetilde{V}
Y=Softmax(dkQ
K
T)V
Q
~
∈
R
α
H
∗
α
W
∗
1
∗
C
\widetilde{Q} \in R^{\alpha H * \alpha W *1 * C}
Q
∈RαH∗αW∗1∗C 表示经过 Reshape 后的查询,而
K
~
,
V
~
∈
R
α
H
∗
α
W
∗
k
u
2
∗
C
\widetilde{K}, \widetilde{V} \in R^{\alpha H * \alpha W * k_u^2 * C}
K
,V
∈RαH∗αW∗ku2∗C 是经过领域采样后的键和值。
Φ
(
∗
,
∗
)
\Phi(*,*)
Φ(∗,∗) 表示非整数偏移的双线性插值采样
R'
的作用是动态调整每个像素点的上采样采样区域,而 extract_feats
函数(公式中为
Φ
(
∗
)
\Phi(*)
Φ(∗))通过解析 R'
并使用双线性插值完成上采样操作。对于超出图像边界的区域,代码使用 0 填充。所以上采样这个操作,并不是可学习的,而是上采样的范围是可学习的。上采样这个操作还是使用的是二次线性插值而不是像反卷积这种。
Pytorch 中的grid_sample 的使用方法
torch.nn.functional.grid_sample(input, grid, mode='bilinear', padding_mode='zeros', align_corners=None)
- grid: 采样网格,形状为
(N, H_out, W_out, 2)
,其中H_out
和W_out
是输出的高度和宽度。grid
的最后一个维度是(x, y)
坐标,表示在输入张量中的采样位置。grid
中的坐标是归一化的,范围在[-1, 1]
之间。
而文本中的 R ′ R' R′ 学习的就是这个范围。
偏移预测器
用于生成采样点偏移矩阵 Δ R \Delta R ΔR。结构如下:
使用 3 ∗ 3 3*3 3∗3 的深度卷积来扩展查询的感知范围,使用核大小为 k e k_e ke 的卷积层来预测 k u 2 k_u^2 ku2 个点的偏移。
偏移分组
为了增强模型感知不同通道特征的能力,并提高其在多样化场景中的适应性,我们在偏移预测器 ζ ( ∗ ) \zeta(*) ζ(∗) 中对输入特征图的通道进行分组,为不同的特征组使用不同的邻域点。
局部变形范围
为了加快收敛速度,我们对偏移预测器的结果应用 T a n h Tanh Tanh 函数,将其限制在 [ − 1 , 1 ] [−1, 1] [−1,1] 范围内。此外,我们使用因子 θ \theta θ 来调节邻域点的变形范围。
与其他的上采样的方法
作者证明了LDA-AQU能够涵盖大多数上采样方案(如双线性插值、最近邻插值、CARAFE 和 DySample),并通过查询引导机制实现更灵活和高效的特征上采样。同时,由于没有 pixelShuffle 操作,可以实现任意倍数的特征上采样。
复杂度分析
LDA-AQU 的计算复杂与输入 token 数(图像的分辨率)呈线性关系。
实验
在 MS COCO 2017 数据集上进行目标检测、实例分割、语义分割和全景分割实验
目标检测
即使FLOPs和参数相似,LDA-AQU仍保持了优越的性能
实例分割
效果变好了
全景分割
LDA-AQU以显著优势超越了所有先前的方法,并保持了相似的参数数量。
语义分割
通过在UperNet的特征金字塔网络(FPN)和多级特征融合(FUSE)中用LDA-AQU替换上采样器,基线模型的mIoU从39.78提高到42.31,超越了CARAFE的1.31 mIoU和DySample的1.23 mIoU。
消融实验
在MS COCO上使用Faster R-CNN和Mask R-CNN进行消融研究,以验证LDA-AQU中超参数的影响。
局部变形范围
在 Faster R-CNN 中的效果。
当 θ \theta θ 设置为 11 时,模型达到了最佳的性能。当其变小时,性能逐渐下降。作者认为这是因为少数邻近点中心覆盖足够的信息以及确保准确的插值。所以模型倾向于寻找更广泛的上下文信息作为辅助项来优化上采样结果。
在 Mask R-CNN 中的效果。
当mask head的 θ \theta θ 设置为5时,模型达到了最佳性能。原因是mask head的输入特征图大小为14×14,因此使用较大的 θ \theta θ 会使模型难以聚焦于局部细节。
偏移组
当组数设置为2时,模型达到了最佳性能。过多的分组将导致用于预测偏移的特征尺寸减小,从而阻碍模型学习。
通道大小缩减因子
通过减少通道缩减因子,模型的性能逐渐提高。为了平衡模型的性能和计算复杂度,作者将LDA-AQU的通道缩减因子设置为4。