编辑 | 深蓝前沿

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心技术交流群

本文是对文章《Unsupervised Learning of Depth and Ego-Motion from Video》的解读。

Figure 1. 深度图和Ground-Truth [1]

Figure 2. Absolute Trajectory Error(ATE) on KITTI dataset [1]

1. 概述

1.1为什么要讲这篇文章?

在无人驾驶、3D重建和AR三个领域中,对于周围环境物体的深度(Depth)和对自身位置的估计(State Estimation)一直是一个非常棘手而复杂的问题。

过去常用的方法,传统的SLAM,通常用非常繁琐的数学公式和基于特征点/直接法的方法来进行轨迹估算,而深度通常用单目视觉(多态几何),双目视觉,激光雷达来进行估计。

但传统方法通常只能进行稀疏的特征点(Features),进行深度估计和自身姿态估计,而不能利用所有pixel,而这对于自动驾驶领域中重建高精地图和AR领域中的室内环境感知来说就会导致信息的缺失。

1.2 这篇文章提出了什么新方法?

这篇文章主要提出了一种基于无监督深度学习的单目视觉的深度和自身运动轨迹估计的深度神经模型。

它的新颖之处在于:

  1. 提出了一种堪称经典的:depth network和ego-motion network共同训练的架构模式。(因此这篇文章可以说是最2年基于深度学习的depth estimation的祖师爷,Google和Toyota的最新论文都借鉴了它的训练模式)

  2. 无监督学习:只需任意单目相机的视频就可以学习其深度和轨迹信息。

  3. 同时追踪所有像素点,不丢失任何场景信息。

  4. 深度估计比肩传统SLAM,自身轨迹估计优于传统SLAM。

它在工程之中的应用价值:

  1. 高境地图重建(自动驾驶车,移动机器人)

  2. 3D视觉效果重建

  3. AR/VR定位

2. 文章核心

简单来说,这篇文章的核心就是下图中的两个深度卷积网络CNN,Depth CNN和Pose CNN绑定在一起通过View Synthesis进行训练。

具体来说,通过把Target Image (It )中每一个pixel都按下图的公式给warp到Source Image ( I t − 1  或 I t + 1 )中,计算Pixel-Wise的intensity error:

Figure 3. Depth/Pose nNtwork共同训练的模式 [1]

  • 大师兄:看到这里,俺老孙就想到了当年GAN生成对抗网络,也是两个Network捆绑在一起进行训练。

  • 师傅:是的徒儿,这篇文章就是把Depth和Pose的Output合并在一起计算Loss。具体细节请听为师娓娓道来~

2.1 View Synthesis与误差函数的构建

众所周知,深度学习模型的关键就是Loss function,它类似于传统SLAM中的最小二乘法问题,都是要寻找到一个全局最小残差,从而使得模型最能够接近于最优解。

本文的Loss function用到了一个很强的假设:

  • 假设:已有 t t t时刻图像target image和每个像素对应的深度, 以及target image相对上一 ( t − 1 ) (t-1) (t−1)时刻图像source帧相机位置的T。(transfomration matrix)

  • 结论:若D, T均是正确完美的数值,则必定可以准确地将targe image每一个像素点 p t对应warp到上一帧source image中的 p s 位置。

这么说可能有些抽象,打个比方: “ t t t时刻图像有一个艾菲尔铁塔的尖尖,经过Depth和T的warp变换后,我们可以得到上一 ( t − 1 ) (t-1) (t−1)时刻在另一个角度拍摄的艾菲尔铁塔的尖尖的pixel位置,那么它们两个点图像的亮度 (intensity) 应该是一样的”。

有了这个假设以后,我们的Loss就可以设为pixel intensity ( I I I)的差值之和:

Figure 4. Warping [1]

2.2 Warping的数学模型

在上一节中使用的warping公式,具体含义如下:

p s  : pixel in source image

p t : pixel in target image

K : camera intrinsics matrix

D ^ t  : Depth of a point, at time t t t

T ^ t − > s  : Transformation matrix from target image to source image

除此以外,为了让该公式能够被神经网络训练,求出D和T,我们必须让它可求导 (differentiable)。

本文的做法是采用Spatial Transformer Networks [2]文章中的双线性插值法 (biliner interpoltion),具体原理如下:

Figure 5. bilinear interpoltion [2]

2.3 Explainability Mask & Regularization

2.1节中的监督模型有一个很强的假设,但现实世界;总是不尽如人意的,有以下三种特殊情况会打破之前的假设:

  1. 场景中有移动物体

  2. 前后两帧之家出现不连续性,如有物体被遮挡

  3. Surface不符合Lambertian规律(不是理想散射)

