MVSFormer++

基本信息

项目 内容
论文标题 MVSFormer++: Revealing the Devil in Transformer’s Details for Multi-View Stereo
作者 Chenjie Cao, Xinlin Ren, Yanwei Fu
第一作者单位 复旦大学数据科学学院
年份 2024
发表会议/期刊 ICLR 2024

摘要精简

现有基于 Transformer 的多视角立体匹配(MVS)方法未充分探索 Transformer 对不同 MVS 模块的深层影响,导致深度估计性能受限。为此,本文提出 MVSFormer++,通过最大化注意力机制的固有特性增强 MVS 流水线各组件:将跨视图信息融入预训练 DINOv2 模型以促进 MVS 学习;为特征编码器和代价体正则化分别设计适配的注意力机制(侧重特征聚合与空间聚合);挖掘并优化影响 Transformer 在 MVS 中性能的关键设计细节(归一化 3D 位置编码、自适应注意力缩放、层归一化位置)。在 DTU、Tanks-and-Temples、BlendedMVS 和 ETH3D 数据集上的综合实验验证了该方法的有效性,MVSFormer++ 在极具挑战性的 DTU 和 Tanks-and-Temples 基准测试中取得了最先进(SOTA)的性能。

引言与出发点

MVS 的核心目标是从多视角校准图像中恢复密集 3D 几何信息,本质是沿极线的特征匹配任务。Transformer 凭借长程依赖捕捉能力,在图像匹配、光流估计等相关任务中表现突出,且已逐渐应用于 MVS 领域(如 MVSFormer)。但现有基于 Transformer 的 MVS 方法仍存在三个未解决的关键挑战:

  • 1)MVS 的两大核心模块(特征编码器、代价体正则化)具有不同的特征属性,不应采用相同的注意力机制;
  • 2)预训练 ViT 虽能提升特征提取质量,但缺乏跨视图特征交互,现有方法未能充分解决多视图相关性问题;
  • 3)MVS 训练与测试阶段的图像尺寸存在显著差异,高分辨率下特征匹配精度更高,但 Transformer 难以像 CNN 那样有效泛化到不同序列长度(长度外推能力不足)。

基于这些挑战,作者在 MVSFormer 的基础上,通过深入探索 Transformer 设计细节对 MVS 的影响,提出了 MVSFormer++。

  1. 不同MVS模块需要定制化的注意力机制:特征编码器和代价体正则化模块的特征特性不同,不应使用相同的注意力机制。
  2. 将跨视角信息融入预训练ViTs:现有的跨视角预训练ViTs未能充分处理不可或缺的多视角关联。
  3. 增强Transformer在MVS中的长度外推能力:训练和测试时图像尺寸的差异,以及在高分辨率下进行特征匹配以获得更高精度的需求,对Transformer的长度外推能力提出了挑战。

创新点及相关工作对比

MVSFormer++ 在以下方面进行了创新,并在相关工作中与现有方法进行了对比(见表1):

方法 注意力类型 Transformer用于特征编码器 Transformer用于代价体 跨视角注意力 自适应缩放 位置编码类型 归一化 3D-PE
TransMVSNet 全局 × × 绝对 × ×
WT-MVSNet 窗口 × 相对 × ×
CostFormer 窗口 × × × 相对 × ×
MVSFormer 全局 × × × 绝对 ×
MVSFormer++ 全局 绝对

指出的问题:

  • TransMVSNet:未在代价体正则化中使用Transformer,未使用自适应缩放和3D位置编码。
  • WT-MVSNet & CostFormer:使用基于窗口的注意力,限制了全局感受野;未使用自适应缩放和3D位置编码。
  • MVSFormer:未在代价体正则化中使用Transformer,未使用跨视角注意力和自适应缩放。

