【论文简述】RIAV-MVS: Recurrent-Indexing an Asymmetric Volume for Multi-View Stereo(CVPR 2023)

一、论文简述

1. 第一作者:Changjiang Cai

2. 发表年份:2023

3. 发表期刊:CVPR

4. 关键词:MVS、深度图、GRU、Transformer、位姿网络

5. 探索动机:现有方法应用2D或3D卷积编码器对代价体进行聚合和正则化均由缺陷。

  1. The 2D CNN methods use multi-level features as skip connections to help decode the cost volume for depth regression. Even though the skip connections improve the depth maps, they weaken the role of cost volume and the geometry knowledge embedded therein to some extent. Hence, 2D CNN methods suffer from degraded generalization when testing on unseen domains.
  2. The 3D CNN methods use soft-argmin to regress the depth map as the expectation from the cost volume distribution, and hence cannot predict the best candidate but instead an averaged one when dealing with a flat or multi-modal distribution caused by textureless, repeated, or occluded regions, etc.

6. 工作目标:由于代价体在多视图几何编码中起着至关重要的作用,目标是在像素和帧级别上改进其构造。

7. 核心思想:Our core idea is a “learning-to-optimize” paradigm that iteratively indexes a plane-sweeping cost volume and regresses the depth map via a convolutional Gated Recurrent Unit (GRU).

  1. we learn to index the cost volume by approaching the correct depth planes per pixel via an index field (a grid of indices to identify the depth hypotheses)
  2. To facilitate the optimization, we propose to improve the cost volume at pixel- and frame- levels, respectively. At the pixel level, a transformer block is asymmetrically applied to the reference view (but not to the source views). At the frame level, we propose a residual pose net to rectify the camera poses that are usually obtained via Visual SLAM and inevitably contain noise. 

8. 实验结果:SOTA

We conduct extensive experiments on indoor-scene datasets, including ScanNet, DTU, 7-Scenes, and RGB-D Scenes V2. We also performed well-designed ablation studies to verify the effectiveness and the generalization of our approach. Our method achieves state-of-the-artperformance in terms of both within-dataset evaluation and cross-dataset generalization.

9.论文下载:

https://arxiv.org/pdf/2205.14320.pdf

二、实现过程

1. RIAV-MVS对比

​首先,RIAV-MVS是利用RAFT的基于GRU的迭代优化开发的。然而,RAFT对光流操作全对相关体(没有多视图几何约束)(图(a)和(c)),本文提出通过构建平面扫描代价体(图(b))进行多视图深度估计的方法。其次,IterMVS迭代预测深度,并使用以预测的深度为中心的更新深度平面重新构建平面扫描代价体(图(d))。相反,如图(e)所示,本文提出的索引场作为一种新的设计,连接了代价体优化(即通过反向传播学习更好的图像特征)和深度图估计(即通过采样扫描平面)。它使前向学习和后向学习可微。

2. RIAV-MVS概述

包括特征提取块(即F-Net、Transformer和C-Net)、构建代价体、代价体优化(索引场基于GRU的优化块和残差位姿块)和深度预测

3. 特征提取

给定参考图像I0和源图像IS,利用F-Net提取I0与每个IS的匹配特征,以及C-Net为I0提供的上下文特征。

局部匹配特征提取。特征提取器F-Net基于PairNet,它是一个轻量级的特征金字塔网络(FPN),是MnasNet的前14层之上。具体来说,参考输入图像I0 H×W在空间上缩小到1/32尺度,并恢复到1/2尺度,从而产生多尺度特征。增加了一个额外的融合层G,以1/4的尺度将它们聚合成一个匹配特征f0,即:

​其中融合层G是一系列的操作,Conv3×3,批归一化,ReLU, Conv1×1,按尺度x下采样和上采样,<.>是沿通道维度的连接,然后是f0∈H/4×W/4×F1, F1=128。同样,对源图像IS应用F-Net(与I0共享权值)。

参考视图的全局匹配特征。除了从CNN中提取局部像素级特征外,还利用全局远程信息来更好地指导特征匹配。为此,对参考图像的局部特征f0应用一个transformer层(带有位置编码的四头自注意力注层),构造一个聚合的特征f0a∈H/4×W/4×F1:

​其中σ(·)为softmax算子,wα为初始化为零的学习的标量权值,wq、wk和wv为查询、键和值特征的投影矩阵,h=4表示多头注意力。最终输出f0a包含局部和全局信息,由参数wα平衡,以增强后续的代价体构建。

值得注意的是,这种transformer自注意力仅应用于参考图像,而源特征仍然具有来自CNN的局部表示。transformer层的不对称使用更好地平衡高频特征(通过高通CNN)和低频特征(通过自注意力)。高频特征有利于局部和结构区域的图像匹配,而低频特征通过变换的空间平滑(充当低通滤波器)抑制了噪声信息,为鲁棒匹配提供了更多的全局上下文线索,特别是对于充满低纹理、重复模式和遮挡等的区域。这样,网络可以知道在哪里依赖全局特征而不是局部特征,反之亦然。

4. ​代价体构建

使用I0的全局匹配特征图f0a和IS的局部匹配特征fS来构建代价体。代价(或匹配)体在逆深度空间中均匀采样M0=64个平面假设,s.t 1/d ~ U(dmin,dmax)。其中dmin和dmax分别是三维截锥体的近面和远面。室内场景(如ScanNet)的dmin=0.25, dmax=20米。通过组相关计算二者相似性,最后得到C0∈H/4×W/4×M0.

5. 基于GRU的迭代优化

将深度预测作为学习优化稠密立体匹配问题。给定代价体C0,参考图像的深度估计公式为寻找最佳解D∗= argminD E(D,C0),使能量函数(D,C0)(包括一个数据项和一个平滑项)。不幸的是,这种全局最小化是NP-complete,因为有许多不连续保持能量。本文不直接优化能量函数E,而是学习处理代价体C0。

