Vis-MVSNet

基本信息

项目 内容
论文标题 Vis-MVSNet (Visibility-aware Multi-view Stereo Network)
作者 Lingyang Zhang, Yao Yao, Shiwei Li, Zixin Luo, Jian Fang
作者单位 The Hong Kong University of Science and Technology
时间 2020
发表会议/期刊 CVPR

方法概览

特点 文章性质
输入 标定之后的多视角图像
输出 场景的点云图,每个视角的法线和深度图
所属领域 MVS

1. 摘要精简

提出一种可见性感知的多视图立体匹配网络 Vis-MVSNet,解决现有方法未显式考虑像素级可见性导致遮挡区域代价聚合错误的问题。该网络通过匹配不确定性估计显式推断并融合像素级遮挡信息,成对深度图与不确定性图联合推断,不确定性图作为权重指导多视图代价体融合,抑制遮挡像素的不利影响。结合分组相关和粗到精策略进一步提升重建质量,在 DTU、BlendedMVS 和 Tanks and Temples 数据集上表现优异,在 Tanks and Temples 在线基准(截至 2020 年 5 月 1 日)排名第一,尤其在遮挡严重场景中深度精度显著提升。

2. 研究出发点

现有学习型 MVS 方法的核心缺陷是未显式处理像素级可见性问题:MVSNet 等方法采用方差、平均或最大池化聚合多视图代价,默认所有视图的像素均可见,而实际场景中遮挡普遍存在,会导致错误代价聚合,恶化重建结果。传统 MVS 虽通过概率框架交替更新可见性与深度,但难以融入深度学习架构。因此,本文旨在设计端到端网络,通过不确定性估计显式建模可见性,在代价体融合阶段抑制遮挡像素干扰,同时兼容现有数据集的训练范式。

3. 创新点

  1. 提出可见性感知的代价体融合策略,通过不确定性估计量化像素可见性,加权聚合多视图代价体,显式抑制遮挡区域的错误贡献;
  2. 实现成对深度与不确定性联合推断,基于概率体的深度方向熵转化不确定性,采用无监督方式训练不确定性模块,无需额外标注;
  3. 采用两阶段代价体正则化:先单独正则化每个成对代价体,再加权融合后二次正则化,兼顾单对匹配质量与多视图一致性;
  4. 融合分组相关(group-wise correlation)和粗到精策略,在保证效率的同时提升高分辨率重建精度。

4. 网络架构

image-20251126225953969

网络整体为三阶段粗到精架构,核心流程为 “多尺度特征提取→成对代价体构建→两阶段正则化→深度回归”:

  1. 多尺度特征提取:2D U-Net 生成三个尺度特征图,为各阶段代价体提供输入;
  2. 成对代价体构建:对每个参考 - 源图对,通过分组相关构建成对代价体,深度假设范围随粗到精动态调整;
  3. 两阶段正则化:第一阶段单独正则化每个成对代价体,输出潜在体、成对深度图和不确定性图;第二阶段基于不确定性加权融合所有潜在体,再通过 3D CNN 正则化得到概率体;
  4. 深度回归:对概率体应用 soft-argmax 得到当前阶段深度图,三阶段逐步提升分辨率,最终输出与输入图像对齐的深度图;
  5. 后处理:结合光度和几何一致性过滤不可靠像素,融合多视图深度图生成 3D 点云。

5. 特征提取

采用 2D U-Net 作为特征提取网络,所有输入视图(参考图 + 源图)共享权重:

  1. 网络结构:含编码器(下采样)与解码器(上采样),带跳接连接,每层卷积后接激活函数;
  2. 输出特征:保留解码器最后三个尺度的特征图,分辨率分别对应输入图像的不同缩放比例,通道数适配后续分组相关计算
  3. 分组相关计算:对参考图特征与源图 warp 后的特征,按通道分组计算相关性,得到 8 通道匹配代价图(Nc=8);

补充知识:不确定性估计原理

Vis-MVSNet通过概率体积的深度方向熵来估计匹配不确定性:

Hi=j=1NdPi,jlogPi,jH_i = \sum_{j=1}^{N_d} - P_{i,j} \log P_{i,j}

其中:

  • Pi,jP_{i,j}是第i个图像对在第j个深度假设处的概率值
  • NdN_d是深度假设数量
  • HiH_i是熵图,反映概率分布的随机性

不确定性转换

熵图通过浅层2D CNN转换为不确定性图:

Ui=fu(Hi)U_i = f_u(H_i)

实际实现中,网络预测对数不确定性以提高数值稳定性:

Si=logUi=fs(Hi)S_i = \log U_i = f_s(H_i)

其中fsf_sfuf_u都是浅层2D CNN。

不确定性物理意义

  • 低熵值:概率分布呈现单峰特性 → 高置信度匹配
  • 高熵值:概率分布平坦或存在多峰 → 低置信度匹配(可能被遮挡)

6. 构建成对代价体获得不确定性编码

Vis-MVSNet 不是一下子处理所有视图,而是先针对 “参考图 - 源图对”,构建代价体然后进行正则获得深度概率,然后根据深度概率计算熵,如果熵很大则深度概率不是一个尖峰分布的,那么很可能遮挡了,那这个源视图这个地方就可能遮挡了,那这个源视图在这个像素位置在构建最后代价体的的时候权重就需要减小

步骤上,先通过参考图 - 源图对构建成对代价体然后正则获得不确定性图,然后再通过参考图-所有源视图构建最后的代价体,再进行正则

