相位偏折术原理概述

该文章已生成可运行项目,

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

相位偏折术是一个比较冷门的方向,主要用于测量镜面物体。一直以来,干涉法都是测量镜面最佳方法,精度可以达到波长的几百分之一,但是有一些局限性:

  1. 测量自由面型的镜面物体时,干涉法所需要的光学补偿原件制作复杂且昂贵;

  2. 回程误差,干涉法很难快速标定;

  3. 测量环境苛刻,不适合干涉法测量,因为轻微抖动、温度变化,会给测量记过带来很大误差;

解决:PMD,相位偏折术,对环境不敏感,没有回程误差,因而标定相对简单,可以测量自由曲面。其实偏折术系统跟结构光系统是非常相似的,回顾下它的重建流程:

  1. 标定相机,以及屏幕、相机位置关系

  2. 使用屏幕投影条纹(结构光使用投影仪)

  3. 解码获取表面梯度(结构光直接获取高度)

  4. 梯度积分获取高度信息

额外说明的是,偏折术系统中常说的“精度”达到几纳米,不是传统意义上的“精度”,这是因为偏折术通常用来测量纯镜面反射的物体表面,比如说天文望远镜的镜面,它的模型假设中也假设参考平面跟实测待镜面在同一高度,所以精度甚至可以达到几纳米。

01 原理

单相机PMD系统如图1所示,系统由LCD显示屏、CCD相机和计算机组成:

b1f9f29c27c24723ee96239e6e8604c7.png

图1 PMD系统示意图 [1]

简单原理:

  1. 显示屏显示计算机生成的结构光条纹;

  2. 相机通过待测镜面表面拍摄显示屏上条纹的镜像;

  3. 如果镜面表面不平整的话,则拍摄到的条纹会产生相应的变形;

更复杂原理,如图2所示(由于光路可逆,我们对光线反向描述):

f99a69022f88a4eb2d5f279a1f650560.png

图2 PMD系统原理图 [1]

218873a19689b91c8135231a1d57bb7b.png

d2f9020fdafbac7a0dc26d52c712065b.png

在这个式子的推导中,有一点需要额外注意这个近似条件,实际上它是现有单相机PMD系统中误差的主要来源:

近似条件:我们认为,待测物体的高度要远小于,在点处待测镜面和参考面位置的高度点是完全一致的,忽略了这部分误差,认为相位仅仅与镜面表面梯度相关。

之后的重建步骤:

  1. 相位的获取原理跟结构光相类似

  2. 根据相位获取梯度

  3. 在获取了梯度之后,对 x,y方向分别沿路径进行积分

最终即可获取高度信息。

说明:这篇文章目的仅仅是对相位偏折术的核心原理做个概略性的介绍,完整的推导并未介绍,更多的细节请查看相关论文。

02 特性

相比较来说,PMD有以下优势:

6dad948b71898c027475225f6476fce2.png

51372cedfb814e994be81baacdf32649.png

图3 振动对梯度测量的影响 [1]

因为我们测量的是平面,即零频项信息,其是不包含梯度的,该项的变化不会引起反射光线角度的变化。

  • 对系统随机误差不敏感,因为积分的累积效应,使得随机噪声在积分过程中被很大程度抑制。

  • 获得更准确的曲率信息:

    • 计算曲率是检测面形缺陷的重要手段,梯度测量法仅仅需要对获得的梯度求一阶导数就可以获得曲率;

    • 而直接的高度测量方法则要二阶导数才能获得曲率,计算二阶导数会丢失更多的信息,计算得到的曲率较为不准确;

但相比较来说,梯度测量方法也有以下缺陷:

  • 只能测量连续的镜平面;

  • 积分过程引入误差;

一句话概括,PMD相比较FFP精度更高,但是测量场景受限,只能测量连续的镜平面!

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

8c5210d562e0ec928efa6ac5251577a3.png

9c74c5af2bc30ba40e0a517b89d198af.png

本文章已经生成可运行项目
相位偏折算法在2.5D成像系统中的实现方法及其应用场景。首先解释了相位偏折算法的基本原理,即通过多个不同角度拍摄的图像来计算物体表面的相位信息,进而推导出物体的三维形态特征。文中提供了完整的C++和Python代码示例,涵盖了从原始图像采集到最终生成形状图、镜面反射分量以及漫反射分量的具体步骤。特别地,对于工业环境中常见的高反光表面问题,提出了自适应滤波的方法以提高数据准确性。此外,还讨论了法向量计算过程中需要注意的问题,并给出了高效的解决方案。最后,针对不同的材料特性,如塑料或多层镀膜表面,提出了一种基于偏振特性的镜面/漫反射分离方法。 适用人群:从事机器视觉、光学测量、工业自动化等相关领域的研究人员和技人员,尤其是那些希望深入了解并掌握2.5D成像系统的开发者。 使用场景及目标:适用于需要精确获取物体表面微观形貌的应用场合,比如质量检测、逆向工程等领域。通过对本文的学习,读者可以掌握相位偏折算法的核心思想及其具体实现方式,从而能够独立开发类似的成像系统。 其他说明:附带的源代码不仅可以在理论研究方面提供帮助,在实际工程项目中也有着重要的参考价值。无论是进行快速原型验证还是部署于高性能嵌入式平台,都能找到合适的工具和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值