写点什么

谷歌提出新方法:基于单目视频的无监督深度学习结构化

  • 2018-12-03
  • 本文字数:2684 字

    阅读完需:约 9 分钟

谷歌提出新方法:基于单目视频的无监督深度学习结构化

AI 前线导读:近日,谷歌大脑团队提出一种结构化方法从单目视频中进行无监督学习,获得了较高质量的场景深度和自运动预测。同时,结合在线学习算法,该方法可以进行跨域迁移,在与训练数据库差距较大的数据库上获得可观的表现。


感知场景的深度是自主机器人的一项重要任务:准确估计物体离机器人的距离的能力对于躲避障碍、安全规划和导航至关重要。虽然可以从传感器数据(例如LIDAR)中获得(和学习)深度,但是也可以用无监督的方式从单目相机中学习场景深度,这取决于机器人的运动以及由此产生的场景的不同视图。这种方式还学习了“自运动(egomotion)”(机器人或摄像机在两帧之间的运动),同时提供了机器人自身的定位。虽然这种方法具有较长的历史(运动结构和多视图几何学),但是新的基于学习的技术,具体来说是通过深层神经网络对场景深度和自运动的无监督学习,已经推进了该领域技术的发展。其中包括 Zhou 等人的工作(Unsupervised Learning of Depth and Ego-Motion from Video),以及我们之前在训练中对场景的 3D 点云进行对齐的研究(Depth Prediction Without the Sensors: Leveraging Structure for Unsupervised Learning from Monocular Videos)。


尽管目前已经有这些成果,学习预测场景深度和自运动仍然是一个持续的挑战,尤其是在处理高动态的场景和估计运动物体的深度情况下。由于以往对无监督单目学习的研究没有对运动对象进行建模,因此会导致对对象深度的连续错误估计,常常会将其深度映射到无穷大。


在我们发表在AAAI-2019的论文 Depth Prediction Without the Sensors: Leveraging Structure for Unsupervised Learning from Monocular Videos (无传感器深度预测:利用结构信息完成基于单目视频的无监督学习)中,我们提出了一种新的方法,它能够对运动对象进行建模,并且给出高质量的场景深度估计结果。与其它单目视频的无监督学习方法相比,我们的方法能够恢复运动物体的正确场景深度。在本文中,我们还提出了一种无缝的在线优化技术,可以进一步提高质量,并应用于跨数据集的迁移。此外,为了鼓励大家提出更好的机载机器人学习方法,我们开源了论文的TensorFlow代码


图1 之前的工作(中间行)不能正确估计运动目标,而把他们的深度映射为无限远(热度图中深蓝色部分)。而我们的方法则提供了更好的深度估计。


图 1 之前的工作(中间行)不能正确估计运动目标,而把他们的深度映射为无限远(热度图中深蓝色部分)。而我们的方法则提供了更好的深度估计。

结构

我们方法的一个关键思想是在学习框架中引入结构信息。也就是说,我们不是直接依靠神经网络来学习场景深度,而是将单目场景看作由移动物体(包括机器人本身)组成的 3D 场景。我们将各个运动建模为场景中的独立变换——旋转和平移,然后将其用于建模 3D 几何并估计所有物体的运动。此外,知道哪些对象有潜在可能会移动(例如,汽车、人、自行车等)能够帮助我们学习它们单独的运动矢量,即使它们可能是静态的。通过将场景分解为 3D 和单独的对象,可以更好地学习场景中的深度和自运动,尤其是在高度动态的场景中。


我们在KITTICITYSCAPE城市驾驶数据集上测试了该方法。我们发现它的表现优于目前最先进的方法,并且与使用立体成对视频作为监督的方法的表现接近。重要的是,我们能够正确地恢复与自运动车辆速度相同的汽车的场景深度。这在以前是相当具有挑战性的,在这种情况下,移动车辆(单目输入)呈现静态,表现出与静止的地平线相同的行为,导致算法将其推断为无限深度。虽然立体视频输入可以解决这一问题,但是我们首次提出了能够从单目输入中进行正确推断的方法。


