3D深度相机---结构光

news2024/9/21 4:26:20

去年的仪器仪表的课有汇报,我还专门为3D深度像机做了个调研,一直用inter realsense的,最近老师让看结构光方案的,正好总结一下。

1. 结构光(Structured-light)

由于基于双目立体视觉的深度相机对环境光照强度比较敏感,且比较依赖图像本身的特征,因此在光照不足、缺乏纹理等情况下很难提取到有效鲁棒的特征,从而导致匹配误差增大甚至匹配失败。

基于结构光法的深度相机就是为了解决上述双目匹配算法的复杂度和鲁棒性问题而提出的,结构光法不依赖于物体本身的颜色和纹理,采用了主动投影已知图案的方法来实现快速鲁棒的匹配特征点,能够达到较高的精度,也大大扩展了适用范围。

1.1 基本原理

通过近红外激光器,将具有一定结构特征的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集。这种具备一定结构的光线,会因被摄物体的不同深度区域,而采集反射的结构光图案的信息,然后通过运算单元将这种结构的变化换算成深度信息,以此来获得三维结构。

简单来说就是,通常采用特定波长的不可见的红外激光作为光源,它发射出来的光经过 一定的编码投影在物体上,通过一定算法计算返回的编码图案的畸变来得到物体的位置和深度信息。

1.2 分类

主要分为单目结构光和双目结构光相机。单目结构光容易受光照的影响,在室外环境下,如果是晴天,激光器发出的编码光斑容易太阳光淹没掉。双目结构光可以在室内环境下使用结构光测量深度信息,在室外光照导致结构光失效的情况下转为纯双目的方式,其抗环境干扰能力、可靠性更强,深度图质量有更大提升空间。

 此外,结构光方案中的激光器寿命较短,难以满足7*24小时的长时间工作要求,其长时间连续工作很容易损坏。因为单目镜头和激光器需要进行精确的标定,一旦损坏,替换激光器时重新进行两者的标定是非常困难的。

由于结构光主动投射编码光,因而适合在光照不足(甚至无光)、缺乏纹理的场景使用。

1.3 结构光编码的方式

1.3.1 直接编码(direct coding)

根据图像灰度或者颜色信息编码,需要很宽的光谱范围。

优势:对所有点都进行了编码,理论上可以达到较高的分辨率。

缺点:受环境噪音影响较大,测量精度较差。

1.3.2 时分复用编码(time multiplexing coding)

顾名思义,该技术方案需要投影N个连续序列的不同编码光,接收端根据接收到N个连续的序列图像来每个识别每个编码点。投射的编码光有二进制码(最常用)、N进制码、灰度+相移等方案。

该方案的优点:测量精度很高(最高可达微米级);可得到较高分辨率深度图(因为有大量的3D投影点);受物体本身颜色影响很小(采用二进制编码)。

缺点:比较适合静态场景,不适用于动态场景;计算量较大(因为识别一个编码点需要计算连续N次投影)。

1.3.3 空分复用编码(spatial multiplexing coding)

根据周围邻域内的一个窗口内所有的点的分布来识别编码。

该技术的优势:适用于运动物体。

缺点:不连续的物体表面可能产生错误的窗口解码(因为遮挡)。

1.4 3D结构光目前的使用场景

(1)物体信息分割与识别,3D人脸识别,用于安全验证、金融支付等场景;

(2)体感手势识别,为智能终端提供新的交互方式;

(3)三维场景重建,利用深度相机生成的深度信息(点云数据),结合RGB彩色图像信息,可完成对三维场景的还原,可用于测距,虚拟装修等场景。

1.5 结构光法深度相机的优缺点

1.5.1 优点

(1)由于结构光主动投射编码光,因而非常适合在光照不足(甚至无光)、缺乏纹理的场景使用。

(2)结构光投影图案一般经过精心设计,所以在一定范围内可以达到较高的测量精度。

(3)技术成熟,深度图像可以做到相对较高的分辨率。

1.5.2 缺点

(1)室外环境基本不能使用。这是因为在室外容易受到强自然光影响,导致投射的编码光被淹没。增加投射光源的功率可以一定程度上缓解该问题,但是效果并不能让人满意。