每个参考-源图像对的潜在体积Vk,iV_{k,i}经过3D CNN和softmax得到概率体积Pk,iP_{k,i},从中联合推断:

  • 深度图:通过soft-argmax计算期望

  • 不确定性图:通过熵计算并经过浅层2D CNN转换:

    Ui=fu(Hi)=fu(j=1NdPi,jlogPi,j)U_i = f_u(H_i) = f_u\left( \sum_{j=1}^{N_d} -P_{i,j} \log P_{i,j} \right)

7. 最终代价体构建

通过可微分单应性变换将源视图特征扭曲到参考视图,计算参考特征与扭曲源特征之间的组相关作为代价图,将所有深度假设的代价图堆叠为代价体积 Ck,iC_{k,i},组数 Nc=8N_c = 8,深度假设数随阶段变化

所有成对潜在体积通过不确定性加权融合:

V=(i=1Nv1expSi)1i=1Nv(1expSiVi)V = \left( \sum_{i=1}^{N_v} \frac{1}{\exp S_i} \right)^{-1} \sum_{i=1}^{N_v} \left( \frac{1}{\exp S_i} V_i \right)

其中Si=logUiS_i = \log U_i。不确定性越大,权重越小,有效抑制了遮挡像素的干扰。Nv为源图数量

8. 代价体正则化

第一阶段对成对代价体:每个pair-wise代价体 Ck,iC_{k,i} 通过3D CNN正则化为潜在体积 Vk,iV_{k,i}

第二阶段对最终代价体:所有潜在体积基于不确定性加权融合为 VkV_k,再通过3D CNN正则化为概率体积 PkP_k

9. 深度图生成

从最终概率体积 PkP_k 通过soft-argmax操作回归深度图:

Di=j=1NddjPi,jD_i = \sum_{j=1}^{N_d} d_j P_{i,j}

9. 不确定性编码部分

11. 损失函数

总损失构成

L=k=13λk[L1,kfinal+1Nvi=1Nv(L1,k,ipair+Lk,ijoint)]L = \sum_{k=1}^{3} \lambda_k \left[ L_{1,k}^{final} + \frac{1}{N_v} \sum_{i=1}^{N_v} \left( L_{1,k,i}^{pair} + L_{k,i}^{joint} \right) \right]

其中:

  • λ1,λ2,λ3=0.5,1,2\lambda_1, \lambda_2, \lambda_3 = 0.5, 1, 2 是阶段权重
  • NvN_v 是源视图数量(训练时Nv=3N_v=3

各损失分量

1. 最终深度图L1损失

L1,kfinal=1I0validxI0validDk,0(x)Dgt(x)ΔdfinalL_{1,k}^{final} = \frac{1}{|I_0^{valid}|} \sum_{x \in I_0^{valid}} \frac{|D_{k,0}(x) - D_{gt}(x)|}{\Delta d_{final}}

2. 每对深度图L1损失

L1,k,ipair=1I0validxI0validDk,i(x)Dgt(x)ΔdfinalL_{1,k,i}^{pair} = \frac{1}{|I_0^{valid}|} \sum_{x \in I_0^{valid}} \frac{|D_{k,i}(x) - D_{gt}(x)|}{\Delta d_{final}}

3. 联合深度-不确定性损失

基于拉普拉斯分布假设

p(Dgt,iDi,Ui)=12Uiexp(DiDgt,iUi)p(D_{gt,i}|D_i, U_i) = \frac{1}{2U_i} \cdot \exp\left(-\frac{|D_i - D_{gt,i}|}{U_i}\right)

负对数似然损失

Lk,ijoint=1I0validxI0valid[1Ui(x)Di(x)Dgt,i(x)+logUi(x)]L_{k,i}^{joint} = \frac{1}{|I_0^{valid}|} \sum_{x \in I_0^{valid}} \left[ \frac{1}{U_i(x)} |D_i(x) - D_{gt,i}(x)| + \log U_i(x) \right]

使用对数不确定性的形式

Lk,ijoint=1I0validxI0valid[exp(Si(x))Di(x)Dgt,i(x)+Si(x)]L_{k,i}^{joint} = \frac{1}{|I_0^{valid}|} \sum_{x \in I_0^{valid}} \left[ \exp(-S_i(x)) \cdot |D_i(x) - D_{gt,i}(x)| + S_i(x) \right]

其中 Si=logUiS_i = \log U_i

12. 测试数据集

  1. DTU 数据集:含 128 个室内扫描场景,49 个视角,7 种光照条件,用于基准性能评估;
  2. BlendedMVS 数据集:含 113 个室内外场景,16904 个训练样本,用于模型训练和消融实验;
  3. Tanks and Temples 数据集:含户外复杂场景的 Intermediate 集,用于泛化性验证,网络在该数据集排名第一。

13. 消融实验

消融实验在 BlendedMVS 验证集上进行,验证核心组件有效性:

  1. 代价体融合方式:对比四种融合策略 —— 方差融合(base-var)、平均融合(base-ave)、最大池化融合(base-max)、不确定性加权融合(base-vis),验证加权融合对遮挡场景的优化;
  2. 粗到精架构:对比 “无粗到精” 与 “含粗到精” 的性能,验证三阶段逐步细化对分辨率和精度的提升;
  3. 输入视图数量影响:测试不同源图数量(Nv)对重建精度的影响,验证加权融合在多视图场景下的鲁棒性。

其他创新点

  • 从粗到细的深度采样:后续阶段基于前一阶段深度估计动态调整深度范围
  • 多阶段深度图过滤:在点云生成时考虑所有阶段的概率图进行可靠性过滤
  • 端到端可训练:整个网络端到端训练,不确定性部分无监督训练

性能表现

在Tanks and Temples数据集上取得当时最佳性能,平均F-score达到60.03,排名第一。