原文首发于微信公众号「3D视觉工坊」:基于单目图像无监督学习的深度图生成

如图1所示,网络的输入只需左相机图像,在训练阶段通过左右相机图像作为监督。注意,这里的无监督学习指的是,不需要深度图作为监督,但仍需左右相机图像对网络进行监督,采集数据时,仍需要采集左右相机图像。

图1
图2所示为网络的主要结构,其中C代表卷积,UC代表向上卷积(转置卷积),S代表双线性采样,US代表上采样,SC代表跳跃连接。
注意:s代表双线性采样,其实主要用于增强生成的视差图,因为视差图经常会出现一些噪声点甚至是空洞,因此很有必要通过双线性插值来增强生成的视差图。
SC存在的目的其实就是在多尺度Feature Map上进行视差图的生成,这个思想和FCN以及多尺度物体检测的原理是相同的。
图2
图1中,经过backbone处理后,划分了三个分支,通过卷积分别生成左右两个图像的视差图,dl和dr。然后通过图2的操作,并根据右视差图+左图像,可以重建出右相机图;同样,根据左视差图+右相机图像可以重建出左相机图,前期在训练阶段,输入只有左相机图,以左相机图和右相机图作为标签,参与到上述的计算中,这样做的意义是,根据左右相机的真实图来一定程度上监督直接通过左相机回归出的左右视差图的效果和质量。
损失函数主要包括三部分,如下图所示:
下面将会逐步介绍这三个损失函数。
 Appearance matching loss
在这里,论文中SSIM使用的是3x3的block,且α=0.85。
关于SSIM的计算公式如下所示:

其实这个就是重建出来的左右图像和真实的左右相机图像的损失函数,注意,文中说到的无监督只是说没有真实的深度信息作为标签,并不是没有真实左右相机图像。
 Disparity Smoothness Loss

这个是视差图平滑度损失,论文中,作者鼓励局部梯度平滑。
Left-Right Disparity Consistency Loss
这个其实是左右视差图的差异损失,从左图像恢复出的视差图和从右图像恢复出的视差图理论上应该是一样的,但是会有一些微小的差异,这里也是做了一个监督,使左右视差图生成的视差近似相同,也是为了后面直接从左相机图像生成左右视差图做了一个监督。
通过这三个分支的训练,左相机图像已经知道如何去生成左右视差图了,在生成的左右视差图的基础上,可以进行最终深度图的回归。

注意这里为什么会有skip connection,其实就是,在这里网络并不满足于某个特定的尺度,而是设定了四种尺度,也就是前面预测出来的左右视差图和主体特征以及前面的特征会做一个concat,后面再次进行卷积,得到新的特征,在这个新的特征的基础上再次进行视差图的生成。

这一点特别像FCN和多尺度物体检测中的做法,多尺度也保证了在不同scale上搜索最佳结果的可能。
如下面的黄色加重文字所示,前面根据左右视差图处理后(最简单的就是左右视差图相加求和,和除以2,如果左右视差图对应位置的值相差太大,则该位置处的视差有问题),会得到最终的优化视差图,左右相机距离b已知,相机焦距f已知,可以通过公式计算出最终的深度。
这种操作方式,其实只是对数据没有什么太多的要求,因为后面有直接从视差图生成左右图的监督,所以不需要做一些传统的立体校正和匹配,因为这里压根就没有用到立体相机计算出来的视差。
该算法在无人驾驶领域有着重要应用价值,但是由于其厘米级的精度,不适合一些要求较高的场景。
参考论文:
Unsupervised Monocular Depth Estimation with Left-Right Consistency
源代码:
https://github.com/apllolulu/monodepth
上述内容,如有侵犯版权,请联系作者,会自行删文。

基于单目图像无监督学习的深度图生成相关推荐

  1. ECCV 2020 | PHOSA:一种基于单目图像的人-物重建方法

    项目.论文地址:在公众号「3D视觉工坊」,后台回复「PHOSA」,即可直接下载. 概述 作者提出了一种能够推断出人类和物体的形状和空间排列的方法,只需要一张在自然环境中捕捉的图像,且不需要任何带有3D ...

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

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

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

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

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

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

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

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

  6. 【论文精读】使用深度卷积神经场从单目图像学习深度

    使用深度卷积神经场从单目图像学习深度 Paper Information Abstract 1 Introduction 1.1 Related Work 2 DEEP CONVOLUTIONAL N ...

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

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

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

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

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

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

最新文章

  1. 好东西+php,推荐个好东西swoole,php如虎添翼
  2. 【OpenCV】cv::Mat对单个像素的访问和操作
  3. mysql联合查询结果_请问 MySQL 这个情况如何联合查询得到正确的结果?
  4. 关于阿拉伯数字转化成为大写汉字
  5. android8.0更新手机,安卓微信8.0.6正式更新:可发1G大文件、表情互动等多项更新!...
  6. linux识别科学计数法,Linux下科学计数法(e)转化为数字的方法 [shell中几种数字计算说明]...
  7. C#错误异常日志记录到文件
  8. 2018-2019-2 网络对抗技术 20165230 Exp8 Web基础
  9. 配置 iTerm2 记录
  10. 【最短路问题】leetcode743. 网络延迟时间
  11. MYSQL中HEX、UNHEX函数
  12. sql复制表结构和数据_SQL复制表
  13. c语言智能车跑道检测程序,智能小车的循迹方法与流程
  14. 计算机知识复制粘贴,教你如何使用电脑复制粘贴快捷键
  15. 20190404-亥姆霍兹方程、表面等离极化激元
  16. cocos2dx 游戏中内存优化
  17. U-MEX and Increments
  18. C#实现企业应用接入钉钉
  19. 手机APP爬虫技巧(Fiddler+雷电模拟器进行APP抓包)
  20. 建立一个学生数据库/表

热门文章

  1. Android问题-DelphiXE5编义时提示找不到“连接器(arm-linux-androideabi-ld.exe)
  2. PHP cron中的批处理(转)
  3. MCU(多点控制单元)
  4. 让一个网页打开的同时自动为另一个网页自动填写表单并提交
  5. Java面向对象:覆写与重载
  6. 3升和5升的不规则容器怎样量出4升的水
  7. 《如何与面试官处朋友》系列-缓存击穿、穿透、雪崩场景原理大调解
  8. 别在 Java 代码里乱打日志了,这才是打印日志的正确姿势!
  9. Java是如何实现Future模式的?万字详解!
  10. 微软某员工后悔跳槽阿里:工资才多20万不到,天天加班快崩溃!