因此,本文引入了一个Explainability Mask Network ( E ^ s  (⋅))来“马赛克”移动物体,遮挡物体和不符合理想散射的平面。

Figure 6. Explainability Mask Network [1]

除此以外,由于low-texture region和far from current estimation的缘故,我们在训练模型时容易进入gradient locality (梯度局部性),简单来说就是“训练不动了”。加入regularization因子可以有效地解决这点,最终我们可以得到一个loss function:

2.4 Network Architecture

Figure 7. Network Architecture [1]

注:本文采用了multi-scale side predictions,在四个layer的位置,生成了四张不同清晰度的predictions,具体效果估计是让Loss更robust,对不同大小和清晰度的图像都能兼容吧(个人观点~)

3. Conclusion

总的来说,本文使用Unsupervised Learning获得的Depth和Trajectory的效果均获得了不逊色于传统SLAM和基于Supervised-Learning的Depth Estimation的结果。并且,本文对于Trajectory估计的效果还要更胜一筹。

在实际工程中,基于深度学习得到的Depth和Ego-Motion可直接用于vSLAM或者3D reconstruction,并且可以实现全像素的追踪,这一点和基于几十几百个稀疏的feature pixels的传统SLAM是一个巨大的优势。

因为它可以获得更加稳定的Depth/Motion Estimation,并且可以拓展到鱼眼摄像头、全景摄像头等不规则相机的SLAM。

(因为目前自动驾驶通常会使用鱼眼相机来保证360度的周围环境感知和深度测量,能够通过文章[3] [4]来拓展本文的pin-hole方法,到Fisheye)

3.1 基于本文的拓展: Google AI 2019论文

在本文所介绍的[1]中,训练集是一个非常头疼的问题。海量的数据就是模型准确度提升的关键,但是网上存在的很多Wild Videos连相机模型都不一定有,更不用说内参了。

Google 2019年的这篇论文[4]名为"Depth from videos in the wild",顾名思义,它基于[1]所作出的改进就是在不需要已知Camera Instrinsics的情况下,可以同时估计Depth和Intrinsics。

3.2 基于本文的拓展: Toyota 2020论文

在本文所介绍的[1]中,只有针孔相机模型的intrinsics matrix是可以估计的,而其他Fisheye或者catadioptric相机由于intrinsics matrix的模型都不一样。

(有各种radial distortion模型,所需的参数数量都不一样)。

Toyota 2020的这篇论文[2]就在上两篇论文的基础上,记入了对所有相机类型的支持。

它不使用任何analytical (解析)模型,而是用network直接自己学习2D pixel 到 3D point的projection公式,因而不需要一个预设的,要估计的内参模型。

Figure 8. Toyota的最新论文基于本文的方法拓展到了所有异型相机的Depth Estimation [3]

4. Appendix

4.1 Experiment on Cityscapes and KITTI

Figure 9. Depth Prediction Results [1]

4.2 Experiment on NYU depth and KITTI

Figure 10. Depth Prediction Results [1]

4.3 Experiment on KITTI for Trajectory

Figure 11. Ego-Motion Prediction Results [1]


Reference:

[1] T. Zhou, M. Brown, N. Snavely and D. G. Lowe, “Unsupervised Learning of Depth and Ego-Motion from Video,” 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, HI, USA, 2017, pp. 6612-6619, doi: 10.1109/CVPR.2017.700.

[2] M. Jaderberg, K. Simonyan, A. Zisserman, et al. Spatial transformer networks. In Advances in Neural Information Processing Systems, pages 2017–2025, 2015.

[3] Vasiljevic, Igor & Guizilini, Vitor & Ambrus, Rares & Pillai, Sudeep & Burgard, Wolfram & Shakhnarovich, Greg & Gaidon, Adrien. (2020). Neural Ray Surfaces for Self-Supervised Learning of Depth and Ego-motion. 1-11. 10.1109/3DV50981.2020.00010.

[4] A. Gordon, H. Li, R. Jonschkowski and A. Angelova, “Depth From Videos in the Wild: Unsupervised Monocular Depth Learning From Unknown Cameras,” 2019 IEEE/CVF International Conference on Computer Vision (ICCV), 2019, pp. 8976-8985, doi: 10.1109/ICCV.2019.00907.

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、多传感器融合、SLAM、光流估计、轨迹预测、高精地图、规划控制、AI模型部署落地等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

