光学算法——Zernike拟合

简介: 光学算法——Zernike拟合

前言

      对干涉图组进行相位求解并完成解包裹后,可以得到一个倾斜的波面,从肉眼无法直观地看出波面的相关信息,因此需要通过Zernike多项式来拟合一个与所求波面最接近的理想波面,并根据拟合出的波面得到相关的系列像差信息和PV、RMS值,以此可以进一步完成光学系统成像质量的评价工作和面形的测量工作。


      本文介绍了Zernike拟合的相关知识,包括Zernike多项式背景和发展、Zernike拟合具体实现过程、代码实现、参考文献、附录。

一、Zernike多项式背景和发展

      通常光学成像系统在实际成像过程中,因系统本身的非理想特征,而使光线在经系统各面的传输过程中的路线出现偏差,进而形成各类像差,使结果显示出图像模糊、尺寸变化、形态异常等缺陷。像差是对光学系统成像质量的重要评价指标,对其校正是光学系统设计中非常关键的环节,一般来说,像差可分为球差、慧差、畸变、场曲、像散、位置色差和倍率色差七种,每种像差的形成原因和特征各不相同,因而可以根据其特征分析建立数学模型,并以此作为像差函数,该函数还可展开为幂级数或一组正交多项式。


      泽尼克(Zernike)[1] [2]在利用刀口检验法和相衬法对一块圆形反射镜作测试时,推导出一套可表征不同像差函数的多项式,称作Zernike多项式,因其同像差多项式形式一致,常被用来拟合波面并对波前特性作分析。后来诸多学者在此基础上深入研究,提出了各类改进方案并进行了系列实验测试:中国科学院的惠梅[3]提出了一种基于Zernike多项式的波前数据拟合方法,通过阈值设定将误差点用掩膜过滤,有效提高测量精度;哈尔滨工业大学的刘剑锋等人[4]基于Zernike多项式推导出傅里叶变换公式,通过分析频域中信息以实现对面形误差的拟合;浙江大学的郑臻荣等人[5]在成像物镜设计中,应用Zernike多项式对自由曲面波像差进行分析,解决了自由曲面在成像系统设计中应用难度较大的问题;中国科学院的刘伟伟等人[6]结合三阶Zernike多项式,有效校正了全息阵列光镊中因算法导致的像差;苏州大学的王毅和余景池[7]根据Zernike36项系数,实现了对超精密车削系统的误差补偿,该方法效率高、稳定性好且准确;西班牙的I. Area等人[8]提出了一种通过差分算子和连接矩阵生成广义Zernike多项式的算法。


      目前,Zernike多项式广泛应用于光学领域,特别是光学成像系统检测方面,是拟合波前的主要手段之一。在不同强度的振动环境下,拟合同一面形所得PV和RMS值的结果并不相同,根据这一特性可以判断抗振技术的能力强弱,当抗振效果好时,振动环境和无振动环境的结果相差不大。当然它也有一定的局限性:一方面,Zernike多项式无法直接计算出波面检测时的扰动信息,当外在振动过大时,其数据结果会随之出现不稳定的大区间波动情况,甚至可能出现无法拟合的情况;另一方面,它也无法有效描述某些车间加工中存在的机器制造误差。


      综合来看,Zernike拟合是比较经典的波面拟合手段,不仅可以获得36项成像质量指标,也可以通过拟合后波面的PV、RMS值波动情况分析,来评价系统抗振性能等等。

二、Zernike拟合具体实现过程

      在考虑光学系统像差时,像差函数因其光学结构不同而有所差异,与Zernike多项式相关的两个重要考虑方面分别是:1)系统的光瞳形状;2)是否为旋转对称结构。本文讲解的zernike拟合方法,是基于含圆形光瞳且不含旋转对称轴的结构,因此只说明对此类情况下的Zernike实现(其实只要把这个搞懂了,其他的类似拟合方法都清楚了,最初我研究Zernike拟合的时候,我们课题组纠结了许久它的实现逻辑,搞明白了发现还挺简单的。。。)。

      在没有旋转轴对称的光学系统中,其像差函数不仅包含部分,还包含部分,将像差函数展开正交Zernike圆多项式形式[9]:

(1)

      其中,为拟合波面, 为多项式各项系数,表示距离原点的长度,表示相对原点的角度,多项式部分具体可分为三部分:

(2)

     一般n为7,即总项数为36。n值小的多项式靠前,n值一定时m值小的多项式靠前,按此顺序列出正交Zernike多项式的36项表达式,如图1所示,该顺序同我分享的Matlab-zernike拟合程序里的顺序一致,多项式同《光学车间检测》这本书中第383-384页提到的一致,顺序可能有区别。

图1 36项多项式

      当然,在不同的应用和机构会采用不同的排列顺序和Zernike多项式,比如美国Zygo公司采取的就是如图2所示的多项式和顺序,许多公司也以Zygo作为标准(毕竟在这领域是老大哥。。40年发展太超前了,没办法,希望国内技术能早日超越它们,技术壁垒太难受了)。下图取自Zygo软件使用手册,目前我做相关研究用的也是这套多项式,和Zygo同一标准也是为了方便对比差异性。

图2 Zygo的zernike多项式序列

      继续讲,假设拟合波面的尺寸为ROW×COL,ROW为行数,COL为列数,为了模拟像差函数的3D图形,需要先生成所需的网格数据(meshgrid操作):设置一行x坐标,从-1到1,等距离分为COL份,将该行数据复制ROW行,建立X矩阵;设置一列y坐标,区间从1到-1,等距离分为ROW份,将该列数据复制COL列,建立Y矩阵。结合求得的X和Y矩阵,将其笛卡尔坐标系转换为极坐标系可得到两个矩阵数据信息R和Th,分别是和的网格数据,其对应公式为:

(3)

      对每个像差函数,根据表1中对应的多项式表达式,再结合R和Th矩阵中各个像素点对应的和两项数据值,可得到此函数在对应点下的对应值,进而求得关于此函数尺寸大小为ROW×COL的矩阵信息,将矩阵数据以三维图展示,可直观看到其3D模拟样貌,36项像差的样貌图见文章最后的附录。


      将上述的36项像差对应的矩阵进行变形,尺寸大小从ROW×COL变为(ROW*COL)×1,将原矩阵每行的数据按行序号顺序,依次以列数据形式放置在新矩阵内。之后,将36个变形后的矩阵按多项式顺序,合并在一起构成尺寸大小为(ROW*COL)×36的Zernike综合矩阵Z。将所需要拟合的解包裹后相位矩阵,同样变形为(ROW*COL)×1的新矩阵I。


      此时,可通过矩阵求解计算Zernike36项系数,待解X矩阵大小为36×1:

ZX=I

(4)

      式(4)的意义可以理解为:对整幅图上任何一个像素点而言,均满足该点对应的36项多项式值分别乘以对应的系数并累加,其结果约等同于该点在所需拟合的解包裹后相位图内的数值。

      Zernike多项式的第一项为平移,第二三项分别是沿x和y方向的倾斜,将解包裹后相位矩阵减去Zernike前三项矩阵和对应系数的乘积和,即可得到不含倾斜量和平移量的真实面形图。对解包裹后相位信息经上述处理,得到的面形图如图3所示(对圆形干涉图外区域进行了屏蔽操作)。

图3 消去平移量和倾斜量的面形图

      对4-36项矩阵和对应系数的乘积进行求和,可得到不含倾斜量和平移量的理想面形图,如图4所示。

图4 4-36项多项式拟合得到的理想面形图

      对图3所示的面形信息进行相关计算:先进行单位的转换,前文计算得到的结果均为相位信息(单位:rad),转为长度信息(单位:λ);再计算PV值(面形最大值和最小值之差)和RMS值(面形的均方根值)。


      综上所述,便是Zernike拟合的原理和其实现过程,讲的很细,大家不要嫌我啰嗦。。如果我当时研究这个的时候有人讲的细节一些,可能会给我节省许多时间。


三、代码实现

      matlab代码见:

zernike拟合matlab程序_zernike多项式拟合-图像处理文档类资源-CSDN下载

      C++代码考虑到商业保密性暂不公开分享,如有想法可评论或者邮箱联系我,一起交流学习~


