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