何堅(jiān)強(qiáng),侯建成,汪志成
(1.鹽城工學(xué)院電氣工程學(xué)院,鹽城 224000;2.江蘇大學(xué)電氣信息工程學(xué)院,鎮(zhèn)江 212000)
結(jié)構(gòu)光的圖像位置是三維測(cè)量中的信息來(lái)源,因此,結(jié)構(gòu)光中心提取是線(xiàn)結(jié)構(gòu)光三維測(cè)量中至關(guān)重要的一步。中外學(xué)者做了大量的研究,針對(duì)不同的應(yīng)用領(lǐng)域提出眾多結(jié)構(gòu)光中心提取方法。
目前結(jié)構(gòu)光中心提取可以分為兩類(lèi)[1-2],第一類(lèi)是對(duì)結(jié)構(gòu)光幾何中心的提取,主要有細(xì)化法、邊緣法和閾值法等[3-5],這類(lèi)方法容易受到噪聲的影響,魯棒性差,不適用于對(duì)提取精度要求較高的測(cè)量領(lǐng)域。第二類(lèi)方法是根據(jù)結(jié)構(gòu)光橫截面的灰度值呈高斯分布的特點(diǎn)提取結(jié)構(gòu)光中心,主要有灰度重心法、方向模板法和Steger法等[6-8],這類(lèi)方法中心提取精度較高,具有一定的抗干擾能力。特別是Steger法[9]穩(wěn)定性好、提取精度高,得到廣泛應(yīng)用,但是運(yùn)算量大。因此中國(guó)學(xué)者提出了眾多改進(jìn)算法。蔡懷宇等[10]引入主成分分析算法確定圖像的法線(xiàn)方向,只用2次高斯卷積就可完成,降低了計(jì)算的復(fù)雜度,提高了計(jì)算速度,但是在復(fù)雜背景下很難實(shí)現(xiàn)結(jié)構(gòu)光的精準(zhǔn)提取;岳龍等[11]針對(duì)寬度變化復(fù)雜的激光條紋采用一種自適應(yīng)條紋中心提取算法,根據(jù)條紋不同寬度選擇對(duì)應(yīng)的尺度因子,在一定程度上減少了計(jì)算量,實(shí)現(xiàn)了對(duì)于寬度變化復(fù)雜光條紋的中心線(xiàn)提取;楊鎮(zhèn)豪等[12]將極值法和Steger方法相結(jié)合,通過(guò)線(xiàn)寬分段的方式實(shí)現(xiàn)在高反情況下結(jié)構(gòu)光中心線(xiàn)的高精度提取,但是計(jì)算量較大;劉劍等[13]提出一種基于Hessian矩陣與區(qū)域增長(zhǎng)相結(jié)合的激光條紋中心提取方法,該算法提取的條紋中心準(zhǔn)確高,提取速度快。但是依賴(lài)Hessian矩陣求取法線(xiàn)方向,需要大規(guī)模的高斯卷積。
針對(duì)實(shí)際工程中結(jié)構(gòu)光環(huán)境復(fù)雜,被測(cè)物體表面反光的情況,提出一種基于主成分分析與區(qū)域增長(zhǎng)的結(jié)構(gòu)光中心提取方法。首先通過(guò)圖像掩模原理獲得結(jié)構(gòu)光的感興趣區(qū)域(region of interest,ROI);然后對(duì)ROI進(jìn)行二維高斯卷積計(jì)算該區(qū)域的灰度梯度分布;根據(jù)梯度分布情況確定結(jié)構(gòu)光中心的初始點(diǎn);利用主成分分析算法求取初始點(diǎn)的法線(xiàn)方向,通過(guò)二階泰勒展開(kāi)求得該點(diǎn)的精確位置;最后以初始點(diǎn)為種子點(diǎn)通過(guò)區(qū)域增長(zhǎng)迭代運(yùn)算,精確提取結(jié)構(gòu)光中心線(xiàn)。
采集到的彩色圖像中,結(jié)構(gòu)光顏色與被測(cè)物體顏色存在很大的差異,結(jié)構(gòu)光為紅色條紋,被測(cè)物體為銀灰色背景,因此可以利用RGB顏色空間模型[14]將彩色圖像分成目標(biāo)區(qū)和背景區(qū)。利用這一特性,對(duì)圖像上的每個(gè)像素點(diǎn)的RGB進(jìn)行判斷,結(jié)構(gòu)光區(qū)域置1,背景區(qū)置0。但是由于表面反光和漫反射的影響會(huì)帶來(lái)大量的噪聲信息,利用形態(tài)學(xué)運(yùn)算去除噪聲得到掩模圖像,然后掩模圖像與灰度化后的圖像相乘,得到結(jié)構(gòu)光的ROI。掩模原理[15]可以表述為
F(X,Y)=H(x1,y1)M(x2,y2)
(1)
式(1)中:H(x1,y1)為掩模圖像;M(x2,y2)表示待處理圖像;F(X,Y)為輸出圖像。掩模法提取出的ROI更好地保留了結(jié)構(gòu)光條紋的灰度,消除了金屬面反光和結(jié)構(gòu)光漫反射帶來(lái)的影響,實(shí)現(xiàn)結(jié)構(gòu)光區(qū)域的精確定位。
Hessian矩陣求取結(jié)構(gòu)光法線(xiàn)方向時(shí)需要進(jìn)行大規(guī)模的高斯卷積,計(jì)算量很大。通過(guò)二維高斯卷積和主成分分析(principal component analysis,PCA)實(shí)現(xiàn)對(duì)ROI法線(xiàn)和切線(xiàn)方向的求解[16]。
首先對(duì)結(jié)構(gòu)光的ROI進(jìn)行二維高斯卷積計(jì)算,ROI區(qū)域的灰度梯度如式(2)所示:
G=f(x,y)?g(x,y)
(2)
(3)

