Advertisement

单目深度估计方法综述

阅读量:

单目深度估计是计算机视觉领域的重要研究方向,旨在通过单幅图像推断场景中各点到相机的距离信息。深度图是其核心输出,表示图像中每个像素对应的深度值。本文系统梳理了单目深度估计的发展历程,从传统方法到深度学习方法,详细介绍了基于线索的传统方法(如线性透视、散焦、大气散射等)、基于机器学习的传统方法(如参数学习、非参数学习)、基于有监督的深度学习方法(如深度卷积神经网络、多尺度网络)以及基于无监督的深度学习方法(如立体对方法、无监督立体重建)。此外,还探讨了深度估计在自动驾驶、3D重建、SLAM等领域的应用,并展望了未来研究方向。

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

7367dd534c1701ee7e35f8c66d93cb8e.png

一 相关概念介绍

1. 深度估计

eaee60e7b4b0191d879f522363573037.png

深度估计技术的主要目标是在图像处理中,获取图像中场景里的每个点到相机的距离信息。这种空间信息的集合在图像处理领域被称为深度图,其英文名称为Depth map。

2. 视差

1dfa6ad11167555d11b278d2cbb602c6.png

在两张图像中,同一物体的像素坐标存在差异,较近物体的坐标变化幅度较大,而较远物体的坐标变化幅度较小。同一世界坐标系中的点在不同图像中的像素坐标差异即为视差。通过计算不同图像之间的视差,可以得出物体与相机之间的距离,即深度。

二 单目深度估计的研究现状

下图1详细呈现了单目深度估计的发展历程,经历了从传统方法向深度学习方法的演进过程,其中,深度学习方法主要分为有监督学习、半监督学习和无监督学习类型。

温馨提示:这里也给大家推荐系统介绍单目深度估计原理的精品课程:单目深度估计方法:算法梳理与代码实现

03d3496fe8cfc60150b6f3ccfbbe8c7e.png

我们将单目深度估计方法划分为基于线索的传统方法、以机器学习技术为基础的传统方法、采用有监督学习的深度估计方法以及基于无监督学习的深度估计方法。

de0d6801b7e6d518a4af62c15ff2e803.png

2.1 基于线索的传统方法

人类在观察周围环境时,除了利用双目获得立体感外,大脑还能基于经验从单个视角提取的多种启发式线索来判断深度。这些常用的单目深度线索包括线性透视原理[2]、聚焦和散焦机制[8]、大气散射现象[7]、阴影效果[3]、纹理细节[4]、遮挡关系[5]以及相对高度信息[6]等。

a3b8ab2f81468aafe24a18bb6374e599.png

线性透视线索的例子

c366465b0b272e3deeec901e76b294f6.png

大气散射线索的例子

bb60eb179aebd1cbe17a802ed8a0fc1f.png

SFS (Shape from shading)方法

基于运动线索求解深度的方法是应用最广泛的一种。其中包含了两种不同的运动类型:一种是物体自身的运动,另一种是摄像机的运动。

基于物体自身运动的深度估计方法主要依据运动视差的近大远小规律。通过摄像机的运动进行深度估计,被称为SFM技术(Structure From Motion, SFM)[9]。假设场景静止不变,仅由摄像机的运动,SFM技术能够从拍摄的图像序列中恢复摄像机的内外参数以及场景的深度信息。

c844109fc951b4a6bcfe354cd02f92b2.png

2.2 基于机器学习的传统方法

基于统计模型的深度估计算法因其不受特定场景限制且具有良好的适用性,获得了越来越多的关注。这类算法主要采用机器学习方法,将大量具有代表性的训练图像集合及其对应的深度数据输入预先定义好的模型中进行监督学习过程,经过充分训练后,将实际输入图像输入至训练好的模型中,完成深度估计。

单目深度估计方法主要依赖于传统机器学习技术,主要分为两种方法:参数学习方法与非参数学习方法。

参数学习方法涉及能量函数中包含未知参数的情况,训练过程是估计这些参数的值。

在2005年,斯坦福大学的研究团队,由Saxena[10-11]等学者主导,基于马尔科夫随机场理论(Markov Random Field,MRF)建立了一个模型,以学习输入图像的特征与输出深度之间的对应关系。

23c3e1cab35c07aeda8c6d3c63ecd01b.png

在该方法中,假设该系统需在RGB图像与深度之间建立某种参数模型,但这种假设模型难以真实地映射真实世界的对应关系,因而导致预测精度受限。而非参数学习方法基于现有数据集进行相似性搜索,以估计深度信息,无需通过学习获得参数。

基于非参数型学习方法的深度估计技术是一种数据驱动的深度估计技术。对于任意测试图像,该算法通过融合与其三维场景高度相似的RGBD图像数据,从而推断出测试图像的深度[12-15]。

0ad1d3fd45df6635735f757486f01127.png

非参数学习流程图

2.3 基于有监督的深度学习方法

随着深度学习技术的广泛应用,基于深度学习的单目深度估计方法已成为研究焦点。然而,现有的单目深度估计方法均建立在监督学习框架下,其模型训练过程需要依赖真实深度数据,同时还需要大量标注数据进行网络模型的训练,数据集通常由单目图像及其对应的深度真值组成。

2014年,Eigen等人[16]开发了一种基于深度卷积神经网络(Deep CNN)的方法,用于从单幅图像中推断深度信息。该网络对整体图像特征进行粗略估计,而此网络则专注于局部图像细节的推断。

9afb827c721501b2772e42e2c9c2b63a.png