MVSFormer++ 的创新点总结:

  1. 定制化注意力机制:针对 MVS 不同模块的特征特性,为特征编码器选择线性注意力(基于特征聚合,适配多图像尺寸,无注意力稀释),为代价体正则化选择 vanilla attention(基于空间聚合,适合代价体去噪),实现各模块性能最优。
  2. 引入侧视图注意力(SVA):提出侧视注意力(Side View Attention, SVA)机制,作为 DINOv2 的侧调优模块(不更新 DINOv2 参数),通过参考图自注意力 + 源视图交叉注意力的设计,增量注入跨视图信息,增强 DINOv2 的多视图特征表示能力。
  3. 深入的Transformer设计:提出了归一化2D位置编码(PE)截锥体位置编码(FPE)自适应注意力缩放(AAS),以解决长度外推和注意力稀释问题。设计归一化 2D 位置编码(Normalized 2D PE),将测试时的高宽位置归一到训练阶段的统一尺度(128,128),提升高分辨率图像泛化性;提出 3D 截头圆锥位置编码(Frustoconical Positional Encoding, FPE),为代价体提供全局归一化 3D 位置信息,解决长度外推问题;重设计自适应注意力缩放(Adaptive Attention Scaling, AAS),通过维持注意力分数的熵不变性缓解注意力稀释,公式如下:image-20260111200324820
  4. 代价体 Transformer 设计:构建纯 Transformer 结构的代价体正则化模块(Cost Volume Transformer, CVT),通过 FPE 和 AAS 增强,替代传统 3D CNN,有效提升代价体去噪和深度估计精度。

网络架构

image-20260111201040850

MVSFormer++ 是一个级联的MVS模型,其整体流程如图2所示:

  1. 输入NN 张校正后的图像,包含一张参考图像 I0\mathbf{I}_{0}N1N-1 张源视图图像 {Ii}i=1N1\{\mathbf{I}_{i}\}_{i=1}^{N-1}
  2. 特征提取:使用FPN提取多尺度特征 {F^i}i=0N1\{\hat{F}_{i}\}_{i=0}^{N-1}。同时,将参考和源视图图像下采样一半后输入冻结的DINOv2-base提取高质量视觉特征,结合 SVA、归一化 2D PE 和 Norm&ALS(Pre-LN + 自适应层缩放)完成特征增强;
  3. 代价体构建与正则化:在1/8的粗糙阶段,构建代价体,并使用代价体Transformer(CVT) 进行正则化。CVT由FPEAAS增强,以获得稳健的深度初始化。
  4. 深度图生成:通过从1/8到1/1的多个阶段(32, 16, 8, 4个逆深度假设)逐步细化,最终生成全分辨率的深度图。

特征提取

image-20260111201026315

  1. 主干网络:使用冻结的预训练 DINOv2-base 模型提取特征。
  2. DINOv2 特征提取:将参考图和源视图下采样至原尺寸的 1/2,输入冻结的 DINOv2-base 模型,提取 12 层特征Fil(l为层索引,0 到 11),选择中间层和最后层(3,7,11)的特征进行后续处理
  3. 侧视图注意力(SVA)
    • 作用:作为侧调谐模块,在不更新DINOv2参数的情况下,为DINOv2的多层特征 {Fil}i=0N1\{F_{i}^{l}\}_{i=0}^{N-1} 注入跨视角信息。
    • 结构对参考视图特征使用自注意力,对源视图特征使用交叉注意力(省略了源视图的自注意力以节省计算)。采用Pre-LN(层归一化在注意力/FFN之前)和自适应层缩放(ALS) 来稳定训练。
    • 注意力机制选择:实验表明,基于特征聚合的线性注意力在特征编码阶段对不同图像尺寸表现最佳。
  4. 归一化2D位置编码(PE):对 DINOv2 特征先经 Pre-LN 归一化,再添加归一化 2D PE(提升高分辨率泛化性);ALS 通过可学习系数Sl(初始值 0.5)自适应调整各层 DINOv2 特征的重要性,稳定训练收敛。

