结构光的概念及其实现三维成像的主要原理

2023-11-01

        结构光三维成像的硬件主要由相机和投射器组成,结构光就是通过投射器投射到被测物体表面的主动结构信息,如激光条纹、格雷码、正弦条纹等;然后,通过单个或多个相机拍摄被测表面即得结构光图像;最后,基于三角测量原理经过图像三维解析计算从而实现三维重建。

        基于结构光的三维成像,实际上是三维参数的测量与重现,主要是区别于纯粹的像双目立体视觉之类的被动三维测量技术,因而被称为主动三维测量。因为他需要主动去投射结构光到被测物体上,通过结构光的变形(或者飞行时间等)来确定被测物的尺寸参数,因此才叫做主动三维测量,嗯,相当主动。

        首先,结构光的类型就分为很多种,既然是结构光,当然是将光结构化,简单的结构化包括点结构光,线结构光以及简单的面结构光等。复杂一点的结构化就上升到光学图案的编码了。结构光投射到待测物表面后被待测物的高度调制,被调制的结构光经摄像系统采集,传送至计算机内分析计算后可得出被测物的三维面形数据。其中调制方式可分为时间调制与空间调制两大类。时间调制方法中最常用的是飞行时间法,该方法记录了光脉冲在空间的飞行时间,通过飞行时间解算待测物的面形信息;空间调制方法为结构光场的相位、光强等性质被待测物的高度调制后都会产生变化,根据读取这些性质的变化就可得出待测物的面形信息。

        下面以一种应用广泛的光栅投影技术(条纹投影技术)为例来阐述其具体原理。条纹投影技术实际上属于广义上的面结构光。其主要原理如下图所示, 即通过计算机编程产生正弦条纹,将该正弦条纹通过投影设备投影至被测物,利用CCD相机拍摄条纹受物体调制的弯曲程度,解调该弯曲条纹得到相位,再将相位转化为全场的高度。当然其中至关重要的一点就是系统的标定,包括系统几何参数的标定和CCD相机以及投影设备的内部参数标定,否则很可能产生误差或者误差耦合。因为系统外部参数不标定则不可能由相位计算出正确的高度信息。

 下面以个人自制的系统进行的实验过程来讲解其原理。第一步,编程产生正弦条纹图,因为后续要利用变形条纹图获取相位,而获取相位的算法也有多种,此处采用的是四步移相法,具体原理去查文献,不再累述。因此这里产生四幅相位差pi/2的条纹。然后将该四幅条纹分时投影到被测物(面具)上,采集到如下四幅被调制条纹图,同时要采集四幅参考面的条纹(未被调制,同样四幅)。
 

第一步,编程产生正弦条纹图,因为后续要利用变形条纹图获取相位,而获取相位的算法也有多种,此处采用的是四步移相法,具体原理去查文献,不再累述。因此这里产生四幅相位差pi/2的条纹。然后将该四幅条纹分时投影到被测物(面具)上,采集到如下四幅被调制条纹图,同时要采集四幅参考面的条纹(未被调制,同样四幅)。

第二步,相位恢复

由采集到的四幅受调制条纹图计算出被调制相位,这里得到的相位图是截断相位图,因为四步移相算法得到的结果是由反正切函数计算所得,因而被限制在[-pi,pi]之间,也就是说每当其值超过该范围,又会重新开始。得到的相位主值如下图所示:

解决上述问题需要消跳变,即将截断相位恢复为连续相位。如下所示,左边为受调制的连续相位,右边是参考连续相位。

第三步,上述二者相减得到相位差,该相位差则表征了被测物相对参考面的高度信息,再代入相位与高度转化公式(其中相应参数经过标定),得到如下三维模型。

下面是本实验室研制的集成化3D结构光成像系统及其相关应用(变形测量,钥匙复制)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

