CVPR'2023 | Nerf-Stereo: 利用NeRF来训练双目立体匹配网络的新范式!

简介: CVPR'2023 | Nerf-Stereo: 利用NeRF来训练双目立体匹配网络的新范式!

640.png


Title: NeRF-Supervised Deep Stereo

Paper: https://arxiv.org/pdf/2303.17603.pdf

Code: https://github.com/fabiotosi92/nerf-supervised-deep-stereo

导读

本文介绍了一个新颖的学习框架,可以轻松地训练立体匹配网络,而不需要任何ground-truth数据。利用最先进的神经渲染解决方案,论文从使用单个手持相机收集的图像序列生成立体训练数据。在此基础上,进行NeRF监督训练,同时利用渲染的立体三元组来补偿遮挡,深度图像作为代理标签(proxy labels)。这使得立体匹配网络能够预测清晰且详细的视差图。实验结果表明,按照这种方法训练的模型比现有的自监督方法在具有挑战性的Middlebury数据集上提高了30-40%,填补了与有监督模型的差距,并且大多数时候在zero-shot泛化方面表现优异。

背景

在双目立体匹配(双目深度估计)任务中,端到端的深度学习方法在提供足够的训练数据的情况下,在基准测试上提供出色的结果。这是它成功的关键因素,同时也是它最大的限制之一。想要获得标注的真实深度数据,需要用到其它的传感器(如激光雷达等),有较大的障碍。最近提出的方法主要通过自监督训练合成数据集来解决这个问题。但是它们仍然存在问题:

  • 自监督训练:预测效果在特殊区域(遮挡、非朗伯曲面等)远不如有监督训练。同时跨域的泛化能力较差。
  • 合成数据集:高质量的合成数据集制作成本高且少。同时合成数据和真实数据存在gap。

简而言之,在一个数据是新的黄金的世界里,获得灵活和可拓展的训练样本来释放深度立体网络的全部潜力仍然是一个待解决的问题。

贡献

640.png

Zero-Shot Generalization Results

基于上述问题,本文提出了一个新的范式来解决这一挑战。本文的主要贡献如下:

  • 提出了一种新的范式,利用神经渲染技术用户收集的图像序列,收集和生成立体训练数据,从而消除了对合成数据集、ground-truth深度或(甚至)真实立体图像对的需求
  • NeRF-Supervised训练方法结合了渲染的图像三元组和深度图以解决遮挡并增强细节
  • 在具有挑战性的立体数据集上实现了最先进的零样本(zero-shot)泛化结果,而不利用任何ground-truth或真实立体图像对

方法

640.png

Framework Overview

上图展示了论文的NeRF-Supervised (NS)学习框架。首先从多个静态场景中收集多视图图像。然后,在每个场景上拟合一个NeRF来渲染立体图像对和深度图。最后,利用渲染的数据来训练任何现有的立体匹配网络。

Training Data Generation

首先介绍如何利用NeRF生成图像对。

Image Collection and COLMAP Pre-processing

从单个静态场景中利用单个手持相机(如手机)获取一组图像,并使用COLMAP估计相机内参和外参,收集到的数据用于训练一个神经辐射场(NeRF)。

NeRF Training

通过从收集的图像位置渲染一批光线的颜色,并针对收集的帧中的像素颜色优化L2损失,为每个场景训练独立的NeRF:

在本工作中,论文采用Instant-NGP作为NeRF引擎。

Stereo Pairs Rendering

训练好了NeRF后,论文为每个训练好的NeRF模型定义了多个虚拟立体相机(虚拟外参)。对于每个虚拟的立体相机,如上图所示,可以同时渲染任意空间分辨率任意视点的无数的双目立体像对(左右目,左侧为参考帧,右侧为目标帧)

rendered left-center-right triplet

此外,如上图所示,论文在每个双目立体像对的参考帧左侧再渲染第三张图像(第二个目标帧),从而产生一个完美对齐的立体图像三元组(说人话就是创建了一个三目系统来渲染三张图...)三目分别为:

  • 中间相机,可以渲染生成

  • 左相机,可以渲染生成

  • 右相机,可以渲染生成

640.png

