APP下载

彩色编码结构光测量系统器件非线性校正

2021-10-18江苏科技大学电子信息学院江苏镇江212003

计算机应用与软件 2021年10期
关键词:伽马校正灰度

王 琦 李 锋(江苏科技大学电子信息学院 江苏 镇江 212003)

0 引 言

在光学三维测量的条纹投影技术中,相移测量轮廓术[1](Phase Measurement Profilometry,PMP)计算过程简单且受外界环境因素影响较小从而被广泛使用。但其易受到器件伽马畸变和颜色串扰的影响,使得CCD接收相位出现非线性现象,从而使相位值求解产生较大相位误差。

当前系统器件非线性校正研究多在黑白编码条纹下进行的,而对于彩色编码条纹下的研究较少。近几年在彩色编码条纹下的校正方法,主要分为三大类:离焦法、相位误差补偿法和伽马校正法。离焦法[2]将器件看作低通滤波器,产生离焦效应对图像高频起抑制作用。该方法受物体表面形状限制造成离焦程度不一。相位误差补偿法[3]属于被动相位误差补偿。李彪[4]将实际条纹图与预设条纹图进行比较建立系统误差查找表;刘冠洲等[5]利用最小二乘法和线性插值建立实际与理想光栅相位映射的关系。该类方法易受环境因素影响产生相位波动。

伽马校正法[6]对投影条纹提前校正,使获得的相移光栅具有正弦性且对彩色适应性强。伽马校正法分为两类:标定法和非标定法。标定法使用相同预编码值对红绿蓝三通道内的正弦光栅函数统一预调制。因红、绿、蓝通道响应函数不同,造成三通道的伽马畸变值也不同,对三通道使用相同的预编码值不能起到良好的校正效果,但是一次标定即可反复使用。非标定法通过投射一组三通道的灰度图像求取各通道响应曲线,再多项式拟合反算各通道曲线的预设强度值。该方法易受多项式系数影响产生累计误差,但是其包含了对红、绿、蓝三通道分道处理的思想。

因此,本文考虑彩色编码条纹特性并结合颜色串扰补偿对现有伽马校正法进行改进,更好地减少器件非线性的影响。实验结果表明该方法能够有效减少相位测量误差。

1 算法简介

1.1 算法原理

(1)

式中:R为物体表面反射率;B为背景光强;γ为系统伽马值,即投影仪一次畸变值与摄像机二次畸变值之和。R、B为常数不会引起器件的非线性响应,B可再细分为环境光强和投影光强:

B=A+C

(2)

式中:A为环境光强;C为投影光强。

考虑实际测量环境中,不同物体表面材质引起反射率不同。因此该校正法不再投射光栅图像到物体表面,而是投射灰度图像至白色参考平面,以减少物体表面反射率对于预编码值求取的影响。在系统中,环境光强变化[8]会引起彩色条纹强度的变化,无论是条纹强度过强还是过弱都会影响相位值求解精度,此时可通过式(3)来进行条纹强度补偿。

In=255(Io-Imin)/(Imax-Imin)

(3)

式中:In为补偿后的强度值;Io为补偿前的强度值;Imin为某行强度最小值;Imax为某行强度最大值。而投影光强则存在亮度不均的问题,导致同幅图像中伽马值不同。其分布规律类似于同心圆[9],伽马值在圆心处最小,随着半径向外扩展越大。为了保证投影仪亮度均值在85%以上且伽马值较小,选取采集回图像的中心区域并求取每幅图像的灰度均值。接着对理想灰度图像引入一个合适的预编码值γp,1/γp<1,式(1)可变为:

(4)

预调制后的灰度图像再经过器件非线性的影响,实际灰度图像的系统伽马值被调整为1,器件非线性情况得到明显的抑制。再结合分道处理的思想,对红、绿、蓝三通道分别求取对应预编码值来进行预调制补偿。

本文算法流程如图1所示。

1.2 伽马预编码值求解

首先通过MATLAB 2014a软件生成三组红、绿、蓝灰度图像并投射至白色参考平面,三组图片灰度均为0~255,投射步长为5,投射顺序按灰度值从低到高。再求取每幅图像的灰度均值,因为均值点为离散点无法直观地显示响应函数,所以使用MATLAB曲线拟合工具箱对离散点进行多项式曲线拟合,得出最趋近测量系统的三通道真实响应曲线。

在获得三通道各自的响应曲线后,拟合曲线头部和尾部存在明显的平台效应,如果系统工作在该范围内会产生相位误差。本文通过对响应曲线求取一阶导数差值来确定最大线性区间[10]。首先对相邻灰度值间的直线段求解斜率。投影预设灰度值为xn,n=1,2,…,52,摄像机采集回的灰度值为yn,n=1,2,…,52,相邻两灰度间直线段的斜率可通过一次求导获得:

(5)

再对式(5)进行二次求导,从而获得一阶导数差值:

(6)

