优化引导神经迭代(OGNI):快速鲁棒的3D重建新方法

普林斯顿博士论文介绍OGNI方法,实现快速鲁棒的3D重建,并在多个应用中取得了SOTA效果。

原文标题:【普林斯顿博士论文】快速且鲁棒的三维重建

原文作者:数据派THU

冷月清谈:

本文介绍了一种名为优化引导神经迭代(OGNI)的三维重建方法。OGNI将复杂任务分解成一系列由浅层网络预测的小修正,每个修正独立监督并基于当前解的估计进行特征条件化。这种方法具有通用性,可为各种三维重建任务提供鲁棒且高效的解决方案。

OGNI的核心思想是模拟经典优化算法,通过循环使用深度网络生成小修正。网络只需训练进行小幅度调整,而非一次性预测最终结果,降低了训练难度。作者通过低级CUDA内核等手段提高了运行效率,并将其应用于立体匹配、物体姿态估计和视觉SLAM等任务。

在立体匹配中,OGNI使用一系列残差更新预测视差,并根据当前视差估计采样特征图指导更新。在物体姿态估计中,OGNI假设默认物体方向和位置,交替采样特征和预测参考模型到查询图像的映射,并使用加权非线性最小二乘算法将映射转换为姿态。在视觉SLAM中,OGNI应用于相机位姿估计,交替采样特征和细化重投影估计,并使用类似的算法计算相机位姿和深度。

OGNI方法在基准测试中表现出高准确性和实际性能,并可在推理过程中权衡速度和精度。虽然训练稳定性仍有提升空间,但OGNI已在多个研究中取得成功。

怜星夜思:

1、OGNI方法在哪些具体的硬件环境下能取得最佳性能?对GPU、CPU等有什么要求?
2、相比于传统的3D重建方法,OGNI的优势主要体现在哪些方面?有没有一些实际应用案例可以参考?
3、论文中提到OGNI的训练稳定性是一个挑战,有哪些方法可以提高训练的稳定性?

原文内容

来源:专知

本文约2400字,建议阅读5分钟

我将介绍一种名为优化引导神经迭代(OGNI)的方法,并展示它如何应用于各种三维重建任务。


从视觉数据进行三维重建是机器人学、自动化机器和三维场景理解中的一个重要子任务。它涉及从图像/视频中估计相机和物体运动,以及三维结构。我将介绍一种名为优化引导神经迭代(OGNI)的方法,并展示它如何应用于各种三维重建任务。

在基于OGNI的方法中,我们通过将每个任务分解为由浅层网络预测的一系列小修正,来模仿经典的优化算法。每个修正都独立进行监督,并根据对解的当前估计进行特征条件化。这一机制出奇地通用,并且能够为三维重建问题提供鲁棒且高效的解决方案。此外,我还介绍了几个显式优化层,允许我们将这些具有挑战性的问题重新格式化为更容易处理的低级视觉任务。在视觉SLAM、立体匹配和物体姿态估计中,我展示了这一方法如何在准确性和/或速度上达到最先进的水平。我还讨论了该研究方向的潜在未来发展。

从视觉数据进行三维重建是机器人学、自动化机器和三维场景理解中的一个重要子任务。它涉及从图像/视频中估计相机和物体运动,以及三维结构。我将介绍一种名为优化引导神经迭代(OGNI)的方法,并展示它如何应用于各种三维重建任务。

三维重建是一个尚未解决的问题,许多方面使得设计有效算法特别具有挑战性。对于任何基于图像/视频的算法,训练和推理效率都很难实现,因为问题的输入本质上是信息密集型的。与总结问题不同,三维重建通常涉及“密集预测”,即算法必须对每个图像的每个像素进行预测,且在多视图输入的情况下,需要将这些每像素的输出汇总为全局表示。在实际操作中,大多数工作只能在小图像或短视频片段上运行。

三维重建的一个有用特性是,极线几何的原理可以限制可能解决方案的空间,至少对于刚性物体而言,从而使得问题变得更容易。这些“规则”允许我们先解决一个简单的代理问题,如二维匹配,然后通过一些数学计算解决整体问题。这一思想是现代算法的核心,也是几乎所有深度学习前算法的核心,对于竞争性基准测试的表现几乎是必不可少的。

在实践中,利用这些“代理”问题是困难的,因为它通常需要通过某种优化层反向传播梯度;这可能是不可能的、不稳定的、难以实现的,或者有时梯度太稀疏/嘈杂,无法有效地用于小批量梯度下降。因此,大多数先前的工作选择了以下两种方式之一:(1) 使用基于CPU的算法,这些算法依赖手工设计的特征描述符;(2) 通过聚合任何有用的信息,并训练深度网络输出结果,采用“端到端”方法。显然,在我们能够弄清楚如何将优化层与深度网络结合使用,并有效、稳定地训练它们的任何场景中,都有获得增益的机会。

我们首先观察到,优化层在像Pytorch这样的高层库中通常难以实现。虽然这不是根本性限制,但编写CUDA中可微分的函数并不流行,但最终证明它对于使这些方法有效运行至关重要。

