程 鑫,凌 鶴,李 碩
(武漢理工大學(xué) 機(jī)電工程學(xué)院,湖北 武漢430070)
汽車車身的密封性能是整車質(zhì)量水平的重要評價標(biāo)準(zhǔn)。焊縫涂膠能夠提高車身密封水平,可以提高車身防水、防腐蝕能力,因此需要檢測涂膠質(zhì)量的好壞。其中膠條的高度是膠條質(zhì)量的重要參數(shù),激光三角法是檢測高度最為快速、準(zhǔn)確的方法之一。針對黑色膠條,光條的亮度會減弱,進(jìn)而增加提取難度,因此對線結(jié)構(gòu)光光條中心的提取是關(guān)鍵難題之一。
激光的光條提取算法主要有閾值法、極值法、擬合法和重心法等。閾值法通過設(shè)定不同的閾值,把圖像像素點的灰度值分為2個區(qū)間,分割后的圖像像素點灰度值若處在設(shè)定區(qū)間,則被選中,反之則被刪除。該方法速度快,但是改變了光條的細(xì)節(jié),精度差。極值法的原理是提取圖像中每行或每列的極大值,在光條截面光強(qiáng)分布嚴(yán)格符合高斯分布的情況下速度快,但容易造成誤差。擬合法是將光條灰度最大值附近像素擬合成拋物線,然后將拋物線的極大值點位置作為光條中心,這種方法要求光條截面光強(qiáng)符合高斯分布,但是提取速度較慢。重心法利用光條中心兩側(cè)的灰度梯度特性,將求出光條選取點的重心作為光條中心,精度高但計算量大、速度慢。
劉松[1]等人對激光散斑圖像建立光強(qiáng)分布模型,提出一種在整體對比度提高的算法上融合光條提取的算法;梅峻華[2]等人提出了一種融合極值法和灰度重心法的結(jié)構(gòu)光光條中心提取算法,能達(dá)到亞像素級精度;方夏章[3]等人對在室內(nèi)環(huán)境下圖像中光條的亮度不均問題提出了一種結(jié)合閾值法、邊緣檢測以及灰度分布特征的方法。但上述針對黑色膠條的光條提取方法,存在著魯棒性差、提取速度慢的缺點。因此,找到適應(yīng)工業(yè)測量同時兼具高精度和魯棒性的方法很有必要。文中提出了一種具備高魯棒性的算法,對膠條激光條圖像進(jìn)行線性增強(qiáng),將整體圖像對比度提高;然后,用極值法對激光條的中心進(jìn)行初步的提取,并結(jié)合Hessian矩陣,對激光條的中心進(jìn)行定位;最后,利用高斯函數(shù)準(zhǔn)確擬合出激光條的中心。
目前,激光三角法是三維檢測中較成熟的方法。本實驗利用激光器將光投影待測物體表面,反射光通過成像鏡頭,在工業(yè)相機(jī)的感光芯片上將光信號轉(zhuǎn)化為數(shù)字信號,根據(jù)相機(jī)和激光器所限定的結(jié)構(gòu),工業(yè)相機(jī)可以在不同的角度下呈現(xiàn)圖像,依據(jù)所限制的相機(jī)和激光器的自由度,可以求出待測物體表面的三維信息[4]。
圖1 激光三角法原理圖Fig.1 Schematic diagram of laser trigonometry
結(jié)構(gòu)光指的是通過激光器發(fā)射出的一束激光,其在被測物體表面形成的光條在傳播過程中曲率中心不斷改變,其振幅在橫截面內(nèi)為高斯分布,強(qiáng)度集中在軸線及其附近,如圖2所示。但是在實際工業(yè)應(yīng)用中,光條的光強(qiáng)實際分布并不一定完全按照高斯分布,具體有偏差的地方在于:光強(qiáng)的最大值不一定是單個位置,而是在多個位置,光條中心的光強(qiáng)也不一定按照高斯分布下降,而是階躍式變化[5]。
圖2 光條截面強(qiáng)度分布Fig.2 Light bar cross-section intensity distribution
算法整體流程圖如圖3所示,首先將整體圖像對比度提高,然后用極值法找到極大值,對激光條的中心進(jìn)行初步的提取,結(jié)合Hessian矩陣,對激光條的中心進(jìn)行定位,最后利用高斯函數(shù)準(zhǔn)確擬合出激光條的中心。
圖3 算法流程圖Fig.3 Algorithm flow chart
在黑色膠體的結(jié)構(gòu)光圖像中,結(jié)構(gòu)光光條只是圖像中的小部分,可以通過對圖像進(jìn)行閾值分割和尺寸分割,把包含圖像光條的部分分割出來,進(jìn)行數(shù)據(jù)處理,可以很大程度地減少整體的運算量[6]。具體方法:將光條圖像的區(qū)域進(jìn)行區(qū)域轉(zhuǎn)換,轉(zhuǎn)換為水平最小外接矩形,為了避免圖像過于緊湊,將裁剪區(qū)域擴(kuò)大。文中使用的原始圖像大小是1 280×1 024像素,分割提取后參與運算的圖像為400×1 024像素,運算量大幅降低。
對整個圖像進(jìn)行線性增強(qiáng),將整體圖像對比度提高,以便進(jìn)行下一步處理。本方法在原來的基礎(chǔ)上提出了一種增強(qiáng)對比度的方法,該方法的核心是對圖像的高頻區(qū)域進(jìn)行處理,使生成的圖像更加清晰。首先,該過程使用低通濾波執(zhí)行過濾,得到的灰度值(res)作為邊緣處理,可以計算出圖像的平均灰度值,之后利用該算法增強(qiáng)對比度,具體過程為:每個像素的灰度值為原來的灰度值加上與平均值的差的線性關(guān)系,并且可以調(diào)整Factor參數(shù),灰度值在圖像的邊緣處被處理,這樣可以使得灰度值大的像素點灰度值變大,同時灰度值小的點灰度值變小,然后根據(jù)獲得的灰度值(平均值)和原始灰度值(orig)計算如下:
res=(orig-mean)×Factor+orig
(1)
在進(jìn)行檢測的過程中,噪聲總是無處不在,在亮度不均勻的黑色膠條圖像上更加明顯,噪聲的大量存在增加光條提取難度,也對精度造成影響。因此需要對圖像進(jìn)行預(yù)處理,其目的就是減少圖像噪聲[7],結(jié)合中值濾波和閾值分割,進(jìn)行初步的光條提取。利用中值濾波和閾值分割的算法對像素點進(jìn)行排除。中值濾波的原理是將數(shù)字圖像的像素序列排序,則點的灰度值為與該像素點相鄰的點的灰度值的中值[8]。在進(jìn)行濾波時,濾波器模板由Radius定義大小,最常見的模板有圓形和正方形。其中圓形模板由一個圓圈內(nèi)的像素組成,正方形模板由正方形內(nèi)的像素組成,通常為3×3、5×5區(qū)域。
閾值分割可用于選擇特定的灰度值,以抑制小于設(shè)定值的對象,在進(jìn)行分割的同時,能夠?qū)⑾袼攸c灰度值大小按照直方圖的形式顯示出來,在設(shè)定灰度值范圍之內(nèi)的像素點會顯示出來[9],結(jié)合濾波處理,能夠很完整地將光條的圖像提取出來。
在光條的位置提取出來之后,利用極值法和與Hessian矩陣方法相結(jié)合的算法提取光條中心坐標(biāo),實驗表明,該算法能夠在保證運算速度的同時,具備高的抗干擾性,能夠?qū)崿F(xiàn)光條中心定位。首先極值法找到灰度的極大值,初步定位光條中心,由于光條曲率的法線可以由Hessian矩陣計算獲得,然后通過泰勒展開式,獲得中心點的坐標(biāo)[10]。
假設(shè)其中一個像素坐標(biāo)為(x0,y0),該點的Hessian矩陣為
(2)
該點法線方向(nx,ny)及該方向的二階導(dǎo)數(shù),分別為該點Hessian矩陣相應(yīng)的特征向量和最大絕對特征值。光帶圖像r(x,y)中,在光帶方向上的一階方向?qū)?shù)為0,且二階方向?qū)?shù)取負(fù)的極小值點,位于光帶中心上[11]。設(shè)光帶方向n(x,y) 用單位向量(nx,ny)表示,則沿光帶方向(nx,ny)可以表示為
rt(x0+tnx,y0+tny)=0
(3)
(4)
則圖像灰度的極值點為(px,py)=rt(x0+tnx,y0+tny),因此光條的中心點可以提取出來。
在經(jīng)過上述算法處理之后,光條中心點的坐標(biāo)能夠提取出來。在文中黑色膠體的應(yīng)用背景下,光條的中心點的提取會產(chǎn)生偏差,光條的部分中心點甚至被吸收導(dǎo)致無法讀取,如果直接將中心點連接,會使得光條中心提取誤差更大,因此需要對點進(jìn)行平滑的過渡擬合[12]。文中在曲線擬合的基本原理上進(jìn)行曲線擬合,用高斯函數(shù)對數(shù)據(jù)點集進(jìn)行函數(shù)逼近的擬合,從而得到光條的完整中心線[13]。這種方法能夠在進(jìn)行積分運算時更加簡單迅速。對(5)式兩邊取對數(shù)可以將高斯函數(shù)轉(zhuǎn)化為二次多項式擬合函數(shù)(6),化簡之后得函數(shù)(7),可以求出S、xmax、ymax,從而得到高斯擬合曲線函數(shù)。
(5)
(6)
(7)
高斯擬合算法的引入不僅實現(xiàn)了數(shù)據(jù)的轉(zhuǎn)換,而且提高了提取精度,能減小數(shù)據(jù)處理工作量,降低復(fù)雜程度,這種擬合方法是十分有意義的。在擬合過程中,高斯擬合模型盡可能與實際情況相符合;在同一個模型中,應(yīng)盡量避免出現(xiàn)坐標(biāo)變化過大的點,應(yīng)采用較密集的點進(jìn)行擬合。在擬合過程中誤差是不可避免的,因此必須分析高斯擬合光條的誤差。高斯擬合由于其特性,當(dāng)點的數(shù)量較多并且點的坐標(biāo)變化較小時,高斯函數(shù)較平滑,擬合出的光條精度高。當(dāng)點的數(shù)量較少并且點的波動較大時,易出現(xiàn)鋸齒狀,降低了擬合效果,導(dǎo)致擬合精度降低。而文中提取中心點的算法能更加準(zhǔn)確地提取光條的中心點坐標(biāo),能夠減小擬合誤差。
本次實驗主要硬件設(shè)備包括線結(jié)構(gòu)光激光器,成像相機(jī),成像鏡頭等。其中結(jié)構(gòu)光激光器采用的是相干(coherent)公司的StingRay激光二極管模塊;波長為650 nm,所用成像單元為大恒公司的MER-130-30UM數(shù)字?jǐn)z像機(jī),分辨率為1 280×1 024,幀率為30 fps;鏡頭為Computar公司生產(chǎn),型號為Computar M0824-MPW2,焦距為16 mm。首先如圖4搭建結(jié)構(gòu)光光條中心檢測模型,符合激光三角測量的結(jié)構(gòu)系統(tǒng),然后線結(jié)構(gòu)光激光器將光射向物體表面,在數(shù)字?jǐn)z像機(jī)上成像,最后將獲得的光條圖像進(jìn)行處理[14]。
圖4 實驗概況圖Fig.4 Experimental overview
如圖5所示是數(shù)字?jǐn)z像機(jī)采集到的原始激光條圖像,激光照射到試驗臺架上形成的光條圖像。按照整體的步驟,將光條圖像進(jìn)行裁剪,只保留光條所在的部分,并且將圖像對比度提高以后,在整體圖像的灰度值上會便于閾值的提取。為了更好地對比本文算法的效果,將裁剪后的圖像和增強(qiáng)對比度的圖像拼接形成一幅圖像,如圖6所示。
圖5 原圖光條Fig.5 Original light strip
圖6 進(jìn)行裁剪和對比度提高的之后的光條Fig.6 Light bars after cropping and contrast enhancement
針對裁剪和濾波之后的光條圖像,進(jìn)行初步的骨架提取,在計算過程中,首先對光條部分進(jìn)行閾值提取,提取出光條的大致位置,能夠初步提取出光條的骨架[15],將閾值提取的光條圖像和骨架提取的光條圖像拼接形成對比,如圖7所示。由于光條的中心線需要是光滑的,需要在此基礎(chǔ)上進(jìn)行另外的光條擬合。將原圖和骨架細(xì)化的圖片進(jìn)行放大對比,可以發(fā)現(xiàn)骨架細(xì)化的光條中心的提取在部分光條變化的地方會存在誤差[16],如圖8所示,因此需要精確地進(jìn)行中心點的提取。
圖7 進(jìn)行閾值提取的光條和骨架提取的光條Fig.7 Light bar for threshold extraction and light strip for skeleton extraction
圖8 骨架細(xì)化之后的光條Fig.8 Light strip after skeleton is refined
在工業(yè)現(xiàn)場環(huán)境中,光線、光強(qiáng)其他條件都比較惡劣的條件下,光條圖片會產(chǎn)生很多噪聲,因此添加噪聲來模擬工業(yè)現(xiàn)場環(huán)境下獲取的光條圖像,再通過本文的算法進(jìn)行處理。如圖9所示,并且對去噪前后的圖片進(jìn)行對比。在添加了噪聲幅度為100的白噪聲的情況下,經(jīng)過處理后得到如圖9所示的光條中心線。
圖9 加白噪聲之后的光條和提取的光條Fig.9 Light strip and extracted strip after adding white noise
在本次實驗中,軟件默認(rèn)左上角為原點,通過Hessian矩陣方法和文中的算法,在光條的橫截面上取10個點,測試光條中心點的坐標(biāo)。利用激光測距儀和激光投線儀測量這10個點的實際坐標(biāo)。將得到的兩組坐標(biāo)數(shù)據(jù)進(jìn)行比較,計算誤差,并且求誤差平均值。由表1的數(shù)據(jù)顯示,在用Hessian矩陣方法測試黑色膠體光條坐標(biāo)中心和用儀器精準(zhǔn)測試的誤差對比,在X坐標(biāo)上,誤差的平均值為1.126個像素,而在Y坐標(biāo)的平均誤差為1.166個像素。用本文方法測試并且進(jìn)行誤差對比分析,在X坐標(biāo)上,誤差的平均值為0.558 8個像素,而在Y坐標(biāo)的平均誤差為0.609 7個像素。用本實驗方法得出的光條中心提取點的誤差較小,精度更高。
表1 實驗數(shù)據(jù)對比
針對汽車焊縫密封的黑色膠條,文中提出了一種光條分割的Hessian矩陣定位和高斯曲線擬合的算法。首先,提取黑色膠條的光條圖像,將整體圖像對比度提高;然后,用極值法對激光條的中心進(jìn)行初步提取,并結(jié)合Hessian矩陣,對激光條的中心進(jìn)行亞像素定位;最后,利用高斯函數(shù)準(zhǔn)確擬合出激光條的中心。該算法的檢測精度達(dá)到亞像素級,并且魯棒性高,能夠增加黑色膠條光條的穩(wěn)定性,能夠在工業(yè)現(xiàn)場的環(huán)境下穩(wěn)定并且準(zhǔn)確地提取出光條中心,這也是以后的工作方向。