代价体构建

  1. 构建方法:基于分组代价体相关性(group-wise cost volume correlation)。
  2. 下采样:通过一层非重叠补丁卷积(卷积核大小与步长均为 [2,4,4])对 4D 代价体进行下采样,为 C^RCimesDimesHimesW\hat{C} \in \mathbb{R}^{C imes D imes H imes W},其中 D,H,WD, H, W 分别为深度、高度和宽度维度,C=64C=64 为通道数。
  3. 序列化:将代价体特征重新排列为 (CimesDHW)(C imes DHW) 的形状,将 DHWDHW 视为Transformer块要处理的全局序列。其中DHW作为 Transformer 的全局序列长度(D为深度维度,

代价体正则化

  1. 代价体Transformer(CVT)
    • 使用6层标准的基于Post-LN的Transformer块(在注意力/FFN之后进行层归一化)。使用原始注意力(vanilla attention),因其擅长沿空间维度聚合特征,适合对代价体去噪。通过FlashAttention缓解其二次计算复杂度。仅应用于第一个(最粗糙的)阶段,因为该阶段具有完整且连续的3D场景。
  2. 截锥体位置编码(FPE)
    • 目的:增强模型处理不同长度3D序列的能力。
    • 方法:将代价体中所有3D点 PR3imesDHWP \in \mathbb{R}^{3 imes DHW} 的位置,基于为每个场景预定义的最近和最远深度平面所构建的截锥体空间,归一化到 [0,1]3[0,1]^{3}。然后分别沿x、y、z维度应用1D正弦PE,拼接后投影到与代价体特征相同的通道数并相加。
  3. 自适应注意力缩放(AAS)
    • 问题:注意力稀释。测试时序列长度(约27k-32k)远大于训练时(约6k),导致Softmax后的注意力分数被稀释。
    • 解决方案:根据序列长度 nn 自适应调整注意力缩放因子 λ\lambda,以保持注意力分数的熵不变。公式如下:

      ext{Attention}(\mathbf{Q},\mathbf{K},\mathbf{V}) = ext{Softmax}( rac{\kappa \log n}{d}\mathbf{Q}\mathbf{K}^{T})\mathbf{V}

      其中,dd 是特征通道数,\kappa = rac{\sqrt{d}}{\log \overline{n}}n\overline{n} 是多尺度训练期间特征的平均序列长度。

深度图生成流程

  1. 粗阶段深度初始化:在 1/8 分辨率下,对 CVT 正则化后的代价体进行深度 logits 预测,通过温度基深度期望机制(沿用 MVSFormer)得到初始深度图;
  2. 多阶段细化:采用 4 级粗到精策略(1/8→1/4→1/2→1/1),每一级利用上一级深度图作为先验,结合对应尺度的多视图特征,构建局部代价体并经 3D CNN 正则化,迭代优化深度残差,提升深度图分辨率和精度;
  3. 点云融合:将最终 1/1 分辨率的深度图通过 Gipuma 算法进行多视图融合,生成密集 3D 点云,用于后续场景重建评估。

Loss函数

论文并未明确给出损失函数的完整公式,但指出:

  • 损失类型:交叉熵损失(cross-entropy loss),用于优化深度 logits 的分类性能;
  • 训练策略:多尺度训练(图像分辨率从 512×512 到 1280×1280),提升模型对不同尺寸图像的适应性;
  • 训练流程:先在 DTU 数据集上训练 10 个 epoch(优化器 Adam,学习率 1e-3),再在 DTU+BlendedMVS 混合数据集上微调 10 个 epoch(学习率降至 2e-4),增强模型对室内外场景的泛化能力。

测试数据集

在以下四个公开数据集上进行了评估:

  1. DTU:室内物体数据集,用于主要评估和训练。
  2. Tanks-and-Temples:大规模室内外场景数据集,用于评估泛化能力。
  3. BlendedMVS:大规模合成数据集,与DTU混合用于模型微调以提升泛化能力。
  4. ETH3D:高分辨率多视角数据集,用于进一步评估在高分辨率图像上的性能。

消融实验

论文对以下组件进行了消融实验(见表4、5、11等):

  1. 代价体Transformer(CVT):验证其替换3DCNN的有效性。
  2. 截锥体位置编码(FPE):验证其对于提升CVT深度估计能力的重要性。
  3. 自适应注意力缩放(AAS):验证其缓解注意力稀释、提升高分辨率图像泛化能力的效果。
  4. 侧视图注意力(SVA):验证其注入跨视角信息对DINOv2的增强作用。
  5. 归一化 & 自适应层缩放(Norm&ALS):验证其对训练稳定性和收敛速度的改善。
  6. 不同注意力机制:在特征编码器(线性注意力最佳)和代价体正则化(原始注意力+ AAS最佳)中对比了线性注意力、原始注意力、Top-K注意力、滑动窗口注意力等。
  7. 归一化2D位置编码:验证其在高分辨率特征编码中的关键作用。
  8. 不同DINOv2层组合:探索了使用不同DINOv2特征层组合的效果。
  9. Pre-LN vs Post-LN:在特征编码器中Pre-LN效果更好,在代价体正则化中Post-LN效果更好。
  10. 基于其他基线的组件效果:在CasMVSNet和MVSFormer-P等模型上验证了CVT和SVA的通用提升效果。

其他要点

  • 计算效率:得益于FlashAttention,MVSFormer++的推理速度略快于MVSFormer,内存消耗也较为合理(见表9、10)。
  • 局限性:与大多数从粗到细的MVS模型类似,在微小前景物体上,粗糙阶段的错误估计会导致后续阶段的误差累积。未来的工作可以考虑设计新颖的动态深度区间选择策略来解决此问题。