3D立体视觉成像原理介绍【一 】

news2025/1/8 5:12:02

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 什么是基线?
  • 基线是如何影响3D图像质量
  • 激光三角测量
  • 飞行时间
  • 结构光相机
  • 时间编码结构光


前言

本文将介绍3D立体视觉的成像原理,包括【激光三角测量、飞行时间TOF、结构光3D视觉、时间编码结构光】。
再了解3D立体视觉之前,我们需要先了解一下几个问题

什么是基线?

从我们用眼睛观察物体来解释,左眼和右眼之间的距离称为“基线”,大约在6cm左右。所以不难理解,两个相机光轴之间的距离即为基线。
在这里插入图片描述
我们一起来做一个实验,将一个物体放在眼前,然后交替闭上左眼和右眼,我们会发现被观测的物体再视野中的位置会有变化,将被测物体远离我们眼睛的时候,这个变化差异会变小。这个位置上的变化距离我们将其称为“视差”,而视差的变化大小取决于被观测物体离我们双眼(传感器)之间的距离.。我们在计算图像中像素点的深度时,通常需要查找每个像素点在其他视图中的对应点,然后根据两个点在图像中的位置关系计算控件中的对应点到相机之间的距离Z,其计算公式为
在这里插入图片描述
其中f为相机焦距,b为两个相机之间的基线距离,d为视差即对应点在不同视图之间的距离。

基线是如何影响3D图像质量

在3D视觉中,基线是3D成像的关键因素,那么基线的增加对成像系统会有什么影响呢?
1、限制了深度范围和视野 (FOV),因为相机和投影仪之间的重叠减少了。但提高了测量精度
2、存在更多的遮挡区域,其中阴影区域中的细节对于相机和/或投影仪均不可见,导致“空洞”并显示为稀疏数据。
3、增加了物体到相机之间的最小距离。
因此,可用得出结论:更长的基线对图像捕获显然有一些好处。但是,鉴于使用实际工作的性质,这种方法存在相当大的缺点,意味着相机之间的安装距离比我们想象中的要长。

激光三角测量

线激光器是一种可以与相机一起使用的主动光源。 具有成熟技术简单、成本低、速度快、精度高的特点。而 激光三角测量法也是最流行和最常用的 3D 成像技术之一。
在这里插入图片描述

成像原理:
激光线三角测量。
场景中物体上激光线的位移与物体高度成正比。
成像特征:
使用激光器的一个特殊优势是它在环境光作为噪声源的情况下的鲁棒性好,因为激光器发射的波长与环境白光的波长相距甚远。但它也有明显的缺点,首先是单色光源,因此无法拍摄彩色点云。 此外,它的拍照速度非常慢,因为激光必须在物体上下重复扫描以生成点云。 激光三角测量方法可用于传送带扫描场景,而激光器可以固定起来扫描传送带上缓慢经过的物体。
所以采用激光三角测量具有以下特点:
o 激光光源,不受光照的影响,对环境稳定。
o 采用简单的测量原理 。
o 可定制化程度高 。
o 适合输送带应用 。
o 速度慢,因为它需要在场景中进行扫描运动。
o 采集的数据没有颜色信息。

飞行时间

采用时域而非空间域方法进行 3D 成像,飞行时间激光扫描仪(有时称为 LIDAR 系统或激光
雷达)可有效去除基线。 并且通过测量发射的激光和从物体表面反射的激光之间的时间
延迟来获得精确的距离测量值。
在这里插入图片描述

成像原理:
o 测量发射光和反射响应的时间。
o 基于时间延迟(脉冲)和相位。
成像特点:
o 将时间用作“基线”。
o 可能紧凑,无遮挡影响。
o 大测量范围(数百米)。
o 非常快(实时视频速率)。
o 对反射敏感。
o 绝对精度有限。
o 复杂的制造。
o 通常能达到亚高清分辨率。
基于飞行时间的系统通常使用的测量技术包括:
脉冲激光系统:通过测量发射激光脉冲和接收脉冲之间的时间延迟。根据时间与距离成正比,所以相对位置是确定的。其次,这个传输的过程接近光速,所以采集的时间会非常短,所以测量速度会很快。测量效果与基线较短类似,所以精度(或深度分辨率)会降低。
基于相位的系统:通过在发射的激光束上调制正弦波并测量设备发射的波与物体反射的波之间的相位差来工作。与基于脉冲的系统相比,通常测量的精度会更好。缺点是测量范围将会缩小,对环境光(如阳光和反射)的敏感性会增加。 由于光线可能沿多条路径到达物体,因此测量距离可能比实际距离长。
飞行时间系统:向场景发射红外光,然后由相机传感器接收冲场景反射回来的信号,然后通过计算发射到接受用时来计算每个像素点的深度。