基于无监督深度学习的单目深度和自身运动轨迹估计的深度神经模型相关推荐

  1. 基于深度学习的单目深度估计综述

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文章:Monocular Depth Estimation Based On Deep Learnin ...

  2. 基于深度学习的单目图像深度估计总结

    图像深度估计,是目前计算机视觉研究中的经典问题.深度图(Depth Map)表示每个像素在空间中的位置,是一种普遍的三维场景信息表达方式,广泛应用于自动驾驶.三维重建等方面. 基于深度学习的单目图像深 ...

  3. 前车碰撞预警——FCW,基于深度学习和单目摄像头测距的前车碰撞预警源码

    前车碰撞预警--FCW,基于深度学习和单目摄像头测距的前车碰撞预警源码. 单目测距,多目标跟踪. 车辆检测,智能adas,FCW,价格只包括源码及设计文档讲解. 我使用的版本说明: gpu版本: an ...

  4. 基于深度学习和单目摄像头测距的前车碰撞预警源码

    前车碰撞预警--FCW,基于深度学习和单目摄像头测距的前车碰撞预警源码 单目测距,多目标跟踪. 车辆检测,智能adas,FCW,编号只包括源码及设计文档讲解. 我使用的版本说明: gpu版本: ano ...

  5. 深度学习之单目深度估计:无监督学习篇

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:桔子毛 https://zhuanlan.zhihu.com/p/29968267 本文仅做学术 ...

  6. 最新综述|深度学习的单目人体姿态估计

    向大家推荐一篇今天新出的人体姿态估计综述文章 Monocular Human Pose Estimation: A Survey of Deep Learning-based Methods ,对20 ...

  7. 基于无监督深度学习的单目视觉的深度和自身运动轨迹估计的深度神经模型

    本文是对文章<Unsupervised Learning of Depth and Ego-Motion from Video>的解读. Figure 1. 深度图和Ground-Trut ...

  8. TPAMI 2022|基于最优传输理论的无监督图像重建学习

    作者丨王炜 来源丨上海交通大学类脑智能应用与技术中心 编辑丨极市平台 论文地址:https://ieeexplore.ieee.org/document/9763342 开源地址代码:https:// ...

  9. Unsupervised Degradation Representation Learning for Blind Super-Resolution(基于无监督退化表示学习的盲超分辨率处理)

    文章目录 Abstract(摘要) 1. Introduction 2. Related Work 2.1. Single Image Super-Resolution 2.2. Contrastiv ...

  10. 深度 | Nature论文:无监督表征学习,用电子健康病历增强临床决策

    参考地址选自 Nature 作者:Riccardo Miotto, Li Li, Brian A. Kidd & Joel T. Dudley 机器之心编译 参与:吴攀.亚洲.孙睿.微胖 引言 ...

最新文章

  1. openssl 创建私有CA
  2. 采用8种相位,每种相位各有两种幅度的QAM调制方法,在1200Baud的信号传输速率下能达到的网数据传输速率为( )
  3. 使用rman本机复制新数据库
  4. c语言程序编写一朵花,一朵花(中英双语)
  5. 以二进制的形式保存在数据库中
  6. 【优化运行】基于matlab多目标粒子群算法求解冷热电联供综合能源系统运行优化问题【含Matlab源码 1747期】
  7. 欢迎大家访问吐槽人网 http://www.tucaoman.com/
  8. 让你的手机不输kindle的3款epub阅读器
  9. 事故赔付额年降高达7成,所托瑞安打造商用车智能驾驶商业化样本
  10. 任务调度:开源大数据调度框架Taier(太阿)
  11. 麻省理工大学线性代数1806(1) 矩阵 行图像 列图像 如沐春风、如饮甘露、醍醐灌顶的线性代数
  12. 飞塔防火墙的配置与策略
  13. 微信小程序+云开发+数据库使用
  14. AutoCAD .Net 颜色系统
  15. 手机PDF如何转成PPT?操作方法如何?
  16. golang 后台管理系统框架
  17. CVPR 2021 审稿意见出了,你也许需要这份学术论文投稿与返修指南
  18. Oracle数据库的基础
  19. MBT简述:基于模型的测试
  20. 修改服务器3389 端口号,修改服务器3389端口为其它端口

热门文章

  1. 编写一个JSP页面,实现根据一个人的18位身份证显示出生日的功能,要求把表达式声明和Scriptlet全部用到,并把结果显示在表格中
  2. 小喵的VUE项目搭建(一)
  3. QQ会员等级升级加速正式开始
  4. ORA-28001: the password has expired解决
  5. android修改渠道,Android 多渠道定制化打包
  6. Jeffery Pinto和Om Kharbanda:项目经理的12项工作
  7. 时间节点管理的自我反省
  8. NOSql数据库的优缺点分析
  9. 哎呀你不要把他叫出来_墓友-第一章——釉彩瓶-爱阅小说网
  10. 2019-11软考报名网站汇总,陆续更新