Page 291 - 《软件学报》2025年第4期
P. 291
樊铭瑞 等: 基于深度学习的多视图立体视觉综述 1697
度图多视图立体视觉的先河, 后续方法大多是以 MVSNet 为基础的变体.
MVSNet 由 5 个模块组成, 包括特征提取、代价体构建、深度图计算、深度图优化和后处理模块. 虽然后续
的网络在精度以及效率上超过了 MVSNet, 但由于深受其网络结构的影响, 大都遵循此范例进行设计. 因此,
MVSNet 被认为是多视图立体视觉的里程碑之一. MVSNet 的结构表示如图 5 所示 [15] . 其基本流程如下.
Conv+BN+ReLU, Stride=l
Conv+BN+ReLU, Stride=2
Conv, Stride=1
Source images ... Shared weights Addition
Concatenation
Loss 0
GT
Shared weights Initial depth map Loss 1
Reference image Variance argmin
V 表示所有特征体的均值,
soft-
metric
Feature Differentiable Cost volume Depth map Refined depth map
extraction homography regularization refinement
图 5 MVSNet 网络结构 [15]
(1) 特征提取. 选取数据集中图像依次作为参考图, 其他图像作为邻域帧. 每个图像通过 8 层 2D 卷积神经网
络得到 32 通道特征图, 长宽均为原图像的 1/4. 为了提高学习效率, 特征提取的操作过程中共享参数. 其中第 3 层
和第 6 层的卷积步长设置为 2, 用于提取更高维的图像特征. 虽然特征图尺寸减小, 但由于最后输出的是 32 通道
的特征图, 因此缩小后的特征图中的像素仍包含其周围像素的信息.
(2) 代价体构建. 构建 3D 代价体分为构建单应性矩阵、代价累积和代价体正则化这 3 个过程. 首先, 结合相
机的几何关系, 通过可微单应性矩阵实现 2D 特征图到 3D 特征体的转换. 基于参考相机视锥体中若干不同深度的
平行平面, 将特征图投影到参考图像下:
( T )
(t 1 − t i )n
T
H i (d) = K i R i I − 1 K R −1 (1)
1
1
d
t
其中, K 表示相机内参, R 和 分别表示相机外参的旋转矩阵和平移矩阵. n 为参考相机的主轴, d 为深度. H(d) 为
获得的单应性矩阵, 表示源视图和参考视图之间的坐标映射关系.
代价累积是将所有特征体合并成一个代价体的过程. 代价体是由代价图在深度方向上构建而成的. 采用基于
方差的方法, 逐个像素进行计算:
N ∑
2
(V i −V i )
i=1
C = M(V 1 ,...,V 2 ) = (2)
N
其中, V 表示特征体, N 表示特征体的数量. 计算获得方差后, 得到锥形体, 并对锥形体
进行可微双线性插值, 以得到长宽一致的方形代价体. 代价体衡量了视图之间的相似性. 由于代价体中可能存在噪
声, 因此对代价体采用 3D 四级 UNet 结构进行正则化, 最终出路形成通道数为 1 的概率体. 概率体表示每个像素
深度值的可能性. 为了减少计算成本, 在正则化过程中, 将 32 通道减少到 8 通道, 并将卷积层改为两层.
(3) 深度图计算. 在传统方法中, 选择最大概率深度图 (即赢者通吃原则) 作为结果, 但是在非理想情况下效果
一般, 而且无法产生亚像素级别的结果. 因此, MVSNet 网络通过计算数学期望生成初始深度图:
d max
∑
D = d × P(d) (3)
d=d min