二維高斯卷積之后,得到ROI的梯度分布圖,如果用(Gx,Gy)T表示梯度向量,則梯度向量的協(xié)方差矩陣為
(4)
其中:
(5)
利用PCA對(duì)梯度向量的協(xié)方差矩陣進(jìn)行特征分解,最大特征值對(duì)應(yīng)的特征向量就是法線(xiàn)方向。
經(jīng)過(guò)計(jì)算得到特征值和相應(yīng)的特征向量如下:
(6)
(7)
(8)
(9)
式中:特征值λ1、λ2對(duì)應(yīng)的特征向量為v1,v2。由于|λ1|>|λ2|,所以特征向量v1為條紋的法線(xiàn)方向,歸一化處理之后根據(jù)法線(xiàn)方向得到法線(xiàn)方向的單位向量n=(nx,ny)T。
得到目標(biāo)區(qū)域的梯度分布后,選取梯度絕對(duì)值最小的點(diǎn)作為提取條紋中心的初始位置記為(x0,y0)。對(duì)初始點(diǎn)(x0,y0)的灰度分布函數(shù)沿法線(xiàn)方向進(jìn)行二階Taylor展開(kāi),則結(jié)構(gòu)光橫截面上的坐標(biāo)點(diǎn)(x0+tnx,y0+tny)的灰度為
Z(x0+tnx,y0+tny)=Z(x0,y0)+N(Gx,Gy)T+
(10)
式(10)中:N=(tnx,tny)。因?yàn)闃O值所在點(diǎn)的一階導(dǎo)數(shù)過(guò)零點(diǎn),即:
(11)
綜上可得:
(12)
則點(diǎn)(x0+tnx,y0+tny)為結(jié)構(gòu)光中心點(diǎn)的精確位置。
以初始點(diǎn)為種子,設(shè)置角度閾值和灰度閾值作為生長(zhǎng)準(zhǔn)則,種子點(diǎn)周?chē)?鄰域作為生長(zhǎng)區(qū)域,如果8鄰域中存在一點(diǎn),其角度差和灰度差滿(mǎn)足設(shè)定的閾值條件,則認(rèn)為該點(diǎn)為結(jié)構(gòu)光的中心點(diǎn),并將其作為新的生長(zhǎng)點(diǎn)。具體的實(shí)現(xiàn)步驟如下。
(1)通過(guò)圖像掩模法獲得結(jié)構(gòu)光的ROI,消除結(jié)構(gòu)光的漫反射和金屬表面反光的影響。
(2)計(jì)算ROI中的梯度,建立梯度向量的協(xié)方差矩陣,運(yùn)用PCA分析得到種子點(diǎn)的法線(xiàn)和切線(xiàn)方向。
(3)將梯度最小的點(diǎn)作為初始點(diǎn),并對(duì)其灰度分布函數(shù)沿法線(xiàn)方向進(jìn)行二階泰勒展開(kāi),獲得初始點(diǎn)的精確位置。
(4)將初始點(diǎn)作為種子點(diǎn),計(jì)算與周?chē)?鄰域像素點(diǎn)之間法線(xiàn)的角度差和灰度差。如果存在一點(diǎn)滿(mǎn)足角度差與灰度差的閾值條件,將此點(diǎn)與種子點(diǎn)合并為同一區(qū)域,作為新的生長(zhǎng)點(diǎn)。
(5)把新的生長(zhǎng)點(diǎn)作為種子,重復(fù)步驟(3)~步驟(4),直到歷遍ROI中的每個(gè)像素點(diǎn),最終得到結(jié)構(gòu)光條紋的中心線(xiàn)。
實(shí)驗(yàn)對(duì)象是溫控器,溫控器是一種金屬材質(zhì)的電路保護(hù)裝置,表面反光。并且被測(cè)面并非平面,而是呈現(xiàn)出凹凸不平,因此,結(jié)構(gòu)光漫反射情況嚴(yán)重。實(shí)物圖和反光標(biāo)記圖如圖1所示。為了驗(yàn)證方法的有效性和準(zhǔn)確性,在MATLAB R2015b開(kāi)發(fā)環(huán)境下對(duì)800×1 200像素的圖像進(jìn)行處理。
首先對(duì)結(jié)構(gòu)光圖像進(jìn)行掩模處理,得到掩模圖像和處理后的效果(圖2)。通過(guò)圖像掩模法可以實(shí)現(xiàn)結(jié)構(gòu)光ROI的精確提取,并且保證了結(jié)構(gòu)光的原始灰度。

