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