MonoMVSNet

基本信息

项目 内容
论文标题 MonoMVSNet(Monocular Priors Guided Multi-View Stereo Network)
作者 Jianfei Jiang, Qiankun Liu*, Haochen Yu, Hongyuan Liu, Liyong Wang, Jiansheng Chen, Huimin Ma*
作者单位 University of Science and Technology Beijing, China北京科技大学
时间 2024
发表会议/期刊 ICCV

方法概览

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

1. 摘要精简

MonoMVSNet 提出一种单目先验引导的多视图立体匹配网络,通过将单目基础模型的强大先验集成到多视图几何中来解决MVS在挑战性区域(如无纹理区域和反射表面)的匹配失败问题。主要贡献包括:

  • 通过新设计的跨视图位置编码将参考视图的单目特征集成到源视图特征中
  • 对齐单目深度以在采样过程中动态更新边缘区域的深度候选
  • 设计基于单目深度的相对一致性损失来监督深度预测

在DTU和Tanks-and-Temples数据集上达到SOTA性能,在T&T的Intermediate和Advanced基准测试中排名第一。


2. 引言与动机

现有基于深度学习的 MVS 方法本质是多视角特征匹配问题,但在纹理缺失、反射面、深度不连续边缘等区域易出现匹配失效,导致重建效果不佳。而单目深度估计无需特征匹配,能在这些挑战性区域实现鲁棒的相对深度估计,但存在尺度模糊问题,无法直接用于三维重建。此外,现有结合预训练模型的 MVS 方法需对所有输入视图提取预训练特征,开销较大。基于此,MonoMVSNet 旨在桥接单目深度估计与多视图立体匹配的优势,仅利用参考视图的单目先验提升 MVS 性能,同时降低计算开销,填补国产框架在该领域的技术空白。


3. 创新点总结

3.1 单目特征引导的特征提取

  • 仅参考视图使用单目特征仅对参考视图提取单目特征(Depth Anything V2),与 FPN 特征融合后,通过注意力机制迁移至源视图,避免多视图单目特征提取的高额开销。
  • 跨视图位置编码(CVPE):专门为MVS设计的新型位置编码,增强视图内和视图间注意力交互
    • 将源特征和参考特征相互投影到对方视图
    • 通过相机嵌入模块编码相机参数相关的空间信息
    • 压缩深度维度特征,生成CVPE

3.2 单目深度引导的动态深度采样

通过对齐单目深度与粗预测深度,在边缘区域动态更新深度候选值,解决深度不连续区域采样不合理的问题。

  • 单目深度对齐:通过最小二乘优化将单目深度与粗深度对齐:

    (a,b)=argmina,bcCs(1D^s[c](aD^smono[c]+b)2)(a,b)=\arg\min_{a,b}\sum_{\mathbf{c}\in\mathcal{C}_{s}}\left(\frac{1}{\hat{\mathbf{D}}_{s}[\mathbf{c}]}-\left(a\hat{\mathbf{D}}^{mono}_{s}[\mathbf{c}]+b\right)^{2}\right)

    Dsalign=aD^smono+b\mathbf{D}^{align}_{s}=a\hat{\mathbf{D}}^{mono}_{s}+b

  • 动态深度采样:在边缘区域用对齐的单目深度替换深度候选值,为不连续区域提供更合理的深度候选

3.3 相对一致性损失

  • 设计相对一致性损失来强制多视图深度与单目深度之间的一致性:

    Lsre=1Mm=0M1max(0,em)\mathcal{L}^{re}_{s}=\frac{1}{M}\sum_{m=0}^{M-1}\max(0,-e_{m})

    其中em=(Dsprob[cm1]Dsprob[cm2])Sign(D^smono[cm1]D^smono[cm2])e_{m}= (\mathbf{D}_{s}^{prob}[\mathbf{c}_{m}^{1}]-\mathbf{D}_{s}^{prob}[\mathbf{c}_{m}^{2}])\cdot\text{Sign}(\hat{\mathbf{D}}_{s}^{mono}[\mathbf{c}_{m}^{1}]-\hat{\mathbf{D}}_{s}^{mono}[\mathbf{c}_{m}^{2}])

4. 网络架构

image-20251130131849343

MonoMVSNet 整体采用多尺度(4 个尺度,s=0 至 s=3)粗到精框架,核心由五大模块构成:

  1. 特征提取模块:融合单目特征与 FPN 特征,通过 CVPE 与注意力机制增强源视图特征;

  2. 单目深度对齐模块:将单目深度与各尺度粗预测深度对齐,过滤不可靠像素;

  3. 动态深度采样模块:基于对齐后的单目深度与边缘图,更新边缘区域深度候选;

  4. 代价体构建与正则化模块:通过视图扭曲与特征相关性构建代价体,经 3D UNet 正则化;

  5. 深度预测与损失监督模块:基于概率体生成深度图,结合交叉熵损失与相对一致性损失训练。

    架构流程:输入参考视图与源视图→特征提取与增强→动态深度采样→代价体构建→正则化→深度预测→损失监督,多尺度逐步优化深度精度。


5. 特征提取

