目录

  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(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之间的差异。绝对深度特征的获取方法如下图:

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)。


Fig.3 Gaussian

Fig.4 Laplacian

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

Fig.5

Fig.6

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

3. 总结和思考

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

单目图像深度估计 - 尺度篇:Make3D相关推荐

  1. 单目图像深度估计 - 迁移篇:Depth Extraction from Video Using Non-parametric Sampling

    目录 入门篇:图像深度估计相关总结 应用篇:Learning to be a Depth Camera 尺度篇:Make3D 迁移篇:Depth Extraction from Video Using ...

  2. 单目图像深度估计 - 入门篇

    由于公司网站设置,基于git的Blog越来越难打开,所以把部分内容搬运到这里. 一转眼都是两年前的内容了,且大部分都是我的个人理解,现在看来也难免有些Bug.虽然后来由于项目安排的关系没有继续单目图像 ...

  3. 单目图像深度估计 - 应用篇:Learning to be a Depth Camera

    目录 入门篇:图像深度估计相关总结 应用篇:Learning to be a Depth Camera 尺度篇:Make3D 迁移篇:Depth Extraction from Video Using ...

  4. 单目图像深度估计 - 泛化篇:S2R-DepthNet

    单目图像深度估计 - 泛化篇:S2R-DepthNet 偶然看到微软亚研的单目图像深度估计发表在了CVPR2021上,决定更新一下这个系列. 官方已经有了十分详细的论文解读,我认为这篇文章比较有意思的 ...

  5. 单目图像深度估计 - SLAM辅助篇:MegaDepth

    目录 入门篇:图像深度估计相关总结 应用篇:Learning to be a Depth Camera 尺度篇:Make3D 迁移篇:Depth Extraction from Video Using ...

  6. 单目图像深度估计 - 深度篇:David Eigen的两篇研究

    目录 入门篇:图像深度估计相关总结 应用篇:Learning to be a Depth Camera 尺度篇:Make3D 迁移篇:Depth Extraction from Video Using ...

  7. 单目图像深度估计 - 相对深度篇:Depth in the Wild Size to Depth

    目录 入门篇:图像深度估计相关总结 应用篇:Learning to be a Depth Camera 尺度篇:Make3D 迁移篇:Depth Extraction from Video Using ...

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

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

  9. 单目图像深度估计——Monodepth2

    深度估计方法及网络架构 深度估计方法 网络架构 深度网络 位姿网络 损失函数构建 深度估计方法 Monodepth2使用基于单目图像的无监督学习法完成深度估计的任务.根据SFM模型原理在卷积神经网络中 ...

最新文章

  1. 看看那些来自电路造型挑战赛中的作品
  2. Docker swarm 集群搭建
  3. python的引用计数分析(二)
  4. linux装完windows时间长,重装Windows 10上的Linux子系统
  5. python查找最长公共前缀_Python实现查找字符串数组最长公共前缀示例
  6. .net 测试工具类
  7. vue.js 全局应用js_如何在不到7分钟的时间内测试您的Vue.js应用
  8. python图片转字符_二十行python代码实现图片转字符
  9. SpringBoot2.0基础案例分类总结,后续更新计划说明
  10. 语音识别 | 数据堂方言语音数据集
  11. MySQL-Workbench数据库基本操作
  12. android全面屏像素密度,屏幕像素密度超400ppi,让你感受视觉的极限
  13. 自定义点击弹出设置百度商桥
  14. 2018.6清北学堂day3下午笔记
  15. 玩转pandas取数_下
  16. 中了exe病毒文件夹变exe应用程序解决办法
  17. 数分下第4讲 (8.2节): 平面和直线
  18. 深入理解Spring----PostConstruct和PreDestroy
  19. 什么是java双精度浮点数_什么是浮点型?单精度浮点数(float)和双精度浮点数(double)介绍...
  20. ZUCC_数据库系统概论实验_实验六 JDBC进阶 3

热门文章

  1. MySQL比较时间(datetime)大小
  2. 什么是挂载?mount的用处在哪?(适合新手,讲解的非常好)
  3. JDK:MAC系统配置多版本的JDK
  4. 2022-2028年中国中低温余热发电行业市场发展潜力及投资前景分析报告
  5. The GridView 'GridViewID' fired event PageIndexChanging which wasn't handled.
  6. 联想微型计算机m4500q,小身材大能量 ThinkCentre M4500q评测
  7. 全膝关节置换术的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  8. 计算机补码的表示形式,补码(计算机中数字的表示方式)
  9. 白帽子讲web安全 编码问题sql注入的 笔记
  10. canny检测出的多个边缘合成一个_Canny边缘检测算法