(2)测量距离较近。物体距离相机越远,物体上的投影图案越大,精度也越差(想象一下手电筒照射远处的情景),相对应的测量精度也越差。所以基于结构光的深度相机测量精度随着距离的增大而大幅降低。因而,往往在近距离场景中应用较多。

(3)容易受到光滑平面反光的影响。
 

2. 双目视觉

基于视差原理并利用成像设备 从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息。

3. 光飞行时间法(TOF Time-Of-Flight)

通过红外发射器发射调制过的光脉冲,遇到物体反射后,用接收器接收反射回来的光脉冲,并根据光脉冲的往返时间计算与物体之间的距离。

4. 总结

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

台式电脑怎么格式化重装系统

我们都知道电脑重装系统默认是会格式化磁盘的,那么如果是自己选择需要格式化的其它磁盘需要怎么操作呢?一般我们都是在pe里面手动格式化磁盘,这样就能避免直接格式化导致的某些问题了,下面就来讲讲台式电脑怎么格式化重装系统吧。…

[信息系统项目管理师-2023备考]信息化与信息系统(二)

目录 一、软件工程 1.需求 1.1 需求分类 1.2 需求分析 2.UML 2.1 类图 2.2 对象图 2.3 构件图 2.4 组合结构图 2.5 用例图 2.6 顺序图 2.7 通信图 2.8 定时图 2.9 状态图 2.10 活动图 2.11 部署图 3.软件架构 4.软件设计 4.1 设计模式分类 4.2 能力成熟度模…

Docker:入门

目录 一、Docker简介 二、Docker安装及环境配置 准备工作 ①通过 uname -r 命令查看你当前的内核版本 ②使用 root 权限登录 Centos。确保 yum 包更新到最新 ③卸载旧版本(如果安装过旧版本的话) ④安装需要的软件包, yum-util 提供yum-config-manager功能&…

统计信号处理基础 习题解答6-11

题目&#xff1a; 考虑WSS中估计DC电平问题&#xff0c;给定 其中 是零均值WSS随机过程&#xff0c;ACF为 &#xff0c;估计A。建议在 时用图6.5所示的FIR滤波器的输出来估计A。注意估计量为&#xff1a; 输入 假定在n<0 时为零。为了得到更好的估计量&#xff0c;我们希望…

近邻法总结

目录1.最近邻法2.k-近邻法3.近邻法的快速算法4.剪辑近邻法5.压缩近邻法6.错误率分析1.最近邻法 算法思想 对于一个新样本&#xff0c;把它逐一与已知样本比较&#xff0c;找出距离新样本最近的已知样本&#xff0c;以该样本的类别作为新样本的类别。算法描述 2.k-近…

【MySQL入门实战1】-数据库三大范式

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61…

[oeasy]python0024_ 输出时间_time_模块_module_函数_function

输出时间 回忆上次内容 ​print​​函数 有个默认的 ​​end参数​ ​​end参数​​ 的值可以是任意字符串​​end参数​​ 的值会输出到结尾位置​​end参数​​ 的默认值是 ​​\n​​ 如果​​end​​是空串(​​end""​​) 意味着输出后不自动换行我可以手动在…

自制肥鲨HDO2电源延长线,支持3S~6S动力电池

自制肥鲨HDO2电源延长线&#xff0c;支持3S~6S动力电池1. 问题源由2. 破题思路2.1 10元大钞搞定2.2 两个毛爷爷搞定3. 解决方案4. 最终延长线产出4.1 裸照4.2 成品1. 问题源由 源由&#xff1a; 电池盒电源线接触不良。 肥鲨眼镜的电源盒问题由来已久&#xff0c;而且主要问题…

NNDL实验 知识点梳理

目录 实验内容 编程基础 机器学习基础 FNN CNN RNN 网络优化与正则化 扩展实验 建议自学实验 实验基本步骤 实验涉及知识点 知识点相关细节 更多细节 实验内容 编程基础 NNDL 实验一 numpy NNDL 实验二 pytorch 机器学习基础 NNDL 实验三 线性回归 NNDL 实验…

笔记(上):mysql-DuplicateUpdate和java的threadpool的“死锁“

