一、摘要

结构光三维视觉测量方法不需要直接接触被测物体,不会磨损被测物体表面,且具有速度快、精度高、实用性高等特点,是进行三维测量的最佳方法之一。而单目结构光视觉测量系统与双目相比,具有成本低、算法简单、测量视野大等优势。

问题:单目结构光三维视觉测量系统的测量精度与鲁棒性易受环境光线和测量背景影响,现有投影仪标定算法大多精度不高、鲁棒性较低。

选择硬件:投影仪+相机,选择彩色相机+小的可以存储图像的投影仪。

格雷码+四步相移的结构光编码方案。

标定:相机标定、投影仪标定、立体标定

本文设计的测量系统能够完成高精度的投影仪标定,能够适应复杂的测量环境、鲁棒性较高、测量结果可靠性较高,三维测量精度可达微米级,并且硬件成本较低,具有较高的实用性和良好的应用前景。

二、绪论

平面平整度测量、表面划痕深度测量、轮胎表面字符检测

三维测量技术主要可分为非接触式测量和接触式测量。

相比于传统的接触式三维测量手段,基于机器视觉的非接触式结构光三维视觉测量技术具有高准确性、高速、成本低等优点。

非接触测量减少了对被测物体表面的磨损和损坏风险,并且适用于各种柔软、坚硬材料的表面三维信息测量,应用广泛,应用在考古、机器人导航、工业检测、
地图测绘、医疗等领域

现状:内外结构光三维视觉测量技术大体可分为如下几类:激光三角测量法、飞行时间法、激光干涉测量法、编码结构光法。

点结构光、线结构光、面结构光

点云拼接

存在问题:
(1)对测量环境要求较高。对环境光线较为敏感,光线较亮或光线在测量视野中分布不均都会对测量结果产生较大影响;被测物体自身表面纹理和测量视野中背景较复杂也会对结构光的解码造成较大影响最终导致三维测量精度下降。
(2)现有的结构光三维视觉测量系统大多采用双目或多目摄像机,硬件成本较高。而对于单目结构光测量系统中投影仪的标定,一直是研宄难点,由于易受相机标定和解码结果的影响,形成误差积累,因此标定精度较低。
(3)测量速度、测量精度一直是结构光三维视觉测量系统的一对矛盾点。想要测量精度较高,则通常需要付出测量速度的代价;若追求高速,则只能选用较简单算法,达不到所需测量精度。

单目结构光法是从最初的单目图像处理发展而来,使用单个摄像机只能获取到被测物体的二维信息,无法测量被测点的深度值。在单个摄像机基础上,加上投影仪投射的结构光后,通过图像处理技术可以从二维图像获取被测物体的三维信息。该方法主要原理是基于三角测量技术的,通过建立被测物体、摄像机和投影仪的三角位置关系计算被测物体上一点的三维坐标。双目结构光测量方法是从双目立体视觉发展而来,双目立体视觉可以通过特征点匹配建立两个摄像机图像平面上像素点之间的对应关系,从而获取被测物体的三维信息。但是在实际测量过程中,往往特征点稀少,常常出现误匹配现象。使用投影仪投射结构光至被测物体表面可增加其表面纹理,增加特征点,提高匹配成功率。

单目结构光法在测量精度以及抗噪性上有一定差距。但是单目结构光法的特点在于比双目少一个镜头,更简洁、更紧凑、更便宜、更方便使用,所以更加适合不同场景的工业应用。同时,双目结构光系统的测量视野为所有摄像机的公共视野,其测量视野较小,容易造成遮挡形成盲区,无法测量表面区域较大的对象。与之相比,单目系统测量视野较大,能够有效避免遮挡问题。

成本低、视野大、易用性强
结构组成:整个测量系统由计算机、投影仪、摄像机、图像采集卡和被测物体组成。