最后,渲染得到的深度图,再加上相机内参,可以通过下面的公式提取视差图,以此来训练立体匹配网络。注意视差图与立体三元组的中心图像对齐

640.png

NeRF-Supervised Training Regime

上面生成的数据接下来将用于训练立体匹配模型。给定一个渲染立体图像三元组,论文通过向立体匹配网络提供作为立体对来预测视差图(注意论文种提出了两种视差图,一种是这里的预测视差图,一种是上文提到的渲染视差图)。然后,论文提出两种的NeRF-Supervised Training损失来进行训练:

Triplet Photometric Loss

第一种,论文利用图像重建来监督视差估计,估计出一种损失--光度损失。具体来说,首先利用估计的视差图来wrap目标帧,得到重接的参考帧,计算和之间的光度差进行的监督:

640.png

然而,这一公式在被遮挡的区域中缺乏合理的监督,如帧图像的左边界或每个深度不连续的区域的左侧,这在右侧图像中是不可见的。

为了克服这个限制,论文使用了上一节中提到的第三幅图像,也进行了一次图像重建(前面是将 warp到,这里将 warp到,思路一致,网络估计视差,视差补偿目标帧得到重建的参考值),进行的监督

通过计算,的遮挡区域的监督将会被补偿,最终计算的三元组光度损失:

640.png

上图显示了和立体像对计算时遮挡的影响,其有明亮的颜色显示。而在使用时,遮挡将被忽略,这样计算出的损失也更合理。最后,无纹理区域被掩模µ丢弃:

Rendered Disparity Loss

第二种,论文还通过利用匹配网络预测的视差图NeRF渲染视差图(渲染深度图,深度图转视差图)之间差异的额外损失来进一步辅助光度损失

为了解决由NeRF渲染的深度图经常显示出伪影和大误差问题,论文采用基于渲染不确定性的过滤机制来仅保留最可靠的像素

上述的两项损失相加,权重平衡了光度和视差损失的影响,就完成了 NeRF 监督训练:

实验

Comparison with MfS

论文通过NeRF-Supervised (NS)训练了三个立体匹配网络(PSMNet、CFNet、RAFT-Stereo作为backbone)来进一步评估本文渲染的数据集质量以及训练方法(NS)的有效性,并与目前最先进的从单个图像中生成立体像对的最新方法Mfs做对比。

表1 Direct Comparison with MfS

上表显示了NS与MfS训练的三个backbone所获得的结果的对比——包括他们提出的数据集(50万张图像)和本文的数据集(only 270 scenes)。最终,使用本文所提数据集并且采用NS监督训练的网络,总是比”Mfs+它的数据集“以及”Mfs+本文的数据集“对应的网络表现更好。

640.png

Qualitative Comparison on Midd-A H (top) and Midd-21 (bottom) Datasets

上图显示了Mfs用它的数据集训练的RAFT-Stereo和本文NS训练的RAFT-Stereo的对比。结果显示了后者的更详细的预测,特别是在薄结构中,对于没有经过ground truth训练的方法,这是前所未有的质量。

Zero-Shot Generalization Benchmark

上表显示,NS训练的RAFT-Stereo在整个Middlebury都是最好的(超出其它方法30-40%),与用带有GT的仿真数据集SceneFlow训练的RAFT-Stereo不相上下。

总结

论文提出了一个开创性的pipeline,利用NeRF来训练深度立体匹配网络,而不需要ground truth深度或立体摄像机。通过用一个低成本的手持相机捕捉图像,通过论文提出的NeRF-Supervised范式生成成千上万的立体对进行训练。这种方法导致了最先进的Zero-Shot泛化,超越了自监督和监督的方法。论文的工作代表了数据民主化的重大进步,将成功的关键交到了用户手中。

