前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >丰田研究院:自监督单目图像深度估计再改进,数据和代码已开源

丰田研究院:自监督单目图像深度估计再改进,数据和代码已开源

作者头像
McGL
发布2021-07-07 09:48:56
1.1K0
发布2021-07-07 09:48:56
举报
文章被收录于专栏:PyVisionPyVision

作者:Vitor Guizilini 编译:McGL

上一篇文章,我们讨论了深度神经网络如何从一张图像中预测深度。特别是,我们证明了这个问题可以自监督只使用视频和几何约束。这种方法高度可扩展,甚至可以工作在未校准的摄像头或自动驾驶常见的多摄像头装备。

丰田研究院:自监督单目图像深度估计,数据和代码已开源

然而,自监督学习在单目深度估计方面存在一些固有的局限性,如尺度模糊(scale ambiguity)。幸运的是,这些问题可以通过增加最少的额外信息来解决。在这第二篇博文中,我们将讨论这些挑战,以及我们丰田研究院为克服这些挑战所做的研究,这些研究超越了自监督学习。

学习从图像中预测深度,不仅使用几何学,而且在可用的时候使用其他信息来源。

弱监督: 告诉我多快,我会告诉你有多远

从理论上讲,仅仅从像素来估计场景的度量尺度(metric scale)在几何上是不可能的。一个物体小而近,另一个物体大而远,但在图片上大小完全一样。这就是为什么自监督的单目深度预测方法具有尺度模糊性: 他们只能恢复一个场景的几何图形到一个未知的可乘尺度因子。然而,对于机器人技术中的大多数应用,我们绝对想知道物体距离几米远!幸运的是,在实践中有几种方法可以恢复尺度。

世界的尺度有多大?

第一种也是最常见的方法是依靠已知的摄像头标定信息,例如摄像头离地高度或多摄像头配置中摄像头对之间的距离。使用这些参数,可以很容易地按比例缩放深度预测,就像我们在上一篇文章中提到的全环绕单目深度论文中所做的那样。这些静态先验的问题是,他们假定校准后是完全固定的。压过一个坑,位置移动了一点呢?你的预测将会大大的偏离,直到你重新校准。

一个更鲁棒的方法是依靠速度信息作为训练期间的弱监督。弱监督,一个在机器学习社区中使用非常广泛的术语,意味着一个廉价的信息来源,让你知道什么是正确的预测。在我们的例子中,大多数汽车、机器人和手机都有额外的廉价传感器(例如,加速计或里程表) ,可以用米/秒来测量速度。但是速度是你移动的速度,而不是一切离你有多远。那么,如何利用这些信息让深度网络输出以米为单位的预测呢?

在上一篇文章中,我们解释了自监督学习依靠摄像头的运动从当前帧来重建上一帧图像。这种自运动有六个自由度(三个自由度用于旋转,三个自由度用于平移) ,不是用传感器测量的,而是用一个姿态网络(例如,我们的 CoRL 论文中的双流 PoseNet)通过图像对预测的。该姿态网络与深度网络联合学习,并且两者都输出无尺度度量。但是,如果我们可以使用上述速度信息,使姿态网络学习输出以米为单位的平移值呢?这是否足以做出以米为单位的深度预测?正如我们在介绍 PackNet 的 CVPR 论文中所展示的那样,答案当然是肯定的!

令人惊讶的是,在姿态网络中加入一个弱监督的速度回归目标,足以使深度网络的自监督学习具有尺度感知能力。如下图所示,当使用速度信息(红曲线)时,在以米为单位测量的深度估计质量存在一个突然的阶段变化。这对应于当深度网络采用度量尺度时,深度网络在训练过程中的一个关键时刻,性能和激光雷达的重标(rescaling)相当!

迁移学习: 从什么到多远

一个弱监督的有效替代方法是利用完全不同的数据集和任务,这些数据和任务可能与深度预测没有直接关系。这是一种在深度学习中广泛使用的技术,叫做迁移学习。在机器人技术中,我们关心的不仅仅是东西在哪里,我们还想知道它们是什么。因此,大多数机器人也使用计算机视觉模型来完成像全景分割(panoptic segmentation)这样的任务(例如,在模拟中训练)。这些预先训练好的网络也能帮助深度估计吗?

再一次,答案是肯定的,正如我们在 ICLR 论文《Semantically-Guided Representation Learning for Self-Supervised Monocular Depth》中所展示的。由于单目深度网络使用单一图像,它必须学习事物如何出现和距离有多远的模式。那么只能是这种模式本来就存在!幸运的是,现实世界中有很多这样的模式。成年人的身高一般不到2米。汽车也有与众不同的外形和尺寸。道路、建筑物和其他几何结构以特定的、可预测的方式投影到相机的画面上。这就是为什么我们可以从图像中预测 3D 特性的本质(而这也是为什么它们会有某些偏差的原因,我们将在下面讨论)。

当然,预编码将语义类别与大小联系起来的先验知识是很脆弱的。例如,它可能没有考虑到一个2.72米高的人的可能性。此外,预训练的语义分割网络可能泛化不够好。这就是为什么我们提出只使用预训练网络来指导深度网络的自监督学习。我们的新架构利用像素自适应卷积(自注意力的一种形式)在自监督学习过程中产生感知语义的深度特征。通过使用语义内容作为指导,对应于同一类别的特征会有相似的激活,促使对象内平滑和边界锐利。

我们的语义引导的深度网络将来自预训练的语义分割网络的特征直接注入到深度网络中,从而使学习感知语义的深度特征成为可能。

