干货!用神经网络来表达隐式场景流

点击蓝字

干货!用神经网络来表达隐式场景流_第1张图片

关注我们

AI TIME欢迎每一位AI爱好者的加入!

干货!用神经网络来表达隐式场景流_第2张图片

在深度学习革命之前,许多感知算法(perception algorithm) 直接运行时优化(runtime optimization) ,同时加上强的先验(prior) 或者正则化(regularization) 。计算机视觉中的一个典型例子是光流(optical flow) 和场景流(scene flow) 。

监督学习(supervised learning) 在很大程度上取代了显式正则化(explicit regularization) 的需要。相反地,它们依赖大量的标记数据来捕获先验统计(prior statistics) ,而对于许多问题来说,这些大量的数据并不总是很容易获得的。

因此,这些学习方法只能针对特定领域,却不能很好地推广到其他在数据分布上不同的场景。本文回顾了主要依赖于运行时优化和强正则化的场景流问题。

文章的创新点是使用神经网络的架构作为一种新型的隐式正则化器(implicit regularizer) ,来表达场景流。与基于学习的场景流方法不同,在我们的方法中,优化发生在运行时,所以,不需要离线数据集。这种运行时优化的方法使得我们的方法非常适合应用于在自动驾驶等不断有新数据但很难获得大量有标记的真实数据(labeled ground truth) 的环境中。

我们的方法在场景流benchmark中获得了具有竞争力的(如果不是更好的话)结果。此外,这种神经先验的隐式和连续场景流表达使得我们可以估计连续的一长段跨点云序列的密集对应关系(dense long term correspondences across a sequence of point clouds) 。

本期AI TIME PhD直播间,我们邀请到阿德莱德大学在读博士生——李雪倩,为我们带来报告分享‍‍‍‍‍‍‍《用神经网络来表达隐式场景流》。

干货!用神经网络来表达隐式场景流_第3张图片

李雪倩:

目前在Argo AI 实习,同时是阿德莱德大学在读博士生。我的导师是Dr. Simon Lucey。

Coordinate-based network

最近关于 3D view synthesis有很多令人兴奋的研究,也引起了很多关注。具有代表性的一个work就是Neural Radiance Field——NeRF,它是一项开创性的neural rendering的工作,它在真实数据集上也生成了很有竞争力的view synthesis的结果。

在这个work中,一个创新点就在于它是用coordinate-based networks去做连续的场景表达(continuous scene representation)的。这种coordinate-based networks还提供了一种从网络架构本身而不是从大量的数据中去获取prior knowledge的新方法。当我们没有关于数据分布的prior knowledge时,这个方法对于许多视觉问题是必不可少的。

比如,在我们的work中,我们探索了coordinate-based network在解决底层视觉问题场景流(scene flow)中的能力。据我们所知,这是第一个使用coordinate-based networks直接解决自动驾驶场景中大规模、真实数据的场景流问题的工作。

干货!用神经网络来表达隐式场景流_第4张图片

因为我们的work是关于场景流问题的,所以我么先简单介绍一下什么是场景流Scene flow。

因为我们的work是关于场景流问题的,所以我先简单介绍一下什么是场景流scene flow。

干货!用神经网络来表达隐式场景流_第5张图片

Scene flow 101

场景流表述了3D动态场景的motion field。想象一下,我们用诸如LiDAR的传感器在时间t-1采集某个自动驾驶场景的一个点云,作为S1。

在时间 t,当场景发生了一些动态变化时,我们采集场景的另一个点云为 S2。在这里,点云 S2 的点数与点云 S1 的点数是不同的。而且这两个点云不是一一对应的。

然后,对于 S1 中的点p,我们想要找到一个translational vector f,这个f可以最好地将点p移动到它在 S2 中的对应点。这些所有translational vector的集合就是场景流 calligraphic F。场景流是许多视觉任务的基础,例如point cloud registration、motion segmentation等等。

Recent work: supervised learning

干货!用神经网络来表达隐式场景流_第6张图片

在deep learning-based场景流方法兴起之前,场景流估计通常基于运行时优化(runtime optimization)和正则化,就是加上一个strong prior, 或者是一个 regularization penalty。

最近的监督学习方法(supervised learning)在很大程度上取代了这种explicit regularization。FlowNet3D 是第一个直接从原始点云来估计场景流的监督学习方法。尽管它展示了令人印象深刻的结果,但这种监督学习的方法在应用于out-of-the-distribution的数据时,就缺乏generalization。