我们的第二个观察是,基于优化的方法在与(浅层)网络一起迭代应用时效果更好。我们将这一思想称为“优化引导神经迭代”(OGNI),它是我工作的核心。关键思想是通过在反馈循环中使用深度网络生成一系列小的修正,从而模仿经典的优化算法。每个小修正都独立地进行监督。最终,网络只需要训练来做出小的变化,而不是一次性回归最终的解。OGNI算法的模板是:

将解的初始估计设置为某个简单但合理的值。

构建条件化于当前估计的特征描述符。

使用递归更新算子预测一个小的修正。

对更新后的预测进行监督,并将其从梯度计算中分离。回到第2步。

在我的第一个项目中,我利用这种方法进行了立体匹配。以往的工作会构建昂贵的3D代价体积,计算所有像素的所有可能解,并使用3D卷积进行过滤。而在我们的工作中,我使用OGNI预测了一系列对视差的小残差更新。在每个步骤中,我们会使用当前的视差估计来对特征图进行采样,以告知更新算子如何进行细化。这还涉及编写低级CUDA内核,以有效地基于当前预测条件采样特征。

在我的后续项目中,我将OGNI应用于6自由度物体姿态估计。在这个设定中,我们有一个参考的三维模型,以及该物体在现实世界中的RGB查询图像。我们假设一个简单的默认物体方向和位置,然后在采样有用特征和预测从参考模型的每个点到查询图像中某个像素的映射之间交替进行。为了将这些映射转换为物体姿态,我们实现了一个加权非线性最小二乘算法,该算法利用网络预测的置信度。

我接下来的几个项目集中于视觉SLAM(即从视频中估计相机位姿)。在这些工作中,我们将OGNI应用于相机位姿估计。对于每一帧新的视频图像,我们假设一个简单的相机运动(根据先前的运动进行线性外推)和随机深度。然后,我们交替采样描述当前场景状态的特征,并细化重投影估计。与物体姿态项目类似,我们使用加权非线性最小二乘算法将重投影估计转换为相机位姿和深度。在这些工作中,我还需要实现低级函数,以便在大规模下高效执行优化。

OGNI方法在标准基准测试中的准确性和实际表现方面都非常有效。像任何递归网络一样,我们也可以在推理过程中权衡一些速度和准确性。其他实验室的许多研究也采纳了这种方法。事后来看,这种方法也有一些缺点;最大化准确性会导致推理速度非常慢,因为排行榜通常只关注准确性。

虽然OGNI并非我每个工作中的主要或唯一贡献,但它在我设计每个算法时起到了重要作用。在每种情况下,它都需要精心实现,以避免训练过程中的发散行为,并且能够高效运行。坦率地说,训练稳定性仍然是这种方法的一个障碍。有时,需要一些运气才能将某些OGNI方法训练完成。无论如何,我发现这种方法在我的研究中取得了巨大的成功,我会毫不犹豫地为它辩护。



关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU


关于OGNI训练稳定性的问题,论文里没有细说,但这确实是一个值得关注的点。我猜想可以通过一些常见的深度学习技巧来改善,比如调整学习率、使用不同的优化器、添加正则化项等等。也可能需要针对具体的任务和数据集进行一些特定的调整。

OGNI的核心在于CUDA实现的优化层,所以高性能GPU肯定更利于发挥其优势。不过论文也提到,浅层网络的应用使得它对硬件要求不至于过高,普通游戏本级别的GPU应该也能跑起来,就是速度和精度可能会有差异。具体最佳性能对应的硬件环境,估计得看实际应用场景和模型大小了。

除了上面提到的方法,还可以考虑改进网络结构,比如使用残差连接、批归一化等技巧。另外,数据增强也可能有助于提高训练稳定性,可以尝试添加一些噪声、旋转、缩放等操作。

提高训练稳定性,可以尝试梯度裁剪、warmup策略或者更复杂的学习率调整方法。另外,合理的初始化策略也很重要,可以尝试预训练模型或者更精细的初始化方法。

OGNI的主要优势在于速度和鲁棒性。传统方法要么依赖手工设计的特征,效率低;要么端到端训练,难以处理复杂场景。OGNI通过迭代优化和深度学习结合,兼顾了效率和鲁棒性。论文里提到的立体匹配、物体姿态估计和视觉SLAM都是很好的应用案例。

我觉得除了GPU,CPU的性能也很重要,毕竟特征提取和数据预处理这些步骤也需要CPU来完成。如果CPU太弱,可能会成为瓶颈,限制GPU的性能发挥。所以理想情况下,应该选择CPU和GPU性能均衡的配置。

说到硬件,内存带宽的影响也不容忽视。OGNI涉及到大量的特征图和数据传输,如果内存带宽不足,也会影响效率。个人觉得,高性能GPU、多核高频CPU和大容量高带宽内存都是OGNI取得最佳性能的关键。

我认为OGNI的优势还在于它的灵活性。它可以根据不同的任务调整网络结构和优化策略,不像传统方法那么死板。至于实际应用,除了论文中提到的,我觉得还可以应用于AR/VR、自动驾驶等领域。

OGNI的创新之处在于将优化层融入深度学习框架,这在之前是很难做到的。这种方法使得模型能够学习更复杂的映射关系,从而提高精度。实际应用方面,可以考虑医疗影像重建、机器人导航等。