圖1 溫控器圖像Fig.1 Temperature controller image

圖2 掩模處理結(jié)果Fig.2 Mask processing results

圖3 三種方法提取結(jié)果Fig.3 The results of three mothods
為了進(jìn)一步證明算法的優(yōu)越性,分別與傳統(tǒng)的灰度重心法,Steger法在中心線(xiàn)提取效果和運(yùn)行時(shí)間兩方面進(jìn)行了比較。首先是提取效果的對(duì)比,圖3(a)是灰度重心法提取的結(jié)構(gòu)光中心線(xiàn),由于受到結(jié)構(gòu)光漫反射的影響,提取出結(jié)構(gòu)光中心線(xiàn)出現(xiàn)了離散點(diǎn),并且由于噪聲的干擾提取的中心線(xiàn)位置并不精確。圖3(b)為自適應(yīng)Steger法提取的中心線(xiàn),自適應(yīng)分割算法不能消除結(jié)構(gòu)光漫反射和金屬表面反光的影響,因此引入了大量的干擾區(qū)域,提取效果較差。圖3(c)為本文算法提取出的中心線(xiàn),不僅從根本上解決了干擾區(qū)域的問(wèn)題,而且提取的中心線(xiàn)連續(xù)沒(méi)有斷點(diǎn),實(shí)現(xiàn)了結(jié)構(gòu)光中心線(xiàn)的精確提取。本文方法的處理結(jié)果與光條的變化方向吻合,處理精度高,克服了光學(xué)條件的影響,具有很好的魯棒性。
為了更加直觀(guān)地展示三種方法提取的精度,通過(guò)最小二乘法對(duì)三種實(shí)驗(yàn)結(jié)果進(jìn)行曲線(xiàn)線(xiàn)擬合,計(jì)算所有結(jié)構(gòu)光中心到擬合曲線(xiàn)的均方差,如表1所示。
三種算法在提取8幅圖片結(jié)構(gòu)光中心線(xiàn)時(shí)所用的平均處理時(shí)間如表2所示。

表1 三種方法的均方差Table 1 The mean square deviation of the three methods

表2 算法時(shí)間對(duì)比Table 2 Time comparison of algorithms
實(shí)驗(yàn)結(jié)果證明了本文算法的可行性與優(yōu)越性。在提取精度上,本文算法的均方差最小,提取效果最好。在提取時(shí)間上,本文算法是Steger方法的3倍,雖然沒(méi)有灰度重心法提取速度快,但是在提取精度上本文算法提高了4.08 pixel。
在實(shí)際工程應(yīng)用中,結(jié)構(gòu)光中心線(xiàn)的提取往往會(huì)受到物體材質(zhì),結(jié)構(gòu)光漫反射和外界環(huán)境光的影響。首先通過(guò)圖像掩模算法消除復(fù)雜背景干擾,然后通過(guò)PCA與RG算法相結(jié)合的方式實(shí)現(xiàn)結(jié)構(gòu)光中心線(xiàn)的提取。通過(guò)實(shí)驗(yàn)與分析得出以下結(jié)論。
(1)通過(guò)二維高斯卷積和PCA獲取圖像的法線(xiàn)方向,避免了求取Hessian矩陣時(shí)大規(guī)模的高斯卷積計(jì)算,降低了計(jì)算的復(fù)雜度。
(2)以角度差和灰度差為約束條件的區(qū)域增長(zhǎng)算法可以更加快速地得到結(jié)構(gòu)光中心點(diǎn)的精確位置,從而大大提高了結(jié)構(gòu)光提取的速度。
(3)通過(guò)多組實(shí)驗(yàn)驗(yàn)證,算法可以準(zhǔn)確而高效地實(shí)現(xiàn)復(fù)雜背景下的結(jié)構(gòu)光中心提取。