单目深度估计梳理(1) -- 有监督学习之单任务篇

参考论文:Mertan A, Duff D J, Unal G. Single image depth estimation: An overview[J]. Digital Signal Processing, 2022: 103441.

本人基于上面的参考论文,试着总结单目深度估计的基础知识与发展路径。如有错漏之处,还请大家在评论区多多指教。点击文中的超链接即可转到引用论文。

1.单目深度估计是什么?

单目深度估计(SIDE, short for Single Image Depth Estimation)指的是通过给定的一张RGB图片,估计出这个图片中每个像素的深度值。下图中左边的是原始图片,右边的是深度图。蓝色表示像素离我们较近,红色表示像素离我们较远。

这对人类似乎是很简单的任务。人类在对现实物体的深度估计时,会通过物体的遮挡、近大远小的透视原理和纹理渐变等线索来推断,同时会使用已知的知识使得物体与环境相”匹配“。这些方法也对计算机解决深度估计问题提供了启发。

2.早期工作

以下列举了早期的一些tricks:

  • 结合语义分割。如:一个图片中有两个蓝色块,标注了一个是天空一个是水,通过先验知识来帮助深度的估计。

  • 室内外分离。由于室内室外的结构存在巨大差异,因此考虑将室内室外分开预测深度。

  • 在对数空间中估计深度。估计近处物体的深度和估计远处的深度有较大差别。对于十几米远的物体,有几厘米的误差问题不大。但是对于只有十几厘米的物体,这时候有几厘米的误差就有很大的影响。因此我们引入对数空间,在对数的尺度下,距离越小数值变化越灵敏,距离越大则越迟钝。(参考对数函数)。

  • 使用相对深度。不同于绝对深度(如:1m,3m...),相对深度是图片像素深度的排序。

  • 使用合成数据。由于带深度标注的真实数据获取难度大,我们可以使用计算机自动合成的数据来进行训练。

3.相关数据集介绍

随着单目深度估计进入深度学习阶段,模型的训练需要大量的数据。以下列举了常用数据集:

  • NYU:室内数据集,包含1449张已标注的图片。

  • KITTI:道路交通数据集,包含 93,000 张已标注的图片。

  • Sun RGB-D:室内数据集,包含10335张已标注的图片。

  • SceneNet RGB-D:室内数据集,包含5M张已标注的图片。

4.基于单任务(Single-task)的深度估计

上图是单目深度估计方法的树状图。在深度学习领域中,主要分为有监督与无监督两大类。我们今天所介绍的就是有监督学习中的单任务深度估计方法。那什么是单任务呢?就是围绕一个特定任务的学习,例如人脸识别、语音识别等等,如果要换一个任务,那么就需要换一个网络。下面列举了一些主要工作。

  • Eigen et al.提出使用两个网络来估计深度。一个是粗略(Coarse)网络,一个是精细(Fine)网络。Coarse网络的是对图片整体特征进行感知,Fine网络负责描绘细节特征。网络架构图如下:

下图从左往右依次为,原始图片、Coarse网络输出、Fine网络输出、真实深度图。

另一个创新点是提出了新的损失函数:

他们后来又基于此进行了改进,加入了多尺度网络,使用一个网络同时估计深度、估计表面法线和语义分割。同时改进了损失函数为:

  • Laina et al.提出基于ResNet-50的全卷积残差网络,减少了网络参数,同时上卷积块(up-convolutional blocks)增加了输出的分辨率。网络结构如下图所示:

另一个创新点也是提出了新的损失函数berHu,c为设定的阈值,小于c时为类L1损失函数,大于c 时为类L2损失函数。

  • Cao et al.提出将SIDE看为分类问题。前面的方法基本都是把SIDE视为回归问题,试图得到一个接近真实深度的数值。人类本身也很难估计准确的深度,但是却可以轻松估计深度的范围。因此,作者将连续的深度离散化,对深度范围进行分类和排序。

Fu et al.引入了间距增加的离散化(SID)将SIDE转化为有序回归问题(ordinal regression problem)。这解决了池化操作降低图片分辨率、反卷积和skip connection增加计算成本的问题。网络结构如下图所示:

损失函数为:

其中N为像素数,K为划分的间隔数,[.]为指示函数,di是第i个像素的真实深度,yi为第i个像素的。

  • Bhat et al.提出了一个基于transformer的架构,它将图片的深度范围划分为许多bin,其中bin的宽度随每个图像而变化。对于每个输入图像,模型产生可用于确定每个bin深度范围的向量和显示每个bin的可能性的每像素概率图,最终输出的深度图通过计算概率加权计算的bin中心线性组合。网络结构如下图所示:

5.小结

上表是对有监督的单任务深度估计的小结。可以看出,前面的文章主要都是基于回归(regression)的思路,也有人提出了以相对深度为基础的分类(classification)思路。其中大多在网络架构和损失函数上提出创新。在下一篇文章,我会对基于多任务的单目深度估计进行总结。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值