小钟第一次写博客,希望把读研期间学习的结构光三维重建的知识还有实验记录下来,并且分享出去,一是希望能帮助跟我研一的时候一样的小伙伴,当时痛苦地读大量文献,从仿真到实验,一个人在奋斗捣鼓,迷茫的时候超级渴望有人能跟我讨论分享,我痛苦的时候没有人能和我讨论,但希望通过这篇文章能帮助到未来跟我一样的小伙伴。二是万一我毕业工作不从事相关的工作,不希望我白看那么多文献,白学了这些东西,记录下来留个念想也好。第一次写,文笔拙劣,有错漏之处忘同行批评指正。不啰嗦了。

结构光三维重建

三维重建的运用越来越广泛,结构光三维重建是其中一种热门的、精度高、速度快且无接触式的技术。

结构光中,正弦条纹结构光是被广泛运用的一种,只需要一个投影仪一个摄像头就可以搭建正弦条纹结构光系统。一般,利用投影仪将正弦条纹投影到被测物体上利用摄像头拍摄被物体高度所调制的变形条纹图样,得到变形条纹图样后,非常重要的一步就是从条纹中获取相位信息,一般有傅里叶变换轮廓术(FTP),相位测量轮廓术(PMP)这两种,前者的原理会在本文详述,而这一技术也引申出了窗口傅里叶、小波变换等方法来提取相位;后者其实就是相移方法,或许有小伙伴听说过的三步相移、四步相移,其实就是PMP,我会找时间再写一篇博客来介绍。在得到相位信息后,由于相位是通过反正切(atan2)求出来的,所以会被截断在[-π,π]或者说是[0,2π]之间,因此另一个关键且重要的一步就是相位解包裹,这里不详细介绍了。最后建立相位——高度映射就可以求出物体的三维形貌。

傅里叶变换轮廓术Fourier Transform Profilometry

为了方便,以下简称FTP。FTP是在1983年有日本的Takeda和Mutoh提出来的,后来也被广泛地运用,例如四川大学的苏显渝教授的组,就有相当多FTP的研究的文章。

如下图,当左边的正弦条纹打在中上的一个平面上的时候,条纹(右上)是不会发生形变的,但当打在了一个有高度变化的物体上时,条纹就会被物体的高度调整而发生形变。而条纹的形变可以理解为相位的变化,那么只要得到相位,就可以知道物体的三维形貌了。(由于用的是我组内pre的ppt,所以很多图内都是英文注释的,见谅)

FTP主要步骤

FTP实际上就是从变形的条纹图样中获取条纹的相位的一种方法。主要的步骤如下:

接下来我会从把物理推导推一遍,不过整体的步骤就是上面的图这样的,实在看不下去也可以考虑跳过,不过认清了整个物理过程,对于理解FTP是非常有帮助的。

物理推导

对于条纹图样,可以写成光强的函数的形式,也可以写成泰勒展开后的形式,这里需要留意的是他们的相位,FTP的最终目的就是要得到

或者做x方向上的1D傅里叶变换(实际操作中实际是做二维傅里叶变换),在得到设计相应滤波器,将其中一个基频分量滤出(如下图中的Spectrum,频谱中有对称的基频分量,因为是一样的,所以只需要其中一半就可以了)。

滤出基频分量后做傅里叶逆变换,就可以得到右边的式子,这式子中只含有基频

刚刚提到要提取相位,因此对取共轭,然后将他们相乘,对相乘后的式子取复对数就可以提取出相位了,相位在式子的虚部中。当然,在实际操作中,相乘和取对数的操作都是不需要的。

得到相位之后,因为通过反正切来求相位,因此相位会截断在[-π,π]或者是[0,2π]之间,因此需要通过相位解包裹来得到连续相位,解包裹算法众多,这里就不详细展开了,有机会再写吧。

根据系统和被测物体的几何关系,可以得到相位和高度的映射关系,最后就可以求出物体的高度信息了。

仿真与实验结果

以下是我仿真的结果,物体使用matlab中的peak函数模拟的。

此外我也做了一个人脸的三维重建,其中解包裹是用质量图导向法(quality guide)来实现的。(脸是实验室的孟同学的友情客串,千万别笑人家!)这是快1年前做的结果,当时没有继续抓精度,和现在做的结果还是有差距的。

部分参考文献

[1]Mitsuo Takeda, Kazuhiro Mutoh.Fourier transform profilometry for the automatic measurement of 3-D object shapes[J].Applied Optics,1983,Vol.22: 3977-3982

[2] 毛先富,陈文静,苏显渝.傅里叶变换轮廓术新理论研究[J].中国激光杂志,2007,(1): 99-104

[3] 毛先富,苏显渝,陈文静,荆海龙.改进傅里叶变换轮廓术的测量算法研究[J].光学学报,2008,(7): 1291-1295

[4] 毛先富,陈文静,苏显渝,边心田.傅里叶变换轮廓术中新的相位及高度算法分析[J].光学学报,2007,(2): 225-229

[5] 苏显渝,谭松新,向立群,李继陶,羡涛.基于傅里叶变换轮廓术方法的复杂物体三维面形测量[J].光学学报,1998,第18卷(9): 77-82