其中OXY为自由选取的参考平面,假设所选取的参考平面与摄像机和投影仪之间连线平行,为投影仪镜头光心即为投影中心,在参考平面的投影点为,为摄像机镜头光心,在参考平面的坐标为,为投影中心到摄像机光心之间的距离,称为基线距离,为到参考面之间的距离。由于连线平行于参考平面,所以也同样为摄像机光心到参考平面的距离。为被测物体表面上一点,该点在参考平面上的投影为。摄像机与投影仪和物点的连线分别交参考平面于A,B两点。三角测距的核心原理是根据图中的相似三角形关系和相位坐标关系由被测物体表面一点的相位得到该点的高度信息。

编码+解码+系统标定->三维点云

相机分辨率:51203840
投影仪:1920
1080

软件部分主要负责读取摄像机拍摄的图像信息并对图像进行处理、系统标定、结构光解码以及三维测量工作。

Ubuntu+QT+Opencv

QT的优点
(1)优良的跨平台特性
(2)面向对象的思想
(3)丰富的API:支持2D/3D图形渲染,支持OpenGU

本文的软件系统由如下几个模块组成:任务调度模块、持久化与可视化模块、光栅投影模块、图像采集模块、系统标定模块、图像处理与解码模块、三维测量模块。

三、结构光编解码与背景剔除算法
结构光编码的目的是为了给每个像素点设定一个编码值,设定的编码值蕴含在结构光光栅图像中,然后使用投射结构光的方式将编码值投射至被测物体表面;结构光解码的目的是为了获取摄像机拍摄的调制图像中任一像素点对应的编码值,从而通过编码值建立起摄像机、投影仪和被测物体之间的三角关系完成三维测量。

结构光编码从实现原理角度分类,大致可分为两大类:时间编码方案和空间编码方案。其中时间编码方案是最常用的编码方案,该方案根据投射图案的时间顺序进行编码,将一系列的编码图案连续投射至被测物体表面,每一像素点的编码值均通过一系列编码图案上对应位置处的像素值确定。时间编码方案中主要包括二进制编码、灰度编码、相移编码和格雷码等。这种编码方案容易实现,可以获得较高的测量精度,抗干扰能力较强,能够适应各种复杂测量环境,且鲁棒性较高。但是,该方案需要投射多幅编码图案,因此测量效率较低,使得该方案仅适用于对静态场景的三维测量。空间编码方案大多采用单一的编码图案,只需要投射单幅编码图案即可完成三维信息的测量。图案中每个像素点的编码值可根据其邻域内其他像素点的信息确定,如颜色信息、几何信息等,若邻域内其它像素点的信息丢失,则会导致解码错误。空间编码方案主要包括非正式编码、 De Bruijin序列编码和M—阵列编码等。由于空间编码方案只需要投射单幅编码图案,因此测量效率高,适用于动态场景的三维测量。但是,由于单幅编码图案携带的信息量有限,所以该编码方案测量精度不高、鲁棒性较低、容易引入测量误差,且编码和解码过程比较复杂。比如若存在遮挡关系或者阴影,容易使得某些点的编码信息不能正确的获得,造成解码错误,因此该编码方案不适用于环境复杂场景。

在保证精度和鲁棒性的前提下,进一步减少投射光栅数量和提高解码速度与三维测量精度。
由于格雷码具有相邻两个码值只有一位发生变化的特点,即从当前编码值到下一编码值之间只存在一位的跳变,从而可以更加方便的检测条纹编码值是否出错,可以有效避免竞争冒险现象。

相移编码是时间编码方案中最主流的方法,它使用一系列灰度值呈正弦变化的光栅图案,其中每幅图案相差一个固定的相位值。由于这种编码方案是通过多幅移向光栅求解相位值进行三维测量,因此在相位求解的精度方面具有突出优势,具有全分辨率结果,而且在不同的背景环境、材料特性下都可获得较高测量精度。但是相移法相比于其它时间编码方案,解码过程较复杂,特别是相位展开较困难,不同的相位展开算法对测量精度和速度影响较大。

