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

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

作者头像
McGL
发布2021-05-28 14:39:25
1.3K0
发布2021-05-28 14:39:25
举报
文章被收录于专栏:PyVisionPyVision

作者:Vitor Guizilini 编译:McGL

自监督学习使得只使用视频作为训练数据就可以从单个图像预测准确的点云。

引言

计算机视觉是人工智能的一个领域,它使计算机能够表示视觉世界。由于神经网络可以从数据中学习如何做出准确的预测,深度学习已经彻底改变了这个领域。最近的进展有望使汽车更加安全,通过自动驾驶车辆增加自由时间,以及为残疾人和我们迅速老龄化的全球人口提供机器人援助。

然而,这里有一个问题。在设计机器学习系统时,除了要仔细考虑隐私和其他道德问题之外,所有计算机视觉领域的最先进模型都依赖于数以百万计的标签(甚至更多!)来达到现实世界中安全至关重要的应用所需的高精度。人工标注昂贵又耗时,每张图需要花费数小时和数十美元。而且,有时候甚至是无法实现的。

这就是单目深度估计的背景,其目的是帮助计算机理解图像的深度,并预测每个像素的场景元素距离。

在单目深度估计中,目标是生成每个场景元素离摄像头的距离的像素级估计(也称为深度图)

虽然很多传感器设备可以测量深度,无论是直接(如激光雷达)或间接的(如双目系统) ,但是单个摄像头便宜而且到处都是,在你的手机、行车记录仪、互联网视频摄像头等等上面。因此,能够从视频中生成有用的深度信息不仅是一个有趣的科学挑战,而且具有很高的实用价值。我们也知道,人类可以在这方面做得很好,而不需要明确地测量一切。相反,我们依赖于强大的归纳先验和自觉或不自觉的三维关系推理能力。试着闭上一只眼睛,伸手去拿东西。判断深度应该不成问题。

这正是我们在丰田研究院所采用的方法。我们不是通过准确的答案来训练深层神经网络(也就是监督式学习) ,而是试图通过使用射影几何(projective geometry)作为老师依靠自监督学习!这种训练模式解锁了任意大量未标记视频的使用,这样数据更多时能够不断改进我们的模型。

在这个由两篇文章组成的博客系列中,我们将深入研究如何设计和有效训练深度神经网络以进行深度估计(以及更多用途)。在第一篇文章中,我们将介绍在各种摄像头配置下使用射影几何进行自监督学习。在第二篇文章中,我们将讨论自监督学习的实际局限性,以及如何使用弱监督或迁移学习来超越自监督学习。

第一部分: 用于深度估计的自监督学习

深度根源: 监督与立体

Eigen 等人的论文《Depth Map Prediction from a Single Image using a Multi-Scale Deep Network》是第一个展示了一个校准的摄像头和激光雷达(LiDAR)传感器装置可以用来将单目深度估计转化为一个监督式学习问题。设置很简单: 我们使用神经网络将输入图像转换为每像素距离估计值(深度图)。然后,我们使用如 PyTorch 这样的深度学习库,通过标准的预测误差反向传播,将精确的激光雷达测量数据重新投影到摄像头图像上,用于监督深度网络权重的学习。

在 Godard 等人的工作《Unsupervised Monocular Depth Estimation with Left-Right Consistency》的基础上,我们探索了一种自监督学习方法,该方法只使用双目立体对(两个摄像头挨着对方)捕获的图像,而不使用激光雷达。从不同角度捕捉到的同一场景的图像在几何上确实是一致的,我们可以利用这个特性来学习深度网络。如果它对立体对的左图像做出正确的预测,简单的几何方程解释了如何只从右图像的像素重建左图像,这项任务称为视图合成。如果深度预测错误,重建将会非常差,得到的误差,称为光度损失(photometric loss),通过反向传播来尽量减少。

请注意,这个网络仍然是单目的: 它只对左侧图像进行训练,而右侧图像和关于射影几何的先验知识只用于自监督学习过程。这也不同于大多数计算机视觉的自监督学习工作,他们只学习表征: 在这里,深度估计任务我们学习完整的模型,不需要任何标签!