如图2所示的是绿通道响应曲线,图3所示是其二阶导数,即为一阶导数差值。图3中(65,70)和(70,85)、(225,230)和(230,235)两对区间内一阶导数差值变化较大,所以(70,230)为绿通道的最大线性区间。同理可得其他两通道的最大线性区间。

系统伽马畸变值在理想状态下等于3,在使用黑白编码条纹时,即只包含一个通道的情况下,随着伽马预编码值从1.5到4.5,相位误差呈现先降后升的趋势,当γp接近于3时,所对应的相位误差已经很小了[11]。彩色摄像机的三通道系统响应程度不一,表示受到的伽马畸变不一,各通道的预编码值也不相同。若通道响应程度较高,伽马畸变较小,预编码值与理想值3的差值越大;若通道响应程度较低,伽马畸变较大,预编码值与理想值3的差值越小。

(7)

由式(7)可以推得:

(8)

在式(8)中,因其仅包含γ一个未知量,再将其变成非线性超越方程的形式:

(9)

令f(γ)=0,符合条件的γ值即为单通道中系统伽马值。单通道下有两组灰度图像,每一组灰度图像再分别利用遗传算法对方程解进行寻优,可以得到单通道两个不同的系统伽马值γ1和γ2。

若将γ进一步分化成如式(10)所示的投影仪和摄像机的伽马值之和,这样系统中某一个出现故障,则不必重新全部求取,只需求取单个设备值进行替换即可。

γ=γa/γp+γb

(10)

式中:γa和γb分别为投影仪和摄像机器件伽马值。在单通道γp1、γp1、γ1和γ2已知的情况下,利用式(11)则可以解出单通道下的γa和γb。

(11)

令式(10)中γ=1,再将求得的γa和γb代入,则可利用式(12)求得针对相应单通道的预编码值。引入该预编码值对相应单通道进行预调制,即可消除伽马失真。

(12)

1.3 彩色编码条纹颜色串扰补偿

彩色编码条纹的颜色串扰[12]不仅会导致校正后的图像经过摄像机采集回后产生颜色偏差,而且会对接收相位造成非线性影响。本文引入了颜色串扰模型[13],基于该模型可得到预设像素值与实际像素值之间的响应关系:

M=AKP(I)+M0

(13)

式中:M为像素点实际强度值;A为串扰矩阵;K为反射矩阵,表示像素点对于红、绿、蓝三通道不同的反射率;P(I)为像素点预设强度值;M0为像素点环境光强。实验通常将器件布置在黑暗环境下,此时投影光强与环境光强之间差值较大,所以可以忽略M0。在白色参考面的情况下反射率默认为1时,式(13)可简化成:

M=AP(I)

(14)

向白色参考平面分别投射三幅图片,分别为纯红、纯绿和纯蓝。对采集回的图像利用MATLAB软件进行归一化处理。提取出红绿蓝三通道的灰度值并求取平均值,确定出实际测量值。利用式(14)计算颜色串扰矩阵A和逆矩阵A′。最后将采集回的图像中每一个像素点均乘以矩阵A′进行颜色补偿修正,即可消除彩色编码条纹颜色串扰的影响。

2 实 验

为了验证本文在彩色编码条纹下伽马预编码法的有效性,搭建了由EPSON EB-C760X投影仪(分辨率为1 024×768)、AVT MANTA G-125摄像机(分辨率为1 292×964)、白色参考面(42 cm×30 cm)和计算机组成的结构光测量系统装置,如图4所示。在光照为0的情况,即黑暗环境下调整摄像机的参数,在白平衡红蓝分量值均为2时达到最佳。

图4 实际测量系统装置

先通过摄像机投射三组红、绿和蓝图像至白色参考面,图像灰度值为255,大小为1 024×768,与投影仪的分辨率保持一致。再通过摄像机采集回至电脑端中使用MATLAB软件对图像进行处理,经过摄像机的调制,此时图像大小变为1 292×964。处理时以图像中心像素点为基准,先选取采集回图像的中心区域,图像大小为1 024×768,以与原设定图像大小保持一致。然后求取每幅图像的灰度均值,最后MATLAB工具箱拟合得三通道响应曲线如图5所示。

图5 三通道拟合的输入输出响应

因为使用摄像机的RGB24模式进行采集,图像为unit8型且各纯色图像中混有其他颜色分量,所以需要对图像进行分通道处理,从而提取出每组单幅实际图像的灰度均值。

表1 基于彩色编码条纹的伽马预编码法预设值

如图5所示,因为通道响应程度从小到大为红色<蓝色<绿色,所以设定各通道的γpi与3之间的差值从小到大为红色<蓝色<绿色。相同通道的γp1和γp2与3为差值大小相同,且γp1<γp2。先设定响应程度最好的绿通道的γp1和γp2值。文献[7]中的黑白编码条纹下的灰度响应曲线与本测量系统中绿通道响应曲线相似,参考其预设值,所以将绿通道的γp1和γp2分别设定为2.5和3.5。剩余两通道根据响应程度,γp1以0.1递增,γp2以0.1递减,如表1所示。