如上文所述,综合以上各种时间编码方案的优缺点,相移编码方案分辨率最高,可以达到全分辨率。该方法可以得到较高精度的相位值但是难以得到绝对相位值,特别是当被测物体表面相位存在大于或等于的不连续值时,很容易得到错误的绝对相位值。然而,格雷码编码可以提供绝对的相移,但是其分辨率不足,其分辨率随投射的结构光光栅图案数目增多而增大,显然投射光栅图案数目过多会使测量开销太大。如果结合两种编码方案形成优势互补,则不仅可以解决相移法中求取绝对相位值的难题,而且可以解决格雷码方法中分辨率不足的问题,获得较高的测量分辨率,故本文选取相移法加格雷码的编码方案。

在一组二进制数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码。并且,在格雷码中,最大数与最小数之间也仅有一位数不同,即“首尾相连”,所以也称为循环码或反射码。它是一种可靠性编码,两个码字之间的汉明距离为1,是一种错误最小化的编码方式。

格雷码的编码方式足采用黑白条纹分别代表格雷码中的0和1。本文采川8位256级灰度级,1色条纹灰度值设为255,白色条纹灰度值设为0。

若向被测物体表面投射n幅格雷码光栅图案,按投射先后顺序组合起来即可以得到个n位的码字,可以对个条纹区域进行编码,即可将测量视野划分为个条纹区域。例如,若图像的分辨率为512x512,则想要图像横坐标上每个像素点都具有唯一编码值,需要使图像横坐标上每个像素单独成为一个条纹区域,故需要个码字,需要投射9幅编码格雷码光栅。本文采用格雷码加相移法的编码方案,借助相移法仍然可以在n较小的情况下得到较高解码精度。

在格雷码划分的最小条纹区域内,相位是连续的,在同一方向上,每个条纹区域内每个像素点的相位值是唯一确定的,理论上可以将测量视野内同一方向上的像素点划分至无数多个区域。

本文采用灰度值在横坐标方向上呈正弦变化的正弦光栅。一种是通过机械的的光栅胶片生成,另一种是通过计算机准确的生成正弦光栅图像然后通过DLP投影仪投射至被测物体表面。

计算机生成光栅图像通过使用正弦函数y=sinx变形得到,生成正弦光栅的公式为:

在理论上,要使得格雷码的解码周期即编码格雷码光栅划分的条纹区域与解码得到的相位主值周期一致,如图3.5所示,必须使得格雷码光栅最小栅距为相移光栅周期的4倍,并且编码光栅与相移光栅的投射范围必须严格一致。

本文所采用的投影仪分辨率为1920*1080,即生成的光栅图案横向釘1920个像素点,纵向有1080个像素点。本文采用7幅格雷码光栅,将图像横坐标划分为=128个区域,每个区域包含1920/128=15个像素点。选用四步相移法,相移步长为4。

正弦光栅调制图像非正弦化问题

调整正弦结构光生成公式:周期T,参数A、B
T=60
A=100
B=50

解码:
在编码中,需要将二进制码值转换为格雷码;解码的基本思路就是将摄像机采集到的格雷码值转换为二进制码值。

格雷码转化为二进制码:

B=Bn…B0
解码步骤:
1、对格雷码图案进行二值化
2、将格雷码转换为二进制码
3、将二进制码转换为十进制数,作为解码结果

参考文献:胡华虎. 单目结构光三维视觉测量系统研究[D].湖南大学,2017.

