参与李诗萌 王淑婷

谷歌提出以无监督方式从单目视频中学习的结构化方法(附开源代码)

本文介绍了谷歌提出的一种结构化新方法,可以对移动目标建模,还可以产生高质量的深度估计结果。目前,该研究的代码已经开源。

对自主机器人来说,感知场景的深度是一项重要的任务——准确估计目标离机器人有多远的能力对于避开障碍、安全规划以及导航来说至关重要。虽然可以从传感器数据(比如 LIDAR)中获得(学习到)深度值,但是也可以只依赖机器人的运动以及因此而产生的不同视角场景,以无监督的方式从单目相机中学到深度值。在这个过程中,也在学习「自我运动(Ego-motion)」(机器人/摄像机在两个帧之间的运动),它提供了机器人自身的位置。这种方法由来已久——来自 SfM(Structure-from-Motion,运动恢复结构)和多视图地理范式——是基于技术的新学习,具体来说就是通过使用深度神经网络对深度和自我运动进行无监督学习,刷新了当前的最佳结果,包括 Zhou 等人的研究(《Unsupervised Learning of Depth and Ego-Motion from Video》)以及作者之前的研究(《Unsupervised Learning of Depth and Ego-Motion from Monocular Video Using 3D Geometric Constraints》,在训练期间对准场景的 3D 点云)。

尽管已经做出了这么多努力,学习预测场景深度和自我运动仍然是一个持续的挑战,特别是在处理高动态场景和估计移动目标的适当深度时。由于之前所做的无监督单目学习方面的研究没有对移动目标建模,因此可能对目标深度做出一致的错误估计,使目标深度映射到无限远。

在 AAAI 2019 的《Depth Prediction Without the Sensors: Leveraging Structure for Unsupervised Learning from Monocular Videos》一文中,作者提出了一种新方法,它可以对移动目标建模,还可以产生高质量的深度估计结果。与之前从单目视频中进行监督学习的方法相比,该方法可以恢复移动目标的正确深度。作者在本文中还提出了一种无缝在线细化技术,它可以进一步提高质量,并适用于跨数据集的传输。此外,为了鼓励更先进的车载机器人学习方法。

作者在 TensorFlow 中开源了代码:

https://github.com/tensorflow/models/tree/master/research/struct2depth

之前的研究(中间)不能正确估计移动目标的深度,所以将它们映射到了无穷远(热图中的深蓝色区域)。本文的方法(右边)提供了更好的深度估计。

结构

本文方法中的一个关键思想是将结构引入了学习框架。也就是说,该方法不依赖神经网络直接学习深度,而是将单目场景视为由移动目标(包括机器人)组成的 3D 场景。将场景中相应的运动建模为独立变换(旋转和平移),然后用其对 3D 几何建模,并估计所有目标的运动。此外,知道哪些目标可能移动(例如,车辆、行人以及自行车等)有助于它们学习单独的运动矢量,即便这些目标可能是静态的。通过将场景分解为 3D 和单个目标,可以更好地学习场景中的深度和自我运动,尤其是在动态场景下。

作者在 KITTI 和 Cityscapes 的城市驾驶数据集上测试了这种方法,发现它的表现超过了当前最佳的方法,而且该方法的表现已经逼近用 stereo 对视频作为训练监督的方法的质量。重要的是,它可以正确地恢复与自我运动车辆移动速度相同的车辆的深度。这在之前一直是一个挑战——在这种情况下,移动的车辆显示为静态(在单目输入中),表现出与静态地平线相同的行为,导致推断出无穷的深度。虽然 stereo 输入(《Unsupervised Monocular Depth Estimation with Left-Right Consistency》)可以解决这种模糊的情况,但该方法是第一种可以从单目输入中正确推断深度的方法。

之前使用单目输入的研究无法提取移动目标,并将它们错误地映射到无穷远。

此外,由于该方法单独处理目标,因此算法为每个单独目标都提供了运动向量,即运动向量是对其前进方向的估计:

动态场景的示例深度结果以及对单个目标运动向量的估计(也估计了旋转角,但简单起见没有列出)。