结构光的概念及其实现三维成像的主要原理 的相关文章

  • 4.0寸86盒显示屏调试(三)

    读取了个把星期也没读取出正确的ID号 最终放弃了读取 考虑是不是液晶屏根本没有输出功能 在使用SPI驱动以后 也没有显示白屏或者任何可以让人感觉驱动正确的现象 最终也放弃了在SPI上搞出个现象 转而使用RGB协议直驱 但还是没有结果 最后还
  • 百奥赛图财报解读:CRO业务枝繁叶茂,“千鼠万抗”遍地生花

    命运对勇士说 你无法抵御风暴 勇士回应 我就是风暴 这段对话是对中国创新药行业最好的诠释 回顾中国创新药近十年高速发展期 上千家创新药公司先后诞生 行业被资本推动一路 狂飙 根据医药魔方数据 创新药一级市场报道的融资额从2013年的36亿元
  • 计算机毕业设计-基于SSM的音乐播放器管理系统

    项目摘要 随着社会的发展 计算机的优势和普及使得音乐播放器管理系统的开发成为必需 音乐播放器管理系统主要是借助计算机 通过对首页 音乐推荐 付费音乐 论坛信息 个人中心 后台管理等信息进行管理 减少管理员的工作 同时也方便广大用户对个人所需
  • openGL增强表面细节--高度贴图

    openGL系列文章目录 文章目录 openGL系列文章目录 前言 一 高度贴图原理 二 代码实现 1 c 主程序 2 着色器程序 运行效果 源码下载 前言 现在我们扩展法线贴图的概念 从纹理图像用于扰动法向量到扰乱顶点位置本身 实 际上
  • 深度学习环境配置5——windows下的torch-cpu=1.2.0环境配置

    深度学习环境配置5 windows下的torch cpu 1 2 0环境配置 注意事项 一 2021 10 8更新 学习前言 各个版本pytorch的配置教程 环境内容 环境配置 一 Anaconda安装 1 Anaconda的下载 2 A
  • SystemServer启动服务

    一 启动流程 SystemServer的在Android体系中所处的地位 SystemServer由Zygote fork生成的 进程名为system server 该进程承载着framework的核心服务 startSystemServe
  • 超强语义分割算法!基于语义流的快速而准确的场景解析

    论文地址 https arxiv org abs 2002 10120 代码地址 https github com donnyyou torchcv 该论文提出了一种有效且快速的场景解析方法 通常 提高场景解析或语义分割性能的常用方法是获得
  • C语言图形库——EasyX基本贴图

    在C语言的学习过程中 接触最多的就是黑乎乎的DOS窗口 这也是在消磨学习者的兴趣 学到最后可能还不知道C语言到底能做什么 难道就是输入输出数据吗 当然不是 C的用处很广泛 这里不做讨论 我们能不能用C语言做些好玩的东西 当然可以 我们可以做
  • 玩转oled屏(基于SPI协议)

    玩转OLED屏 一 简介 一 SPI协议简介 二 OLED简介 二 OLED滚动显示长字符 一 常用OLED滚屏命令 1 水平左 右移 2 垂直和水平移动 二 取字模 三 OLED屏滑动演示 三 OLED显示温湿度 总结 一 简介 一 SP

