Pre reading

它山之石可以攻玉,何况别人的方法可能是玉;依照惯例,书中第一章为技术综述,陈述DFP(Digital Fringe Projection)技术相对于其他技术的优势所在,并让大家对数字条纹投影技术这项技术感兴趣(Preface原文:suggests that DFP techniques have some overwhelmingly advantageous properties comparing to other methods for many applications areas.)。

技术综述部分涉及的技术为非接触三维测量技术的一部分分支,具体涉及:飞行时间法(Time Of  Flight) ,激光三角法(Laser Triangulation) ,立体视觉(Stereo Vision) ,结构光(Structured Light)及数字条纹投影技术(Digital Fringe Projection)。结构光部分依据编码类型又可细分为:随机(Random)或伪随机(Pseudorandom Codifications)编码,二值编码方法(Binary Structured Codifications)和N-ary编码方法。

Overview

关于一些三维测量的同义词:

三维光学表面测量技术为使用光学传感器对物理物体表面数字化的一种技术,这种技术又被称为光学三维测量,三维形貌测量,三维光学感知,三维成像或者是三维扫描。

现在开始~~~

随着现代计算技术的发展,很多光学三维测量技术为我们日常生活所使用,如微软公司的Kinect很早之前就用于人机交互的过程中。光学测量的方法花样繁多,该部分的主要目的是概览一些与DFP技术紧密相关的一些经常使用的三维测量方法,为更深刻的理解这门技术提供途径。

飞行时间法

飞行时间法可以单纯的理解为由时间飞了对深度进行测量;该方法的借鉴于蝙蝠的超声测量系统:逐点测量发射以及返回的时间。

但光信号不比声信号,光速的速度极高,单纯从时间进行求解,则需要灵敏度极高的传感器进行时间的测量。

为降低测量难度,TOF技术通过测量经过周期变化的正弦调制信号的相位值来得出深度信息。其相关参数为:1,调制频率(可为恒定值)2,相位值 3,强度值。

由于传感器制造工艺太过复杂,TOF传感器的分辨率依然较低(约320*240),深度分辨率限制在mm级。(当然可能不是绝对的,有一种光梳技术可以使TOF技术达到非常高的深度分辨率,但好像是基于点的距离测量,对这方面了解略少,不予评述)

但该技术具备结构紧凑的优势,使得它在工业自动化、人机交互方面有着较为广泛的应用。

激光三角法

现在绝大多数视觉传感器都是基于三角测量的,激光三角法则是最具有直观代表性的三角法测量实例。

激光三角传感器的示例图如图:(源于Laser Triangulation sensors)

由图中可知,基于激光三角法的测量传感器由激光光源,探测器及对应的聚焦镜头组成。

其测量实现方式为:

1,标定激光测量系统

2,打出(点、线)激光,并通过相应的算法(阈值算法或背景图像相减)将光点和线中心从背景中分割出来

3,逐点或逐行扫描整个测量范围。

4,利用三角方程计算相应的三维信息。

优缺点

优点

由于激光的单向性和抗干扰性好,所以其优势为:

1,具备(深度及横纵向的)高分辨率。

2,高测量精度。

3,能够在室内外进行大件的测量。

缺点

1,扫描需要很长的时间(quite slow)

2,由于光是相干光,因此存在光斑噪声(speckle noise)

1,由于需要

立体视觉(Stereo Vision)

立体视觉技术是一种我们随处可见,经常运用的视觉测量技术;之所以说常见,是因为这种技术除了广泛运用于各种民用及工业领域(3D扫描等)外,这个也是我们的自带属性(人眼)。立体视觉技术最简单的模型为双目立体视觉模型。本小节将对双目立体视觉模型进行介绍:

基本原理

双目立体视觉的基本实现原理还是基于三角法;立体视觉的基本实现要求为:

两个摆放于不同视场角度的相机同时对物体采集二维图像,即可实现对物体的深度感知。

由于本部分只是大致介绍,如需进行原理探索及实践分析,可以相应查阅<Learning OpenCV3>这本书的立体视觉部分及网络链接:Camera Calibration Toolbox for Matlab进行深入研究。

流程

立体视觉的整体实现流程为

1,单目标定:获得相机各自的内外参。

2,双目标定:获得双相机之间的矩阵转换关系。

3,极线校正:获得前向平行的图像。

4,立体匹配:获取视差图。

5,视差转换:获取深度信息。

最重要的细节

1,对于双目立体视觉而言,最重要的一点就是如何寻找匹配点,获取视差图。

双目立体视觉的每一个相机平面都可以和物体平面建立3个方程的单应性关系方程,这6个方程一共将存在5个未知数(x,y,z三维坐标及sl,sr的左右放大比例);因此可以通过最小二乘法进行三维数据的求解。也正是由于方程数大于未知数,所以数字条纹投影技术可以仅利用单方向变化的条纹获取三维位置信息

2,匹配点的获取方法

匹配点的获取方法可以分为局部方法及全局/半全局测量方法。由于匹配点获取技术相对来说门类众多,在这里一带而过。

优缺点

优点:

双目立体视觉的优点为可以同时获取多个特征点信息,从而能够运用于高速测量当中。

缺点:

如前所述,该技术的缺点为:如何获取对应点对?The fundamental limitaition of the method->How to find the corresponding pairs?

结构光技术(Digital fringe projection)

严格来说数字条纹投影技术是属于结构光技术的,但SongZhang老师为了更好的呈现后面的基于相位的结构光技术,于是将基于相位的结构光技术单独作为数字条纹投影技术进行分章介绍。结构光技术与双目立体视觉不同:将一个相机替换成投影设备,投影设备打出带有patterns的调制光便可进行相应的三维重构。

具体的一些细节可以查看这篇发表在2016年OLEN上的综述:Real-time structured light profilometry: A review

本部分图像源于:Structured-light 3D surface imaging: a tutorial

技术分类

结构光技术可以分为三类

1,随机或伪随机编码类

2,二值结构编码类

3,N-ary编码类

随机或伪随机编码类

这种方法比较简单粗暴,也容易理解:打出独特的Patterns,直接通过硬匹配patterns的方式获取对应点。

该方法的patterns在x,y方向上变化,商业上也受到广泛应用,比如Kinect为伪随机条纹的引用案例(3D points can be reconstructed by triangulation using the captured patterns)

伪随机条纹

优缺点

优点:

1,便于理解:直接匹配

2,容易操作

缺点:

由于是二维变化的patterns,所以patterns的大小肯定首先是要大于投影设备的pixel size,然后还要大于相机的pixel size(常识)。因此连像素级的分辨率都达不到。

二值结构编码

提到二值结构编码编码,最常接触的就是Gray code技术。 现在很多三维扫描仪就是采用Gray-code+phase-shifting patterns的方式进行三维测量。

为了方便进行区分,这里提到的二值结构编码编码为二值结构的编码,而不是指包含phase-shifting技术的二值编码技术。

binary code patterns

优缺点

优势

1,简单易懂

2,robust:只有两种强度,没有中间值

缺点

1,分辨率低,这一点和随机及伪随机条纹是一个道理:必须大于像素点的大小才能进行重建

2,速度慢:为了提高分辨率,往往要对patterns进行N次细分,而N次细分的代价是大量的patterns->low measurement speed

N-ary编码

N-ary编码就是N点编码,这种方法是一种多维的方法。具体实现原理为:可能利用了多种强度(灰度)值或者是多种颜色空间对像素点进行编码。

用书中的话就是:utilizes a subset of the range(using all of the gray-scale values)

正是由于这种方法是一种多维度的方法,相比较而言,该方法具备的优点有:

优点

1,高速:不需要像格雷码一样使用多个patterns,显著降低投射所需时间。

2,相对高分辨率:匹配信息比伪随机/随机条纹的码元大小小了一截。

有一利必有一弊,多维的东西不能白让你happy,搞不好容易玩大了,这种方法的劣势有:

缺点

1,测量方法对噪声敏感

为了获得多维信息,可能采用灰度或者彩色的patterns进行投影测量;如果投射编码采用的是多种灰度的patterns,如何将这些灰度信息有效地提取出来?

当投射的是彩色的patterns时,如何应对彩色器件存在颜色混叠的现象?如何对色彩信息进行有效的提取?

2,依然受限于分辨率

虽然通过多维信息可以显著提升分辨率;但每个可分辨信息的大小必然大于像素点大小,所以分辨率总要小于采集及投影的器件的分辨率。

3,易受到相机及投影仪离焦的影响

有许多方法采用了三角条纹或者梯形条纹的方法进行投影;如果采用的是这两种条纹,由于受镜头离焦的影响,这些patterns往往会变成正弦条纹。(但也许这个错误不可怕,可能还很美丽呢?这部分在后续将会提到)

本系列的主人公就此登场

数字条纹投影技术

我们前面提到,像梯形条纹、三角条纹在经过镜头离焦后,很容易转换成正弦条纹(其原理在于镜头离焦相当于一个低通滤波器,将高频信号滤除,保留低频信息),这也就说明sin为上天赋予我们的产物;既然是上天赋予的,我们为什么不用它一用?

这种方法的基本原理在于利用相位信息建立对应关系,因此对物体的纹理变化具备高的鲁棒性。

既然是利用相位信息建立关系,那么就要采用一系列相位获取方法对相位进行获取,比如FTP,WFT和phase-shifting的方法。

FTP全称为Fourier Transform Profilometry,印象中是1978年日本的一位老先生提出来的方法,发表在Applied Optics杂志上。这种方法能利用单帧条纹进行相位获取,但是相对来说容易受到外部噪声的影响。

WFT全称为Windowed Fourier Transform,加窗傅里叶变换,这种方法为FTP的一种改良方法,但万变不离其宗,这种方法受限于邻域测量。

phase-shifting的方法称为相移法,通过相移公式获取(-pi,pi)之间的包裹信息,再利用相应的解包方法获取全场的相位。由于条纹存在三个未知数:基本强度,调制强度和相位值;所以这种方法至少需要三幅相移条纹才能进行相位值的求解。

