梁橋康 聶軍平 鄒坤霖 王耀南 孫煒
摘要:針對探頭在粗定位情況下對車身焊點(diǎn)檢測效率和準(zhǔn)確率方面存在的不足,提出了一種結(jié)合焊點(diǎn)形態(tài)結(jié)構(gòu)特點(diǎn),利用極坐標(biāo)Hough變換算法和改進(jìn)的邊緣檢測算子,以精確獲取焊點(diǎn)坐標(biāo)的方法。此方法通過形態(tài)結(jié)構(gòu)決策降低參數(shù)存儲,用極坐標(biāo)構(gòu)造二維參數(shù)極大地提高了運(yùn)算速度,再結(jié)合濾波、最小二乘法、雙閾值法等算法,能在高噪聲的背景下對焊點(diǎn)進(jìn)行檢測標(biāo)定,以提高機(jī)械臂末端探頭檢測焊點(diǎn)質(zhì)量的效率和準(zhǔn)確率,對于工業(yè)上車身焊點(diǎn)檢測具有重要的實(shí)際意義。實(shí)驗(yàn)結(jié)果表明,該方法處理焊點(diǎn)圖像的準(zhǔn)確率達(dá)到99.2%,且快速性也有很大的提高。
關(guān)鍵詞:焊點(diǎn);形態(tài)結(jié)構(gòu);極坐標(biāo)Hough變換;高斯梯度;最小二乘
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A
在工業(yè)4.0智能工廠的加速推動下,企業(yè)的智能化、創(chuàng)新和生產(chǎn)效率將提到一個新的高度,汽車行業(yè)的加工將變得更加智能化、精確化、高效化等。完成焊接但是未涂裝之前的車身即白車身,其焊點(diǎn)質(zhì)量關(guān)系到整車的基本性能,用CAE工具選定的關(guān)鍵區(qū)域?qū)φ嚨男阅苡绊懜?,所以其質(zhì)量檢測更是必不可少。由于運(yùn)用人工來檢測焊點(diǎn)具有視覺疲勞等不可克服的缺點(diǎn),同時白車身焊點(diǎn)檢測技術(shù)正處在一個高速發(fā)展的時期,運(yùn)用機(jī)器視覺技術(shù)識別焊點(diǎn)并進(jìn)行精確定位,來提高超聲波探頭檢測焊點(diǎn)的效率和準(zhǔn)確率將成為一個必然的途徑。為此,文章對白車身焊點(diǎn)的檢測標(biāo)定方法進(jìn)行研究。
點(diǎn)焊作為白車身主要的車身裝配工藝形式,由于車身結(jié)構(gòu)點(diǎn)焊的原因,所需檢測的焊點(diǎn)大部分為圓或近似圓形。當(dāng)前對于圓檢測理論的研究也比較多,常用的檢測方法有環(huán)路積分微分法、顏色分類法和Hough變換檢測法。Hough變換是目前應(yīng)用最為廣泛的圓檢測方法,也是國內(nèi)外研究最多的方法。該方法的優(yōu)點(diǎn)是可靠性高,對于噪聲、區(qū)域部分缺失的情況仍能檢測比較準(zhǔn)確,但缺點(diǎn)是運(yùn)算量大,存儲空間消耗大。針對此問題國內(nèi)外對此提出了多種改進(jìn)方法,Xu F等在工業(yè)機(jī)器人裝配減速器過程中提出了一種改進(jìn)型Hough變換,但在模糊邊緣時檢測效果不理想;Illingworth等提出了自適應(yīng)Hough變換,用一個累加器數(shù)組和靈活的迭代搜索Hough參數(shù)空間的峰值;Kultanen等提出了隨機(jī)Hough變換(RHT)及改進(jìn)算法,在圖像空間隨機(jī)選取不共線的三點(diǎn)映射到參數(shù)空間的一個點(diǎn),實(shí)現(xiàn)多到一的映射;Ichikawa等提出了用一維累計(jì)數(shù)組的快速Hough變換,運(yùn)用局部極值點(diǎn)這一維數(shù)組來決定圓的方程;林金龍等提出了用點(diǎn)Hough變換實(shí)現(xiàn)圓的檢測,采用固定距離取點(diǎn)和中垂線必過圓心的方法來確定圓的參數(shù)空間;袁衛(wèi)鵬等提出了模糊隨機(jī)Hough變換算法,將模糊規(guī)則融合隨機(jī)Hough變換能有效地避免檢出錯誤曲線的情況。以上學(xué)者提出方法大多基于圖像噪聲較小,邊緣檢測得到的點(diǎn)集比較集中時可以取得比較理想的效果,而白車身焊點(diǎn)噪聲干擾較大,邊緣并不齊整,容易檢測出多個虛假圓。本文針對焊點(diǎn)特性進(jìn)行研究,提出的焊點(diǎn)形態(tài)結(jié)構(gòu)和極坐標(biāo)Hough變換,以及改進(jìn)的邊緣檢測算子,能在正確率和快速性方面取得比較理想的效果。
1 總體技術(shù)方案
本文方案是在焊點(diǎn)檢測時機(jī)器人通過示教得到粗步定位,使得CCD相機(jī)能垂直于車身表面,然后控制相機(jī)在環(huán)形LED光源下獲取焊點(diǎn)圖像,相機(jī)將圖像傳給計(jì)算機(jī)進(jìn)行一系列處理,得到焊點(diǎn)精確坐標(biāo),然后控制機(jī)械臂帶動探頭向偏差減小的方向運(yùn)動,以提高探頭檢測焊點(diǎn)質(zhì)量的效率和準(zhǔn)確率。本文技術(shù)方案實(shí)現(xiàn)的總流程圖如圖1所示。
1.1 濾波及改進(jìn)的邊緣檢測
在實(shí)驗(yàn)中由于遮擋等光線原因容易使獲取圖像出現(xiàn)深色區(qū)域,極大地影響識別精度,為此在攝像頭前端安裝均勻環(huán)形光源,使獲得的圖像具有大體一致且滿足實(shí)驗(yàn)條件的背景,實(shí)驗(yàn)中獲取分辨率為640×480的圖像如圖2(a)所示,由圖像得到其直方圖如圖2(c)所示,焊點(diǎn)的等高線如圖2(b)所示,可知焊點(diǎn)圖像的像素值集中在90到230之間,且焊點(diǎn)邊緣模糊,屬于噪聲干擾比較大的一種情況。
由于油污和鋼材銹跡的影響,易產(chǎn)生類似于椒鹽的噪聲。從理論上分析,中值濾波對于某些類型的隨機(jī)噪聲具有非常理想的降噪能力,相對于均值濾波,自適應(yīng)平滑濾波等更有優(yōu)勢。其用冒泡法對f(x+s,y+t)構(gòu)成的矩陣M進(jìn)行排序,其中s,t取值大小為-(2k+1)~(2k+1),f取排序后的中間值,取合適的值進(jìn)行濾波后其邊緣效果更加清晰,濾波處理過后的情況如圖3所示。
從對比圖中可知非線性濾波處理能達(dá)到比較理想的效果,在實(shí)驗(yàn)中也用過一些線性濾波方法處理,但效果并不太理想。
從焊點(diǎn)像素值分布和等高線圖來看,焊點(diǎn)邊緣的過渡比較緩和,下面利用導(dǎo)數(shù)梯度來檢測這種非跳變的軟邊緣。在實(shí)驗(yàn)中分別采用一階和二階導(dǎo)數(shù)算子來分析邊緣梯度,用二維函數(shù)f(x,y)來表示灰度圖像的二維矩陣,其在點(diǎn)(x,y)處的梯度用下面的向量來表示:
但是在實(shí)際使用中,為了方便計(jì)算和編程一般采用一種近似梯度,去除平方和開方,因此可用式(5)或是交叉梯度來簡化式(4)。如果用矩陣來表示的話,可以用一個二維模板來表示,這一點(diǎn)我們將在試驗(yàn)中進(jìn)行驗(yàn)證,比如改進(jìn)的梯度算子和現(xiàn)有的Roberts等梯度算子。
同樣可用下式作為二階偏微分式(2)的近似:
根據(jù)公式(5)和公式(6),(7)得出的值可知,對于圖像中的軟邊緣,一階微分通常產(chǎn)生較單一的邊緣,而二階微分則細(xì)分得多。同時在實(shí)驗(yàn)中也得到驗(yàn)證,二階微分對噪聲和焊點(diǎn)本身容易檢測出雙邊緣的情況,導(dǎo)致邊緣點(diǎn)集混亂。同時為了檢測濾波的效果,圖4給出了直接進(jìn)行邊緣檢測和在中值濾波之后進(jìn)行邊緣檢測的結(jié)果。
從圖4可知,濾波后的檢測結(jié)果明顯優(yōu)于未濾波的檢測結(jié)果,但在后面試驗(yàn)中發(fā)現(xiàn)雖然邊緣輪廓相對清楚,然而軟邊緣引起的邊緣混亂導(dǎo)致實(shí)驗(yàn)結(jié)果難以準(zhǔn)確檢測出真實(shí)的圓。結(jié)合上面分析,一階導(dǎo)數(shù)檢測軟邊緣具有優(yōu)勢,本文提出改進(jìn)型的一階導(dǎo)數(shù)算子——高斯一階導(dǎo)數(shù)算子,利用高斯函數(shù)在空間和頻率兩個域的平滑性來克服邊緣分散,其與一階導(dǎo)數(shù)進(jìn)行卷積能更好地去掉噪聲,精簡邊緣點(diǎn)集。高斯一階導(dǎo)數(shù)算子對圖像進(jìn)行處理相當(dāng)于與一副輸入圖像。f(x,y)卷積,即
g(x,y)=[▽VG(x,y)]*f(x,y)。 (8)
其中G(x,y)為高斯函數(shù),因?yàn)槎紴榫€性操作,故式(8)也可以寫為:
z(x,y)=[▽G(x,y)*f(x,y)]。 (9)
它說明我們可以對高斯算子進(jìn)行微分運(yùn)算,然后再與圖像卷積,其效果等價于在運(yùn)用一階導(dǎo)數(shù)算子進(jìn)行邊緣檢測前先進(jìn)行高斯濾波處理。
為求▽G的表達(dá)式,我們進(jìn)行下列微分:
式(12)為改進(jìn)的高斯一階導(dǎo)數(shù)算子,根據(jù)上面提到的近似原理,本文結(jié)合焊點(diǎn)特性取合適的σ來得到二維矩陣算子。將其應(yīng)用到sobel,roberts,和prewitt上分別對應(yīng)G-sobel,G-roberts,G-prewitt算子,在Matlab上運(yùn)行結(jié)果如圖5所示。
從圖5可知,改進(jìn)型邊緣檢測效果更加理想,不但點(diǎn)集基數(shù)減少了,且邊緣輪廓更加清晰,所以在邊緣處理方面可選用圖5(d)所用的改進(jìn)一階梯度算子。而二階從邊緣定位精度來看,不管是LoG運(yùn)用高斯平滑和二階導(dǎo)數(shù)零交叉特性檢測邊緣,還是canny算法都對邊緣過于精確檢測導(dǎo)致加入更多無效的點(diǎn)。表1為圖5邊緣檢測留下的點(diǎn)集。
1.2 邊緣二值圖像的處理
從圖5和表1可知,邊緣檢測后點(diǎn)集中還是有很多噪點(diǎn),所以需要對邊緣檢測的圖像進(jìn)一步處理,除去獨(dú)立的,不符合焊點(diǎn)形態(tài)的點(diǎn)。本文構(gòu)造了如圖6所示的結(jié)構(gòu)進(jìn)行遍歷來取得有用的點(diǎn)。
令f(x,y)表示邊緣檢測后二值圖像有效點(diǎn)的像素值(白色的點(diǎn)),結(jié)構(gòu)系數(shù)的響應(yīng)g(x,y)是形態(tài)結(jié)構(gòu)系數(shù)與其所包圍的圖像像素的乘積之和:
其中,x,y分別表示像素點(diǎn)所在的行和列,是可變的,以便w中的元素能訪間廠中的每個像素,(2m+1)×(2n+1)表示形態(tài)結(jié)構(gòu)系數(shù)的大小。
如果g(x,y)的值小于2則表明f(x,y)對應(yīng)的點(diǎn)不滿足焊點(diǎn)形態(tài)結(jié)構(gòu)要求,對該點(diǎn)進(jìn)行以下處理。Ai表示圖6中的形態(tài)結(jié)構(gòu),集合D表示邊緣檢測留下的點(diǎn)集,B為處理過后的集合,然后運(yùn)用下面的集合運(yùn)算進(jìn)行處理:
讓Ai在D上運(yùn)行,以便Ai能訪問D的每一個元素,來創(chuàng)建一個新的集合B,運(yùn)用Matlab編寫程序?qū)D6(d)進(jìn)行驗(yàn)證,如圖7所示。
從圖7中可看出,經(jīng)過處理過的二值圖像與原圖對比明顯去掉了很多不必要的點(diǎn),符合焊點(diǎn)形態(tài)的點(diǎn)基本保留下來了。不同圖像經(jīng)過形態(tài)學(xué)結(jié)構(gòu)處理與未處理的對比如表2所示。
從表2可知,不同圖像處理后的邊緣點(diǎn)集都大幅減少,同時也足夠用本文方法檢測出正確的圓參數(shù)。從表中邊緣點(diǎn)集的變化情況來看,形態(tài)學(xué)結(jié)構(gòu)能夠有效地減少Hough變換處理的基數(shù),從而達(dá)到減少運(yùn)算量和存儲量的目的。
1.3 極坐標(biāo)Hough變換
任意圓的方程可表示為:x2+y2+Dx+Ey+F=0。
在標(biāo)準(zhǔn)Hough變換中,對于原圖像中的每一點(diǎn)(xi,yi)在參數(shù)空間都對應(yīng)一個三維的圓錐,其數(shù)學(xué)表達(dá)式為:
(a-xi)2+(b-yj)2=r2 (16)
其中a,b,r為參數(shù)空間的3個變量,在參數(shù)空間對應(yīng)一簇相交于(a0,b0,r0)的三維圓錐面,所以可想而知其計(jì)算量是非常大的,在現(xiàn)實(shí)程序中難以得到理想的效果。本文將參數(shù)坐標(biāo)轉(zhuǎn)化到極坐標(biāo),任意圓的極坐標(biāo)形式為:
a=x-ρcosθ;b=y-ρsinxθ。 (17)
當(dāng)n取上表2處理過后的邊緣點(diǎn)集813,m為1且N取實(shí)驗(yàn)結(jié)果30時,可知其概率大概是1/21951,實(shí)驗(yàn)會造成大量無效積累和產(chǎn)生較大的誤差。因此本文對D內(nèi)所有的點(diǎn)進(jìn)行遍歷,準(zhǔn)確率更高,計(jì)算量也小,設(shè)極徑步長為p_n,極角步長為a_n,遍歷過程如圖8所示。
根據(jù)焊點(diǎn)的性質(zhì),給一個合適的p_n和a_n,得到極徑的遍歷基數(shù)M=(r_max-r_min)/p_n,極角的遍歷基數(shù)N=2π/a_n,然后沿著圖8(a)的極軸分別取值,利用M和N構(gòu)造一個兩層循環(huán)來積累參數(shù)空間三維矩陣Ph,通過下列計(jì)算來獲得參數(shù)空間的值:
其中k,z為循環(huán)中步長累計(jì)的次數(shù),若計(jì)算出的a,b,r在規(guī)定閾值內(nèi),將參數(shù)保存并使矩陣Ph對應(yīng)的值加1,從而得到參數(shù)空間的累積值。
1.4 用最小二乘法得到圓參數(shù)及標(biāo)定
在得到矩陣Ph后,通過搜索找到最大的積累值pmax(也就是落在此圓上的點(diǎn)最多),由于我們有時需要檢測多個圓,同時邊緣點(diǎn)集并不是精確地落在圓上,所以我們需要一個閾值T_n來設(shè)定一個容許誤差。如果Pk中積累值大于Pmax×T_n,則對應(yīng)圓參數(shù)(a,b,r)被確定為檢測到的圓參數(shù),一般會得到幾個圓參數(shù),所以同時也會帶來虛假圓的麻煩。這時我們需要用到前面提到的粗定位坐標(biāo)來判斷真實(shí)圓,并利用最小二乘來找出候選圓。設(shè)粗定位坐標(biāo)轉(zhuǎn)化到平面坐標(biāo)為(a',b'),其運(yùn)算關(guān)系如下:
如果d相對于其他值差別較大,可知對應(yīng)參數(shù)不是真實(shí)圓參數(shù)。通過判斷d來去掉虛假圓,決定候選圓。式(22)中n即為候選圓的個數(shù)。因?yàn)楹更c(diǎn)邊緣不齊整,所以利用式(22)取候選圓的均值來確定最終的圓參數(shù)并標(biāo)定。
另外,由于焊點(diǎn)噪聲干擾比較大,如圖1焊點(diǎn)上的黑色條狀,容易產(chǎn)生小的虛假圓,有時也有可能產(chǎn)生大的虛假圓,一般也可以利用焊點(diǎn)特性人工設(shè)定最小半徑和最大半徑的雙閾值法來去掉過小和過大的虛假圓。
2 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)用Matlab編程工具實(shí)現(xiàn),根據(jù)上面的理論,在試驗(yàn)中取20張圖片驗(yàn)證都能準(zhǔn)確檢測到焊點(diǎn),根據(jù)車身焊點(diǎn)大概3000~6000個估算,此方法的準(zhǔn)確率能達(dá)到99.2%。下面分別對不同尺寸,不同類型的焊點(diǎn)進(jìn)行驗(yàn)證。本算法不需要隨機(jī)取點(diǎn),所以每次運(yùn)行都能取得同樣的效果,圖像處理的效果如圖9所示。
圖9(a)(c)(e)為擬合結(jié)果疊加到原圖的效果,(b)(d)(f)分別展示了檢測到的點(diǎn)集擬合后的效果圖。從圖9可知本算法對焊點(diǎn)的檢測標(biāo)定能取得比較好的效果。文獻(xiàn)提到在合成圖上用圓Hough變換(CHT),當(dāng)N/S(噪聲點(diǎn)與信號點(diǎn)的數(shù)量之比)達(dá)到30時,所耗時間為59.7s;文獻(xiàn)提出的改進(jìn)RHT算法,處理虹膜圖像的時間約為2s,時間取50次的均值,但是當(dāng)N/S達(dá)到22時,由于取點(diǎn)的關(guān)系使得檢測結(jié)果急劇變壞,無法使用,并不適用于焊點(diǎn)檢測。表3列出了本算法在處理以上圖像時的信息,對于噪聲比達(dá)到26.10時,還能得到理想的效果,但是如果油污較大或是噪聲太大,使得N/S大于30時,容易檢測到虛假圓。
本方法對于處理其他噪聲較大的圖像也具有一定的參考價值,圖10為本文方法與文獻(xiàn)方法的對比,處理圖像的尺寸從小到大變化時,檢測出正確圓所用時間如圖10(b)所示。
從上面的結(jié)果可以知道,雖然文獻(xiàn)通過快速傅立葉變化來計(jì)算Hough變換的卷積結(jié)果,來減少計(jì)算復(fù)雜性,但是對于處理像素值較大的圖片其處理時間明顯增強(qiáng),在圖像大于200×200時,本文方法具有明顯的優(yōu)勢。
3 結(jié)論
從上面的分析和討論可知,在改進(jìn)的高斯一階導(dǎo)數(shù)檢測算子處理下,用極坐標(biāo)Hough變換將標(biāo)準(zhǔn)圓Hough變換的三維參數(shù)降到二維,并用焊點(diǎn)形態(tài)學(xué)決策優(yōu)化圖像邊緣,克服了內(nèi)存需求大和運(yùn)行時間長的缺點(diǎn),同時也提高了準(zhǔn)確率。極坐標(biāo)Hough變換不僅在精度上滿足要求,在與文獻(xiàn)的對比實(shí)驗(yàn)可知,處理時間相對于其他改進(jìn)算法也具有一定優(yōu)勢。同時本文在噪聲處理方面明顯優(yōu)于隨機(jī)Hough變化,用遍歷的方法也避免了隨機(jī)選取邊緣點(diǎn)集帶來的隨機(jī)誤差。所以本算法在檢測焊點(diǎn)方面達(dá)到了預(yù)期的效果,且對于其他圓形檢測領(lǐng)域也具有一定的參考性。在后期的改進(jìn)工作中可以采用模糊控制來設(shè)定檢測閾值,以及如何檢測并確定非標(biāo)準(zhǔn)圓形的中心,并結(jié)合車身性能做更加合理的分析。