2015年,Eigen 等人[17]在该框架中基于上述研究工作,开发了一个统一的多尺度网络框架。该框架基于VGG深层网络,通过引入第3个细尺度网络来补充细节信息,从而有效提升图像分辨率。

基于场景中物体距离呈现由远及近的递减特性,可以利用分类的思想。Cao 等人(2018)[18]基于深度估计问题的像素级特性,将其视为分类问题。

6b4d10cb5ed253ea1a438e16578a41bb.png

2.4 基于无监督的深度学习方法

在单目深度估计任务的监督学习框架中,网络模型的训练过程需要依赖真实深度值作为学习信号。然而,真实深度值的获取不仅成本较高,而且应用范围受限,通常需要配备精密的深度测量装置和移动平台进行采集。此外,所获取的原始深度标签往往呈现稀疏特征,这使得其难以实现与原图信息的有效融合。

基于无监督学习的单目深度估计方法主要应用于网络训练阶段,无需依赖深度真值,因此成为单目深度估计研究的热点。无监督学习通过图像对之间的空间关系重建对应的图像,利用图像重建损失进行监督网络的训练。

Garg 等人(2016)[19]提出了一种基于立体图像的深度估计方法,该方法实现了无监督单目深度估计的目的,无需深度标签的支持,其工作原理类似于自编码器。

6456cf2d912444d110fde64fc5069e5d.png

Godard 等人(2017) [20]对该方法进行了进一步的优化,基于左右视图的一致性,该方法实现了无监督的深度预测。

Chen 等人于2016年开发了一个名为"Depth in the Wild"的数据集,该数据集涵盖各种图像并记录了随机点对的相对深度信息。研究团队还设计了一种基于相对深度信息的数值深度估计方法。

基于无监督学习的单目深度估计方法相较于传统计算机视觉算法和有监督学习算法,在网络模型训练过程中仅依赖多帧图像,无需深度真值支持,在预测深度时仅需单目图像输入。该方法具有易于获取数据集、预测精度高以及应用便捷等特点。

参考文献:

[1] Towards Real-Time Monocular Depth Estimation for Robotics: A Survey

[2] 基于块的消失线和消失点检测用于三维场景重建

[3] Shape from Shading

Calculating Surface Orientation and Shape from Texture Information on Curved Surfaces

[5] Recovering Occlusion Boundaries from a Single Image

[6] A Novel 2d-to-3d Conversion Technique Based on Relative Height-Depth Cue

Adaptive Calculation of Depth Maps in the Process of Two-Dimensional to Three-Dimensional Stereoscopic Conversion

[8] Depth Recovery and Refinement from a Single Image Using Defocus Cues

[9] Semantic Structure from Motion

[10] Learning depth from single monocular images

[11] Depth estimation using monocular and stereo cues

[12] 2d-to-3d image conversion by learning depth from examples

[13] Depth Extraction from Video Using Non-parametric Sampling

[14] DepthTransfer: A depth estimation framework in video utilizing non-parametric sampling techniques

[15] Discrete-Continuous Depth Estimation from a Single Image

The depth map estimation is achieved by employing a multi-scale deep network based on a single image.

[17] Estimating depth information,surface normal details,and semantic label information using a unified multi-scale convolutional network.

Determining depth in single-view images as a classification task via deep residual network

Unsupervised convolutional neural network for single-view depth estimation: geometry proves to be an essential asset.

[20] Unsupervised monocular depth estimation with left-right consistency

[21] Single-image depth perception in the wild

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多套传感器数据融合技术

2.专为自动驾驶领域设计的3D点云目标检测全方位学习路径!(单模态与多元模式/数据与代码)
3.彻底掌握视觉三维重建:从原理剖析到代码讲解,再进行优化提升
4.首个专为工业级场景设计的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法的梳理与代码解析
6.全面掌握视觉-惯性SLAM:正式发布基于VINS-Fusion的课程
7.全面解析基于LOAM框架的3D激光SLAM技术,从源码分析到算法优化
8.全面解析室内与室外激光SLAM的关键算法原理、代码实现及实战应用(包括cartographer、LOAM和LIO-SAM)

9.从零开始构建一套结构光3D重建系统的完整方案,该方案包含理论支撑、源代码支持以及实践环节。

10.单目深度估计方法:算法梳理与代码实现

11.关于自动驾驶领域中的深度学习模型部署方案的实践应用

12.相机模型与标定(单目+双目+鱼眼)

重磅!3DCVer-学术论文写作投稿交流群已成立

通过扫码与小助手建立联系,您将有机会参与申请3D视觉工坊学术论文写作与投稿交流群,该群旨在为研究人员提供交流平台,专注于顶会、顶刊、SCI、EI等写作与投稿事宜。

此外,我们也可以加入我们的细分方向交流群。目前主要有哪些包括:3D视觉方向、CV与深度学习领域、SLAM技术应用、三维重建方法、点云处理技术、自动驾驶与多传感器融合、CV入门学习、三维测量技术、VR/AR开发、3D人脸识别算法、医疗影像分析、缺陷检测方法、行人重识别模型、目标跟踪算法、视觉产品落地方案、视觉竞赛解析、车牌识别技术、硬件选型指导、学术交流平台、求职交流群、ORB-SLAM系列源码分享、深度估计方法等。

研究方向:3D视觉 + 上海交大 + 静静

52366c802fd2d4cc798320132a5a036c.png

▲长按加微信群或投稿

8213eece6a569a995fc3392925596d21.png

▲长按关注公众号

3D视觉知识星球:从入门到精通

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

6f8aa6f56a40d750ba988bc2c94a8e2c.png

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~****

全部评论 (0)

还没有任何评论哟~