CVP-MVSNet(与CasMVSNet无区别)

基本信息

项目 内容
论文标题 Cost Volume Pyramid Based Depth Inference for Multi-View Stereo
作者 Jiayu Yang、Wei Mao、Jose M. Alvarez、Miaomiao Liu
作者单位 Australian National University(澳大利亚国立大学)
时间 2020
发表会议/期刊 CVPR

方法概览

特点 文章性质
输入 多视角
输出 参考视角深度图
所属领域 MVS

1. 摘要精简

提出一种基于成本体积金字塔(Cost Volume Pyramid)的多视图立体匹配(MVS)深度推断网络 CVP-MVSNet,以粗到精的方式构建成本体积,替代固定分辨率的单一成本体积。该方法先在图像金字塔的最粗分辨率层构建全深度范围的成本体积,再基于前一阶段的深度估计,迭代构建像素级深度残差的部分成本体积,实现深度图逐步细化。网络结构紧凑轻量化,在保证重建精度的同时,比 SOTA 方法(如 Point-MVSNet)快 6 倍,内存消耗减少 6 倍,在 DTU 和 Tanks and Temples 数据集上取得优异性能,源代码已开源(https://github.com/JiayuYANG/CVP-MVSNet)。


2. 研究动机与出发点

现有学习型 MVS 方法存在效率与内存的矛盾:MVSNet 的固定分辨率 3D 成本体积内存消耗随图像分辨率立方增长,难以适配高分辨率场景;R-MVSNet 的循环正则化虽降低内存,但运行时间延长;Point-MVSNet 基于点云迭代细化,速度随迭代次数线性增加。此外,现有方法未充分考虑深度采样与图像分辨率的关联,导致资源浪费。因此,作者提出成本体积金字塔框架,通过粗到精的成本体积构建,结合深度残差推断,在聚合上下文信息的同时优化内存与速度,实现高效高精度的深度推断。


3. 创新点

  1. 提出成本体积金字塔结构,以粗到精方式迭代构建成本体积,避免一次性处理全分辨率全深度范围的高内存开销;
  2. 揭示深度采样与图像分辨率的内在关联,制定科学的深度残差搜索范围与采样间隔原则,确保采样有效性;
  3. 基于规则图像网格构建残差成本体积,采用多尺度 3D CNN 正则化,相比 Point-MVSNet 的点云边缘卷积,更高效地聚合上下文信息;
  4. 网络结构紧凑,无需额外后处理,在相同精度下比 Point-MVSNet 快 6 倍、内存消耗低 6 倍,且支持高分辨率图像输入。

4. 网络架构构成

image-20251126180215020

网络整体遵循 “图像金字塔→特征提取→成本体积金字塔→3D CNN 正则化→深度推断→多视图融合” 的流程,核心为成本体积金字塔的迭代构建与细化:

  1. 图像金字塔构建:将输入图像(参考图 + 源图)下采样生成 L+1 层金字塔,最底层为原始分辨率;
  2. 特征提取:权重共享的 2D CNN 为各层图像提取多尺度特征;
  3. 成本体积金字塔构建:从最粗层开始,先构建全深度范围成本体积得到粗深度图,再迭代构建残差成本体积细化深度;
  4. 3D CNN 正则化:对每层成本体积施加多尺度 3D 卷积,聚合空间与深度维度的上下文信息;
  5. 深度推断:通过 soft-argmax 将正则化后的概率体积转换为深度图,迭代叠加残差得到最终高分辨率深度图;
  6. 多视图融合:采用与 MVSNet 一致的深度图融合方法,生成 3D 点云。

5. 特征提取

采用权重共享的 9 层 2D 卷积网络,所有图像金字塔层级、所有输入视图(参考图 + 源图)共用同一网络:

  1. 网络结构:每层卷积后均接 LeakyReLU 激活函数,无批归一化;
  2. 下采样策略:通过卷积核步长自然适配图像金字塔的不同分辨率,无需额外下采样层;
  3. 特征输出:每层输出 16 通道特征图,特征图尺寸与对应图像金字塔层级的尺寸一致(即最粗层为H/2L×W/2L,最底层为H×W),为成本体积构建提供统一维度的特征表示。

6. 成本体积构建方式

成本体积分为"粗层全深度成本体积"和"细层残差成本体积"两类,均采用方差度量聚合多视图特征:

(1) 粗层全深度成本体积(最粗分辨率层 L)

  1. 深度采样:在全深度范围 [dmin,dmax][d_{min}, d_{max}] 内均匀采样 M 个平行平面,采样深度为

d=dmin+m(dmaxdmin)/M(m=0,1,...,M1)d = d_{min} + m(d_{max} - d_{min})/M \quad (m = 0, 1, ..., M - 1)

  1. 特征Warp:通过可微分单应变换将源图特征映射到参考图坐标系,单应矩阵为

Hi(d)=KiLRi(I(t0ti)n0Td)R01(K0L)1H_i(d) = K_i^L R_i \left( I - \frac{(t_0 - t_i) n_0^T}{d} \right) R_0^{-1}(K_0^L)^{-1}

其中 KiLK_i^L 为第 i 个视图在 L 层的缩放内参,RiR_itit_i 为相对旋转和平移,n0n_0 为参考相机主轴;

  1. 方差成本计算:聚合参考图与所有源图的Warp特征,计算特征方差作为匹配成本,公式为

CdL=1(N+1)i=0N(f~i,dLfˉdL)2C_d^L = \frac{1}{(N+1)} \sum_{i=0}^{N} (\tilde{f}_{i,d}^L - \bar{f}_d^L)^2

其中 f~i,dL\tilde{f}_{i,d}^L 为第 i 个视图在深度 d 的Warp特征,fˉdL\bar{f}_d^L 为所有视图特征的均值;

  1. 成本体积拼接:将 M 个深度的成本图拼接为 W/2L×H/2L×M×FW/2^L \times H/2^L \times M \times F 的成本体积(F=16 为特征通道数)。

(2) 细层残差成本体积(层级 l=L1,...,0l = L-1, ..., 0

  1. 深度残差假设:对前一阶段(l+1l + 1 层)的深度图 Dl+1D^{l+1} 进行双三次上采样,得到 Dl+1D_{\uparrow}^{l+1},围绕每个像素的上采样深度 dp=Dl+1(u,v)d_p = D_{\uparrow}^{l+1}(u,v),设置 M 个深度残差假设 dp+mΔdp(m=M/2,...,(M2)/2)d_p + m \Delta d_p \quad (m = -M/2, ..., (M-2)/2)Δdp\Delta d_p 为残差采样间隔;

  2. 残差范围确定:通过将参考图像素投影到源图极线,取极线上偏离投影点 2 个像素的两点,反投影回参考图视觉射线,得到深度残差的搜索范围;

  3. 部分成本体积构建:采用与粗层一致的方差成本计算方式,构建 H/2l×W/2l×M×FH/2^l \times W/2^l \times M \times F 的部分成本体积,仅覆盖残差范围。


7. 代价体正则化

使用多尺度3D CNN对代价体进行正则化;输出为概率体 Pl\mathbf{P}^l,表示每个深度假设的概率;增强局部平滑性并扩大感受野。


8. 深度图生成

最粗层:

使用 soft-argmax 从概率体中回归深度:

DL(p)=m=0M1dPpL(d)\mathbf{D}^{L}(\mathbf{p})=\sum_{m=0}^{M-1}d\mathbf{P}_{\mathbf{p}}^{L}(d)

逐层细化:

根据残差概率体更新深度:

Dl(p)=Dl+1(p)+m=M/2(M2)/2rpPpl(rp)\mathbf{D}^{l}(\mathbf{p})=\mathbf{D}^{l+1}_{\uparrow}(\mathbf{p})+\sum_{m=-M/2}^{(M-2)/2}r_{\mathbf{p}}\mathbf{P}_{\mathbf{p}}^{l}(r_{\mathbf{p}})


9. 损失函数

使用 l1l_1 损失在金字塔所有层级上监督深度图:

Loss=l=0LpΩDGTl(p)Dl(p)1Loss=\sum_{l=0}^{L}\sum_{\mathbf{p}\in\Omega}\|\mathbf{D}^{l}_{GT}(\mathbf{p})-\mathbf{D}^{l}(\mathbf{p})\|_{1}

其中:

  • Ω为有地面真值(GT)的有效像素集;
  • DGTlD_{GT}^l为第 l 层的 GT 深度图(通过下采样原始 GT 得到);
  • DlD^l为第 l 层的预测深度图;
  • L为图像金字塔的总层数。

10. 测试数据集

  1. DTU 数据集:含 124 个室内场景,7 种光照条件,49 或 64 个拍摄视角,提供 GT 点云和相机参数,用于核心性能评估;
  2. Tanks and Temples 数据集:含室内外真实场景,分为 Intermediate 集(中等规模)和 Advanced 集(大规模复杂场景),用于验证模型泛化性。

11. 消融实验

消融实验在 DTU 数据集上进行,验证核心参数与设计的有效性:

  1. 金字塔层级数量:测试 2、3、4、5 层金字塔对重建精度的影响,结果表明 2 层为最优(最粗层 80×64,最底层 160×128),层级过多会导致粗层分辨率过低,影响初始深度估计质量;
  2. 像素间隔设置:测试深度残差搜索范围对应的像素间隔(0.25、0.5、1、2 像素),结果表明间隔过窄(0.25 像素)或过宽(2 像素)均会导致精度下降,0.5 或 1 像素为最优选择,验证了深度采样与图像分辨率关联原则的合理性。

其他亮点

  • 支持输出与输入图像相同分辨率的深度图;
  • 自适应残差搜索范围:基于极线几何自动计算每个像素的深度残差搜索范围,确保覆盖真实深度的同时避免无效采样;
  • 特征共享与高效推断:所有图像金字塔层级共享特征提取网络与 3D CNN 正则化网络参数,减少模型参数量,提升推断效率;
  • 无额外后处理:网络输出的深度图无需 DenseCRF 或变分细化,直接通过多视图融合即可生成高质量点云,简化流程。