三维重建与自动驾驶的契合点在哪里?盘一盘近几年SOTA方法!
由于3D重建在许多领域的广泛应用,例如自动驾驶、机器人和虚拟现实,其最近引起了越来越多的关注。作为人工智能中的一项关键技术,深度学习已被成功应用于解决各种计算机视觉问题。然而,由于独特的挑战和变化的机制,基于深度学习的3D重建仍处于起步阶段。MVS被认为是基于图像的3D重建的关键任务,本文综述了基于深度学习的多视图立体(MVS)方法的发展情况。
1、MVSNet(ECCV2018)
MVSNet: Depth Inference for Unstructured Multi-view Stereo.
MVSNet是第一个基于深度学习的MVS重建架构。提出一种端到端的多视图重建深度学习架构,参考基于2张图片的代价体的双目立体匹配深度估计方法,扩展到多张图片中进行深度估计。MVSNet的核心不是直接把3D模型建出来,而是端到端的学习深度图,它的目标是预测图片上每个像素的深度信息。在该架构中,首先提取深层的视觉图像特征,然后通过可微分的单应变换,基于参考视图的相机视锥体构建3D代价体。然后使用3D卷积对初始深度图进行正则化和回归得到初始的深度图,初始的深度图通过参考图像改进得到最后的深度图。MVSNet框架可以灵活地处理任意数量视图,因为基于方差的代价指标可将多个特征映射为一个代价特征。MVSNet在大规模室内数据集DTU上进行验证不仅显著优于以前的先进技术,而且运行时速度快了几倍。在复杂的户外Tanks and Temples数据集上评估MVSNet,无需任何微调,MVSNet在排行榜上位列第一,证明了网络具有很强的泛化能力。但MVSNet在正则化时将整个代价体作为输入,其内存消耗随尺度增加且是立方级增加,限制了模型在高分辨率应用场景的可扩展性。
网络结构如下:
MVSNet的概述如上图所示,网络的输入是一张参考图像(reference image)和一系列的源图像(source image),每次计算一个参考图像的深度图,而不是立即计算整个三维场景,这样的思路保证了大规模三维重建的可行性。通过使用可微的单应性矩阵变换,将2D的图像特征转换到基于相机视锥的特征体,并将基于方差的N个特征体合并成一个代价体,实现了将相机的几何信息编码到网络中,并能适应不同数目的多视角图像输入,保证了深度学习中端到端的训练。网络过程包括特征提取、特征体构建、生成代价体、代价体正则化、深度图初始估计、深度图优化、损失计算。特征提取目标是提取每幅输入图像的特征,输入1个参考图像+N个原图像,输出N+1个1/4原尺寸32通道的特征图。特征体构建目标是将所有特征图变换到参考相机的视锥体体空间,形成N+1个特征体Vi。生成代价体目标是将N+1个特征体聚合为一个统一的代价空间C(D,W,H,F),其中D、W、H、F为深度采样数、输入图像的宽度,高度的1/4和特征图的通道数。代价体正则化目标是根据代价空间C得到概率空间P,使用类似于3D-UNet的编码器-解码器结构,以相对较低的内存和计算成本,从一个大的感受野聚集相邻的信息。深度图初始估计目标是从概率空间P中获取深度图。深度图优化是利用参考图像的边界信息优化深度图。损失计算过程使用L1损失,分别对初始深度图和优化深度图进行损失计算,再以权重系数λ相加,λ一般设置为1.0。
2、R-MVSNet(CVPR2019)
R-MVSNet:Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference.
R-MVSNet是对MVSNet对改进,其要解决的问题是代价体正则化过程中内存过大问题。主要创新点有
-
在代价体正则化过程,把3D卷积换成GRU时序模型来降低模型大小 -
将原始的回归问题换成多分类问题计算交叉熵损失 -
为产生具有亚像素精度的深度估计,对初始网络得到的深度图进行变分深度图细化。
优缺点:降低了模型的内存消耗,增强了模型的可扩展性,但增加了模型的训练时间。R-MVSNet核心思想是利用GRU,将普通正则化一次性在多个深度上进行的过程,转为逐个深度进行、并利用了上一个深度的输出,即将深度尺度看作循环神经网络的时间尺度,从而将原来D个深度样本时需要的内存T减小到了T/D。
网络结构如下:
R-MVSNet的概述如上图所示,特征提取与MVSNet一致,图中圆圈M表示特征图到特征体过程,N张源图像和参考图通过特征提取网络得到的N个特征图,通过深度D0对应的单应矩阵H进行变换得到N个特征体,并对这N个特征体的每个特征通道上的每个特征点计算方差值,最终得到由方差值组成代价体,即图中C(0)。正则化部分首先是一个橙色的卷积网络将通道数由32变为16,随后通过3层叠加的GRU分别将通道数变为16,4,1,最终输出一张正则化后的代价图。损失计算过程,直接将各个深度正则化后的代价图聚合成一个概率体P,并在这当中沿P的深度方向使用了Softmax,即此时各点的值沿P深度方向和为1的概率。将概率体P与真实图像所得的真实概率体Q计算交叉熵损失,将求概率期望的回归问题变成了一个多分类的问题。
3、IterMVS(CVPR2022)
IterMVS: Iterative Probability Estimation for Efficient Multi-View Stereo.
本文提出一种用于高分辨率多视图立体的新的数据数据驱动方法IterMVS,IterMVS使用一种新的基于GRU的估计器,该估计器在隐藏状态下编码深度的像素级概率分布。模型聚合了多尺度匹配信息,在多次迭代中细化这些分布,并推断深度和置信度。IterMVS以一种新的方式结合传统的分类和回归去提取深度图。在DTU, Tanks&Temples 、 ETH3D数据集上验证了IterMVS的效率和有效性。IterMVS模型在内存和运行时间上都是最有效的方法,且还能实现最优性能,在Tanks&Temples、ETH3D数据上具有很好的泛化性。IterMVS的限制:其网络结构允许通过调整推理期间的迭代次数来权衡速度和准确性,但需要确定概率分布所包含的样本数量。该数字D2随后由网络结构确定,不能针对不同场景进行调整。
网络结构如下:
IterMVS的概述如上图所示,由一个多尺度特征提取器、一个基于迭代GRU的概率估计器,模拟每个像素的深度概率分布和一个空间上采样模块组成。利用从特征提取器中提取的多尺度特征,基于GRU的概率估计器计算深度假设在不同尺度水平上的匹配相似性。GRU以匹配信息为输入迭代更新隐藏状态,对深度的逐像素概率分布进行编码。从隐藏状态估计深度图和置信度。空间上采样模块将GRU输出的四分之一分辨率深度和置信度提高到全分辨率。在多尺度特征提取器模块,输入是N个大小为W×H的输入图像,分别用I0和Ii表示参考图像和源图像,利用特征金字塔网络(FPN)从图像中提取多尺度特征。网络共有三个层级,各层输出分辨率分别是原始图像的1/2、1/4、1/8,通道数为16、32、64。随后是基于迭代GRU的概率估计器,基于GRU的概率估计器用32维的隐藏状态对深度的逐像素概率分布建模。GRU在1/4分辨率下运行,输出深度图D∈W/4×H/4,并进行K次迭代。迭代k次的深度图由隐藏状态h预测。在深度范围内D2位置周围均匀采样的深度,通过在隐藏状态上应用2D CNN,然后沿着深度维度进行softmax,提取概率P∈W/4×H/4×D2。这种采样分布中预测深度值的通常策略是使用argmax或soft argmax。前者对应于测量真实值的one-hot编码和P之间的Kullback-Leibler散度,但不能提供超出离散化级别的解决方案(例如“亚像素”解决方案)。后者对应于测量P的期望到真实深度的距离。而期望可以取任意连续值,测度不能处理P中的多模态,这种方式偏好单模态分布。因此,本文提出了一个新的混合策略,结合分类和回归。从概率P中找到概率最高的像素p的索引。最后,对GRU概率估计器输出的深度图DK进行上采样,分辨率从1/4到全分辨率。
内存消耗和运行时长对比:所有方法内存消耗和运行时长都是随着输入分辨率的增加而增加,IterMVS增长最慢,且实现了最低消耗。
4、TransMVSNet(CVPR2022)
TransMVSNet: Global Context-aware Multi-view Stereo Network with Transformer.
本文提出使用Transformer进行全局上下文感知的多视图立体网络TransMVSNet。考虑MVS特征匹配任务的本质,提出一个强大的特征匹配转换器 (FMT),使用内部和外部注意力来聚合图像内和图像之间的上下文信息。为了更好地适应FMT,本文利用自适应接收场(ARF)模块确保特征范围内的平稳过渡,并通过特征路径跨越不同尺度传递转换后的特征和梯度,从而跨越不同阶段。此外,本文应用成对特征相关性来度量特征之间的相似性,并采用模糊性减少焦距损失来加强监督。TransMVSNet是利用Transformer完成MVS任务的第一次尝试。在DTU数据集、Tanks and Temples基准以及BlendedMVS数据集上实现了最先进的性能。尽管TransMVSNet降低了推理速度,但与其他从粗到细的MVS网络类似,本文方法对推理超参数敏感,例如深度假设的数量、深度间隔和深度间隔的衰减因子。
网络结构如下:
TransMVSNet的概述如上图所示,首先使用特征金字塔网络(FPN),在三个粗略到精细的分辨率上提取多尺度深度图像特征;在将这些特性输入给Transformer之前,本文使用自适应接收场(ARF)模块来细化局部特征提取,并确保平稳过渡到Transformer。为了利用参考图像和源图像之间的全局上下文信息,本文采用特征匹配Transformer(FMT)进行内部和外部注意力。为了有效和高效地将变换后的特征从低分辨率传播到更高分辨率,并使FMT使用所有尺度的梯度进行训练,本文用一个特征路径连接所有的分辨率。对于FMT处理的N×H′×W′×F的特征图,构建H′×W′×D′×1的相关体用于3D CNN的正则化。H′、W′和F表示当前阶段特征图的高度、宽度和通道,N表示视图数,D′表示相应的深度假设数。在获得正则化的概率体之后,模型采取赢者通吃的策略来确定最终预测。在模糊区域使用焦距损失来强化惩罚,以端到端训练TransMVSNet。
5、MVSTER(ECCV2022)
MVSTER: Epipolar Transformer for Efficient Multi-View Stereo.
基于学习的多视图立体(MVS)方法将源图像投影到参考相机视锥体中,以形成3D体,这些体被融合为代价体,由后续网络进行正则化。融合步骤在连接2D语义和3D空间关联方面起着至关重要的作用。然而,先前的方法利用额外的网络来学习2D信息作为融合线索,未充分利用3D空间相关性,这带来了额外的计算成本。因此,本文提出了MVSTER,它利用所提出的epipolar Transformer来有效地学习2D语义和3D空间关联。epipolar Transformer利用可分离的单目深度估计来增强2D语义,并使用交叉注意力沿着极线构建数据依赖的3D关联。此外,MVSTER在级联结构构建中,利用熵正则化的最优传输在每个阶段传播更精细的深度估计。大量实验表明,MVSTER以更高的效率实现了最先进的重建性能:与MVSNet和CasMVSNet相比,MVSTER在DTU基准上实现了34%和14%的相对改进,运行时间分别减少了80%和51%。
本文的主要贡献有:
-
提出了一种新颖的基于 Transformer 的端到端多视图立体MVSTER,利用提出的极线Transformer来有效地学习沿极线的 3D 关联。 -
利用辅助单目深度估计器来指导查询特征在训练期间学习深度辨别信息,这增强了特征语义,但不会带来效率损失。 -
将深度估计公式化为一个深度感知分类问题,并使用熵正则化最优转换来解决,这产生在级联结构中传播的更精细的深度估计。 -
在 DTU、Tanks&Temples、BlendedMVS 和 ETH3D 上进行的大量实验表明,本文方法比现有方法实现了卓越的性能和更高的效率。
网络结构如下:
MVSTER首先通过FPN提取特征,然后通过极线Transformer聚合多视图特征,其中辅助分支进行单目深度估计以增强上下文。随后,使用3D CNN对聚集的特征体进行正则化,产生深度估计。最后,利用最优转换来优化预测的深度。给定参考图像I0( H×W×3)及其相邻源图像Ii( H×W×3),第一步是提取这些输入的多尺度2D特征,使用类似FPN的网络,其中图像被缩小M倍以构建深度特征F。接下来是极线Transformer,从不同的视图聚合源体。Transformer中的原始注意力函数可以描述为将查询和一组键值对映射到输出。类似地,在所提出的极线Transformer中,参考特征被用作用户查询以匹配沿极线的源特征(键),从而增强相应的深度值。具体来说,通过单目深度估计的辅助任务来丰富参考查询。随后,交叉注意力在极线约束下计算查询和源体之间的关联,生成注意力引导以聚合来自不同视图的特征体。聚集的特征然后通过轻量级3D CNN进行规则化。
6、MVSFormer(TMLR2023)
MVSFormer: Multi-View Stereo by Learning Robust Image Features and Temperature-based Depth.
特征表示学习是基于学习的多视图立体(MVS)的关键组成。作为基于学习的MVS的常见特征提取器,FPN网络受到反射和无纹理区域的不好的特征表示的影响,这限制了MVS的泛化,即使是使用预先训练的卷积神经网络(CNN)的FPN也无法解决这些问题。本文提出了一种预训练的ViT增强MVS网络,称为MVSFormer,它可以从ViT的信息先验中学习更可靠的特征表示,基于attention机制的分层ViT的微调MVSFormer可以在FPN的基础上实现显著的改进。此外,还提出了冻结ViT权重的替代MVSFormer,通过预训练的注意力增强性能,极大减少训练成本。MVSFormer通过梯度累积增强的有效多尺度训练可以泛化到各种输入分辨率。MVSFormer在DTU数据集上实现了state-of-the-art的表现,在Tanks-and-Temples竞赛中排名第一。
网络结构如下:
MVSFormer的概述如上图所示,包括1、分层ViT和普通ViT特征提取器,ViT的输入被下采样到1/2分辨率。2、多尺度代价体计算和正则化。为了在各种分辨率下微调MVSFormer,使用Twins作为MVSFormer的backbone,因为Twins具备有效的注意力机制和针对不同尺度的鲁棒位置编码。得益于高效的注意力设计,可以用在各种分辨率下相对较低的学习率在训练阶段对预训练的Twins进行微调。