图2 之前用单目视频作为输入的工作不能提取运动物体,并且错误地将它们映射到无限深度。


图 2 之前用单目视频作为输入的工作不能提取运动物体,并且错误地将它们映射到无限深度。


此外,由于在我们的方法中对象是单独处理的,所以该算法能够为每个对象提供单独的运动矢量,即对它运动方向的估计:



图 3 动态场景下深度估计结果与独立车辆的移动矢量估计示例


除了上述结果,这项研究还证明了进一步探索无监督学习方法所具有的潜力,因为单目输入比立体或 LIDAR 传感器更便宜,更容易部署。如下图所示,在 KITTI 和 Cityscapes 数据集中,监控传感器(无论是立体还是 LIDAR)都有丢失值,并且有时可能由于时间延迟无法与相机输入对准。


图4 KITTI数据集单目视频深度预测(中间行),与Lidar传感器的真实值对比,后者没有覆盖全部场景,并且有丢失值和噪声值。真实深度值在训练中没有使用。


图 4 KITTI 数据集单目视频深度预测(中间行),与 Lidar 传感器的真实值对比,后者没有覆盖全部场景,并且有丢失值和噪声值。真实深度值在训练中没有使用。


图5 Cityscapes数据集的深度预测结果。从左到右分别是:图像、基线、我们的方法和立体视频提供的真实值。请注意立体真实值中的丢失值。而且我们的算法能在没有任何真实值深度信息的监督的情况下达到这样的效果。


图 5 Cityscapes 数据集的深度预测结果。从左到右分别是:图像、基线、我们的方法和立体视频提供的真实值。请注意立体真实值中的丢失值。而且我们的算法能在没有任何真实值深度信息的监督的情况下达到这样的效果。

自运动

我们的结果还提供了最先进的自运动估计,这对于自主机器人来说至关重要,因为它提供了机器人在场景中移动时的定位。下面的视频(由于微信限制,此处动图无法上传,可以查阅原文看原图)给出了我们方法的结果,我们对推断的自运动中获得的速度和转角进行了可视化。虽然深度和自运动的输出是标量,我们可以看到,当减速或停止时,它能够估计它的相对速度。


图6 深度和自运动预测。从速度和转角指示中可以看出车辆转弯和红灯停下时的估计值。


图 6 深度和自运动预测。从速度和转角指示中可以看出车辆转弯和红灯停下时的估计值。

跨域迁移

学习算法的一个重要特征是移动到未知环境时的适应性。在该工作中,我们进一步介绍了在线优化方法,该方法在收集新数据的同时继续进行在线学习。以下是在 Cityscape 上训练,然后在 KITTI 上进行在线优化之后,估计深度质量提升的示例。


7 在线优化效果示意图。在Cityscapes数据集上进行训练,而在KITTI数据集上进行测试。图像显示了训练模型和经过在线优化的训练模型给出的深度预测。经过在线优化的模型能够更好地描绘场景中目标的轮廓。


图 7 在线优化效果示意图。在 Cityscapes 数据集上进行训练,而在 KITTI 数据集上进行测试。图像显示了训练模型和经过在线优化的训练模型给出的深度预测。经过在线优化的模型能够更好地描绘场景中目标的轮廓。


我们进一步在与训练集有很大不同的数据集上测试,即在由Fetch机器人收集的室内数据集上测试,而训练是在室外城市驾驶 Cityscape 数据集上进行的。这些数据集之间存在很大的差异。即使如此,我们发现在线学习技术能够获得比基线更好的深度估计。


图8 在线自适应的结果:当模型从Cityscapes(室外驾驶数据集)迁移到由Fetch机器人收集的室内数据。最底行显示了应用在线优化后深度预测结果的提升。


图 8 在线自适应的结果:当模型从 Cityscapes(室外驾驶数据集)迁移到由 Fetch 机器人收集的室内数据。最底行显示了应用在线优化后深度预测结果的提升。


综上所述,这项工作致力于从单目相机中进行场景深度和自运动的无监督学习,并解决高度动态场景中的问题。结果显示,该方法获得了高质量的场景深度和自运动预测结果,与立体视频有类似的表现。并且我们提出了在学习过程中结合结构的思想。