数字条纹投影测量技术的前身来源于激光干涉技术,激光干涉技术的正弦条纹则是来源于激光干涉;关于数字条纹投影技术的具体基础细节,将在下一部分进行陈述。

技术总结

【数字条纹投影技术基础2】非接触光学三维测量技术综述相关推荐

  1. 数字条纹投影~标准N步相移主值相位计算式推导过程

    基于以下两篇博客: <1>https://blog.csdn.net/qq_15295565/article/details/97412222 <2>https://blog. ...

  2. 【论文笔记】光学三维显微测量,条纹投影,多视点,系统标定,主动型标靶《基于条纹投影的多视点三维显微测量系统研究》(王猛)

    1. 测量范围(chapter1): 微小物体(毫米~厘米尺度) 2. 技术(chapter1): 条纹投影(快速.非接触.高数据密度.高精度) 3. 多视点三维显微测量(MVFP-3DM)系统(ch ...

  3. 全球及中国非接触式红外数字温度计行业研究及十四五规划分析报告

    [报告篇幅]:176 [报告图表数]:210 [报告出版时间]:2021年1月 报告摘要 2019年,全球非接触式红外数字温度计市场规模达到了xx亿元,预计2026年可以达到xx亿元,年复合增长率(C ...

  4. 基于数字光栅投影的结构光三维测量技术与系统研究

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文末福利:按描述操作,可获取原书籍电子版. [摘要] 相位测量轮廓术是目前使用最为广泛的一种结构光三维 ...

  5. 非接触式脉冲激光辅助增材制造技术制备出近乎等轴的Ti-6Al-4V合金

    点击上方「增材制造技术前沿」快速关注 专注于3D打印技术硬知识分享 韩国科学技术院研究人员采用非接触式脉冲激光辅助增材制造技术制备出近乎等轴的Ti-6Al-4V合金,显著降低合金各向异性,相关研究成果 ...

  6. 什么是数字孪生可视化技术

    导读: 数字孪生可视化是一项聚焦数字孪生体多源数据视觉表现形式的专项技术领域,是承担数字孪生体系中人机交互功能的核心技术.通过借助图形手段和可视化技术处理孪生体数据信息,结合三维场景实时渲染和数据建模 ...

  7. 山东大学继续教育计算机3,山东大学继续教育数字电子技术基础试题3及答案.doc...

    数字电子技术基础模拟卷 3 一 填空. 1 逻辑代数中,基本的运算关系是 与 . 或 和 非 . 2 十进制数27转换成二进制数为 11011 :转换成8421BCD码是 00011011 . 3 在 ...

  8. 《数字电子技术基础》4.4/6.5 组合逻辑/时序逻辑电路中的竞争-冒险

    前言 <数字电子技术基础>第4.4节和第6.5节 组合逻辑电路和时序逻辑电路中的竞争-冒险现象学习笔记 4.4 组合逻辑电路中的竞争-冒险 4.4.1 竞争-冒险现象及其成因 之前讨论组合 ...

  9. IDEMIA与JAC合作在日本第五级球场成功测试非接触式生物识别访问技术

    新加坡--(美国商业资讯)--增强身份领域的全球领导者IDEMIA与Japan Aerospace Corporation (JAC)合作,通过屡获殊荣的独特门禁控制生物识别设备MorphoWave™ ...

最新文章

  1. 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )
  2. 单例模式的java实现
  3. 使用WinSetupFromUSB来U盘安装windowsXP(不使用win PE系统)
  4. 76. Leetcode 295. 数据流的中位数 (堆-技巧一-固定堆)
  5. UDP通讯接收案例(组播方式)
  6. Android推送通知指南(转)
  7. LeetCode 916. 单词子集(计数)
  8. python创建dataframe表格不显示_创建列pandas DataFrame数据的表绘图时出现问题?
  9. spring和jdbctemplate
  10. 生产环境Mysql数据库备份脚本
  11. C语言学习资料汇集 助你成为更好的程序员
  12. 零基础CSS入门教程(26)–CSS按钮实例
  13. 扫雷(简易版) 10*10
  14. java 图片 文字居中_完美实现文字图片水平垂直居中
  15. 期货在低位放量下跌的现象(期货高位放量上涨意味什么)
  16. 【JSON】谷歌浏览器JSON可视化插件:JSON-Handle
  17. android修改短信内容,Android手机
  18. Word中如何删除目录页的页码
  19. 【JqGrid】jqgrid合并单元格
  20. mac下编译android源码避坑指南(新)

热门文章

  1. 喝咖啡有饱腹感减肥 赛乐赛怎么样
  2. 利用sfntly的sfnttool.jar提取中文字体
  3. 英语不好怎么自学python_英语不好,能学好Python吗?
  4. 天津大学计算机学院院长及副院长,于瑞国
  5. python开发视频播放器_Python实现的视频播放器功能完整示例
  6. 若水三千,只取一瓢饮之
  7. Java开发手册-1
  8. 《微SaaS创富周刊》第5期:基于A/B测试的20+创富项目盘点
  9. jqgrid 控制列的水平宽度
  10. python adb开发-adb常见用法