自监督深度: 魔鬼在细节里

在我们的 ICRA'19 论文《SuperDepth: Self-Supervised, Super-Resolved Monocular Depth Estimation》中,我们发现影响单目深度性能的主要瓶颈是图像分辨率低。魔鬼在细节里,如果它们在大多数深度卷积网络常见的典型下采样操作中丢失了,那么就很难得到精确的自监督错误信号。受到超分辨率方法的启发,我们发现中间深度估计的亚像素(sub-pixel)卷积能够恢复一些细粒度的细节,以提高预测性能,特别是在对自动驾驶至关重要的高分辨率上(200万像素以上)。

虽然双目摄像头可以促进自监督学习,Zhou 等人的 CVPR'17论文《Unsupervised Learning of Depth and Ego-Motion from Video》令人惊讶地展示了这种方法也适用于单一、移动、单目的摄像头拍摄的视频!人们确实可以用相似的几何原理来处理时序相邻的帧,而不只是用左右双目立体图像。这极大地拓宽了自监督学习的应用潜力,但也使这项任务更加困难。事实上,连续帧之间的空间关系,也称为相机的自运动,是不知道的,因此也必须估计。幸运的是,围绕自运动估计问题有大量的研究(包括我们的研究),可以与自监督的深度估计框架无缝集成,例如,联合学习姿态网络和自监督的深度估计框架。

自监督学习利用深度和姿态网络,根据相邻帧的信息合成当前帧。在训练过程中,最小化原始图像与合成图像之间的光度损失。

正如在 SuperDepth 中一样,我们发现高分辨率的细节在这个设置中也是关键,但是这次我们走得更远。我们不再试图通过超分辨率恢复丢失的细节,而是着手在整个深度网络中有效地保存这些细节。因此,在我们 CVPR'20 论文 《3D Packing for Self-Supervised Monocular Depth Estimation》中,我们介绍了 PackNet,一种专门为自监督单目深度估计量身定制的神经网络结构。我们设计了新颖的压缩层和解压层,通过张量操作和三维卷积,在所有中间特征层保持空间分辨率。这些层可以替代传统的下采样和上采样操作,不同之处在于它们可以学习压缩和解压缩有助于深度预测的关键高分辨率特征。

PackNet 是一个编码器-解码器神经网络,利用新颖的压缩和解压块学习保存重要的空间细节,产生高质量的深度预测。

在使用 PackNet 进行的实验中,我们证实了实时保存这些细节是可能的,这对于机器人应用程序至关重要。实验结果表明,我们的自监督网络可以与激光雷达监督的模型相媲美甚至超越其性能!

比较 PackNet 和其他最先进的深度估计模型(包括监督和自监督)的定性结果。