更值得注意的是,我们提出的仅从单目视频中无监督学习场景深度和自运动预测与在线适应结合寓示了一个强大的想法,因为它不仅能够以无监督的方式从简单的视频中学习,而且还可以非常容易地迁移到其他数据集上。


查看英文原文:A Structured Approach to Unsupervised Depth Learning from Monocular Videos



2018-12-03 17:282462

评论 2 条评论

发布
用户头像
视频
2018-12-03 19:48
回复
没有更多了
发现更多内容

C#索引器的实现,黑马程序员Java基础入门

Geek_f90455

Java 程序员 面试 后端

15道常考SpringBoot面试题整理,字节跳动Java金三银四解析

欢喜学安卓

Java 程序员 面试 后端

2020年五面蚂蚁,中级Java开发人员要掌握的技术

欢喜学安卓

Java 程序员 面试 后端

404,【大牛系列教学

欢喜学安卓

Java 程序员 面试 后端

ArrayList(Java8,阿里大牛把「服务雪崩」玩到了极致

Geek_f90455

Java 程序员 面试 后端

apk瘦身;如何缩小体积呢,Java面试笔试题及答案

欢喜学安卓

Java 程序员 面试 后端

常见的静态负载均衡算法

Albert

算法 8月日更

Dubbo如何支持本地调用?InJvm方式解析,阿里官方推荐

Geek_f90455

Java 程序员 面试 后端

Vue深入学习3—数据响应式原理

魁首

Git-如何优雅地回退代码,字节跳动内部学习资料泄露

Geek_f90455

Java 程序员 面试 后端

JVM实践--实例解析字节码常量池

JVM 常量池 字节码

2021最新版SpringCloud高频面试题分享,【性能优化实战

欢喜学安卓

Java 程序员 面试 后端

Vue深入学习2—虚拟DOM和Diff算法

魁首

DOM Vue 3 Diff

GitHub-标星过万!腾讯技术官发布的,腾讯Java社招面试经验

Geek_f90455

Java 程序员 面试 后端

HashMap源码解析,Java黑马程序员资源

Geek_f90455

Java 程序员 面试 后端

IDEA的中文注释引起的程序报错!,那些被大厂优化的程序员们

JVM调优资料

Java 程序员 面试 后端

前端之数据结构(二)

Augus

数据结构 8月日更

异或位算法的高效玩法

陈皮的JavaLib

Java 面试 算法 8月日更

Dagger2源码分析(二,深入理解Java虚拟集百度云

Geek_f90455

Java 程序员 面试 后端

保持信心

Nydia

Hystrix-服务容错处理:什么是Hystrix,鲁班学院二期

Geek_f90455

Java 程序员 面试 后端

J2EE基础集合框架之Map集合,公司初级程序员Java面试题

JVM调优资料

Java 程序员 面试 后端

ELK性能优化实战总结:我强任我强,美的Java面试题

Geek_f90455

Java 程序员 面试 后端

深入学习 CSS 中的伪元素 ::before 和 ::after

devpoint

CSS css3 CSS语法 8月日更

16条代码规范建议,快看看自己做到没,Java从基础到高级知识点汇总

欢喜学安卓

Java 程序员 面试 后端

【设计模式】适配器模式

Andy阿辉

C# 后端 设计模式 8月日更

C#位运算,面试要掌握这几个关键点

Geek_f90455

Java 程序员 面试 后端

Apache APISIX 2.8 正式发布,带来更多新功能!

API7.ai 技术团队

开源 网关 APISIX

Java并发--synchronized原子性的底层机制剖析

JVM 并发 线程安全

数据缓存历险记(三)--老头的LRU很带劲

卢卡多多

redis LRU 8月日更

20位大厂面试官推荐的《Java面试八股文,高级架构师百度云资源

欢喜学安卓

Java 程序员 面试 后端

谷歌提出新方法:基于单目视频的无监督深度学习结构化_AI&大模型_Anelia Angelova_InfoQ精选文章