以上就是我对FTP的一些小见解,如有错误,敬请各位大神指正。当然实际操作中有些细节我没往里面写,如果有兴趣也欢迎大家和我讨论。

本文用到的图都是我个人总结归纳和实验得到的,请不要私自拿去用了,谢谢!

傅里叶变换轮廓术Fourier Transform Profilometry(FTP)相关推荐

  1. 相位测量轮廓术Phase Measurement Profilometry(PMP)+相移方法Phase Shifting Method

    之前写了傅里叶变换轮廓术FTP三维重建的方法,那接下来就简单写一下相位测量轮廓术PMP,下面也都直接简称为PMP. 因为PMP用的是相移方法(phase shifting method),所以有很多文 ...

  2. 基于CUDA的离散傅里叶变换(Discrete Fourier Transform,DFT)

    最近在做地震勘探的全波形反演,用分频反演的方法,需要对地震波场按照特定的频段进行傅里叶变换,这要用到DFT.在CPU上,DFT的计算非常耗时,当处理三维数据时耗时更加严重,所以,本人用CUDA+SU( ...

  3. PMP相位测量轮廓术基本原理介绍

    背景介绍 结构光测量技术包括线结构光和面结构光测量,其中,面结构光又包括相位测量轮廓术PMP(phase measurement profilometry),又称为相移测量轮廓术PSP(phase s ...

  4. 量子计算Quantum Fourier Transform (QFT)算法

    量子傅里叶变换(Quantum Fourier Transform,QFT)是量子计算中一个重要的基础算法,可以将一个量子态转换为其在频域的表示.QFT算法在量子计算中有着广泛的应用,例如在Shor算 ...

  5. Python+OpenCV:傅里叶变换(Fourier Transform)

    Python+OpenCV:傅里叶变换(Fourier Transform) ############################################################# ...

  6. 短时傅里叶变换原理及其MATLAB实现(Short Time Fourier Transform,STFT)

    短时傅里叶变换原理及其MATLAB实现(Short Time Fourier Transform,STFT) 1.短时Fourier变换原理(STFT原理) 信号x(t)短时Fourier变换定义为: ...

  7. 【OI向】快速傅里叶变换(Fast Fourier Transform)

    [OI向]快速傅里叶变换(Fast Fourier Transform) 转存于本人博客园 地址 FFT的作用 ​ 在学习一项算法之前,我们总该关心这个算法究竟是为了干什么. ​ (以下应用只针对OI ...

  8. 详解双频光栅图案的轮廓法(PMP和FTP)

    双频光栅图案测量3D轮廓,即通过投影仪投射双频光栅图像到物体上进行测量. 这里双频测量轮廓法总结了两类:双频光栅的相位测量轮廓法和双频光栅的快速傅里叶变换轮廓法.这两种方法也叫做光学相位测量法,是通过 ...

  9. FT(Fourier Transform)在滤波上的应用

    数学真的是一个神奇的科学,美妙之处无法言语形容. 傅里叶变换的推导见博客: 对于非周期的函数就是周期T趋于0,将一般非周期的函数写作傅里叶级数的形式: 其中:就是FT(Fourier Transfor ...

最新文章

  1. 图十字链表并求度c语言,利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现...
  2. Android游戏框架之基础之AA碰撞系统
  3. 更改结构体的内存字节对齐方式--经典
  4. vue-cli新建的项目webpack设置涉及的大部分插件整理
  5. MySQL 数据库图形化管理界面应用种草之 Navicat Premium 如何使用
  6. exists sql用法_干货!SQL性能优化,书写高质量SQL语句
  7. linux中使用lftp上传下载文件
  8. 10.傅里叶变换——傅里叶变换、计算傅里叶变换_3
  9. 【PostgreSQL-9.6.3】表空间
  10. oracle 10g 安装完成后,无法登陆EM的解决办法
  11. [英文邮件] 请求 + 感谢 + 邮件结尾 的表达整理
  12. 橡皮筋框QRubberBand Class
  13. 计算机强制退出程序键,电脑强制关闭程序按哪三个键
  14. 产品和技术解决方案_成功的产品负责人挑战技术解决方案
  15. ios开发之autolayout 第三方框架Masonry
  16. 基于Altium designer软件设计PCB,原理图经验总结
  17. 魔图的制作过程(转)
  18. Zabbix之SNMP部署心得
  19. 如何黑入安卓手机(ezsploit)
  20. 换友情链接时候是换Http的还是Https的好?

热门文章

  1. 女人,男人,... (转载)
  2. 群晖Synology Drive同步规则中过滤指定文件夹
  3. VS2008--VS2013 各种版本官方下载地址
  4. 跟百度网盘说再见?阿里云盘永不限速!永久容量赶快领!
  5. 《程序员羊皮卷》成为电子工业出版社本周重点推荐图书
  6. 如何不用串口线进行连接其他交换机
  7. 桂院导航小程序开发笔记
  8. 浏览器详谈及其内部工作机制 —— web开发必读
  9. AI(人工智能:一种现代的方法)学习之:CSP(Constraint Satisfaction Problems) 约束满足问题:回溯法——前向检查(过滤法)、弧相容检查、 变量排序
  10. 工业物联网网关在机房动力环境监控系统有何作用?