单目图像深度估计 - 尺度篇:Make3D


目录

  1. 入门篇:图像深度估计相关总结
  2. 应用篇:Learning to be a Depth Camera
  3. 尺度篇:Make3D
  4. 迁移篇:Depth Extraction from Video Using Non-parametric Sampling
  5. 深度篇:David Eigen
  6. 无监督篇:Left-Right Consistency & Ego Motion
  7. 相对深度篇:Depth in the Wild & Size to Depth
  8. SLAM辅助篇:MegaDepth
  9. 方法比较篇:Evaluation of CNN-based Methods

单目图像深度估计 - 尺度篇:Make3D

Make3D

终于进行到第三篇,这次膜拜一下单目图像深度识别的经典方法:Make3D(Website)。 Make3D方法经典的原因有二,其一是相关论文Learning Depth from Single Monocular Images发表于2005年,是我找到的最早的一篇单目图像深度识别的论文;其二是近期的许多研究在论文中都将自己的方法与Make3D进行了对比。这篇博客主要整理一下2005年发表于NIPS的这篇文章内容和我的相关理解。

上一篇文章中提到过,想要对深度进行估计,不能仅仅依靠局部特征(local features)还需要全局信息(global context)。举个例子,一个蓝色的像素点或一小块蓝色的图像区域,仅仅依靠其本身的信息无法判断它是属于一个蓝色的物体还是属于蓝色的天空。文中提到,人类对深度进行预测时也用到了全局特征如纹理变化,结构变化,轮廓遮挡,已知物体大小,模糊和失焦等。因此,想进行更加准确的深度预测,重要的是如何提取并利用全局信息

1. 多尺度图像

为什么多尺度信息可以作为全局信息应用呢?这就需要说一下什么是尺度以及图像的多尺度性质了。以下引用于互联网:

在一幅图像中,只有在一定的尺度范围内,一个物体才有意义。举一个例子,树枝这个概念,只有在几厘米到几米的距离去观察它,才能感知到它的确是树枝;如果在微米级或者千米级去观察,就不能感知到树枝这个概念了,这样的话可以感知到的是细胞或者是森林的概念。因而,如果想要描述现实世界的结构,或者将三维物体映射到二维的图像上去,多尺度表示将会至关重要。多尺度表示的概念很容易理解,举例说明,绘制地图时会有比例尺的概念。世界地图中就只能够显示大洲大洋,以及较大的地域和国家;而一个城市地图,甚至可以详细的显示出每条街道。

图像的多尺度性质,类似于人的眼睛观察物体,在离物体的距离不同时,所感知的特征是不一样的。也就是同一物体在视场中,成像的大小不同时,也就是尺度不同时,表现出的特征不相同。*

读研时候接触过遥感图像的多尺度分割,在我理解,大的尺度分割即将图像分为数量较少的大面积区域,小的尺度分割即为将图像划分成数量较多的小面积区域。因此,若是一副图像包含大海、沙滩和一把放置在沙滩上的躺椅,在某一较大尺度将图像分为两部分,分别为沙滩和海面,那么在这一尺度上无法找到躺椅;同理,在某一较小尺度下,将图像分为躺椅、多块海浪、平静海面、背光沙滩、受光沙滩等好几部分,则无法获得完整的大海区域。扯一句题外话,多尺度分割的一个优势是存在一种分级结构,即总是在分割结果的基础上进行合并或进一步分割,因此分割区域间不存在重叠,使得后续处理和计算可以更快速。

在图像的高斯金字塔或降采样形成的金字塔中,由顶到底尺度减小,因此在高斯金字塔的顶端图线上提取到的信息可视作全局信息。举个例子,我们取一个图像区域相邻的上、下、左、右四个区域作为其邻居,这四个邻居的像素均值作为此区域的一个特征,那么在原始图像上这五个图像区域可能都为某一物体的一部分,而在高尺度的图像上,相邻的区域可能为不同的物体。

2. Make3D方法

Make3D方法中,将局部信息和多尺度全局信息组合成特征向量,然后应用MRF方法进行深度估计。选取MRF方法是因为MRF适用于局部特征不够需要用到全局特征的情况,MRF的常见应用有物体识别、文本分割、图像打标等。

其中局部信息和全局信息用不同空间尺度(scales)即图像分辨率(image resolution)上的特征表示。Make3D方法还创新的提出了一种列特征(Column Feature),由于室外图像中大部分物体如树、楼房等都具有竖直的结构,即物体应“站立”在地面上而不是悬浮在空中,因此文章选取了每个小区域(patch)竖直方向上下多个相邻区域计算其列特征。

文章将图像划分成多块(patch),并将每一块的特征分为绝对深度特征(Absolute Depth Feature)和相对深度特征(Relative Depth Feature)。其中,绝对深度特征是指单个patch的深度,相对深度特征是指两个patch之间的差异。绝对深度特征的获取方法如下图:

Absolute depth feature

Fig.2 Absolute depth feature

Fig.2的上部分为Make3D方法使用的卷积mask,从左到右,前9个为Law’s mask(Law’s texture energy in TEXTURE)其中第一个用于提取模糊特征;后六个用于边界检测。Fig.2的下半部分说明了特征向量的组成以及多尺度特征和列特征的图示说明。由图可见,单个patch的特征由三个不同尺度的特征和一个列特征组成,而patch间的相对特征由直方图的差异表示。因此,某个patch的特征向量为:((1+4)*3+4)*34=646维(自身加上四个邻居在三个尺度上的特征,加上4个列特征;17个Law’s mask结果的1次和2次能量计算)。另外,相对深度特征的计算方法为:每个patch计算17维的mask结果,并且由每一个结果图生成10列的直方图得到170个特征后做差计算。

得到特征向量后,构建概率模型并且通过求取最大后验概率得到模型参数。文章构建了两种模型分别为高斯模型(Fig.3)和拉普拉斯模型(Fig.4)。

Gaussian
Fig.3 Gaussian
Laplacian
Fig.4 Laplacian

公式的前半部分可最小化预测值与实际深度值之间的差异,后半部分为平滑性约束即最小化不同尺度上相邻patch的差异。由于高斯模型无法生成边界清晰的深度预测结果,因此引入拉普拉斯模型。通过求解凸优化问题得到最优解,实现深度预测,Make3D方法的实验结果见下图。

-

Fig.5
-

Fig.6

Fig.5和Fig.6为实验结果,Fig.5中从左到右分别为实际图像、实际深度、高斯结果和拉普拉斯结果,Fig.6为应用不同特征进行计算的结果对比,可以看出拉普拉斯方法较优。

3. 总结和思考

Make3D方法的经典不用多说,值得思考的是算法中应用全局特征的方法,近期的研究如多尺度CNN等也用多尺度来表示一种全局方法,但是要想接近人类的深度识别,我们不光要考虑到局部特征和全局特征,还要考虑到过往经验和知识。因此,如何将知识应用到深度识别中去是另一个值得研究的方向。

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值