戴喬森,何毅斌,陳宇晨,劉 湘,賀蘇遜,吳琳慧,杜 偉,汪 強(qiáng)
(武漢工程大學(xué) 機(jī)電工程學(xué)院,湖北 武漢 430073)
在現(xiàn)代機(jī)械制造業(yè)中,機(jī)械零件是否符合生產(chǎn)要求離不開零件尺寸的精度檢測[1]。而測量機(jī)械零件的尺寸首先就要得到其清晰、完整的邊緣輪廓,而通過計(jì)算機(jī)視覺的方式獲得零件邊緣是近幾年研究的重點(diǎn)。
相較于傳統(tǒng)的測量方法,計(jì)算機(jī)視覺擁有速度快、精度高、不易受到人為因素影響的優(yōu)勢,并逐漸被各大機(jī)械相關(guān)研究機(jī)構(gòu)所采用。
邊緣檢測算法有很多,根據(jù)計(jì)算邊緣導(dǎo)函數(shù)類型的不同,可以將邊緣檢測算法分為一階導(dǎo)函數(shù)和二階導(dǎo)函數(shù)兩類[2]。通常情況下,一階導(dǎo)函數(shù)對邊緣定位速度快且節(jié)約檢測時(shí)間;二階導(dǎo)函數(shù)相對復(fù)雜但效果更好[3]。拉普拉斯算法以二階微分算法為基礎(chǔ),因其各項(xiàng)同性的特點(diǎn),即將圖像旋轉(zhuǎn)后濾波與先對圖像濾波再旋轉(zhuǎn)結(jié)果相同而得到更廣泛的應(yīng)用。對于圖像邊緣的基本特征識別,由于采集到的原始圖像質(zhì)量會受到環(huán)境因素、物體表面等不可控因素的影響[4],在實(shí)際處理時(shí)需要人為消除不利因素對圖像的影響。
國內(nèi)外學(xué)者對于應(yīng)用拉普拉斯算法提高邊緣檢測的精度和效率做了許多研究和改進(jìn):文獻(xiàn)[5]在傳統(tǒng)拉普拉斯的基礎(chǔ)上添加了變量sigma用于確定兩個(gè)方向上的高斯核以增強(qiáng)圖像邊緣輪廓的清晰度,但計(jì)算時(shí)間長,導(dǎo)致邊緣線條較為粗糙;文獻(xiàn)[6]提出了改進(jìn)的log算子與ViBe算法相結(jié)合的陰影消除算法,從而提高了陰影消除方法的綜合性能和魯棒性,但算法過于繁瑣,并不具備高效性的特點(diǎn);文獻(xiàn)[7]提出了基于數(shù)學(xué)形態(tài)學(xué)的齒輪邊緣提取方法,但是經(jīng)過具體實(shí)驗(yàn)可知該方法不具備普遍性。
筆者提出一種圓周拉普拉斯算法,目的是在保證算法高效性的同時(shí),提高邊緣檢測的清晰度和細(xì)節(jié)的完整性,并加入數(shù)學(xué)形態(tài)學(xué)中的頂帽變換和底帽變換,以保證圖像的抗噪性。
一個(gè)二維圖像函數(shù)的拉普拉斯算法定義為:
(1)
對于離散二維圖像,可以用下式作為對二階偏微分的近似:
(2)
(3)
將上面兩式相加就得到用于圖像銳化的拉普拉斯算法:
▽2f=[f(i+1,j)+f(i-1,j)+f(i,j+1)+f(i,j-1)]-4f(i,j)
(4)
這個(gè)公式可以由以下濾波模板來實(shí)現(xiàn):
分析拉普拉斯算法模板的結(jié)構(gòu)可知,這種模板對于90°的旋轉(zhuǎn)是各向同性的。更進(jìn)一步,還可以得到如下對于45°旋轉(zhuǎn)各向同性的拉普拉斯算法模板[8]:
筆者在1節(jié)中對傳統(tǒng)的拉普拉斯算法模板生成原理進(jìn)行了分析,接下來將在此基礎(chǔ)上對其進(jìn)行改進(jìn)。
圖像I在經(jīng)過旋轉(zhuǎn)、平移、縮放后,可得到圖像I′,即:
I′=k·S·I+β
(5)
式中:k—圖像縮放的比例,是標(biāo)量;S—旋轉(zhuǎn)矩陣;β—圖像偏移量。
變換后圖像上各點(diǎn)坐標(biāo)對應(yīng)關(guān)系為:
(6)
求一階導(dǎo)數(shù)可得:
(7)
式中:Iu—圖像在u方向的偏導(dǎo)數(shù);Iv—圖像在v方向的偏導(dǎo)數(shù)。
將矩陣窗函數(shù)變成一維向量,變換后的公式如下所示:
(8)
(9)
式中:M—原圖像的相關(guān)矩陣;a—Iu加權(quán)后的一維向量;b—Iv加權(quán)后的一維向量;a′,b′—變換后的a,b向量。
原圖像的相關(guān)矩陣為:
(10)
將式(8,9)代入式(10)中可得:
(11)
圖像變換后的灰度相關(guān)性為:
(12)
故圖像經(jīng)變換后的灰度矩陣為:
(13)
當(dāng)k=1時(shí),圖像僅進(jìn)行平移和旋轉(zhuǎn),變換前后矩陣M是相似的,故平移和旋轉(zhuǎn)對判別式?jīng)]有影響;
當(dāng)k≠1時(shí),即圖像縮放,M不相似,故傳統(tǒng)的拉普拉斯算法不具有不變性。
傳統(tǒng)的拉普拉斯算法和圓周算法模板的對比如圖1所示。
圖1 傳統(tǒng)拉普拉斯算法模板和圓周拉普拉斯算法模板
由圖1可知:傳統(tǒng)的拉普拉斯算法一般選用3×3的模板進(jìn)行濾波,在傳統(tǒng)的算法中,由于拉普拉斯算法的模板為矩形;當(dāng)圖像發(fā)生旋轉(zhuǎn)時(shí),必然會影響邊緣檢測的準(zhǔn)確性。
本文提出圓周拉普拉斯算法模板,通過圓周上像素點(diǎn)來確定圖像邊緣;由于圓周上各點(diǎn)到中心點(diǎn)距離相等,當(dāng)圖像發(fā)生旋轉(zhuǎn)時(shí),圓周上的點(diǎn)不會發(fā)生變化,進(jìn)而邊緣檢測的準(zhǔn)確性也不會受到影響。
因此,筆者提出的圓周拉普拉斯算法模板具有旋轉(zhuǎn)不變性。
由于銳化算法的作用是突出圖像的細(xì)節(jié),但并不能區(qū)分圖像中有效的邊緣和無效的噪聲,在實(shí)際應(yīng)用中通常不單獨(dú)使用。由于數(shù)學(xué)形態(tài)學(xué)不僅能消除圖像的噪聲,還能做到不破壞圖像邊緣的細(xì)節(jié)[9]。
筆者算法將結(jié)合灰度級形態(tài)學(xué)中的頂帽變換和底帽變換,對已經(jīng)提取到的零件邊緣進(jìn)行優(yōu)化。
2.2.1 灰度級形態(tài)學(xué)腐蝕
灰度級形態(tài)學(xué)腐蝕定義如下:
(14)
式中:b—非平坦結(jié)構(gòu)元;f—原圖像相關(guān)矩陣。
2.2.2 灰度級形態(tài)學(xué)膨脹
灰度級形態(tài)學(xué)膨脹的定義如下:
(15)
式中:b—非平坦結(jié)構(gòu)元;f—原圖像關(guān)矩陣。
2.2.3 灰度級形態(tài)學(xué)的開操作和閉操作
灰度級形態(tài)學(xué)腐蝕的定義如下:
f°b=(fΘb)⊕b
(16)
式中:b—非平坦結(jié)構(gòu)元;f—原圖像關(guān)矩陣。
具體含義是先用結(jié)構(gòu)元b對圖像f做腐蝕,隨后用結(jié)構(gòu)元b對所得結(jié)果進(jìn)行膨脹。同理,結(jié)構(gòu)元b對圖像f的閉操作表示為f·b,即:
f·b=(f⊕b)Θb
(17)
式中:b—非平坦結(jié)構(gòu)元;f—原圖像關(guān)矩陣。
開操作用來平滑物體的輪廓、斷開窄狹頸并消除較細(xì)的突出物。比操作用來連接窄間斷和長溝壑,消除小的孔洞,填補(bǔ)輪廓線中斷裂的區(qū)域。
2.2.4 灰度級形態(tài)學(xué)的頂帽變換和底帽變換
由式(14~17)可以組成繪圖形態(tài)學(xué)的top-hat(頂帽)變換和bottom-hat(底帽)變換[10,11]?;叶燃増D像f的頂帽變換指的是f減去其開操作,即:
That(f)=f-(f·b)
(18)
同理,灰度級圖像f的底帽變換指的是f的閉操作減去f,即:
Bhat(f)=(f·b)-f
(19)
在圓模板拉普拉斯算法邊緣檢測圖像上,加上頂帽變換再減去底帽變換,就可以在不增加運(yùn)算復(fù)雜度的情況下有效地抑制噪聲,從而提高圖像的有效信息。
實(shí)驗(yàn)采集到的齒輪零件圖和手表零件圖如圖2所示。
圖2 實(shí)驗(yàn)零件圖
實(shí)驗(yàn)中,使用了兩種傳統(tǒng)拉普拉斯算法和筆者提出的圓周拉普拉斯算法進(jìn)行對比,其結(jié)果如圖3所示。
圖3 傳統(tǒng)拉普拉斯算法與拉普拉斯圓周算法的實(shí)驗(yàn)效果
圖3(b,f)是使用傳統(tǒng)拉普拉斯算法中90°各項(xiàng)同性的模板對齒輪和零件圖進(jìn)行銳化的實(shí)驗(yàn)效果圖;
圖3(c,g)是使用傳統(tǒng)拉普拉斯算法中45°各項(xiàng)同性的模板對齒輪和零件圖進(jìn)行銳化的實(shí)驗(yàn)效果圖;
圖3(d,h)是使用本文提出的圓周拉普拉斯算法模板進(jìn)行銳化的實(shí)驗(yàn)效果圖。
對零件邊緣提取結(jié)果放大的圖如圖4所示。
圖4分別是90°各項(xiàng)同性模板、45°各項(xiàng)同性模板、圓周拉普拉斯算法模板對齒輪零件進(jìn)行實(shí)驗(yàn)結(jié)果的局部放大圖。
對比3種算法的實(shí)驗(yàn)結(jié)果可以看出:傳統(tǒng)拉普拉斯算法對于提取的零件邊緣存在不連續(xù)、不清晰的缺陷,而使用圓周拉普拉斯算法提取出的零件邊緣則更加連續(xù),細(xì)節(jié)保留地更加完整。
從圖3(d,h)可以看出:僅使用圓周拉普拉斯算法并不能去除圖像中的噪聲。因此,為了得到更符合實(shí)際生產(chǎn)需要的邊緣輪廓圖,還需要對圖像進(jìn)行去噪。
采用數(shù)學(xué)形態(tài)學(xué)中的頂帽變換和底帽變換的結(jié)果如圖5所示。
圖5 使用數(shù)學(xué)形態(tài)學(xué)去噪的效果最終效果圖
由圖5可以看出,使用數(shù)學(xué)形態(tài)學(xué)去噪后,圖像中的噪聲得到了明顯的抑制。
峰值信噪比(PSNR)作為一種評價(jià)圖像質(zhì)量的檢測方法,因其普遍適用的特性而被廣泛運(yùn)用在各種實(shí)驗(yàn)中;且其值越大,被證明其檢測效果越好,算法越優(yōu)秀。
筆者分別對齒輪零件和手表零件的3種算法的實(shí)驗(yàn)過程進(jìn)行了計(jì)算,其對應(yīng)的峰值信噪比得到的結(jié)果如表1所示。
表1 圖像邊緣檢測效果評價(jià)表
從表1中可以看出:圓周拉普拉斯算法的峰值信噪比比傳統(tǒng)算法更大,說明筆者提出的算法起到了改進(jìn)的作用。
從該實(shí)驗(yàn)結(jié)果可以看出:
(1)傳統(tǒng)拉普拉斯算法在檢測機(jī)械零件邊緣上存在清晰度不足、細(xì)節(jié)失真等問題,且由于其旋轉(zhuǎn)不變性,圓周拉普拉斯算法可以有效地避免這點(diǎn);運(yùn)用圓周拉普拉斯算法檢測出的零件邊緣更接近真實(shí)情況;
(2)在應(yīng)用圓周拉普拉斯算法邊緣檢測的機(jī)械零件圖像上,加上數(shù)學(xué)形態(tài)學(xué)的頂帽變換和底帽變換,可以在不影響圖像邊緣細(xì)節(jié)的前提下,有效地抑制噪聲。
通過傳統(tǒng)的邊緣檢測算法得到的圖像往往存在邊緣不連貫和細(xì)節(jié)缺失的問題,提取的邊緣效果不理想。
針對傳統(tǒng)算法的這類缺陷,筆者提出了一種圓周拉普拉斯算法,并采用了常見的齒輪和手表零件進(jìn)行了實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)結(jié)果證明,圓周拉普拉斯算法方法能夠完整地保留機(jī)械零件圖像中的邊緣信息,能更有效地還原圖像邊緣的有效信息;同時(shí),加入了數(shù)學(xué)形態(tài)學(xué)中的頂帽變換和底帽變換進(jìn)行去噪處理,可以去除圖像中的無效信息,得到噪聲少、邊緣曲線連續(xù)、清晰、圖像信息保留完整的零件圖像。
最后,筆者采用峰值信噪比法,對傳統(tǒng)算法與圓周拉普拉斯算法進(jìn)行了對比,其結(jié)果證明,筆者所提出的算法更為優(yōu)秀。