摘 要 结构光三维测量中由于投影仪Gamma效应和倾斜投射时的周期展宽导致光栅条纹非正弦化,对测量结果造成比较明显的影响。文章通过实验分析了非正弦化的光栅条纹相位特征,在此基础上提出了一种基于Look-up table(LUT)的相位误差补偿算法。通过理想连续相位与实测参考面连续相位的比较,得到相位误差查找表,再通过物体表面的相位值在LUT中找到相应的相位误差,对相位进行误差补偿。该算法在有效地消除了CCD的非线性效应和投影仪的Gamma效应带来的误差的同时,也校正了周期展宽的问题。实验证明,该方法有效地减小了相位误差,从而提高了测量精度。
关键词 相移轮廓术;相移法;3D测量;相位误差补偿
相移轮廓术是向被测物体投射一组有相位变化的正弦光栅条纹,由于受到物体高度的调制,使得光栅条纹图案发生畸变,摄像机采集畸变的光栅图像,图像中包含了物体的三维信息,通过一定的算法,就可以计算出物体高度信息,再经过有关算法即可求解出物体的三维信息 [1-5]。
相移法要求采集三幅以上有精确的数字相移的光栅条纹图像,随着计算机技术和数字投影技术的飞速发展,已经能使用软件编程来解决精确的相移[3-10],但是投影仪的Gamma效应导致的相位误差依然对测量存在影响。当测量较大物体时,投影仪Gamma非线性效应和光栅的周期展宽造成了光栅条纹的非正弦性 [5-8]。目前解决Gamma非线性效应的主要方法有双三步相移[5],条纹色度校正法[6],条纹预编码法[7],本文在介绍相移法原理的基础上[8],通过分析连续相位,提出了一种基于Look-up table(LUT)的相位误差补偿算法,不仅减小了投影仪Gamma效应带来的相位误差,而且该方法有效地减小了条纹周期展宽带来的相位误差,提高了测量精度。
1 光栅投影三维测量基本原理
1.1 相移法基本原理[4]
相移法采用图1所示的经典交叉轴测量系统,投影仪投射正弦光栅到被测物体上,由CCD采集物体表面的条纹图案。图1中DD′为物体任意一点高度,l0为摄像机与参考面距离、d为投影仪和摄像机的光学中心的距离。
图1 三维测量系统结构示意图
物体表面的光栅条纹灰度可以表示为:
g(x,y)=a(x,y)+b(x,y)cos[φ(x,y)]
(1)
其中,a(x, y)为背景光强度;b(x, y)为光栅条纹调制度;φ(x, y)是物体的调制导致光栅条纹相位的变化量。为了求解相位φ(x, y),若考虑相移量(或相移步长)δi,则此时的光强分布为:
g(x,y)=a(x,y)+b(x,y)cos[φ(x,y)+δi]
(2)
由上式可知,若要计算出φ(x, y),则至少需要三幅以上的相移图像,即对光栅条纹进行N(N≥3)次相移,光栅条纹每次移动1/N个周期,同时畸变的光栅条纹相位每次移动2π/N,由CCD拍摄的光栅条纹可表示为:
In(x,y)=A(x,y)+B(x,y)cos[φ(x,y)+
2nπ/N](n=1,2,3,…,N)
(3)
其中,A(x,y)为相机采集到的背景光强;B(x,y)为相机采集到的光栅条纹图像的调制度;n为光栅条纹的相移序号。设φ(x,y)为N步相移后得到的截断相位。由这N帧相移图像即可获得物体的截断相位φ(x,y):
(4)
1.2 相位解包裹
由于投影测量采用连续编码的方法,所以不论用什么编码方式产生的光栅条纹其相位主值都限制在(-π,π]之间[8],称为截断相位或包裹相位,如图2(a)所示。为了得到能够反应物体高度的连续相位φ(x,y) ,如图2(b)所示,就要对φ(x,y)进行相位展开,这个过程称为相位解包裹或相位展开(Phase Unwrap),三角函数周期为2π,所以连续相位与包裹相位的关系为:
φ(x,y)=φ(x,y)+2kπ
(5)
其中k为整数, 称作解包裹相位或连续相位。
(a)包裹相位
(b) 连续相位
图2 截断相位和连续相位
本文采用一维相位解包裹算法,设φ(m)为m点一维包裹相位,φ(m)为m点一维连续相位,因为初始像素点不需要解包裹,其包裹相位也等于展开相位,即:φ(1)=φ(1),则φ(m)和φ(m)的关系可表述为:
φ(m+1)=φ(m)+Δφ
(6)
其中:
(7)
物体高度和连续相位的关系为:
(8)
上式中f为光栅频率f=1/p,在标定时得到;φB为光栅在参考面上的连续相位值;φA为带物体之后畸变光栅的连续相位值。因此只要求出φA、φB即可求出物体高度信息。
2 四步相移法三维测量实验
本文采用四步相移法,即式(4)中N=4,对如图3所示的长约80 cm,高约0.66 cm的平板物体进行测量,l0约为150.00±0.06 cm,d为65.00±0.05 cm。图4(a)为参考面上四步相移图像,图4(b)为物体表面四步相移光栅图像,图5 (a)参考面连续相位分布,图5(b)为物体表面连续相位分布,图5(c)为物体三维轮廓测量结果,图5(d)为传统四步相移法的测量误差分布图。
从图5(c)可以看出所测得平板高度有比较严重的波动,并且测量结果显示高度逐渐减小,根据式(8)可知,连续相位差φ的逐渐减小造成了所测高度减小,Δφ之所以减小是因为光栅在倾斜投影时,投影仪Gamma效应和光栅条纹的周期发生了周期展宽。
图3 被测平板物体
(a)参考面四步相移光栅图像
(b)物体表面四步相移光栅图像
图4 参考面和物体表面四步相移光栅图像
(a)参考面连续相位分布
(b) 物体表面连续相位分布
(c)物体三维轮廓测量结果
(d) 测量误差分布图
图5 传统四步相移三维测量结果
3 基于LUT的相位误差补偿算法
测量系统采用图1所示的相交轴测量系统时,由图5可知对测量结果产生了比较明显的影响,为解决该问题,本文提出了一种基于LUT的相位误差补偿算法。
3.1 投影仪的Gamma效应对相位的影响
投影仪倾斜投射时,参考面上的正弦光栅条纹如图6所示,从图6(b)中可以看出正弦条纹发生了周期展宽,并且投影仪的Gamma效应使得光栅条纹发生了非正弦性变化。图7显示了在一个周期中,不考虑条纹周期展宽时,带有Gamma效应的正弦条纹与理想的正弦条纹的截断相位关系,该图说明了投影仪Gamma效应带来了比较严重的相位误差,给三维测量带来了很大影响。
(a)参考面的光栅条纹
(b)光栅条纹某一行的灰度
图6 参考面上的光栅条纹
图7 带有Gamma效应的正弦光栅与理想的正弦条纹的截断相位关系
3.2 条纹周期展宽的相位误差分析
式(8)可以重新表述为:
(9)
在进行大视场测量时,如对图3中的平板进行测量时,因为平板的高度相同,所以l0,d,h均为常数,理论上对于高度相同的物体,Δψ应为同一个值,但是由于周期展宽的原因,光栅频率f沿着x轴在递减,如图6(b)所示,因此相位差Δψ也沿着x递减,导致测得的物体高度也逐渐减小,如图5(c)示。
3.3 基于LUT的相位误差补偿算法
本文提出的LUT的建立步骤如下:
(1)首先通过四步相移向参考面投射正弦光栅条纹,计算参考面包裹相位和连续相位。
(2)对采集到的光栅条纹进行灰度分析,假设光栅条纹有m个周期,各周期采样点数为N1,N2,N3,…,Nm,设条纹周期的参考值为N,令则理想的正弦光栅条纹的相位为2πx/N, x为图像横坐标。
(3)每个像素采样点的相位误差Δ[φ(x,y)]定义为:
Δ[φ(x,y)]=φ(x,y)-2πx/N
(10)
(4)以φ(x,y)为横坐标,以Δ[φ(x,y)]为纵坐标,根据式(10)即可建立关于{φ(x,y),Δ[φ(x,y)]}的相位误差补偿算法。
在测量时相位误差就可以用之前建立的相位误差补偿算法进行相位误差补偿,具体补偿方法如下:
(1)设参考面上某一采样点连续相位为φref(x,y),通过LUT查找出与该连续相位值相对应的相位误差[φref (x, y)],则真实的相位值为φr(x,y)=φref(x,y)-Δ[φref(x,y)]。
(2)同理,假设物体表面上某一采样点的连续相位为φobj(x,y),则可以从查找表中找出该相位值相对应的相位误差Δ[φobj(x,y)],则物体表面上该点真实的连续相位应为:φo(x,y)=φobj(x,y)-Δ[φobj(x,y)]。
(3)相位误差补偿之后,即得到真实相位差φi(x,y)=φo(x,y)-φr(x,y),再利用式(8)计算出被测物体的三维轮廓。
4 基于LUT的三维测量实验
本实验采用与第3节中相同的实验设备及被测物体进行测量,参考面的连续相位如图8(a)所示,根据光栅灰度分析,计算出其参考周期为33.9 pixel。图8(b)为理想相位和参考面连续相位的某一行的相位分布,图8(c)为每个采样点的相位误差,图8(d)为相位误差查找表,从该图的局部放大图中可以看出相位误差做周期性变化,这是Gamma效应的特征。
采用基于LUT的相位误差补偿算法的测量结果如图9所示,从图中可以看出,相位误差补偿后,物体的高度基本相同,图10为采用该方法测量误差分布图,图9(d)说明该方法比传统的四步相移测量效果有明显的提升。由图10和图5(d)对比可知,传统的四步相移测得的高度最大误差为0.1 mm,采用基于LUT的相位误差补偿算法测得的高度误差最大仅为0.01 mm,测量精度是传统的四步相移法的10倍。
为了检验基于LUT的相位误差补偿算法的优越性,我们用传统四步相移法和该算法测量同一鼠标做对比试验,相位误差补偿前后的测量结果分别如图11(a)和11(b)所示,11(b)说明基于LUT的相位误差补偿算法很好地补偿了相位误差,测得的鼠标表面更加平整,几乎没有周期性抖动。
(a)参考面连续相位
(b)参考面理想相位和连续相位的某一行
(c)各采样点相位误差分布图
(d)建立的相位误差LUT
图8 LUT的建立
(a)参考面连续相位
(b)物体表面连续相位
(c)物体表面连续相位差
(d)物体高度
图9 LUT相位误差补偿法测量结果
图10 LUT法测量误差分布
(a)相位误差补偿前
(b)相位误差补偿后
图11 鼠标测量结果
5 总结
相移法是一种精度比较高而且应用广泛的结构光三维测量方法,本文分析了传统四步相移法存在的相位误差来源,在此基础上提出了一种基于LUT的相位误差补偿算法,对测量相位进行了误差补偿,分别对平板和鼠标进行了测量,实验结果说明本文提出的相位误差补偿算法减小了相位误差,从而提高了测量精度。