结构光相机

在这里插入图片描述

结构光技术与激光三角测量技术有一些相似之处,但要复杂得多,提供的信息要多得多,并能生成更详细的点云。 这是一种“全视野”方法,因为它提供了被拍摄对象的完整 3D 图像,而不仅仅是一条横截面线。
结构光系统采用高强度白光投影仪和相机进行成像。 它们以固定的方向相互排列,投影仪与相机成一定角度,相机与被拍摄场景成直角。
成像原理
o 投影图案。
o 通过场景中物体的变形/位移计算出深度信息。

结构光成像存在的问题:空间结构光的单个投影方式在块平均、分辨率和准确性方面确实面临与双目立体视觉相同的挑战。 结构光系统通常也有与激光扫描仪相同的问题,涉及镜面反射,光亮表面或非常暗和光吸收性的表面。 这些表面通常会导致数据丢失和测量错误。

时间编码结构光

时间编码结构光系统在设计上类似于常规结构光系统,具有与场景成一定角度的高强度投影仪,并且相机正对场景。它们利用空间域和时域技术来提供非常详细的点云,还可以提供 RGB 颜色信息。
简单的结构光方法是将单一图案投射到物体上。时间编码结构光则将一系列独特的图案投射到物体上,相机为整个编码系列拍摄多张图像。在不同时间观察每个像素的强度,并用于建立相机和投影仪中各个像素之间的对应关系。由于使用了时间信息,因此所有计算都在像素级别执行,避免了对空间邻域的分析。
成像原理
o投影条纹
o 通过场景中物体的畸变/位移提供深度信息。
o 测量发射光和反射响应的时间。

影响成像的关键因素
o 时间编码投影图案,逐个像素处理。
o 无需分析空间邻域。
o 消除块平均。
o 不需要表面纹理。
o 空间和时间”的最佳组合。
o 利用时间作为“基线”。
o 可能是最准确的 3D 技术,基本原理决定质量。

参考:https://www.zivid.com/3d-stereo-vision

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

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

相关文章

【JUC2022】第五章 ThreadLocal

【JUC2022】第五章 ThreadLocal 文章目录【JUC2022】第五章 ThreadLocal一、是什么二、案例三、使用规范四、源码分析五、内存泄漏问题六、实际应用 Demo一、是什么 ThreadLocal 提供线程局部变量,这些变量与正常的变量不同,因为每一个线程在访问 Threa…

Qt Widget之QMainWindow

目录 一 QMainWindow整体概况 二 菜单栏 三 工具栏 四 状态栏 五 铆接部件 六 核心部件 七 总体效果 一 QMainWindow整体概况 QMainWindow是主窗口程序,由以下几个部分构成:菜单栏,状态栏,工具栏,铆接部件和核…

Nginx优化服务和防盗链

Nginx优化服务和防盗链一、长连接1、修改主配置文件2、测试3、在主配置文件添加4、验证二、Nginx第三方模块1、开源的echo模块2、查看是否成功3、加echo模块步骤4、网页测试验证三、搭建虚拟主机1、编译安装好nginx后,对主配置文件进行修改2、创建文件3、验证四、防…

Android 源码中的 JNI,到底是如何使用的?

Linux下 JNI的使用学习 Android 其中涉及对 JNI 的使用;JNI的使用对于 Android 来说又是十分的重要和关键。那么到底 Java 到底是如何调用 C/C 的,下面是非常简单的计算器源码,只是用来熟悉JNI的基本语法,其中我自己碰到过的一个问…

Unity 使用L2Localization实现App切换多国语言

Unity 使用 L2 Localization实现App切换多国语言一、L2 Localization介绍二、使用步骤1.导入插件,新建Language和Term2.开始使用,切换语言总结提示:以下是本篇文章正文内容,会提供自己的插件下载地址 一、L2 Localization介绍 这…

day24_多线程进阶

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、线程安全的集合 三、死锁 四、线程通信 五、生产者消费者 六、线程池 零、 复习昨日 创建线程的几种方式 1) 继承 2) 实现Runnable 3) calla…

【jeecg】vue-cli-service不是内部或外部命令,也不是可运行的程序

npm run serve时,报错 vue-cli-service不是内部或外部命令,也不是可运行的程序 参考该链接 ,找到生成的log文件, 在log文件里看到了C盘的地址 找到这个地址,发现里面有 我之前下载的yarn (原来下在了这里)没…

微服务一 实用篇 - 4.1 RabbitMQ部署