今天给大家讲讲最近2个有意思的issue&#xff0c;分享一下我学到的 mysql DuplicateUpdate的用法要注意的点java的threadpool使用不当会造成“死锁”问题 mysql DuplicateUpdate的用法要注意的点 有个issue说遇到了一个这样的问题&#xff0c; 这个朋友使用我开源的job调度框…

软件包管理器yum与编辑器vim的使用

目录yum的背景yum的生态yum的本土化&#xff08;换源&#xff09;yum的使用查看软件包安装软件卸载软件vim的使用Vim的基本基本介绍Vim的模式切换Vim的光标定位Vim的文本复制Vim的文本编辑Vim的底行模式的操作vim的配置管理员权限(sudo)的配置yum的背景 yum的生态 在日常的生…

Node.Js基础知识

Node.Js架构 Natives modules 当前层内容由JS实现提供 应用程序可直接调用库&#xff0c;例如&#xff1a;fs、path、 http等JS语言无法直接操作底层硬件设置&#xff08;–》Builtin modules 胶水层&#xff09; Builtin modules 胶水层 在V8引擎下&#xff0c;主要是帮助…

geomtextpath | 成功让你的ggplot注释拥有傲人曲线!~

1写在前面 最近的世界杯结果的确是让人大跌眼镜&#x1f576;️, 日本队&#x1f1ef;&#x1f1f5;先后击败世界杯冠军, 德国队&#x1f1e9;&#x1f1ea;和西班牙队&#x1f1ea;&#x1f1f8;, 韩国队&#x1f1f0;&#x1f1f7;逆转葡萄牙&#x1f1f5;&#x1f1f9;, 踩着…

定时轮询-长轮询-websocket

一般网页 点击网页后&#xff0c;前端向后端 发送请求&#xff08;使用http协议&#xff09; 那么如何实现后端主动先前端发送数据&#xff0c;比如&#xff1a;网页游戏 聊天室 文件共享 扫码登入 http定时轮询 &#xff08;轮询&#xff09; 在前端代码中每隔一段时间向后…

宝塔面板Linux

目录 1.宝塔面板简介 2.安装与连接 3.安装软件 4.端口管理 5.宝塔面板设置 这里主要讲的是宝塔面板的主要操作&#xff0c;本节应与xshell与xftp共同使用 1.宝塔面板简介 宝塔面板是一款服务器管理软件&#xff0c;支持windows和linux系统&#xff0c;可以通过Web端轻松…

第六章- Verilog HDL 高级程序设计举例【Verilog】

第六章 Verilog HDL 高级程序设计举例【Verilog】前言推荐第六章 Verilog HDL 高级程序设计举例状态机用状态机设计1101序列检测器需要定义几个状态&#xff1f;代码设计——端口信号声明状态寄存器次态生成逻辑设计(C1模块)输出逻辑设计(C2模块)完整代码测试结果用状态机设计1…

vSphere-ESXi

VMware-vShpere 第一步&#xff1a; 在VMware虚拟机上安装一台ESXI 开启虚拟机 至此&#xff0c;虚拟机ESXI安装完毕 第二步&#xff1a;使用ESXI虚拟机IP上浏览器 登录后&#xff0c;上传一个映像文件至ISO文件 将VM虚拟机关机 手动添加一块硬盘 然后再使用虚拟机IP进入浏览器…

python入门——基础语法

python入门——基础语法 注释 单行注释&#xff1a;使用# 多行注释&#xff1a;使用 “”" “”" type()&#xff1a;查看数据的类型 int()&#xff1a;转化为整数 float()&#xff1a;转化为浮点数 str()&#xff1a;转化为字符串 标识符不可以使用这些 …

Spring WebFlux简单使用

官网&#xff1a;https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html 1.WebFlux介绍 Spring WebFlux 是 Spring Framework 5.0中引入的新的响应式web框架。与Spring MVC不同&#xff0c;它不需要Servlet API&#xff0c;是完全异步且非阻…

蓝桥杯嵌入式LCD屏幕

文章目录前言一、拷贝官方例程二、cubeMX配置三、LCD代码及函数分析使用四、sprintf函数总结前言 本篇文章将带大家学习LCD屏幕的操作&#xff0c;LCD的配置是非常复杂的&#xff0c;在比赛上去实现这些驱动程序基本上是不可能的&#xff0c;当然了比赛官方也是知道这一点的&a…