今天阅读的是一篇发表在ICCV 2023上的文章,作者来自于华中科技大学。
项目地址:GitHub
文章地址:点击前往
注:该文章所提出方法的实际性能存在争议,请参考此链接,自行斟酌。
文章目录
Abstract
learning-based MVS严重依赖特征匹配。 一个有效的解决方案是应用非局部的特征聚合,例如 Transformer。 尽管这些技术很有用,但会给MVS带来大量的计算开销。 每个像素都密集地关注整个图像。 相反,我们建议将非局部特征增强限制在一对线内:每个点仅关注相应的一对极线。 我们的想法受到经典对极几何的启发,它表明具有不同深度假设的一个点将投影到另一个视图上的极线。 该约束将2D搜索空间减少为立体匹配中的极线。 类似地,这表明MVS的匹配是为了区分位于同一条线上的一系列点。 受点对线搜索的启发,我们设计了一种线对点非局部增强策略。 我们首先设计了一种优化搜索算法,将2D特征图分割成极线对。 然后,ET在极线对之间执行非局部特征增强。 我们将ET纳入learning-based MVS基线,命名为ET-MVSNet。 ET-MVSNet在DTU和Tanks and Temples上均实现了最先进的高效率重建性能。
1 Introduction
略。
2 Related Work
介绍了learning-based MVS的历史工作,和MVS里面的特征表达(比如一系列使用了Transformer的MVSNet)。
3 Preliminaries
介绍了极线约束,有了这个约束,立体匹配的搜索空间可以从整个图像平面减少到一条线。 MVS可以看作是一个多重的立体匹配问题。 ref视图中具有不同深度假设的点将投影在source图像中的极线上。 因此,特征编码可以被视为描述同一直线上的不同点。我觉得这一部分其实可以和Related work合并。
4 ET-MVSNet
ET-MVSNet的整体架构如图 4 所示。所提出的ET模块被集成到FPN中。 为了对极线执行非局部特征聚合,我们首先搜索ref image和src image之间的极线对。 利用搜索到的线对,通过采样将原始特征图分解为不同的极线对。 然后,极内增强(IEA)和跨极增强(CEA)模块在这些极线对之间传输非局部上下文。
4.1 Epipolar Pair Search
MVS的关键部分是通过特征匹配将像素与一组预定义假设中最合适的深度假设进行匹配。 如果假设接近GT,则像素对的特征应该是相似的,这表明假设的区分很大程度上依赖于特征表示。 由于用于匹配的特征体自然位于极线上,因此使用极线作为非局部特征的来源可以有效地实现高质量的表示,有利于区分不同的假设。 应该注意的是,极线同时存在于参考视图和源视图中,并且由于几何限制成对出现。 这表明同一极线上的像素共享相同的非局部特征来源,并且这些像素的特征聚合过程是相同的,并行聚合将提高效率。 为了实现并行过程,需要预先搜索位于同一对极线对上的像素,为此我们提出了一种对极线对搜索算法。
如算法1所示,极线对的搜索包括两个步骤:点对线搜索和极线匹配。 第一步,我们计算ref image中每个像素的极线参数。 然后,我们将参考视图中的像素聚合到不同的簇中;同一簇中的像素共享相同的极线。 因此,在极线对搜索之后,参考图像和源图像中的像素被划分为极线对。
由于一对多视图匹配可以分解为多个一对一视图匹配,为了便于理解,这里我们以一个src image来说明极线对搜索。 给定ref image中的像素
p
r
p_{r}
pr ,src image中对应的像素
p
s
p_{s}
ps为:
p
s
(
d
)
=
K
s
[
R
(
K
r
−
1
p
r
d
)
+
t
]
p_{s}(d)=K_{s}[R(K_{r}^{-1}p_{r}d)+t]
ps(d)=Ks[R(Kr−1prd)+t]
其中
d
d
d 表示深度,
R
R
R 和
t
t
t 表示参考视图和源视图之间的旋转和平移。
K
r
K_{r}
Kr和
K
s
K_{s}
Ks分别表示参考视图和源视图的内参。 因此,
p
s
(
d
)
p_{s}(d)
ps(d) 的坐标可以通过以下方式计算:
x
s
(
d
)
=
a
1
d
+
b
1
a
3
d
+
b
3
,
y
s
(
d
)
=
a
2
d
+
b
2
a
3
d
+
b
3
x_{s}(d)=\frac{a_{1}d+b_{1}}{a_{3}d+b_{3}}, y_{s}(d)=\frac{a_{2}d+b_{2}}{a_{3}d+b_{3}}
xs(d)=a3d+b3a1d+b1,ys(d)=a3d+b3a2d+b2
{
a
i
}
i
=
1
3
,
{
b
i
}
i
=
1
3
\{a_{i}\}_{i=1}^{3}, \{b_{i}\}_{i=1}^{3}
{ai}i=13,{bi}i=13是与相机参数和
p
r
p_{r}
pr 坐标相关的常量。 然后,消去深度
d
d
d,即可得到极线标准方程
y
s
(
d
)
=
k
x
s
(
d
)
+
b
y_{s}(d) = kx_{s}(d)+b
ys(d)=kxs(d)+b,其公式为:
为了减轻过度分割,我们通过四舍五入来量化
k
s
ks
ks和
b
s
bs
bs。 因此,具有近似参数的像素将被分组到同一极线中。 然后,我们在src视图中搜索相应的极线。
k
s
ks
ks和
b
s
bs
bs表示src视图上对应的极线,因为极线周围像素的坐标将满足式(3)。 对于src图像,通过计算
k
k
k和
b
b
b表示的极线上的像素点的距离来确定该像素点是否位于
k
k
k和
b
b
b表示的极线上。
通过将像素划分为其相应的极线对,ref特征图和src特征图都被分解为特征序列集。 具体来说,假设获得
m
m
m对极线,我们将参考和源特征集定义为
E
R
E_{R}
ER和
E
S
E_{S}
ES,其公式为:
E
R
=
{
E
R
1
,
E
R
2
,
.
.
.
,
E
R
m
}
,
E
S
=
{
E
S
1
,
E
S
2
,
.
.
.
,
E
S
m
}
E_{R}=\{E_{R}^{1},E_{R}^{2},...,E_{R}^{m}\},E_{S}=\{E_{S}^{1},E_{S}^{2},...,E_{S}^{m}\}
ER={ER1,ER2,...,ERm},ES={ES1,ES2,...,ESm}
E R i , E S i E_{R}^{i}, E_{S}^{i} ERi,ESi它们是形状为 n × c n \times c n×c的特征序列,其中 n n n表示对应极线中的像素数, c c c表示特征维度。
4.2 Intra-and-Cross-Epipolar Augmentation
使用极线对,然后我们执行非局部特征增强。 由于具有不同深度假设的点落在极线上,因此匹配过程是区分位于同一条线上的一系列点。 受立体匹配中点对线搜索策略的启发,我们提出了一种point-to-line非局部增强:参考图像中的每个像素仅关注其对应的极线对。 如图4所示,为了描述源图像中具有非局部信息的像素,基于自注意力设计了极内增强(IEA)模块。 然后,跨极线增强 (CEA) 模块将参考极线 E R E_{R} ER的信息通过交叉注意力传播到源极线 E S E_{S} ES中。
Intra-Epipolar Augmentation (IEA)
IEA 模块旨在聚合单个极线内的非局部结构信息。它利用self-attention机制来生成描述性的特征表示,尤其是在纹理较弱的区域。具体来说,使用多头自我注意(MHSA)进行特征增强,输入是源图像中的极线特征序列。对于
E
S
E_{S}
ES 中的每条极线
E
S
i
E_{S}^{i}
ESi ,增强过程定义为:
E
S
i
=
M
H
S
A
(
E
S
i
)
+
E
S
i
E_{S}^{i}=MHSA(E_{S}^{i})+E_{S}^{i}
ESi=MHSA(ESi)+ESi
其中
M
H
S
A
(
x
)
MHSA(x)
MHSA(x)是多头自注意力模块,把一个序列
x
x
x作为输入。
Cross-Epipolar Augmentation (CEA)
CEA 模块用于在不同的极线之间传递信息。由于视点的不同,同一语义像素可能在不同图像中具有不同的几何结构。CEA 通过跨极线的注意力机制来缓解这一挑战,从而在参考极线和源极线之间传递信息。具体来说,我们使用多头交叉注意力(MHCA)层来传递信息,输入是参考图像中的极线特征序列和源图像中的极线特征序列。交叉注意力模块将信息从参考线
E
R
E_{R}
ER 传播到
E
S
E_{S}
ES 中,用CEA表示。 在CEA中,
E
S
i
E_{S}^{i}
ESi首先由交叉注意力层处理:
E
S
i
=
M
H
C
A
(
E
S
i
,
E
R
i
,
E
R
i
)
+
E
S
i
E_{S}^{i}=MHCA(E_{S}^{i},E_{R}^{i},E_{R}^{i})+E_{S}^{i}
ESi=MHCA(ESi,ERi,ERi)+ESi
其中 M H C A ( q , k , v ) MHCA(q,k,v) MHCA(q,k,v)是多头交叉注意力,具体来说,我们在交叉注意层之后添加了一个前馈网络,如标准Transformer块中一样。 IEA 和 CEA 块可以堆叠以增强功能。
Local Augmentation (LA)
LA的功能如下:
平滑增强特征图:在进行IEA和CEA后,所得到的特征序列被映射回特征图。此时,LA 模块被用来平滑这些增强后的特征图。
处理非局部特征增强中的问题:尽管极线内的非局部特征增强是有效的,并且在实验中被证明有效,我们发现增强的特征图包含一些空洞,其中像素位于两幅图像的公共视图之外,或由于像素的离散性质导致的量化错误而未被算法检测到,这可能导致特征表示的不连续性并且对匹配不友好。 为了解决这个问题,我们在IEA和CEA块之后使用额外的卷积层来重新聚合局部上下文,以填充特征孔并平滑增强特征。
4.3 Implementation Details
loss使用多阶段cross-entropy之和。
5 Experiment
介绍了在DTU和Tanks and Temples数据集上的实验结果。
6 Conclusion
引入了一种基于极线约束的非局部特征聚合策略。 具体来说,我们首先提出了一种在两个校准图像中搜索极线对的算法。 然后,我们设计了一个IEA模块和一个CEA模块来挖掘极线内部和跨极线的非局部背景。 我们将这些模块打包到一个名为Epipolar Transformer的Transformer模型中,并将ET集成到基线网络中以构建ET-MVSNet。 评估和消融验证了所提出模块的有效性。 此外,我们还表明ET还可以作为集成到其他MVS方法中的即插即用模块。