Recent work: self-supervised learning

干货!用神经网络来表达隐式场景流_第7张图片

自监督学习的方法(self-supervised learning),比如Just Go with the Flow,用自监督代替了全监督。尽管这些方法是自监督的,但它们仍然需要先在大型合成数据集(synthetic data)上来进行全监督学习。

例如,这些自监督方法需要先在 FlyingThings3D 数据集上进行预训练,然后再在真实数据集上进行自监督训练。因此,这些学习方法是只能运用于特定场景的,而不能很好地推广到其他statistically different的场景上。

Recent work: without learning -- explicit graph prior

干货!用神经网络来表达隐式场景流_第8张图片

最近关于non-learning场景流的graph prior的work让我们注意到,non-learning的方法对于场景流的估计仍然是值得探索的,特别是在没有可用标记的训练数据的真实自动驾驶场景中。对于传统的基于优化的方法,它通过最小化两个点云 S1 和 S2 之间的点距离 D 以得到explicit scene flow F。

然而,由于存在许多ambiguity,例如depth和aperture,优化是ill-conditioned的。因此,传统的non-learning的方法需要一个explicit regularizer C来平滑所估计的场景流,以使得相邻领域的点共享相似的运动轨迹。

干货!用神经网络来表达隐式场景流_第9张图片

例如,graph Laplacian,它是一种参数特定的discrete表达方式。而且它需要大量的计算,因为在对于从深度传感器采集的点云来说,通常需要 k 最近邻来构建一个mesh。而在自动驾驶场景中,通常点很多,k也相应地较大。

Run-time optimization with implicit regularizer

干货!用神经网络来表达隐式场景流_第10张图片

干货!用神经网络来表达隐式场景流_第11张图片

相反地,我们提出使用neural scene flow prior。而我们的创新点就是使用神经网络的架构作为一种新型的implicit regularizer。具体来说,我们使用coordinate MLP 来implicitly regularize所估计的场景流。

干货!用神经网络来表达隐式场景流_第12张图片

在我们的方法中,场景流 f 被由 theta 参数化的coordinate network g 代替。于是,优化不再是针对explicit scene flow进行优化,而是最小化点距离 D 以找到一个optimal的网络参数集 theta。在这里,coordinate network g 就表达了implicit scene flow f。

那么,为什么我们要使用neural scene flow prior呢?正如我们之前说的,在真实场景的应用中,我们可能并不总是有可用于training的ground truth data。在场景流估计中,我们使用的自动驾驶场景数据集(比如 Argoverse、nuScenes等)都是没有label的data。

Learning-based方法依靠大量数据来获得prior statistics。尽管它们在大多数vision tasks中取得了令人印象深刻的结果,但在应用于out-of-the-distribution的数据时仍然很困难,这意味着它们的generalizability很差。

相比之下,我们的方法是一种“不需要数据”的方法,即它不依赖于任何训练数据(training data)。我们方法中的neural prior作为一个强大的implicit regularizer,能够约束高度动态(highly dynamic)的motion field,让它尽可能地平滑。

Performance and inference time

 下图比较了我们的neural prior方法与graph prior方法在准确性和计算时间上的差异。

干货!用神经网络来表达隐式场景流_第13张图片

这表明我们使用implicit neural regularizer的方法比使用explicit regularizer的non-learning-based的传统方法要快好几个数量级,同时也能在 KITTI 数据集上实现更高的准确性。

Visual results on the Argoverse dataset

干货!用神经网络来表达隐式场景流_第14张图片

现在,让我们来看一个visual result。这是一个来自 Argoverse 数据集的动态场景,其中有停下来的汽车、移动的汽车和走路的行人。给定来自 Argoverse 数据集的两个连续激光雷达采集的点云,我们用我们的neural scene flow prior的方法来估计场景流。

对于这个color wheel,颜色的强度编码了scene flow的大小,角度则表示scene flow的方向。

请看这些箭头,我们可以观察到中间的深洋红色的车辆与这两辆绿色的车辆的方向相反,而右侧的浅紫色车辆正在右转。这张visual result说明了我们的估计接近于pseudo ground truth。

Quantitative results

接下来,我们看一下方法在各个数据集上的Quantitative results。

干货!用神经网络来表达隐式场景流_第15张图片