目录
相关文章
|
1天前
|
机器学习/深度学习 算法
**反向传播算法**在多层神经网络训练中至关重要,它包括**前向传播**、**计算损失**、**反向传播误差**和**权重更新**。
【6月更文挑战第28天】**反向传播算法**在多层神经网络训练中至关重要,它包括**前向传播**、**计算损失**、**反向传播误差**和**权重更新**。数据从输入层流经隐藏层到输出层,计算预测值。接着,比较预测与真实值计算损失。然后,从输出层开始,利用链式法则反向计算误差和梯度,更新权重以减小损失。此过程迭代进行,直到损失收敛或达到训练次数,优化模型性能。反向传播实现了自动微分,使模型能适应训练数据并泛化到新数据。
8 2
|
16天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】36. 门控循环神经网络之长短期记忆网络(LSTM)介绍、Pytorch实现LSTM并进行训练预测
【从零开始学习深度学习】36. 门控循环神经网络之长短期记忆网络(LSTM)介绍、Pytorch实现LSTM并进行训练预测
|
29天前
|
机器学习/深度学习
简单通用:视觉基础网络最高3倍无损训练加速,清华EfficientTrain++入选TPAMI 2024
【5月更文挑战第30天】清华大学研究团队提出的EfficientTrain++是一种新型训练方法,旨在加速视觉基础网络(如ResNet、ConvNeXt、DeiT)的训练,最高可达3倍速度提升,同时保持模型准确性。该方法基于傅里叶谱裁剪和动态数据增强,实现了课程学习的创新应用。在ImageNet-1K/22K数据集上,EfficientTrain++能有效减少多种模型的训练时间,且在自监督学习任务中表现出色。尽管面临适应性与稳定性的挑战,EfficientTrain++为深度学习模型的高效训练开辟了新途径,对学术和工业界具有重要意义。
35 4
|
1月前
|
机器学习/深度学习 算法
ICLR 2024 Oral:用巧妙的传送技巧,让神经网络的训练更加高效
【5月更文挑战第21天】ICLR 2024 Oral 提出了一种名为“传送”的新方法,利用参数对称性提升神经网络训练效率。该方法通过参数变换加速收敛,改善泛化能力,减少了训练所需的计算资源和时间。研究显示,传送能将模型移到不同曲率的极小值点,可能有助于泛化。论文还探讨了将传送应用于元学习等优化算法的潜力,但对传送加速优化的确切机制理解尚不深入,且实际应用效果有待更多验证。[论文链接](https://openreview.net/forum?id=L0r0GphlIL)
35 2
|
16天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】35. 门控循环神经网络之门控循环单元(gated recurrent unit,GRU)介绍、Pytorch实现GRU并进行训练预测
【从零开始学习深度学习】35. 门控循环神经网络之门控循环单元(gated recurrent unit,GRU)介绍、Pytorch实现GRU并进行训练预测
|
1月前
|
运维 安全 网络安全
云端防御策略:融合云服务的网络安全新范式
【5月更文挑战第15天】 随着企业逐渐将关键业务迁移至云平台,云计算服务的安全性成为维护信息安全的前沿阵地。本文深入探讨了云服务模型中的网络安全挑战与对策,分析了在公有云、私有云和混合云环境下,如何通过创新的安全架构和技术手段强化数据保护和威胁防御。文章着重讨论了多租户环境中的数据隔离问题、云安全访问控制的最新进展以及针对云环境的安全运维管理实践。通过综合分析,提出了一个多层次、动态适应的安全框架,旨在为云服务用户提供一个更加安全、可靠的计算环境。
|
1月前
|
机器学习/深度学习
深度学习网络训练,Loss出现Nan的解决办法
深度学习网络训练,Loss出现Nan的解决办法
44 0
|
1月前
|
机器学习/深度学习 并行计算 数据可视化
Batch Size 对神经网络训练的影响
Batch Size 对神经网络训练的影响
39 0
|
22天前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
40 1
|
7天前
|
安全 物联网 Linux
学习Linux对网络安全的重要性
**学习Linux对网络安全至关重要:** 1. 开源操作系统广泛应用于服务器、网络设备,掌握Linux是安全专家必备技能。 2. Linux内置安全特性,如最小权限和防火墙,加上丰富的安全工具,提供强大保障。 3. 可定制性允许灵活配置,满足安全需求,开源社区提供持续更新和教育资源。 4. 学习Linux能提升攻防能力,用于系统加固和渗透测试,适应跨平台安全场景。 5. 随着云计算和物联网发展,Linux在网络安全中的角色日益关键。
31 3

热门文章

最新文章