除了这些结果之外,这项研究还为进一步探索「无监督学习方法可以实现什么目标」这一问题提供了动机,因为和 stereo 传感器或 LIDAR 传感器相比,单目输入更便宜也更容易部署。如下图所示,在 KITTI 和 Cityscapes 数据集中,由于时间延迟,监控传感器(无论是 stereo 还是 LIRAR)会出现值缺失,有时甚至无法与相机输入重合。

根据 KITTI 数据集上的单目视频输入预测的深度值(中间行)和来自 LIDAR 传感器的真实值的比较:后者无法覆盖整个场景,而且有缺失值和噪声值。在训练过程中没有使用真实深度。

在 Cityscapes 数据集上预测深度。从左到右:图像、基准、本文提出的方法以及 stereo 传感器提供的真实数据。注意 stereo 传感器提供的真实数据中的缺失值。另外,本文的算法可以在没有任何真实值深度监督的情况下实现这样的结果。

自我运动

本文的结果也提供了当前最佳的自我运动估计,这对自主机器人来说至关重要,因为它提供了机器人在环境中移动时的位置。下面的视频呈现的是通过本文的方法对自我运动进行推断得到的速度和转弯角度的可视化结果。尽管深度和自我运动的输出只是标量,但它可以估计出减速和停车时的相对速度。

深度和自我运动预测。当车辆转弯或因红灯而停车时,根据速度和转弯角度指示器了解估计值。

跨域转移

学习算法的一个重要特征是它在移动到一个未知环境时的适应性。在本文中,作者进一步引入了一种在线改进方法,它可以在收集新数据的同时继续在线学习。下图是在 Cityscapes 上训练并在 KITTI 上在线改进之后,估计的深度质量改善的示例。

在 Cityscapes 数据上训练并在 KITTI 数据上测试时进行在线改进。图像显示的是训练好的模型的深度预测,以及带有在线改进的训练好的模型的深度预测。带有在线改进功能的深度预测可以更好地概括场景中的目标。

作者进一步在明显不同的数据集和设置上进行测试,即由 Fetch 机器人收集的室内数据上,而训练是在室外城市驾驶数据集 Cityscapes 上完成的。不出所料,这两个数据集之间存在巨大的差异。尽管如此,作者观察到,与基准相比,在线学习技术能更好地估计深度。

将学习模型从 Cityscapes(移动车辆收集的室外数据集)转移至由 Fetch 机器人收集的室内数据时的在线调整结果。最下面一行显示的是应用在线改进改善后的深度。

总之,这项研究对来自单目摄像机的深度和自我运动进行了无监督学习,解决了高动态场景中的一些问题。它实现了高质量的深度值和自主运动结果,该结果的质量与 stereo 的质量相当,还提出了在学习过程中结合结构的想法。更值得注意的是,作者提出的将仅来自单目视频的深度值和自主运动的无监督学习和在线自适应相结合,是一个强大的概念。因为这样它不仅可以以无监督的方式从简单视频中进行学习,还可以轻松地转移到其它数据集。

原文链接:https://ai.googleblog.com/2018/11/a-structured-approach-to-unsupervised.html

入门TensorFlow计算机视觉谷歌
4
相关数据
地平线机构

地平线作为嵌入式人工智能全球领导者,致力于提供高性能、低功耗、低成本、完整开放的嵌入式人工智能解决方案。面向智能驾驶、智能城市和智能商业等应用场景,为多种终端设备装上人工智能“大脑”,让它们具有从感知、交互、理解到决策的智能,让人们的生活更安全、更便捷、更美好。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

机器人技术技术

机器人学(Robotics)研究的是「机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理」 [25] 。 机器人可以分成两大类:固定机器人和移动机器人。固定机器人通常被用于工业生产(比如用于装配线)。常见的移动机器人应用有货运机器人、空中机器人和自动载具。机器人需要不同部件和系统的协作才能实现最优的作业。其中在硬件上包含传感器、反应器和控制器;另外还有能够实现感知能力的软件,比如定位、地图测绘和目标识别。之前章节中提及的技术都可以在机器人上得到应用和集成,这也是人工智能领域最早的终极目标之一。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

在线学习技术

在计算机科学中,在线学习是一种机器学习方法。和立即对整个训练数据集进行学习的批处理学习技术相反,在线学习的数据按顺序可用,并在每个步骤使用未来数据更新最佳预测器。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~