我们比较了supervised learning、self-supervised learning和non-learning-based的方法。

我们的方法在大多数数据集和metrics中取得了更好的表现。例如,我们方法的3D end-point error在 KITTI 上为 0.05 米,在 Argoverse 上为 0.159 米,远低于其他方法。

Supervised的 FlowNSet3D 和 PointPWC-Net 在 FlyingThings3D 上具有更好的性能,是因为它们有fully-supervised training。但是,如果数据集是out-of-the-distribution的,这些supervised方法就会产生不可靠的结果。

self-supervised方法 Just Go with the Flow 和 PointPWC-Net 使用self-supervised loss,尽管在training中没有用true label,但仍然有比supervised方法更好的结果——这表明self-supervisiong是场景流估计的一个重要方向。

值得注意的是,通过简单的 MLP regularizer来进行optimization,我们的方法可以从点云中直接估计场景流,达到很精确的结果。

Optimization process: a continuous flow field

现在,让我们看一下优化的过程。我们预测的scene flow显示在上面一行,而flow field则显示在下面一行。在这里,我们先随机初始化neural scene flow的参数。当iteration为 0 时,scene flow和flow field都是随机的,且在随机的方向上有一个较小的变化幅度。

干货!用神经网络来表达隐式场景流_第16张图片

下图中的右侧是一个pseudo ground truth flow,红色的箭头表示了用来采集数据的自动驾驶汽车的位置和方向。在这个场景中,汽车停下来等待行人过马路。随着iteration的增加,end-point error减小了,而估计的精度提高了。

干货!用神经网络来表达隐式场景流_第17张图片

随着优化的进行,flow field得到了更好的约束,更平滑了,而scene flow也变得越来越可靠,越来越接近真实的flow。

干货!用神经网络来表达隐式场景流_第18张图片

现在,假设优化后我们已经有了第 2000 个iteration的continuous flow filed。然后,当在这个橙色区域周围采样一个点时,flow vector的方向将指向东南方,就像这个绿色箭头所表示的一样,同时,这个点的flow也类似于橙色区域中的车辆的flow。

这种continuous flow field使得我们可以估计在 3D 空间中任意位置采样点的flow vector。这让我们可以用优化得到的optimal network weights来估计在一系列连续点云中的dense correspondences。

Application: point cloud densification

干货!用神经网络来表达隐式场景流_第19张图片

下面这张图展示的是我们方法的一个应用:对Argoverse 场景的点云densification。左边和中间的图显示了densified点云的俯视图和前视图。右边是投影到图像上的accumulated点云。

如图所示,当我们使用rigid ICP accumulate点云时,动态汽车上会有“拖尾效应”,smearing effect。相比之下,使用我们的方法进行densification可以产生更密集的点云,并能够很好地处理场景中的动态物体。

用我们的方法进行accumulation可以得到clean和consistent的结果。而这些densified点云可用于mapping和构建dense depth maps。

干货!用神经网络来表达隐式场景流_第20张图片

上图展示了原始的点云序列和densified点云序列的对比。

总结

  • Scene flow optimization during runtime -- no need for training data!

  • 提出通过神经网络作为prior去平滑估计的场景流,这样可以得到一个Continuous flow field

  • Competitive results to state-of-the-art methods -- if not better!

  • 当然,作为运行时优化(runtime optimization)的方法,我们的方法与learning-based的方法相比速度较慢。

因此,根据实际应用,如果我们想要进行offline mapping,创建dense depth maps时,我们可以使用neural prior来获得reliable的场景流估计。

但是,如果inference time更重要的话,我们可以修改方法中的objective function并train一个self-supervised模型来进行更快的估计。

干货!用神经网络来表达隐式场景流_第21张图片

论文题目:

Neural Scene Flow Prior

论文链接:

https://lilac-lee.github.io/Neural_Scene_Flow_Prior/

点击“阅读原文”,即可观看本场回放

整理:林   则

作者:李雪倩

往期精彩文章推荐

干货!用神经网络来表达隐式场景流_第22张图片

记得关注我们呀!每天都有新知识!

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了600多位海内外讲者,举办了逾300场活动,超170万人次观看。

干货!用神经网络来表达隐式场景流_第23张图片

我知道你

在看

~

e161867a0a9778640560a441372a6c06.gif

点击 阅读原文 查看回放!

你可能感兴趣的:(人工智能,大数据,python,计算机视觉,神经网络)