计算机视觉基础(13)——深度估计

前言

本节是计算机视觉的最后一节,我们将学习深度估计。从深度的概念和度量入手,依次学习单目深度估计和双目/多目深度估计,需要知道深度估计的经典方法,掌握深度估计的评价标准,注意结合对极几何进行分析和思考。

一、深度的概念和度量方式

1.1  深度的概念

  • 深度指场景中物体表面到相机的距离,即图中𝑷 (𝑐)点的𝑍 (𝑐)坐标
  • 采用深度图(Depth Map)表征,图中每点的取值代表对应像素的深度值

1.2  深度的度量方式与设备

1.2.1  结构光

  • 结构光:将特殊结构图案(如离散光斑、条纹、编码结构光等)投影到空间物体表面上,用另一个相机观察在三维物理表面成像的畸变情况,进行图像匹配比较并计算出深度
  • 属于主动光探测方案
  • 技术成熟、便携、低延时,适用于较近距离

1.2.2  ToF

  • Time-of-Flight (ToF)向目标连续发送光脉冲,用传感器接收从物体返回的光,通过探测光脉冲的往返飞行时间测距
  • 属于主动光探测方案
  • 适用于较远距离,传感器复杂、成本高、深度图稀疏

1.2.3  双目视觉

  • 双目视觉技术:利用两个标定好的RGB摄像头采集图像,通过匹配对应点,获取的二维图像像素点的深度
  • 属于被动光探测方案
  • 精度依赖于双目匹配算法,易受到光照变化等因素影响,适用于较近距离
  • 但是,遇到重复纹理、⽆边缘特征时,识别的效果就会很差

二、计算机视觉中的深度估计问题

深度估计:设计计算机视觉算法,根据输入图像,估计出对应的深度图。

根据输入图像的数目分为单目深度估计(Monocular)、双目深度估计(Binocular)、多视角立体视觉 (Multi-View Stereo, MVS)

与基于传感器硬件的解决方案相比,软件算法的深度估计方案成本较低

三、深度估计的应用

3.1  自动驾驶、机器人导航

3.2  3D重构(三维建模、三维地图、3D打印)

3.3  增强现实

3.4  单目3D拍照

3.5  浅景深渲染

3.6  RGB-D 语义分割/目标检测/视觉跟踪

将深度作为额外的辅助信息应用在传统视觉任务中RGB-D:RGB-D 语义分割/目标检测/视觉跟踪

四、单目深度估计

4.1  单目深度估计的概念

目标:利用能够反映深度的线索/提示信息(Cues),从单幅图像中预测出对应的深度图

对弱纹理等挑战区域具有更强的鲁棒性

单目深度估计本身具有较强挑战性

4.2  单目深度线索

4.2.1  近大远小

近大远小:对常见物体的尺寸有大致的估计,根据其在图像中的大小,判断相对位置/距离

4.2.2  纹理的丰富程度

纹理丰富程度:近距离的区域更为清晰,纹理也较为丰富。

4.2.3  遮挡关系

遮挡关系:被遮挡的背景物体距离较远,前景距离较近

4.2.4  平行线与消失点

平行线与消失点:在远离相机的过程中,3D空间的平行线在2D图像上的投影逐渐接近,直至相较于消失点

4.2.5  光影/明暗/纹理

通过光影、明暗与纹理变化,可以轻易推断出物体的三维形状

4.3  单目深度估计的主流方法

  • 单目深度线索较为繁杂多样,手工设计的方法很难全面涵盖上述所有线索
  • 卷积神经网络通过端到端数据驱动的方式,可以很好地学习并集成上述线索,并且适合处理二维图像数据,因而成为单目深度估计的主流方法

4.3.1  基于卷积网络

4.3.2  基于全卷积网络

4.3.3  基于Transformer

4.3.4  基于多任务

4.3.5  基于弱监督

  • 与分割、检测等数据不同,深度真值不适合手工标注,主要依赖于深度传感器采集
  • 由于深度传感器应用场景受限,场景多样化的深度训练数据不易获取,导致模型的场景泛化性能较差

为解决上述问题,Chen et al. 2016年提出一种人工标注稀疏深度真值的方法,即从每一张图像中随机选两点,人工标出两点对应的前后顺序

通过上述标注方法构建了Depth-in-the-Wild (DIW)数据集

DIW数据集规模大(49.6万张图片),场景多样化,真值标注稀疏且是相对的 (每张只包含两个点的相对前后顺序)

由于每张图像仅包含一个深度真值,因而上述网络训练过程属于弱监督学习

由于DIW数据集场景多样化,即使采用弱监督学习,在DIW上训练的模型相较于其他数据集训练的模型具有更强的泛化性能

4.4  相对深度估计

4.5  常见的单目深度估计数据集

4.6  常见的深度估计评价指标(重点)

五、双目/多目立体匹配

5.1  双目/多目深度估计线索

5.2  对极几何回顾

5.3  特殊矫正后的情况

通过矫正两个相机的朝向与位置,使极线为水平线

同一点在两幅图中的视差 (Disparity) 𝑑 = 𝑥1 + 𝑥2 与其深度𝑍成反比

5.4  未经矫正的情况

5.5  基于深度学习的MVS:MVSNet

总结

在本节中,我们学习了深度估计的相关知识。读者需要重点掌握深度的概念和度量方式,单目深度估计和双目深度估计的主流方法,其中,深度估计的评价指标和对极几何是重点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/224161.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医疗影像中DR的骨抑制

1 背景 在DR的拍摄中,根据肺部和脊肋骨两种组织,在不同能量X射线的照射下,衰减的系数不同的特点,可以通过两次不同剂量的曝光后,通过算法,得到一张骨骼的图像和一张肺部图像。 通过一些机构的统计&#x…