编码结构光三维视觉测量系统(二)相关推荐

  1. 图像凸集投影法_论文分享|数字投影结构光三维测量方法研究

    温馨提示:本文约5600字,阅读全文需约10分钟. 文末福利:按照文末提示操作,输入关键词可获取论文全文. 摘要 人类所处的物理世界空间是三维的,任何实物都以三维的方式呈现.随着社会的进步发展,三维信 ...

  2. 基于EinScan-S的编码结构光方法空间三维模型重建

    基于EinScan-S的编码结构光方法空间三维模型重建 1 相关原理 1.1 编码结构光成像原理 1.2 编码结构光编码方式 1.3 编码结构光与侧影轮廓方法比较 1.4 编码结构光方法流程 2 三维 ...

  3. 双目格雷码结构光三维测量系统原理解析

    背景 比较经典的光学三维测量方法有:双目立体视觉.线激光扫描.格雷码结构光.相移结构光.立体匹配方法误匹配点较多,线激光方法扫描速度慢,相移结构光方法计算效率低,而格雷码方法基本具有以上一个方法的所有 ...

  4. 图像条纹检测 python_【连载2.1】结构光三维检测引言面向强反射表面的多传感器三维检测技术研究...

    本章大纲 2.1 引言 2.2 多传感器三维检测系统介绍 2.2.1 多传感器三维检测总体模型2.2.2 多传感器三维检测系统工作原理 2.3 坐标系统一化全局标定方法 2.3.1 全局标定方法介绍2 ...

  5. 基于相移法的结构光三维测量技术

    1. 结构光三维测量原理 1.1 单目结构光系统 结构光投影三维测量系统主要由一个CCD相机.投影仪和PC机组成,如图所示.首先在PC上进行结构光编码,通过投影仪将编码好的结构光投影至物体表面,再由数 ...

  6. 结构光三维测量几种比较成熟的方法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1.飞行时间发 原理:通过直接测量光传播的时间,确定物体的面型.发 ...

  7. 【论文阅读笔记】Structured-light 3D surface imaging: a tutorial(结构光三维表面成像)

    Geng J. Structured-light 3D surface imaging: a tutorial[J]. Advances in Optics and Photonics, 2011, ...

  8. 基于数字光栅投影的结构光三维测量技术

    概述 欢迎访问 持续更新:https://cgabc.xyz/posts/fb344124/ 本文是在读了论文<基于数字光栅投影的结构光三维测量技术与系统研究>[1]之后做的学习总结,方便 ...

  9. 结构光三维测量(数字光栅投影)

    结构光三维测量(数字光栅投影) 结构光三维测量系统 单目测量系统 双目测量系统 单目系统测量实例 光栅生成 三维点云重建 结构光三维测量系统 目前对于三维视觉来说,有很多种技术,例如双目/多目视觉法. ...

最新文章

  1. 69亿美元英伟达史上最大收购!这家基金又赢了
  2. 【SICP练习】9 练习1.15
  3. java mybatis狂神说sql_狂神说SpringBoot09:整合MyBatis
  4. 这款 20 万开发者使用的开发插件到底经历了什么?
  5. 期末考试前的预习,科目:化工设备与反应器(3)
  6. java中遍历Map的方法
  7. my appointment Fiori customizing里的Calendar checkbox的实现逻辑
  8. VMWare虚拟机三种网络形式
  9. PHP3.2配置文件使ini文件配置
  10. python的规模有多大_Python项目可以有多大?最多可以有多少行代码?
  11. 通达信手机版服务器文件夹,【通达信】通达信的一些目录和系统文件,用法说明。以备查询。...
  12. java 类型通配符_通配符类型
  13. 从零开始学统计 05 | 技术重复和生物学重复
  14. 人月到底有多少神话色彩
  15. Leaflet 可视化--风场、海浪、洋流、气压、温度等
  16. SATA学习笔记 13 ---SATA NCQ
  17. mySql 修改字段属性
  18. 又来了!针对VMware ESXi的新型勒索软件出现
  19. Java版本8u201与8u202的区别
  20. android 自动 轮播图,Android-自定义View实现轮播图

热门文章

  1. What went wrong:Execution failed for task ‘:app:mergeDebugResources‘.> A failure occurred while
  2. Sublime Text 3 汉化包 +注册码
  3. 与时俱进——新一代反垃圾邮件技术
  4. zabbix监控CPU温度
  5. 云测兼职众测平台题目及答案
  6. 2011,仰望那烂漫的冬花
  7. Unity3D的简单商店、背包与装备系统
  8. STC单片机实现智能小车避障功能的C语言例程
  9. [活动]微信小程序悬赏通缉令——你晒程序我送礼
  10. GitLab CI构建SpringBoot-2.3应用