分为三个步骤

  • 源图像:使用4层FPN提取多尺度FPN特征
  • 参考图像
    • 使用4层FPN提取多尺度FPN特征
    • 通过预训练单目模型(Depth Anything V2)提取单目特征F0mono\mathbf{F}_{0}^{mono}
    • 与FPN编码器特征融合,通过卷积层与双线性上采样对齐两者通道数与分辨率后相加:F0=F0encBilinear(Conv(F0mono))\mathbf{F}_{0}=\mathbf{F}_{0}^{enc}\oplus\text{Bilinear}(\text{Conv}(\mathbf{F}_{0}^{mono}))
    • 送入FPN解码器得到多尺度参考特征,通过 CVPE 与注意力机制增强源视图特征;
  • 特征增强:通过CVPE增强的注意力机制将单目先验从参考特征传递到源特征

6. 代价体构建

  • 特征投影:将所有源特征从源视图扭曲到参考视图
  • 代价体构建:基于参考特征与所有扭曲源特征之间的相关性构建代价体
  • 数学表达:构建的代价值为VsRG×Ds×H2s×W2s\mathbf{V}_{s}\in\mathbb{R}^{G\times D_{s}\times\frac{H}{2^{s}}\times\frac{W}{2^{s}}},其中GG为组相关数,DsD_{s}为深度候选数,深度候选数随尺度变化为 8-8-4-4

7. 代价体正则化

  • 使用轻量级3D UNet正则化网络处理代价体
  • 经过softmax函数得到概率体积PsRDs×H2s×W2s\mathbf{P}_{s}\in\mathbb{R}^{D_{s}\times\frac{H}{2^{s}}\times\frac{W}{2^{s}}}
  • 相比传统方法,在保持性能的同时显著减少计算量

8. 深度图生成

  • 基础深度预测:基于概率体 Ps 采用 winner-take-all 策略,选择概率最大的深度候选作为该尺度初始深度 Ds

    Ds[c]=di,ss.t.argmaxiP[i,c]\mathbf{D}_{s}[\mathbf{c}]=d_{i,s}\quad\text{s.t.}\quad\arg\max_{i}\mathbf{P}[i,\mathbf{c}]

  • 概率加权深度:为提升精度,计算概率加权深度$$\mathbf{D}^{prob}{s}[\mathbf{c}]=\sum{i=0}^{D_{s}}\mathbf{P}[i,\mathbf{c}]d_{i,s}$$
  • 第 3 尺度(s=3)的概率加权深度作为最终深度图,结合几何一致性滤波剔除低置信度深度值。

9. 损失函数

总损失由标准交叉熵损失和相对一致性损失组成:

Loverall=s=03Lsce+γL3re\mathcal{L}_{overall}=\sum_{s=0}^{3}\mathcal{L}_{s}^{ce}+\gamma\mathcal{L}_{3}^{re}

  • Lsce\mathcal{L}_{s}^{ce}:对每个尺度的概率体 Ps 进行监督,衡量预测概率与真实深度概率分布的差异,确保各尺度深度预测的基础精度;
  • L3re\mathcal{L}_{3}^{re}:仅作用于最后一个尺度,约束预测深度与对齐后单目深度的相对关系

image-20251130132507081

实验中使用γ=1\gamma=1


10. 测试数据集

  • DTU:室内物体中心数据集,124个场景,每个场景49或64张图像
  • Tanks-and-Temples:大规模室外真实场景,包含Intermediate(8场景)和Advanced(6场景)子集
  • BlendedMVS:大规模合成数据集,包含室内外场景

11. 消融实验测试组件

消融实验在 DTU 数据集上开展,核心测试组件如下:

  1. 单目特征相关:参考单目特征(RMF)、交叉注意力(CA)、跨视图位置编码(CVPE);
  2. 单目深度相关:单目引导深度采样(MDDS)、边缘图(EM)、相对一致性损失(RCL);
  3. 特征提取设计:单目特征提取范围(仅参考视图 vs 所有视图)、CVPE 有无;
  4. 单目基础模型变体:Depth Pro、DINO V2、Depth Anything V1、Depth Anything V2;
  5. ViT 架构变体:ViT-S、ViT-B、ViT-L;
  6. 输入视图数量:4、5、6、7、8、9、10;
  7. 位置编码设计:2D PE+MLP vs 2D PE+CVPE。

消融实验验证了以下组件的有效性:

组件 缩写 作用
参考单目特征 RMF 提升特征表达能力
跨视图位置编码 CVPE 增强3D空间感知
单目动态深度采样 MDDS 改善边缘区域深度候选
边缘图 EM 精确定位边缘区域
相对一致性损失 RCL 强制单目与多视图深度一致性

其他消融发现:

  • 特征提取策略:仅参考视图使用单目特征比所有视图都使用效果更好,且GPU内存减少64.9%,运行时间减少56.4%
  • ViT变体:ViT-S和ViT-B性能相似,ViT-L性能下降,表明小模型已能提供足够先验
  • 模型效率:MonoMVSNet在GPU内存消耗上优于所有对比方法,参数数量也显著少于基于预训练模型的方法

总结

MonoMVSNet通过优雅地将单目基础模型的强大先验集成到MVS的特征提取和深度采样过程中,显著提升了在挑战性区域的深度估计精度。该方法在多个数据集上达到SOTA性能,同时保持了较高的计算效率,为MVS与单目深度估计的结合提供了新的思路。