重要的是,我们证明了性能提高不仅与分辨率有关,而且与模型的大小和数据也有关系,可以扩展到其他研究人员在其他监督任务(https://arxiv.org/abs/1712.00409)上得到的自监督的深度估计经验性发现。

PackNet 相对于标准 ResNet 结构的可扩展性实验。我们分析了相对于网络复杂度,图像分辨率和深度范围的可扩展性。

这个模型在实践中非常强大,任何人都可以轻松地从我们的开源代码库 packnet-sfm(https://github.com/TRI-ML/packnet-sfm) 中重现我们的结果。我们还发布了预先训练好的模型和一个新的数据集: DDAD(https://github.com/tri-ml/ddad)

自动驾驶的密集深度基准与竞赛

你们在上面看到的很多结果都是来自丰田研究院(TRI)车队的数据,我们使用这些数据来研究、开发和测试我们的自动驾驶和先进的驾驶辅助系统。为了推动可重现性和促进进一步的开放研究,我们已经发布了部分数据,形成了一个新的有挑战性的基准,称为 DDAD(Dense Depth for Automated Driving)。它包括六个校准摄像头时间同步在10赫兹,和高分辨率远程激光雷达传感器用来产生密集的 ground truth 深度估计,远达250米。DDAD 在日本和美国富有挑战性和多样性的城市环境中收集了12,650个匿名匿名样本。我们还发布了一个验证集,并在 DDAD 上组织了一个深度估计竞赛(https://eval.ai/web/challenges/challenge-page/902/overview)。

全环绕单目点云

如上所述,DDAD 实际上包含了来自六个摄像头的同步数据,而不仅仅是一个。为什么有这么多?在机器人学中,尤其是在驾驶环境中,我们想要了解机器人周围发生了什么,而不仅仅是在它前面。这就是为什么激光雷达扫描仪提供了一个完整的360度 覆盖范围。同样的情况也可以通过合理的安置多个摄像头来实现,以提供全面的覆盖。然而,这些摄像头设备通常有最小的重叠和非常不同的视角,以最小化所需的摄像头数量,即成本。遗憾的是,这种设置破坏了多视角深度估计的标准计算机视觉方法,让摄像头之间的深度估计更独立性,从而可能导致不一致。

尽管摄像头之间的重叠很小,如果我们考虑到它们在时间上的关系,我们仍然可以利用它们。这是我们在最新的工作之一(https://arxiv.org/abs/2104.00152)所展示的全环绕单目深度(FSM)。简而言之,我们的方法结合了多摄像头时空光度约束、自遮挡 masks 和姿态平均,再次在自监督的方式下,学习一个单一深度网络,可以重建机器人周围的度量尺度(metrically-scaled)点云,就像激光雷达一样。

可供选择的摄像头模型: 神经射线表面(Neural Ray Surfaces)

支撑上述所有工作的射影几何基于一个重要的假设: 2D 图像和 3D 世界之间的关系是通过已知校准的标准针孔模型精确建模的。这使得摄像头之间的信息投影成为可能,这是自监督的深度估计的核心。然而,这个简便的假设在实践中并不总是成立,因为未建模的失真,例如广角相机(如鱼眼,反射折射),水下,甚至在雨天挡风玻璃后面的行车记录仪!

我们怎样才能解决这个问题,而不必为每个具体场景仔细设计和校准特定的相机模型?我们能否在没有先验知识的情况下直接从原始数据中学习通用的投影模型?这就是我们在论文《Neural Ray Surfaces for Self-Supervised Learning of Depth and Ego-motion》(https://arxiv.org/abs/2008.06630)中所做的。我们证明可以与深度和姿态网络一起学习预测每像素投影操作符。就像之前一样,这是自监督方式的端到端的整体优化,但没有任何关于相机模型的假设。换句话说,NRS 是非常灵活的,可以适用于各种不同的摄像头几何特性。很兴奋的看到人们使用我们发布的开源代码(https://github.com/TRI-ML/packnet-sfm)来实现各种想法!

应用 NRS 在各种的相机模型上的自监督深度估计结果。

总结

自监督是一个强大的工具,学习深度估计网络只需要使用原始数据和三维几何的知识。但是我们可以看到远远超出深度估计的应用。我们相信自监督学习有潜力产生很多有益于社会和增加流动性机会的应用。

尽管如此,路障依然存在。这就是为什么我们发布了我们的代码和数据,以鼓励对这些重要挑战进行更开放的研究。我们自己也在努力解决其中的一些问题,特别是如何超越纯粹的自监督,实现可扩展的监督,不仅是为了提高性能,也是为了减少自监督学习的一些偏见。我们将在下一篇文章中讨论我们的一些相关研究,请继续关注,单目就够了 ;-)

原文: https://medium.com/toyotaresearch/self-supervised-learning-in-depth-part-1-of-2-74825baaaa04

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 第一部分: 用于深度估计的自监督学习
  • 自监督深度: 魔鬼在细节里
  • 自动驾驶的密集深度基准与竞赛
  • 全环绕单目点云
  • 可供选择的摄像头模型: 神经射线表面(Neural Ray Surfaces)
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档