基于AIA改进的移相干涉抗振算法

作者:翟天保Steven

版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

注:本文所讲内容为本人硕士毕业论文:《基于干涉图像质量分析的激光干涉仪抗振技术研究》,如有引用需要标注来源哈,如有疑问可以评论回复也可以邮箱1257147469@qq.com联系我。

前言

移相干涉技术(PSI)虽有高的测量精度,但在现实环境应用中常常被各种外在因素影响:如:干涉仪光学元件质量、激光光源的稳定性、移相器的非线性移相、传感器噪声、环境振动等。在系统实际检测过程中,振动是干涉仪最大的误差来源。由于环境振动多且复杂,为了应对振动影响,在干涉仪的工作环境中常配备相应的隔振设施(如光学平台和隔振垫),即便如此也很难完全消除振动的干扰。

本文介绍了一种移相干涉抗振算法(出自本人硕士大论文),在不依赖硬件外设的条件下,仅通过算法进行一定程度地校正,以达到抗振效果。

一、技术背景

传统的平均算法虽然能一定程度上抑制外在因素引起的干扰影响,但这种抑制效果非常有限,当外在振动较大时,如人员走动、气流波动、仪器运转等,所获取的干涉图解相后会出现明显的振动条纹,此时结果图与真实形貌差距较大,相关的计算数据会有较大的数值波动,即精度误差增加。因此,应用有一定抗振动能力的算法是移相干涉系统具备较强抗振能力的基础和关键。

抗振算法一般分为几类:1)时域分析法,该方法需要获取巨量的干涉图进行分析以求得较为精准的相位分布,在实际环境中,取图时间越长则外在引入干扰越多,因此基于该方法相对理想化的特点,工程中很少选用此类算法;2)空间载频移相法,通过引入空间载波并运用特定算法以实现相位求解,因为只需单帧图,所以受振动影响很小,但该方法一方面会导致出现较大的非共路误差,另一方面需要对系统的硬件部分进行再设计工作,该方法获取的测量面型会丢失较多的高频信息,适合某些场景;3)迭代法,该方法通过将相位分布和移相量进行迭代,以补偿外在因素引起的误差,进而获得抗振效果较优的相位信息,但是该方法易受干涉图对比度差异化的干扰,导致迭代结果不准,且运算时长较久,鉴于对比度差异化的问题可通过改进算法进行改善,且运算效率可通过算法设计进行优化。

本文的抗振算法属于迭代法范畴。迭代法的核心是最小二乘方程,结合最小二乘法的思想设计算法方程,并通过迭代使结果趋近某个数值,达到迭代精度后即可认为该解符合要求。在所有迭代法中,AIA(Advanced Iterative Algorithm)是由 Z.Wang 提出的一种先进迭代算法,该算法起初应用于随机移相干涉技术中,将数值不固定的移相量作为初始值进行迭代,仍可得到较为精确的相位分布,符合随机移相干涉术的要求,运用该算法同样可有效抑制振动引起的扰动影响。

二、AIA原理及实现

AIA算法相比其他迭代算法的优势在于:其将干涉图中所有像素点的背景光强和调制度视为一致,只需要将移相量和相位分布两种变量进行双迭代拟合即可,不仅减少了振动带来的干扰,还大大提高了收敛速度和算法运行效率,且精度高。

AIA的过程为:先由多步平均法计算获取初始的相位分布数据,实现初步的误差补偿;将该初相分布进行AIA求解得到移相量,再由移相量反解相位分布;以此类推,经过多次迭代后,当迭代精度满足一定收敛条件后中断迭代得出精确解。

将其分移相量计算、相位分布计算、迭代中断判断三个过程具体介绍:

(1)移相量计算

将光强表达式改写为:

式中i表示干涉图的序号,共有M帧干涉图;j表示干涉图中像素序号,共有N个像素点。

假设与像素序号j无关,而只与干涉图序号i有关,则可以把分别表示为,因此有:

干涉光强的理论值和实际测量得到的值之间的误差可表示为:

根据最小二乘原理有:

式中:

则可以从解向量得到移相量分布:

(2)相位分布计算

假设与干涉图序号i无关,而只与像素序号j有关,则可以把分别表示为,因此有:

干涉光强的理论值和实际测量得到的值之间的误差可表示为:

根据最小二乘原理有:

式中:

则可以从解向量得到相位分布:

(3)循环迭代与收敛

上述"相位分布计算"和"移相量计算"两个计算过程反复进行构成迭代循环,直到满足以下收敛条件时结束:

式中为迭代精度,一般设定为一个小量;t表示迭代次数且大于1,实际上在实验过程中当迭代3到4次后数值后相位计算值便不再有大的变化,所以一般迭代4次就足够了。
综上可列出AIA算法的算法流程图:

三、基于AIA改进的移相干涉抗振算法原理及实现

当系列移相干涉图组中干涉图像间的对比度差异较大时,即图像间的亮暗程度不一致,AIA 算法在计算过程中不会考虑因对比度不一而导致的权重差异,反而会强行进行迭代拟合,以致产生过度拟合的效果,扩大了误差量。因此,本文算法在AIA基础上引入了不同干涉图对比度的变化补偿因子,使其更加适应实际应用中的环境变化。

将光强分布公式改写为:

分别是初始干涉图不同像素点的背景光强和调制度,݉݅与分别是第i帧图与第一帧相比的波动系数,初始将所有的均设为1。与AIA算法求解过程类似,迭代收敛过程一致,下面只介绍移相量计算和相位分布计算过程中不同部分。
(1)移相量计算

因为在移相量计算中假设与像素序号j无关,所以将其改写为A和B,此步骤计算过程与AIA一样,但是解的意义不同,公式中

可以从解向量得到移相量分布以及背景光强和调制度的波动系数:

(2)相位分布计算

公式改写:

式中i表示干涉图的序号,共有M帧干涉图;j表示干涉图中像素序号,共有N个像素点。
根据最小二乘原理有:

式中:

则可以从解向量得到相位分布,该方程组结合了m和n两个补偿因子,所以结果更加精确。

综上,可列出抗振算法的流程图,如下。

四、总结

我本人从事了五年关于激光干涉的算法研发,我介绍的算法技术基本上都在市场实战中经过了验证,适用于绝大多数场景。还有一些极端场景,需要结合一些机制算法搭配使用,比如筛选合适图像进行解析等等。

我常说的一句话就是算法不是魔法,不可能解决一切问题。如果想把激光干涉仪做精,硬件的打磨是必不可少的,好的硬件搭配好的软件才是一款好的产品。


本人两年的竞业限制已过,后续将分享更多关于光学类的实用技术知识,一定程度上能帮助广大读者快速入门。另外,欢迎各大企业高校联系,开展相关商业合作。

相关推荐
寻寻觅觅☆9 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
fpcc9 小时前
并行编程实战——CUDA编程的Parallel Task类型
c++·cuda
ceclar12310 小时前
C++使用format
开发语言·c++·算法
lanhuazui1011 小时前
C++ 中什么时候用::(作用域解析运算符)
c++
charlee4411 小时前
从零实现一个生产级 RAG 语义搜索系统:C++ + ONNX + FAISS 实战
c++·faiss·onnx·rag·语义搜索
老约家的可汗11 小时前
初识C++
开发语言·c++
crescent_悦11 小时前
C++:Product of Polynomials
开发语言·c++
小坏坏的大世界12 小时前
CMakeList.txt模板与 Visual Studio IDE 操作对比表
c++·visual studio
乐观勇敢坚强的老彭12 小时前
c++寒假营day03
java·开发语言·c++
愚者游世13 小时前
brace-or-equal initializers(花括号或等号初始化器)各版本异同
开发语言·c++·程序人生·面试·visual studio