为了实现SGM无法进行端到端的问题建议使用基于GRU的模块来隐式优化匹配体。它通过将优化问题展开为t迭代更新(在下降方向上)来估计索引场φt的序列,模仿一阶优化器的更新。在每次迭代t时,索引场φt∈H×W被估计为一个索引网格,以迭代更好接近(即,更接近真值)深度假设具有较低的匹配代价。具体而言,预测残差索引场δφt作为下一次迭代的更新方向,即:φt+1 = φt+ δφt,(类似于SGM中的方向r),这是通过训练系统(例如,特征编码器,transformer层和残差位姿网络网等)来明确驱动的以尽量减少预测深度图和真值之间的损失。索引场的循环估计使学习直接锚定在代价体域。这种索引范式将我们的方法与其他深度估计方法区分开来,比如深度回归,它融合了代价体和2D CNN跳跃的多层级特征,以及经过通过3D CNN后的代价聚合和正则化后的soft-argmin。

索引场迭代更新。使用3链GRUs估计索引字段序列,φt∈H/4×W/4,从初始点φ0开始。使用从代价体C0的softargmin-start,即φ0=求和i*σ (C0),其中σ(·)是沿代价体C0的最后一维的softmax算子,将其转换为每个索引i的概率。这种设置有利于预测的收敛。类似RAFT,通过沿深度维度重复用核大小为2池化代价体C0,构建四层匹配金字塔Ci∈H/4×W/4×M0/2i。为了索引匹配的金字塔,我们定义了一个操作符。给定索引域φt的当前估计,在φt周围构造一个整数偏移量为r =±4的一维网格。由于φt是实数,网格通过线性插值从匹配金字塔的每一层进行索引。然后将检索到的代价值连接到单个特征图中Ctφ∈H/4×W/4×F2。然后取索引场φt,检索到的代价特征值Cφt0,与上下文特征f0c连接,并与潜在隐藏状态ht一起输入到GRU层。GRU输出一个残差索引场δφt和一个新的隐藏状态ht+1:

上采样和深度估计。在给定索引场φt的情况下,通过线性插值对深度假设进行采样,估计迭代t时的深度图。由于φt的分辨率为1/4,使用3×3邻居的凸组合将其上采样到全分辨率。具体来说,使用两个卷积层从隐藏状态ht预测权重掩码W0∈H/4×W/4x(4×4×9),并对这9个领域的权重执行softmax。最终的高分辨率索引场φut通过对9个邻域进行加权组合,并将其重塑为分辨率H×W得到。

在构建代价体时,使用M0=64深度假设,B0=di。较小的M0有助于减少计算和空间。如果使用上采样的索引场φu t直接对平面B0进行采样,即使定量评估没有受到阻碍,也会在推断的深度图中看到不连续。为了缓解这种情况,提出了一个从粗到细的模式,并使用M1=256深度假设B1= di。类似于光流或双目立体视差的上采样,在实现空间上采样时,必须对光流或视差值本身进行缩放,深度索引场通过一个尺度sD=M1/M0=4进行调整。为了模拟前面提到的凸组合,我们在B1中采样深度时沿着深度维度应用类似的加权求和。具体来说,使用三个卷积层从隐藏状态预测另一个掩码W∈H×W×sD×M0,并进一步重塑为H×W×M1。给定一个像素p和上采样的索引场φu t,最终深度Dt估计为:

其中,对给定像素p以索引φut(p)为中心的半径r=4内的邻居进行聚合,[i]给出小于等于i的最大整数,并且[i]表示通过线性插值对深度平面B1进行索引,因为索引i是实数。

值得一提的是,该方法在现有方法中加入了回归(类似于softargmin) 和分类(类似于argmin),使其对多模态分布具有鲁棒性,并通过线性插值实现亚像素精度。IterMVS中已经看到了分类和回归的结合,但在实现“分类”目的时没有使用argmax算子,这要归功于们提出的索引场估计,它以亚像素精度将代价体索引和深度假设直接连接起来。

6. 残差位姿网络

准确的代价体有利于基于gru的迭代优化。生成的代价体C0的质量不仅由匹配特征(f0a和fS)决定,还由单应性变化决定。然而,在实践中,相机位姿通常是通过Visual SLAM算法获得的,不可避免地包含噪声。因此,提出了一种残差位姿网络来校正相机位姿,以准确地特征匹配。使用image-net预训练的ResNet18主干对参考图像和warp的源图像进行编码。具体来说,给定迭代t时的当前估计深度图Dt和真实深度Dgt,通过(有噪声的)真实相机位姿Θ和Dt或Dgt用单应性将源图像Ii扭曲到参考图像。在网络训练时随机选择概率prob(Dt)=0.6的Dt或Dgt,但在网络推理时总是使用预测深度Dt。位姿网络的输入是连接的I0和warp的I~I,输出是轴角表示,进一步转换为残差旋转矩阵∆θi,用于更新θi`=∆θi·θi。通过这种方式,预测每个源和参考对的残差位姿∆Θ,并进行校正Θ`=∆Θ·Θ。利用更新的位姿Θ`计算更准确的代价体C1,然后是GRU的残差迭代。

7. 损失函数

网络监督预测深度Dt和真实值Dgt之间的逆L1损失,在有效像素上进行评估(即,具有非零真值深度)。随着权重呈指数增长,深度损失定义为:

式中,Nv为有效像素数,γ=0.9。用光度损失LP来监督残差位姿网络。总损失定义为L=LD+LP。

8. 实验

与先进技术的比较

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华科附小第一名

您的支持对我的前行很重要!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值