由于语义分割网络没有以任何方式进行修改,因此它仍然可以作为一项额外的任务来生成预测(或进行解释) ,其特征可以被深度网络有效地重用。注意,语义和深度之间的关系不是单向的,我们还在探索自监督的深度如何帮助语义(例如我们最近的论文《Geometric Unsupervised Domain Adaptation for Semantic Segmentation》)。

针对相同的输入(左)的定性示例,标准的 PackNet 结构(中间) ,我们的语义引导的深度网络(右) 。使用预测的语义信息会产生更清晰的边界,清晰度更好,能识别更远的物体。

部分监督: 有的时候使用

到目前为止,我们还没有提到房间里的大象: 激光雷达。在某些情况下,你可能确实能够使用一个可靠的精确深度测量来源。尽管如此,拥有多个独立的深度信息来源还是很有用的,这样可以通过冗余来增强鲁棒性,例如,也可以通过图像来预测深度。事实上,大规模使用的商业激光雷达传感器往往是非常稀疏的。由于它们主要用于安全特性,它们通常只有4线激光,10赫兹时只能测量100个点。显然,这些信息不足以感知环境,但是我们可以利用它们来改善单目深度预测吗?

第一个自然的问题是,我们是否可以使用低成本的激光雷达作为一个额外的监督来源,成为上一篇文章中所描述的几何自监督学习的补充。这个设置被称为半监督(semi-supervised)学习,因为我们只有部分的 ground truth 深度测量。这需要结合异构的监督: 3D 点级别的激光雷达和 2D 像素级别的摄像头。在我们的 CoRL 论文《Robust Semi-Supervised Monocular Depth Estimation with Reprojected Distances》,我们针对半监督设置提出了一种新的损失,其中一个帧的深度误差与重建的点云投影到另一帧。这让深度估计有了重大改进,哪怕激光雷达只有4线!

因此,我们已经演示了在训练期间可以使用低成本的激光雷达,但是推理呢?到目前为止,我们一直集中在单目深度预测,网络被训练,然后测试时从一个单一的图像生成估计。另一种设置是深度补全(depth completion),在测试时其中部分深度信息已知,需要完成每个像素估计补全。补全通常是以一种不同于预测的方式来处理的,但是并不一定要这样做!在我们的 CVPR 论文 SAN 《Sparse Auxiliary Networks for Unified Monocular Depth Prediction and Completion》中,我们提出了一个统一的单目深度预测和补全结构。SAN 是一个附加的可微模块,可以直接引入到像 PackNet 这样的深度预测网络中,从而实现深度补全和联合训练。为了利用这些部分输入深度图的高稀疏性,SAN 模块使用稀疏卷积仅处理有效信息,显著提高了计算速度。这项工作是我们向可调节(dialable)感知迈出的第一步: 根据可用的传感器,传感器故障,丢失包,或其他来源的变化,灵活上调或下调感知算法(这里指深度补全和预测)。

DDAD 上 PackNet-SAN 的结果,深度预测和补全(同一网络,不同输入)。

NYUv2上 PackNet-SAN 的结果,深度预测和补全(同一网络,不同输入)。

自监督学习的偏差

从原始视频中学习对于可伸缩性和适应性非常有帮助。然而,自监督也意味着在学习过程中人的监督更少。结果这个系统可能会遭受不受约束的偏差。我们上面提到的语义指导就是解决这个问题的一种方法。尽管如此,另一个常见的错误来源仍然存在: 与摄像头运动完全一样的物体被预测为无限远,因为它们永远不会靠近!在驾驶数据中,频繁跟随领头车辆是很常见的。这个无限深度问题是自监督、基于运动的图像学习的一个内在局限。

我们找到了一个简单的方法来解决这个问题,在我们的 ICLR 论文《Semantically-Guided Representation Learning for Self-Supervised Monocular Depth》中进行了描述。首先,我们对所有的数据进行训练,会对附近的一些物体做出我们不希望的无限深度预测。然后,我们在训练图像上运行这个有偏差的深度网络来自动检测那些包含无限深的洞的图像。最后,我们丢弃那些表现出这个问题的训练图像,重新训练深度网络。我们发现,这种简单的自动数据清理和再训练过程足以使得得到的模型对于无限深度问题更加鲁棒。

我们提出的两阶段训练方法能够在不引入任何监督源的情况下,消除自监督深度估计中的无限深度问题。

总结

在本系列的第一篇文章中,我们展示了自监督学习如何利用我们对射影几何的先验了解来预测各种摄像头配置的深度。在第二篇文章中,我们概述了纯粹的自监督的实际局限性,然后如何利用其他可扩展的信息来源超越它们,如弱监督、迁移学习、半监督学习或数据清理,以减少偏置。

这仅仅是自监督学习和 3D 计算机视觉的开始。尽管其中一些技术已经投入使用,但在关键领域仍然存在许多研究挑战,比如数据库建设(包括使用合成数据)、可调节感知、安全性,以及通过下游控制任务来结束循环,从而使未来的汽车和机器人对我们所有人都更有帮助。这就是为什么我们在 CVPR 2021 会议上组织 Mono3D workshop 和 DDAD 竞赛,以及为什么我们开源了代码和数据集以用于进一步的研究: 我们希望你能加入我们这个令人兴奋的科学旅程!

原文: https://medium.com/toyotaresearch/self-supervised-learning-in-depth-part-2-of-2-93a42ce6586f

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PyVision 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 弱监督: 告诉我多快,我会告诉你有多远
  • 迁移学习: 从什么到多远
  • 部分监督: 有的时候使用
  • 自监督学习的偏差
  • 总结
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档