在实验中提取单通道每组每幅图像第300行,在不同γpi条件下,将该行所有像素点对应的伽马值求和并取平均值赋值给该条件下的系统伽马值,最后求得各通道的伽马预编码值,如表2所示。

表2 基于彩色编码条纹的伽马预编码法结果值

在MATLAB 2014a中,生成γp=1时的三个频率T1=70、T2=64、T3=59的标准四步余弦相移编码图案,融入三通道生成四幅彩色编码条纹图案,投射至白色参考平面。使用MATLAB软件产生三组不同频率、每组中有四幅相移量分别为0°、90°、180°和270°的正弦条纹图。

for m=1:自设

for n=1:自设

temp(m,n)=0.5+0.5*cos(2*pi*f*n+phi);

然后提取每组中相位相同的图像,按照频率从大到小的顺序依次调制到红、绿、蓝三通道中。

I=cat(3,R,G,B);

将0°相位、频率为A的条纹调制到红通道中,将0°相位、频率为B的条纹调制到绿通道中,将0°相位、频率为C的条纹调制到蓝通道中,再将三通道复合得到一幅0°相位状态下的彩色编码条纹图,如图6所示。同理得到另三种相位状态下对应的彩色编码条纹图。

图6 组合过程示意图

在无任何干扰的情况下,获得三种频率的包裹相位作为其理想相位。再将求得的三通道rp对各通道正弦条纹进行预编码,图7为预编码法校正前后绿通道的光栅投影曲线。同时比较校正前后的包裹相位与理想相位第300行的相位误差,得到图8所示的包裹相位误差图。

由图7可知,校正前预设的标准正弦光栅经过器件影响后发生畸变,两侧变宽,谷底提高,非线性现象严重。校正后光栅的非线性现象得到明显改善,该通道的光栅灰度相比未校正前已经非常接近正弦分布。由图8可知,校正前包裹相位误差最大值为0.054 3,其绝对值的平均值为0.039 9,校正后包裹相位误差最大值为0.015 7,其绝对值的平均值为0.007 3,分别减小了71.09%和81.70%。

为了验证本文方法性能,在相同条件下,将该方法与两种已有的校正方法进行对比,对比结果如表3所示。方法1为本文方法,方法2为彩色编码条纹三通道使用相同γp值[14]进行伽马预编码校正,方法3为反向误差补偿法[15]。

表3 各非线性校正方法实验结果

由表3可知,使用方法2校正后的相位误差相较于其他两种方法更大且准确性低,方法3相位误差较小但稳定性不如方法1。因此从数值上验证了本文方法对于彩色编码条纹包裹相位误差补偿的有效性。

验证颜色串扰补偿的有效性。先投射红、绿、蓝图案至白色参考面,计算得到串扰矩阵A及其逆矩阵A′,如式(15)、式(16)所示。后用逆矩阵对采集回的彩色编码条纹进行串扰补偿。串扰补偿前后的彩色编码条纹图像如图9所示。

(15)

(16)

由图9中的黑框处可以观察到:补偿前的红、蓝通道受到较大串扰影响,其颜色条纹无法得到有效区分。同时在串扰矩阵A中,可以观察到红通道数据值距离1差距较大,说明红通道中涉入了一定量的其他分量。补偿后的彩色条纹强度值得到明显的改善,且得到明显的区分,验证了本文所提串扰补偿方法的有效性。

3 结 语

现有的实际测量系统中,为了提高物体测量精度,需要获得更多的物体表面信息。彩色编码结构光测量系统较之黑白编码结构光测量系统更具有优势。但随之系统中出现了由伽马畸变和颜色串扰引起的器件非线性问题。

针对此问题,本文提出一种在彩色编码结构光测量系统中的伽马预编码法,通过计算获得符合R、G、B三通道响应的三个预编码值,分别对三通道分类进行预调制。实验结果表明,通过该方法在彩色测量系统中进行器件非线性校正,校正后的光栅具有良好的正弦性和较小的相位误差。再结合颜色串扰补偿,彩色编码条纹得到良好区分且强度值得到明显增强,进一步减少非线性问题。该方法相较于现有的彩色测量系统中三通道多使用同一预编码值进行预调制的方法,相位误差能得到明显的减少,提高测量精度。该方法以投射纯色图像代替光栅图像,在实际运用中能够简化图像设计过程,减少因物体表面反射和参考面移动对于测量的影响,打破投射光栅图像求解的局限性,提升彩色测量系统的使用率。

猜你喜欢

伽马校正灰度
航空滤光片阵列多光谱图像条带灰度调整算法
再分析降水资料的适用性评估与偏差校正
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
三大抽样分布的理解与具体性质
炫酷ACR
航海家的故事
一种具有自动校正装置的陶瓷切边机
瓦斯科·达·伽马
一种基于灰度分割的调焦评价函数