《微服务一 实用篇 - 4.1 RabbitMQ部署》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《微服务一 实用篇 - 4.1 RabbitMQ部署》《微服务一 实用篇 - 4.1 RabbitMQ部署》RabbitMQ部署指南1.单机部署1.1.下载镜像1.2.安装MQ2.集群部署2.1.集群分类2.2.设…

B - Build Roads (最小生成树 + 打表)

https://vjudge.net/problem/Gym-103118B/origin 在猫的国度里,有n个城市。猫国国王想要修n -1条路来连接所有的城市。第i市有一家ai经验价值的建筑公司。要在第i市和第j市之间修建公路,两个城市的建筑公司需要相互合作。但是,在修路的过程中…

Windows安装VMware+创建Linux虚拟机

目录1:简介2:功能特点3:VM下载地址4:安装VMware5:下载iso虚拟机镜像6:创建Linux虚拟机7:配置静态ip1:简介 VMware Workstation Pro(曾用名VMware Workstation&#xff09…

供应商绩效管理指南:挑战、考核指标与管理工具

管理和优化供应商绩效既关键又具有挑战性。要知道价格并不是一切,如果你的供应商在商定的价格范围内向你开具发票,但服务达不到标准或货物不合格,你也无法达到节约成本的目标。 供应商绩效管理可以深入了解供应商可能带来的风险&#xff0c…

SpringCloud之认识微服务

文章目录一、传统项目转型二、走进 SpringCloud三、微服务项目搭建3.1 创建一个 SpringBoot 项目3.2 创建三个 Maven 子工程3.3 为子工程创建 application.yml3.4 引入依赖3.5 数据库 建库建表3.6 编写业务提示:以下是本篇文章正文内容,SpringCloud系列学…

Vim笔记

文章目录VIM四种模式命令模式编辑模式末行模式可视化模式扩展内容VIM四种模式 1、命令模式 2、编辑模式 3、末行模式 4、可视化模式 5、VIM四种模式的关系 命令模式 1、命令模式下我们能做什么:① 移动光标 ② 复制 粘贴 ③ 剪切 粘贴 删除 ④ 撤销与恢复 2、进…

【分布式】分布式唯一 ID 的 8 种生成方案

文章目录前言正文什么是分布式ID?分布式ID的特性?分布式ID的生成方案1. UUID2. 数据库自增ID3. 批量生成ID4. Redis生成ID5. Twitter的snowflake算法6. 百度UidGenerator7. 美团Leaf8.滴滴(Tinyid)小结前言 在互联网的业务系统中…

Leaflet基础入门教程(一)

leaflet是一个前端的轻量的gis框架,为什么说它轻量呢。因为相比于传统的“庞大的”GIS框架比如openlayers和mapbox,leaflet不仅代码体积小,而且API构成也极为简单。是GIS行业小白入门级别学习的最好的框架,没有之一。 那么话不多说我们首先来学习一下如何使用leaflet搭建一…

Vue3中hook的使用及使用中遇到的坑

目录前言一,什么是hook二, hook函数的使用2.1 铺垫2.2 hook函数的写法2.3 使用写好的hook函数后记前言 在学习Es6的时候,我们开始使用类与对象,开始模块化管理;在Vue中我们可以使用mixin进行模块化管理;Vu…

2023-03-03干活小计

今天见识了 归一化的重要性:归一化 不容易爆炸 深度了解了学习率:其实很多操作 最后的结果都是改变了lr 以房价预测为例:一个点一个点更新 比较 矩阵的更新: 为什么小批量梯度下降 优于随机梯度下降 优于批量梯度下降&#xff…

Kubernetes 中 Deployment 使用

Deployment的使用 之前我们了解了Replication Controller和Replica Set两种资源对象,RC和RS的功能基本上是差不多的,唯一的区别就是RS支持集合的selector。也了解到了用RC/RS来控制Pod副本的数量,也实现了滚动升级Pod的功能。现在看上去似乎…

【面试题】前端路由分类

0. 前言 在Web开发中,路由是指根据用户请求的URL地址,确定用户访问的页面资源、参数等,是前端开发中不可缺少的重要部分。Vue router中提供了两种路由模式,一种是hash模式,另一种是history模式。 1. Hash模式路由 H…

爆款升级!新系列南卡Neo最强旗舰杀到,业内首款无线充骨传导耳机!

中国专业骨传导耳机品牌NANK南卡于近日发布了全新南卡Neo骨传导运动耳机,打造一款佩戴最舒适、音质体验最好的骨传导耳机。推出第2代声学響科技技术,提供更优质的开放式骨传导听音体验,透过不一样的音质体验,打造更好的骨传导耳机…