四、参考文献

[1]Zernike F . Diffraction theory of the knife-edge test and its improved form, the phase-contrast method[J]. Monthly Notices of the Royal Astronomical Society, 1934, 94(2):377-384.


[2]F. Zernike. Beugungstheorie des schneidenver-fahrens und seiner verbesserten form, der phasenkontrastmethode[J]. Physica,1934(1):689-704


[3]惠梅,牛憨笨.运用泽尼克多项式进行物面波前数据拟合[J].光子学报,1999(12):3-5.


[4]刘剑峰,龙夫年,张伟,王治乐.基于泽尼克多项式进行面形误差拟合的频域分析[J].光学学报,2005(08):1062-1066.


[5]郑臻荣,孙旭涛,缪盈盈,顾培夫,刘旭.应用泽尼克多项式自由曲面的成像物镜设计[J].浙江大学学报(工学版),2008,42(12):2202-2206.


[6]刘伟伟,任煜轩,高红芳,孙晴,王自强,李银妹.泽尼克多项式校正全息阵列光镊像差的实验研究[J].物理学报,2012,61(18):524-531.


[7]王毅,余景池.基于泽尼克多项式系数的大相对孔径表面超精密车削误差的补偿方法[J].红外与激光工程,2012,41(03):724-728.


[8]A I A , B D K D , C E G . Recursive computation of generalised Zernike polynomials[J]. Journal of Computational and Applied Mathematics, 2017, 312(2):58-64.


[9]李萌阳,李大海,赵霁文,章辰,王琼华.基于方形域内标准正交矢量多项式的波前重建[J].光学学报,2014,34(07):144-150.


五、附录

图5 Zernike多项式1-9项3D样貌图

图6 Zernike多项式10-18项3D样貌图

图7 Zernike多项式19-27项3D样貌图


图8 Zernike多项式28-36项3D样貌图

总结

      以上就是本文所讲的内容,简单介绍了Zernike拟合的相关知识。


      如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

相关文章
|
6天前
|
算法
【MATLAB】数据拟合第12期-基于高斯核回归的拟合算法
【MATLAB】数据拟合第12期-基于高斯核回归的拟合算法
115 0
|
6天前
|
机器学习/深度学习 算法 数据挖掘
【MATLAB】数据拟合第10期-二阶多项式的局部加权回归拟合算法
【MATLAB】数据拟合第10期-二阶多项式的局部加权回归拟合算法
55 0
|
8月前
|
机器学习/深度学习 算法
机器学习算法之欠拟合和过拟合
机器学习算法之欠拟合和过拟合
|
6天前
|
算法
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
|
6天前
|
机器学习/深度学习 分布式计算 并行计算
【MATLAB】史上最全的13种数据拟合算法全家桶
【MATLAB】史上最全的13种数据拟合算法全家桶
283 1
|
6天前
|
机器学习/深度学习 数据采集 算法
|
6天前
|
机器学习/深度学习 分布式计算 并行计算
【MATLAB】数据拟合第11期-基于粒子群迭代的拟合算法
【MATLAB】数据拟合第11期-基于粒子群迭代的拟合算法
80 0
|
6天前
|
算法
[Halcon&拟合] 边缘拟合算法拓展
[Halcon&拟合] 边缘拟合算法拓展
49 1
|
6天前
|
算法 计算机视觉
【MATLAB】史上最全的9种数据拟合算法全家桶
【MATLAB】史上最全的9种数据拟合算法全家桶
121 0
|
6天前
|
算法 数据挖掘 C#
C# | 线性回归算法的实现,只需采集少量数据点,即可拟合整个数据集
什么是线性回归呢? 简单来说,线性回归是一种用于建立两个变量之间线性关系的统计方法。在我们的软件开发中,线性回归可以应用于数据分析、预测和优化等领域。 什么情况下会用到线性回归呢? 线性回归可以用于探索数据之间的关系,可以用于预测未来的趋势。通过少量的数据点就能得到一个可以代表整个数据集的模型。换句话说,只需要采集少量的数据点,就可以拟合出整个数据集。
74 0