论文地址:https://openaccess.thecvf.com/content/CVPR2024/papers/Wang_Selective-Stereo_Adaptive_Frequency_Information_Selection_for_Stereo_Matching_CVPR_2024_paper.pdf
源码地址:https://github.com/Windsrain/Selective-Stereo
概述
现有迭代式的立体匹配方法无法同时感知的高频与低频信息,如边缘细节和平滑区域的信息。为了解决该问题,文中提出了一种新的迭代更新算子,名为 Selective Recurrent Unit (SRU),它能够在多个频率上自适应融合隐藏的视差信息。此外,文中还引入了一个新的Contextual Spatial Attention(CSA)模块,用于生成注意力图作为融合权重。这种方法改进了网络处理多频率信息的能力,减少了迭代过程中重要信息的丢失。实验结果表明这种方法在多个立体匹配标准数据集上的优越性能。
模型架构
Feature Extraction
Feature Network: 给定左右图像 I l I_l Il 和 I r I_r Ir,首先使用一个 7x7 的卷积层将它们下采样到 1/2 分辨率。然后,使用一系列残差块提取特征,并应用另一个下采样层,将特征降至 1/4 分辨率。最后,应用 1x1 卷积层获取最终的左右特征 f f f 和 g g g 。
Context Network: 其架构与特征网络一致,添加了一系列残差块和两个额外的下采样层,获取多层次的上下文特征
f
i
c
,
(
i
=
1
,
2
,
3
)
f^c_i,(i = 1, 2, 3)
fic,(i=1,2,3),然后用于计算SRU的初始状态:
h
i
=
tanh
(
f
i
c
)
c
i
=
R
e
L
U
(
f
i
c
)
(1)
\mathbf{h}_i=\tanh(\mathbf{f}_i^c)\\\mathbf{c}_i=\mathrm{ReLU}(\mathbf{f}_i^c)\tag{1}
hi=tanh(fic)ci=ReLU(fic)(1)
Cost Volume Construction: 给定左右特征
f
f
f 和
g
g
g,首先构建一个全对相关成本体积:
C
i
j
k
=
∑
h
f
h
i
j
⋅
g
h
i
k
,
C
∈
R
H
/
4
×
W
/
4
×
W
/
4
(2)
C_{ijk} = \sum_h f_{hij} \cdot g_{hik}, \quad C \in \mathbb{R}^{H/4 \times W/4 \times W/4}\tag{2}
Cijk=h∑fhij⋅ghik,C∈RH/4×W/4×W/4(2)
然后使用 1D 平均池化构建一个 4 级相关金字塔
C
i
C_i
Ci,
(
i
=
1
,
2
,
3
,
4
)
(i = 1, 2, 3, 4)
(i=1,2,3,4)。
Contextual Spatial Attention Module
为了帮助不同感受野和频率的信息融合,Contextual Spatial Attention (CSA) 模块从上下文信息中提取多级注意力图。该模块由两个子模块组成:通道注意力增强 (CAE) 和空间注意力提取器 (SAE)。
通道注意力增强 Channel Attention Enhancement: 首先对空间维度进行平均池和最大池操作,然后通过两个卷积层分别对这两个图进行特征变换。这些图相加后,使用 sigmoid 函数转换为 0 到 1 之间的权重。
空间注意力提取器 Spatial Attention Extractor: CAE 模块之后,继续使用相同的池操作,但现在在通道维度上进行。然后将这些池化图连接成一个
R
2
×
H
×
W
R^{2 \times H \times W}
R2×H×W 的图,并使用一个卷积层和 sigmoid 函数生成最终的注意力图。
Selective Recurrent Unit
为了捕获不同频率的信息,Selective Recurrent Unit (SRU) 使用 CSA 提取的注意力图融合不同核大小的 GRU 产生的隐藏信息。
Multi-level update structure: 如图 4 所示,1/8 和 1/16 分辨率的 SRU 使用注意力图、上下文信息和相同分辨率的隐藏信息作为输入。在 1/4 分辨率,SRUs 也将视差和局部成本体作为输入,其输出通过两个卷积层生成视差残差。
SRU’s architecture: 定义单个 GRU 为:
z
k
=
σ
(
Conv
(
[
h
k
−
1
,
x
k
]
,
W
z
)
)
,
r
k
=
σ
(
Conv
(
[
h
k
−
1
,
x
k
]
,
W
r
)
)
,
h
~
k
=
tanh
(
C
o
n
v
(
[
r
k
⊙
h
k
−
1
,
x
k
]
,
W
h
)
)
,
h
k
=
(
1
−
z
k
)
⊙
h
k
−
1
+
z
k
⊙
h
~
k
(3)
\begin{aligned} &z_{k}= \sigma(\text{Conv}([h_{k-1},x_k],W_z)), \\ &r_{k}= \sigma(\text{Conv}([h_{k-1},x_k],W_r)), \\ &\tilde{h}_{k}= \tanh(\mathrm{Conv}([r_k\odot h_{k-1},x_k],W_h)), \\ &h_{k}= (1-z_k)\odot h_{k-1}+z_k\odot\tilde{h}_k \end{aligned}\tag{3}
zk=σ(Conv([hk−1,xk],Wz)),rk=σ(Conv([hk−1,xk],Wr)),h~k=tanh(Conv([rk⊙hk−1,xk],Wh)),hk=(1−zk)⊙hk−1+zk⊙h~k(3)
其中
x
k
x_k
xk 是视差、相关性、隐藏信息和上下文信息的拼接。SRU 利用了由 CSA 模块生成的注意力图,通过对小核和大核 GRU 输出的融合,使得网络能够在处理不同区域时优先考虑相应的频率信息。这种方法有效地增强了网络在处理边缘细节和平滑区域时的性能。
h
k
=
A
⊙
h
k
s
+
(
1
−
A
)
⊙
h
k
l
(4)
h_k=\mathbf{A}\odot h_k^s+(1-\mathbf{A})\odot h_k^l\tag{4}
hk=A⊙hks+(1−A)⊙hkl(4)
损失函数
L = ∑ i = 1 N γ N − i ∣ ∣ d i − d g t ∣ ∣ 1 (5) \mathcal{L}=\sum_{i=1}^N\gamma^{N-i}||\mathbf{d}_i-\mathbf{d}_{gt}||_1\tag{5} L=i=1∑NγN−i∣∣di−dgt∣∣1(5)
实验结果