MATLAB - 读取双摆杆上的 IMU 数据

系列文章目录 前言 本示例展示了如何从安装在双摆杆上的两个 IMU 传感器生成惯性测量单元 (IMU) 读数。双摆使用 Simscape Multibody™ 进行建模。有关使用 Simscape Multibody™ 构建简易摆的分步示例,请参阅简易摆建模(Simscape Multibody&#xff09…

互联网+建筑工地源码,基于微服务+Java+Spring Cloud +Vue+UniApp开发

一、智慧工地概念 智慧工地就是互联网建筑工地,是将互联网的理念和技术引入建筑工地,然后以物联网、移动互联网技术为基础,充分应用BIM、大数据、人工智能、移动通讯、云计算、物联网等信息技术,通过人机交互、感知、决策、执行和…

Nginx优化(重点)与防盗链(新版)

Nginx优化(重点)与防盗链 Nginx优化(重点)与防盗链一、隐藏Nginx版本号1、修改配置文件2、修改源代码 二、修改Nginx用户与组1、编译安装时指定用户与组2、修改配置文件指定用户与组 三、配置Nginx网页的缓存时间四、实现Nginx的日志切割1、data的用法2、编写脚本进行日志切割的…

IntelliJ IDEA Community(社区版)下载及安装自用版

IntelliJ IDEA Community(社区版)下载及安装自用版 估计是个开发都逃脱不了用IDEA的命运吧,这么好的软件,白嫖了好多年。感恩。 现在很多公司已经不让用商业版的破解版了,所以这里讲的是社区版。 区别: 商…

【单调栈】LeetCode:2818操作使得分最大

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 本文涉及的基础知识点 单调栈分类、封装和总结 题目 给你一个长度为 n 的正整数数组 nums 和一个整数 k 。 一开始,你的分数为 1 。你可以进行以下操作至多 k 次,目标是使你的分数最大&#xff1a…

零基础入门网络安全必看的5本书籍(附PDF)

书中自有黄金屋,书中自有颜如玉。很多人学习一门技术都会看大量的书籍,经常也有朋友询问:零基础刚入门,应该看哪些书?应该怎么学?等等问题。今天就整理了5本零基础入门网络安全必看书籍,希望能帮…

hyper-v ubuntu 3节点 k8s集群搭建

前奏 搭建一主二从的k8s集群,如图所示,准备3台虚拟机。 不会创建的同学,可以看我上上篇博客:https://blog.csdn.net/dawnto/article/details/135086252 和上篇博客:https://blog.csdn.net/dawnto/article/details/135…

Python 数据分析 Matplotlib篇 plot设置线条样式(第2讲)

Python 数据分析 Matplotlib篇 plot设置线条样式(第2讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

Django(二)

1.django框架 1.1 安装 pip install django3.21.2 命令行 创建项目 cd 指定目录 django-admin startproject 项目名mysite ├── manage.py [项目的管理工具] └── mysite├── __init__.py├── settings.py 【配置文件,只有一部分…

【Linux系统基础】(2)在Linux上部署MySQL、RabbitMQ、ElasticSearch等各类软件

实战章节:在Linux上部署各类软件 前言 为什么学习各类软件在Linux上的部署 在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,…

【毕业快刊】IF12分,中科院2区,仅50天录用,17天见刊!国人占比第一!

计算机类 • 好刊解读 今天小编带来Springer旗下计算机领域高分快刊,如您有投稿需求,可作为重点关注!后文有相关领域真实发表案例,供您投稿参考~ 01 期刊简介 Artificial Intelligence Review ✅出版社:Springer ✅…

Wireshark网络工具来了

Wireshark是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。 Wireshark是一个免费开源软件,不需要付费,免费使用,可以直接登陆到Wireshark的官网下载安装。 在windows环境中&#x…

一个利用摸鱼时间背单词的软件

大家好,我是 Java陈序员。 最近进入了考试季,各种考试,英语四六级、考研、期末考等。不知道大家的英语四六级成绩怎么样呢? 记得大学时,英语四级都是靠高中学习积累的老本才勉强过关。 而六级则是考了多次&#xff…

50 个具有挑战性的概率问题 [第 5 部分]:方形硬币

一、说明 你好,我最近对与概率相关的问题产生了兴趣。我偶然发现了 Frederick Mosteller 所著的《五十个具有挑战性的概率问题及其解决方案》这本书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇文章仅包含 1 个问题,使其…

css学习笔记6(盒子模型)

CSS盒子模型 五、CSS盒子模型1.CSS长度单位2.元素的显示模式3.总结各元素的显示模式4.修改元素显示模式5.盒子模型的组成6.盒子内容区(content)7.关于默认宽度8.盒子内边距(padding)9.盒子边框(border)10.盒…

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器 背景 ExoPlayer与Media3的能力结合,为Android应用程序播放多媒体内容提供了强大的解决方案。在本教程中,我们将介绍如何设置带有Media3的ExoPlayer来支持使用M3U8 URL进行直播流。此外&#x…

LeetCode刷题--- 字母大小写全排列

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述递归递归、搜索与回…

阿里云 ACK 新升级,打造智算时代的现代化应用平台

作者:易立 今天,能想到的或是想不到的领域,对容器和 Kubernetes 的需求都居高不减,使这项技术正在真正走向无处不在。 在 2023 云栖大会上,阿里云云原生产品线容器服务负责人易立关于容器服务 ACK 在本届亚运会上应用…

公众号推荐流量玩法的3个秘密

从微信生态的流量触点来看,公众号链接着私聊、朋友圈、微信群、小程序、视频号、搜一搜、看一看等一切与目标用户能接触到的中转站 流量的尽头是私域。而对于大部分普通人来说,公众号可以作为私域的第一站。且相比个人微信号,其有着深度价值…