随机推荐

  • 爬虫漫游指南:加速乐__jsl_clearance破解

    爬虫漫游指南 JS破解之加速乐 本文会介绍加速乐cookie中的 jsl clearance的生成方式 纯粹技术讨论 如果侵害到任何人的利益 请联系本人邮箱yu haojia foxmail com 会立刻删除 如何识别加速乐 使用加速乐的
  • @RefreshScope工作原理

    本文主要从两个层次来分析 RefreshScope 1 加了 RefreshScope注解的bean是如何注入到IOC容器中的 2 触发 RefreshScope后IOC容器是如何工作的 注 本文不讨论 RefreshScope是如何触发的
  • Vue项目中使用Mapbox完成GIS可视化

    1 项目准备 首先准备好Vue项目 然后安装mapbox依赖 npm install save mapbox gl 项目结构 首先需要引用mapbox的css样式 虽然在index html里面直接引用cdn也有效果 但是不建议直接修改in
  • 计算机毕业论文选题

    今天给大家整理了关于计算机毕业设计选题 供大家参考 教学进度管理系统设计与实现 基于SSM的学科竞赛管理系统 办公管理系统设计与实现 库存管理系统设计与实现 人事管理系统设计与实现 财务管理系统设计与实现 基于jsp和ssm的客户关系管理系
  • 每天一个面试知识点Java(6)java中堆内存、栈内存、常量池详细讲解,学完就考同事

    Java程序是运行在JVM Java虚拟机 上的 因此Java的内存分配是在JVM中进行的 JVM是内存分配的基础和前提 Java程序的运行会涉及以下的内存区域 寄存器 JVM内部虚拟寄存器 存取速度非常快 程序不可控制 栈 存放基本类型的
  • Springboot框架整合jsp开发【干货满满】

    晚安独角兽 hello你好我是独角兽 很高兴你能来阅读 昵称是希望自己能不断精进 向着优秀程序员前行 博客来源于项目以及编程中遇到的问题总结 偶尔会有读书分享 我会陆续更新Java前端 后台 数据库 项目案例等相关知识点总结 感谢你的阅读和
  • verilog中的基本数据类型

    Verilog 最常用的 2 种数据类型就是线网 wire 与寄存器 reg 其余类型可以理解为这两种数据类型的扩展或辅助 一 线网 wire wire 类型表示硬件单元之间的物理连线 由其连接的器件输出端连续驱动 如果没有驱动元件连接到
  • 炫酷的登录界面--20230907

    Login Form with floating placeholder and light button HTML div class login box h2 Login h2 div
  • docker安装ElasticSearch8.x和Kibana8.x

    安装es和kibana 1 访问镜像官网 https hub docker com 搜索elasticsearch kibana进行查找 选择合适的版本 这里选择 elasticsearch 8 8 0和 kibana 8 8 0 2 下载
  • 编写程序,由键盘输入三个整数分别存入变量num1,num2,num3,对他们进行排序,并且从小到大输出。

    var num1 prompt 请输入数字1 var num2 prompt 请输入数字2 var num3 prompt 请输入数字3 prompt 返回的值类型是string 用 将num先转换成number再比较 if num1 lt
  • GitHub上README.md文章的上传图片和图片大小尺寸

    看到别人的仓库里的readme md有图文介绍 自己试了一下 发现并不成功 学习了一下 主要有以下几个步骤 1 上传图片到github 并且要Commit changes 2 返回仓库目录打开刚才上传的图片 复制此时的网页地址栏连接 例如这
  • CAN15765和1939协议

    1 15765协议介绍 简单的来说 15765协议指的是 基于CAN2 0A B 协议 也可以叫做ISO11898协议 链路层 硬件接口的 应用层 通讯协议 它用于实现通用的车辆诊断服务 ISO11898协议参考下图 参考搜索到的 CAN总
  • STC15F2K60S2单片机的串口通信程序及相关知识

    一 STC15F2K60S2单片机简介 中国深圳宏晶STC系列单片机是2005年推出中国本土的第一款具有全球竞争力的 且与MCS 51兼容的STC系列单片机 它完全兼容51单片机 是新一代增强型单片机 速度快 抗干扰性强 加密性强 带ADC
  • 解决WIN10 ,在资源管理器搜索文件时,必须按回车才能开始搜索的问题

    解决WIN10 在资源管理器搜索文件时 必须按回车才能开始搜索的问题 在使用WIN10中 在资源管理器中经常搜索文件 而每次搜索文件时 必须按回车才能开始搜索 不像WIN7那个 每输入一个字符 就自动搜索所输入的字符或字条串 如果偶尔用一下
  • 李宏毅对抗生成网络 (GAN)教程(3)Unsupervised Conditional Generation

    文章目录 两大类做法 一 Direct Transformation Cycle GAN Star GAN 二 Projection to Common Space 1 共享参数 2 加一个domain discriminator 3 Cy
  • vue中自定义table的样式不生效

    页面中style带有scoped导致不生效 只能写在全局样式中
  • vector容器

    前言 vector的数据安排以及操作方式 与数组十分相似 他们的唯一差别就是数组是静态空间 而vector是动态空间 当他要去扩容空间的时候 编译器内部会帮助我们去寻找一片新的空间 自动释放以前旧的空间 在vector的实现技术中 关键在于
  • python selenium 用IE下载报 要打开或保存来自 提示问题的一种解决办法

    import win32api import win32con time sleep 2 alt s快捷键 win32api keybd event 0x12 0 0 0 按下alt win32api keybd event 83 0 0
  • 以太坊智能合约字节码深入解析

    智能合约编写好之后需要通过编译器编译后才能在虚拟机上运行 智能合约的编译结果称为字节码 字节码是一串十六进制数字编码的字节数组 字节码的解析是以一个字节为单位 每个字节都表示一个EVM指令或一个操作数据 我们通过一个简单的智能合约来分析智能
  • 结构光的概念及其实现三维成像的主要原理

    结构光三维成像的硬件主要由相机和投射器组成 结构光就是通过投射器投射到被测物体表面的主动结构信息 如激光条纹 格雷码 正弦条纹等 然后 通过单个或多个相机拍摄被测表面即得结构光图像 最后 基于三角测量原理经过图像三维解析计算从而实现三维重建