摘 要: 针对光栅条纹相位测量法利用相移法提取相位时需要3幅以上的相移光栅条纹图像,使得整个重构过程复杂的问题,提出利用单幅光栅条纹图像提取相位的方法进行钢轨表面的三维重构。通过对单幅光栅条纹图像进行希尔伯特变换的方法实现相位移动。利用推导的相移公式直接求取包裹相位变化量,并解包裹得到连续相位分布。将连续相位代入相位高度映射关系,获得轨面高度分布,重构钢轨表面三维形貌。利用传统Stoilov五步相移法重构钢轨表面。通过对仿真结果的对比分析并结合实际情况,该方法能够很好地实现钢轨表面的三维重构,并且误差小于Stoilov五步相移法,运行速度较快,更适合在线检测。
关键词: 钢轨表面三维重构; 单幅光栅条纹图像; 希尔伯特变换; 相位
0 引 言
钢轨是轮轨接触系统中极其重要的部件,起着引导列车行驶和支撑列车运行的作用[1],因此,对钢轨进行无损、高效的检测变得非常重要。图像处理可以实现对钢轨表面缺陷的二维检测和识别,但不能得到缺陷的深度信息。因此,对钢轨进行三维重构以最直观的方式生成和呈现钢轨表面缺陷信息成为现如今的研究热点。文献[2]提出了激光三角法,利用激光扫描钢轨轮廓并与标准轮廓对比,获得了钢轨轨头部位的磨耗值,精度较高,但不能直观的呈现钢轨轨头的磨耗情况。文献[3]采用多摄像机线结构光扫描的方法,能够很好地重构钢轨三维形貌,但对裂纹缺陷无法重构。文献[4~6]采用Stoilov五步相移法提取光栅条纹图像相位,能够较好地复原钢轨轨腰三维形貌,精度高,但需要多幅图像,过程繁琐,不利于在线测量。文献[7]采用傅里叶变换的方法重构了钢轨的轨腰部分,速度较快,但其在提取变形光栅条纹图像的基频信号时容易产生频谱混叠,使得测量精度不高。
本文提出利用单幅光栅条纹图像提取相位的方法进行钢轨表面的三维重构,以解决相移法中过程复杂、效率低的问题。
1 相位测量恢复物体三维形貌原理
将强度按正弦变化的标准光栅条纹,投射到物体表面,采集变形光栅条纹图像。由于物体外形凹凸不平,周期性光栅条纹的相位受到调制发生变形,变形光栅条纹图像虽然是二维图像,但其携带有物体表面的三维信息,这些信息包含在变形光栅条纹图像的相位中。通过提取相位并分析计算,达到获取物体表面高度分布,恢复物体三维形貌的方法称之为相位测量法[8]。图1(a)为相位测量法的光路图,图1(b)为标准光栅被物体高度调制的示意图。
图1 相位测量法的光路与光栅调制示意
将一栅线平行的标准正弦光栅斜向投影到被测物体表面,从投影方向上看,栅线是平行的,但在垂直方向上观察,栅线是弯曲的,如图2所示。栅线的弯曲程度与被测物体表面的高度差有关,其上任意一点所对应的相位值φ(x,y)与平面时的显然不同。如图1所示,O为投影仪与CCD像机光心线交点,原本应该投射到参考平面上A点的光栅线,由于被测曲面的存在只投射到了D点,而在CCD像机中看到D点的相位φD实际上与参考光栅图像中C点的相位φC一致,即由于曲面高度对相位的调制,把A点相位φA移到了C点,相移值为φAC,φAC=φC-φA。
假设D点相对于参考平面R的高度为h,则由三角相似原理可得相位高度映射关系
(1)
式中 L为CCD像机光心到参考平面R的垂直距离;d为投影仪光心和CCD像机光心之间的水平距离;f0为正弦光栅频率;φAC为调制相位。从式(1)中可看出:高度h的倒数和调制相位φAC的倒数成一次函数关系,若L,d,f0等参数确定,则h和φAC关系确定。
2 单幅光栅条纹图像相位提取
2.1 希尔伯特变换
设有一信号x(t),在时域中它的希尔伯特变换[9~11]为h(t),则定义
(2)
则x(t)的希尔伯特变换是x(t)与1/πt的卷积,即h(t)=x(t)*(1/πt),则可以将h(t)看成是输入为x(t)的信号经冲激响应为1/πt的线性滤波器的输出。由冲激响应可得系统的传递函数
(3)
式中 sgn(ω)为符号函数;ω为正弦信号角频率;j为虚数单位。
由传递函数可知信号经希尔伯特变换后,幅值不发生变化,相位将出现90°相移,即对正频率滞后90°,对负频率超前90°,对直流分量具有滤除作用。
2.2 相位提取
将单幅标准正弦光栅条纹图像投射到钢轨表面,并用CCD像机采集变形光栅条纹图像,标准正弦光栅条纹光强分布和变形光栅条纹光强分布可用分别表示
Ii1(x,y)=Ia(x,y)+Ib(x,y)cos(2πf0x)
(4)
I1(x,y)=Ia(x,y)+Ib(x,y)cos[2πf0x+φ(x,y)]
(5)
式中 Ia(x,y)为背景光强度,指除光栅以外的光源强度,如自然光、灯光等;Ib(x,y)为条纹幅值;f0为正弦光栅条纹频率;φ(x,y)为调制相位。Ia(x,y)和Ib(x,y)是缓慢变化函数,可视为常数。
对标准光栅条纹和变形光栅条纹图像分别进行希尔伯特变换,得到各自正弦分量为
Ii2(x,y)=Ib(x,y)sin(2πf0x)
(6)
I2(x,y)=Ib(x,y)sin[2πf0x+φ(x,y)]
(7)
再次对Ii2(x,y)和I2(x,y)进行希尔伯特变换,得到各自余弦分量为
Ii3(x,y)=-Ib(x,y)cos(2πf0x)
(8)
I3(x,y)=-Ib(x,y)cos[2πf0x+φ(x,y)]
(9)
由式(6)~式(9)可得调制相位φ(x,y)为
(10)
式(10)中反正切函数计算得到的调制相位φ(x,y),其范围被截断在[-π,π]内,是不连续的,是包裹相位,要想获得钢轨表面三维形貌,必须将其恢复为原来的连续相位,因此需要对其进行相位解包裹运算,即相位展开运算,本文采用MATLAB中的解包裹函数Unwrap就可完成相位解包裹运算。Unwrap功能:检查出相位跳变,并纠正跳变。沿着包裹相位数据矩阵的行或列其中的一个方向展开,检查到相邻两点的相位值差距超过π时,就认为有跳变,处理数据,后面的相位值加2π或者减2π,使前后两相位值之差小于π,接着再沿着行或列的另一个方向处理数据,完成相位解包裹运算。
3 传统Stoilov五步相移法提取相位
Stoilov五步移相法可以获得的五幅变形光栅条纹图像推导出调制相位表达式[12,13]
(11)
值得注意的是,式(11)只利用了变形光栅条纹图像,计算得到的调制相位包含载频相位2πf0x,在解包裹运算后,必须减掉相应的载频相位,获得真实的调制相位,代入相应的相位高度映射关系中,才可重构出物体表面的三维形貌。从式(11)表达式中可看出,式中存在对光强的减法、除法和开方等运算,可能在某些位置会出现分子分母为零的情况,导致相位解包裹出错,增大误差,影响最终的三维重构效果。在仿真时,取相移步长为52°,可有效抑制二次相移量误差的影响[14]。
4 仿真实验与结果分析
利用单幅光栅条纹图像重构钢轨表面三维形貌过程如图2所示。
图2 单幅光栅条纹图像重构钢轨表面三维形貌过程
以50 kg/m的钢轨为例,根据50 kg/m的钢轨外形参数,利用MATLAB 2016a仿真生成一段钢轨表面的三维图像,并在其上构造类似疤痕、裂纹等钢轨表面缺陷,如图3所示。图3中缺陷1为深4 mm的纵向裂纹,缺陷2为最大深度2 mm的疤痕,缺陷3为深10 mm的纵向裂纹,缺陷4为深8 mm的横向裂纹。
图3 钢轨表面三维图
在MATLAB 2016a中生成1 000像素×700像素的标准正弦光栅条纹,其光强分布为
Ii(x,y)=0.5+0.5cos(2πf0x)
(12)
则变形光栅条纹光强分布为
I(x,y)=0.5+0.5cos[2πf0x+φ(x,y)]
(13)
式中 f0为正弦光栅频率;当光栅条纹光强变化较大时,相移图像对应的像素点发生突跳,影响测量精度,因此对正弦光栅频率有一定的限制[15]。光栅周期为8~10 mm(文中光栅条纹图像的80~100 像素)时,能够有效地减少误差,1/f0=8,f0=0.125。
图4(a)为标准正弦光栅条纹图像,图4(b)为图4(a)的一次希尔伯特变换图像,图4(c)为图4(a)的二次希尔伯特变换图像,希尔伯特变换滤除直流分量,使得亮条纹变窄。从图中矩形方块部分可看出图4(b)、图4(c)中的光栅条纹相对于图4(a)中的光栅条纹有明显的右移现象,移动值分别为20,40 像素。图4(d)为变形光栅条纹图像(已加入0.1 %的高斯噪声),图4(e)为图4(d)的一次希尔伯特变换图像,图4(f)为图4(d)的二次希尔伯特变换图像。从图4(d)中椭圆部分可看出疤痕缺陷处的光栅条纹相对于图5(a)标准正弦光栅条纹有明显的变形,并且图4(e)、图4(f)相对于图4(d)也有明显的移动,移动方向和移动值与图4(b)、图4(c)相同。
图4 光栅条纹图像
利用图4中的光栅条纹图像各个像素点光强,根据式(10)计算得到各点调制相位(是不连续的包裹相位),并用Mesh函数显示出包裹相位三维图,如图5(a)所示。从图5(a)中明显看到,当x=0.1 mm,y的值从3.7 mm变到3.8 mm时,相位值从3.094 rad突变到-3.018 rad,是不连续的,因此要进行解包裹运算。文中采用MATLAB自带的封装函数unwrap进行解包裹运算,得到连续的相位分布,如图5(b)所示。从图5(b)中可看到相邻两点之间相位不存在跳变,相位是连续的。
图5 包裹与解包裹相位三维图
将解包裹得到的连续相位分布代入式(1)高度相位映射关系中,得到钢轨表面高度分布,重构钢轨表面三维形貌,如图6(a)所示。并与图3作差,求得均方差为0.157 6。利用传统Stoilov五步相移法提取相位并进行解包裹运算,重构钢轨表面三维形貌,如图6(b)所示。并与图3作差,求得均方差为0.223 0。对比图6可看出,图6(a)中的重构图较光滑,重构效果较好。
图6 钢轨表面三维图
从图6(a)和图6(b)中提取缺陷部位的二维截面图,如图7所示。并将4处缺陷的重构情况绘制成表,如表1所示。图7(a)为x=40 mm时,y-h平面的二维截面图,图7(b)为y=50 mm时,x-h平面的二维截面图。图7(a)、图7(b)中1,2,3,4分别为缺陷1,2,3,4。由于图7(a)、图7(b)为截面图,对于缺陷3和缺陷4来说,取得只是一点的值,与表1中的重构尺寸的最大值有所不同。
图7 缺陷部位的二维截面
表1 缺陷重构情况
从图7和表1中可以看出:本文方法对钢轨表面缺陷的重构误差基本在0.5 mm之内,均方差在0.17之内,Stoilov五步相移法的重构误差在0.9 mm之内,均方差在0.24之内,本文方法误差略小,对缺陷的重构效果较好。但是由于Stoilov五步相移法需要五幅光栅条纹图像,而本文方法只采用单幅光栅条纹图像,这就大大降低了相位计算的复杂程度,能够很好缩短程序运行时间。利用Stoilov五步相移法复原钢轨表面形貌需要5.0 s,本文方法只需要2.7 s。
5 结 论
本文提出的利用单幅光栅条纹图像提取相位的方法能够较好的重构钢轨表面的三维形貌,并没有因为光栅条纹图像数量的减少而使误差增大,反而误差略小于传统的Stoilov五步相移法,运行时间较短。根据对Stoilov五步相移法缺点的理论分析,在实际在线测量中,本文采用的方法相对于Stoilov五步相移法,误差将会更小,效果会更好。但本文所采用方法在本质上还是属于相移法,采用像素点对点的相位提取方法,对噪声较敏感,所以在后期图像处理过程中去噪过程尤为关键。