李盛前,張小帆
(1.廣東機電職業(yè)技術(shù)學(xué)院電氣技術(shù)學(xué)院,廣東廣州 510550;2.廣東技術(shù)師范大學(xué)汽車與交通工程學(xué)院,廣東廣州 510665)
圖像處理是水下焊接機器人視覺伺服自動跟蹤焊縫系統(tǒng)的關(guān)鍵技術(shù)之一,視覺伺服水下焊接機器人利用視覺傳感器感知外界事物,通過視覺傳感器獲取外界圖像并進行圖像加工處理,識別出物體特征,即實現(xiàn)對外界事物的理解,其中圖像的邊緣作為物體在圖像中特征信息的反映,它是識別物體的重要依據(jù),是圖像的最基本特征[1]。通過對圖像邊緣的檢測提取可以對目標進行識別、圖像分析等,所以圖像邊緣檢測是圖像處理和計算機視覺技術(shù)的一個熱點研究課題。
目前,隨著相關(guān)科研人員的不斷探索,形成了一些典型的圖像邊緣檢測算法[2],如Roberts算法、Sobel算法、Prewitt算法、Laplace算法、Kirsch算法、LOG算法。這些算法普遍利用平滑函數(shù)處理后的圖像尋找一階導(dǎo)數(shù)局部極大值點來檢測邊緣,但是它們對噪聲非常敏感,以致邊緣檢測結(jié)果不是很理想。1986年CANNY[3]應(yīng)用最優(yōu)算子,較好地確定了圖像灰度突變位置,這就是被人們公認的對圖像邊緣檢測效果較好的Canny算法。雖然該算法完全可以勝任噪聲污染不是很嚴重的圖像邊緣檢測,但對水下焊接環(huán)境中獲取焊縫圖像后進行邊緣檢測顯得無能為力,主要原因為Canny算法都是在同一個尺度中檢測的,無法進行多尺度抑制污染噪聲,對圖像邊緣由粗到細檢測。1992年,MALLAT首次使用二次B樣條小波對圖像邊緣進行檢測,檢測結(jié)果較好,這為小波邊緣檢測奠定了基礎(chǔ)[4],后來專家們根據(jù)此法,主要對小波函數(shù)構(gòu)造、閾值設(shè)置、多尺度分解改進,提出了各種算法[5-9]。
綜述現(xiàn)有文獻,本文作者基于Canny算法思想,結(jié)合小波變換,對Canny算法非極大值抑制、高低閾值設(shè)置進行改進,提出基于小波變換的自適應(yīng)雙閾值邊緣檢測算法,并應(yīng)用該方法對水下焊縫圖像邊緣進行檢測,解決抑制噪聲和邊緣由粗到細檢測的矛盾,提高水下焊縫邊緣檢測的精度和完整性。
圖像處理是水下焊接機器人視覺伺服跟蹤焊縫控制系統(tǒng)的重要環(huán)節(jié),系統(tǒng)組成如圖1所示??梢钥闯?,要實現(xiàn)機器人對焊縫自動跟蹤,必須給焊接機器人實時提供水下焊縫的位姿信息,將CCD采集的焊縫圖像進行去噪處理,根據(jù)攝像機成像原理計算得到焊縫空間三維位姿信息。其中,焊縫圖像邊緣檢測是最底層,也是最重要的任務(wù),焊縫邊緣檢測的質(zhì)量決定了焊接機器人自動跟蹤系統(tǒng)工作的性能及焊接跟蹤精度。
圖1 水下焊接機器人視覺伺服跟蹤系統(tǒng)組成框圖
近幾年,小波變換在圖像處理領(lǐng)域中應(yīng)用非?;钴S,由于小波變換[10-11]通過壓縮和平移等處理功能,能夠?qū)D像或信號進行多尺度詳細分析檢測,小波變換成為圖像處理的一種新興技術(shù)手段[12-14]。由于水下的環(huán)境特殊,CCD獲取的焊縫圖像受到的噪聲影響非常大,經(jīng)過試驗驗證,Canny算法無法勝任對水下焊縫圖像邊緣的檢測。因此,本文作者提出一種利用多尺度小波變換和Canny算法相結(jié)合對圖像邊緣檢測的算法,解決上述問題,并對受高噪聲影響的水下焊縫進行焊縫邊緣檢測,驗證所提算法的實效性和可行性,確保對水下焊縫圖像邊緣檢測提取的準確性和完整性。
小波定義:設(shè)φ∈L2(R)∩L1(R),且滿足條件:
(1)
對二維連續(xù)小波函數(shù)進行二進變換離散化得到二進小波函數(shù):
(2)
設(shè)二元平滑函數(shù)θ(x,y),設(shè):
(3)
(4)
所以轉(zhuǎn)換為二進小波函數(shù)得:
(5)
(6)
又因為:
(7)
(8)
f(x,y)?θ(x,y)≈f(x,y)
(9)
所以圖像的邊緣點反映到函數(shù)f(x,y)就是函數(shù)值的突變點,于是對f(x,y)?θ(x,y)求導(dǎo)可以確定這些邊緣點。
(10)
(11)
其中:j為多尺度的分解層次,通過取不同的j,可實現(xiàn)多分辨率小波變換邊緣檢測,即多尺度小波變換邊緣檢測。同時由上式可看出,如果平滑函數(shù)取高斯濾波函數(shù)時,算法就變成了傳統(tǒng)Canny算法。
由式(10)(11),可以得到f(x,y)?θ(x,y)的梯度矢量表示為
(12)
可得其模值和相角分別為
fM2j(x,y)=
(13)
fA2j(x,y)=
(14)
可知:若fM2j(x,y)沿著相角方向fA2j(x,y)上為局部極大值時,點(x,y)為候選邊緣點,邊緣的走向與fA2j(x,y)方向垂直。
為更好地去除噪聲增強圖像,尺度函數(shù)和小波函數(shù)的選取非常重要。在小波變換邊緣檢測算法中,根據(jù)文獻[15-16],小波函數(shù)選取B樣條且其緊支集性質(zhì)優(yōu)于高斯函數(shù),利用B樣條作為平滑函數(shù)的多尺度邊緣提取對大多數(shù)應(yīng)用問題是漸進最優(yōu)的。同時,它對應(yīng)的離散小波變換中,快速分解和重構(gòu)計算量少,過程簡潔,因此本文作者選取三次B樣條函數(shù)作為尺度函數(shù)。小波的濾波器系數(shù)如表1所示。
表1 小波的濾波器系數(shù)
傳統(tǒng)Canny算法中的非極大值抑制只對該點梯度方向上的兩個鄰域梯度幅值進行比較,判斷該點是否為局部極大值點,這樣的判斷結(jié)果并不是很精確。改進的非極大值抑制方法中采用雙線性插值的方法對當前點與插值結(jié)果的點進行比較,以判斷當前點是否為局部極大值。插值方法如圖2、圖3所示,將當前點的4個象限分成八領(lǐng)域。
(1)當0≤θ<90°時,主要在第一、三象限中進行雙線性插值。插值方法如圖2所示。
圖2 0≤θ<90°插值方法示意
在第一象限中,梯度幅值線性插值過程:
Kup=α[G(i-1,j)+G(i-1,j-1)]+
cos[θ(i,j)][G(i-1,j-1)-G(i-1,j)]
(15)
Kdown=α[G(i,j)+G(i,j+1)]+
cos[θ(i,j)][G(i,j+1)-G(i,j)]
(16)
Kleft=α[G(i,j)+G(i-1,j)]+
sin[θ(i,j)][G(i-1,j)-G(i,j)]
(17)
Kright=α[G(i,j+1)+G(i-1,j+1)]+
sin[θ(i,j)][G(i-1,j+1)-G(i,j+1)]
(18)
Gx=Kdown+sin[θ(i,j)][Kup-Kdown]
(19)
Gy=Kleft+cos[θ(i,j)][Kright-Kleft]
(20)
(21)
同理,第三象限梯度幅值線性插值過程為
cos[θ(i,j)][G(i+1,j-1)-G(i+1,j)]
(22)
cos[θ(i,j)][G(i,j-1)-G(i,j)]
(23)
sin[θ(i,j)][G(i+1,j-1)-G(i,j-1)]
(24)
sin[θ(i,j)][G(i+1,j)-G(i,j)]
(25)
(26)
(27)
(28)
(2)當90°≤θ<180°時,主要在第二、四象限中進行雙線性插值,插值方法如圖3所示。
圖3 90°≤θ<180°時插值方法示意
在第二象限,梯度幅值線性插值:
Kup=α[G(i,j-1)+G(i-1,j-1)]+
|cos[θ(i,j)]|[G(i-1,j-1)-G(i,j-1)]
(29)
Kdown=α[G(i,j)+G(i-1,j)]+
|cos[θ(i,j)]|[G(i-1,j)-G(i,j)]
(30)
Kleft=α[G(i-1,j)+G(i-1,j-1)]+
|sin[θ(i,j)]|[G(i-1,j-1)-G(i-1,j)]
(31)
Kright=α[G(i,j)+G(i,j-1)]+
|sin[θ(i,j)]|[G(i,j-1)-G(i,j)]
(32)
Gx=Kdown+|sin[θ(i,j)]|[Kup-Kdown]
(33)
Gy=Kright+|cos[θ(i,j)]|[Kleft-Kright]
(34)
(35)
第四象限梯度幅值線性插值為
|cos[θ(i,j)]|[G(i+1,j+1)-G(i,j+1)]
(36)
|cos[θ(i,j)]|[G(i,j+1)-G(i,j)]
(37)
|sin[θ(i,j)]|[G(i,j+1)-G(i,j)]
(38)
|sin[θ(i,j)]|[G(i+1,j+1)-G(i,j+1)]
(39)
(40)
(41)
(42)
其中:相關(guān)系數(shù)α=0.5;cos[θ(i,j)]、sin[θ(i,j)]為比例函數(shù),相當于自適應(yīng)相關(guān)系數(shù),所以設(shè)G(i,j)為目標像素的梯度幅值,根據(jù)G(i,j)的梯度方向θ上雙線性插值得到G1(i,j)、G2(i,j),當G(i,j)>G1(i,j)、G(i,j)>G2(i,j)時,G(i,j)為候選邊緣極值點,否則為非邊緣極值點,賦G(i,j)為0。在改進的非極大值抑制方法中,采用雙線性插值的方法比較當前點與插值結(jié)果的點,用以判斷是否為局部最大值,使得邊緣的定位更加精確。
非極大值抑制后,須設(shè)定閾值進行邊緣檢測,根據(jù)日本學(xué)者OTSU的大隸法(最大類間方差)[17]中提出的兩個評價函數(shù):類間方差和類內(nèi)方差。但是大多數(shù)的閾值邊緣檢測都是選擇其中的一種來計算最佳閾值,本文作者利用2個評價函數(shù)的比值最大來尋求最佳雙閾值。
經(jīng)過非極大值抑制后梯度幅值分為L級,按模極大值大小分為C0、C1和C2三類:C0類為非邊緣點的像素,C2類為邊緣點的像素,C1類包含的像素可能是邊緣點,也可能不是邊緣點。設(shè)定ni為模數(shù)為i的像素的總數(shù),pi為該模級像素數(shù)占整個圖像像素的比例,灰度值出現(xiàn)的概率為
(43)
令C0包含模級[0,1,2,…,k],C1包含模級[k+1,k+2,…,m],C2包含模級[m+1,m+2,…,L-1],則整副圖像的總均值為
(44)
根據(jù)概率理論,各類出現(xiàn)的概率為
(45)
各類的均值為
(46)
根據(jù)概率理論,由各類的均值計算其類內(nèi)方差為
(47)
類間最佳閾值評判函數(shù)為
(48)
最大類間方差反映的是各類之間的均衡性。
類內(nèi)最佳閾值評判函數(shù)為
(49)
類內(nèi)方差最小化反映的是每類像素之間的差別應(yīng)當最小。
選取的最佳閾值應(yīng)當是用該閾值分割得到的兩類間具有最好的分離性,類間分離性最好的判據(jù)是數(shù)理統(tǒng)計意義上的類間特性方差最大或者類內(nèi)特性方差最小,所以為兼顧類間和類內(nèi)同時達到最優(yōu),提出采用類間最大方差與類內(nèi)最小方差的最大比值作為最佳閾值,即:
(50)
多尺度小波變換自適應(yīng)雙閾值圖像邊緣檢測具體步驟:(1) 構(gòu)造計算小波濾波器參數(shù);(2) 利用Mallat快速小波變換法[18-20],在不同尺度j下,生成各層圖像的梯度幅值fM2j(x,y)和相角fA2j(x,y),尺度j=(1,2,…,J);(3) 根據(jù)各層梯度幅值fM2j(x,y)對應(yīng)的相角fA2j(x,y)在相應(yīng)的象限中進行雙線性插值求極大幅值,非極值幅值賦0,生成各層可能的邊緣圖像p2j(x,y);(4) 采用文中雙自適應(yīng)閾值對各層可能的邊緣圖像p2j(x,y)進行篩選,得到各層邊緣圖像D2j(x,y); (5) 從最大尺度層j開始,對該層的每一個邊緣點在下一層j-1中以這點為中心對應(yīng)的3×3領(lǐng)域內(nèi),查找可能的候選邊緣點,根據(jù)幅值相近、相角相似鏈接候選邊緣點,刪除離散點,得到j(luò)-1尺度下的邊緣圖像D2j-1(x,y);(6) 依次循環(huán)步驟(5)直到最后尺度j=1,得到多尺度融合的邊緣圖像E(x,y)。
該實驗設(shè)備實物如圖4所示,主要由上位機控制器、模擬焊縫板、水箱、雙目攝像機組成。
圖4 水下雙目視覺系統(tǒng)實驗平臺
根據(jù)現(xiàn)實工作環(huán)境水質(zhì)的不同,分別對清水和渾濁水中的焊接板采集圖像,利用幾種常用邊緣檢測算法及文中方法分別對這2種情況水下焊縫圖像進行邊緣檢測,結(jié)果分別如圖5、6所示。
圖5 3種算法分別對清水下焊縫圖像進行邊緣檢測比較
由圖5—圖6可以看出:在2種不同水質(zhì)環(huán)境下進行焊縫邊緣檢測,文中改進方法比其他2種算子檢測效果更佳、更準確、更完整,并且能有效濾除各種噪聲產(chǎn)生的偽邊緣,為水下焊接自動跟蹤定位提供了條件,其他2種算法濾除噪聲的同時也弱化了邊緣信息,這表明文中改進算法是正確可行的,體現(xiàn)了多尺度小波變換對圖像處理的優(yōu)越性。
圖6 3種算法分別對渾濁水下焊縫圖像進行邊緣檢測比較
本文作者針對水下焊縫圖像受到漂浮顆粒、泥沙、弧光、飛濺、水渾濁等因素的噪聲影響而難以檢測并提取出準確完整的焊縫邊緣,分析了傳統(tǒng)Canny算子存在的缺點,提出了一種改進Canny邊緣檢測算法,引入了多尺度小波變換,采用雙線性插值優(yōu)化非線性極大值抑制,并結(jié)合OTSU法生成自適應(yīng)雙閾值,對水下焊縫圖像進行焊縫邊緣檢測。結(jié)果表明:改進后的算法正確可靠,可以抑制噪聲,且能較快檢測出準確清晰完整的焊縫邊緣,有效濾除偽邊緣,為實現(xiàn)水下焊接機器人自動跟蹤焊縫提供了可靠的焊縫圖像邊緣信息。