劉 軍,趙劍英,池 云
(沈陽理工大學(xué) 自動(dòng)化與電氣工程學(xué)院,沈陽110159)
目前,自動(dòng)焊接技術(shù)在工業(yè)領(lǐng)域使用較多,比如航天航空、汽車維修以及一些重型器械方面[1-3]。焊縫中心線的檢測與定位主要是為了保證工業(yè)焊接過程中的焊接質(zhì)量,為進(jìn)行精確的自動(dòng)焊接,必須實(shí)時(shí)提取焊縫的準(zhǔn)確位置。
薄壁結(jié)構(gòu)件上的焊縫多為無錯(cuò)邊的窄間隙對(duì)接焊縫,對(duì)窄間隙焊縫的識(shí)別精度是保證焊接質(zhì)量的關(guān)鍵。針對(duì)焊縫檢測與提取,王秀平等[4]提出了一種基于線結(jié)構(gòu)光視覺的焊縫特征類型識(shí)別和亞像素級(jí)焊縫檢測與特征提取算法,根據(jù)不同焊縫類型從感興趣區(qū)域(Region Of Interest,ROI)提取所得的條紋中心直線中得出焊縫中心點(diǎn)位置等特征信息。Zhang L G等[5]提出了一種新型的基于結(jié)構(gòu)光的激光視覺傳感器,用于爬壁機(jī)器人的焊縫檢測,可以非常低的測量誤差捕獲焊件的3D信息。國內(nèi)大多數(shù)學(xué)者研究的是單線激光視覺傳感方式,采用多線激光視覺傳感方式進(jìn)行焊縫跟蹤的研究則較少。陳易新等[6]提出了一種基于三線激光的除銹爬壁機(jī)器人焊縫實(shí)時(shí)辨識(shí)方法,采用三線激光器和CCD攝像機(jī)構(gòu)成主動(dòng)視覺傳感系統(tǒng),偏差在±3個(gè)像素(約0.54mm)內(nèi),但用于窄間隙焊縫時(shí)效果較差。文獻(xiàn)[7-8]的研究表明線結(jié)構(gòu)光對(duì)于窄間隙焊縫很難進(jìn)行檢測,特別是薄板對(duì)接焊縫。因?qū)颖“宓母叩筒钶^小,焊縫寬度往往小于0.1mm,且無坡口,在線結(jié)構(gòu)光的照射下表現(xiàn)不出明顯特征。
在傳統(tǒng)工業(yè)焊縫的中心線檢測中,往往只能達(dá)到像素級(jí)別,目前的工業(yè)產(chǎn)品中,像素級(jí)別多數(shù)已經(jīng)不能滿足其對(duì)于檢測精度、檢測速度、抗干擾能力以及魯棒性等方面的要求。近幾十年來,邊緣檢測技術(shù)取得了巨大的發(fā)展與進(jìn)步,提出多種亞像素檢測方法,其中最常見的亞像素檢測方法有矩方法、插值方法和擬合方法。本文針對(duì)薄壁件窄間隙焊縫中心線的檢測與定位,提出一種基于Zernike矩的亞像素直線檢測方法,用于焊縫的精確定位。
為降低圖像處理的計(jì)算成本并提高實(shí)時(shí)性,應(yīng)提前確定焊縫的ROI,即圖像的感興趣區(qū)域。窄縫的中心特征點(diǎn)被認(rèn)為是焊縫中心線與圖像橫向中心線的交點(diǎn)。圖像中呈現(xiàn)為低灰度值的狹窄焊縫和高灰度值的背景區(qū)域,由于圖像中的窄間隙焊縫直線基本平行于圖像中的縱坐標(biāo),且焊縫灰度均值遠(yuǎn)小于背景區(qū)域灰度均值,則對(duì)圖像進(jìn)行列方向上的灰度投影積分,利用焊縫和相鄰區(qū)域灰度值的顯著差異,可準(zhǔn)確獲取焊縫區(qū)域。
設(shè)圖像尺寸為m×n,g(i,j)為圖像第i行第j列的像素灰度值,i=1,…,m;j=0,…,n,對(duì)n列圖像數(shù)據(jù)進(jìn)行列方向上的灰度投影積分,即對(duì)第1列至第n列逐列計(jì)算各列的像素灰度累加和。設(shè)P(j)表示圖像第j列灰度值的累加和,即
(1)
沿y軸的圖像列像素灰度值累加和結(jié)果如圖1所示。
圖1 圖像列像素的灰度累加和
由圖1可見,窄焊縫處的灰度值低于相鄰列中的灰度值。這是由于焊縫間隙狹窄,投射到窄間隙焊縫上的入射光不能反射到相機(jī),故提出一種二階差分算子Cu來獲得焊縫的ROI,其計(jì)算公式為
(2)
式中:w為焊縫的半寬;k為焊縫增加的列數(shù);Pu為圖像第j+k列灰度值的累加和。則焊縫的ROI可表示為
(3)
式中:us為具有最大Cu的列索引;vt為具有最大像素累加和的行索引,vt=m/2;xS、yS為焊縫的感興趣區(qū)域;本文中Δu與Δv均為常數(shù),取值為50。
由于各種外界原因,采集到的焊縫圖像不可避免地存在很多干擾和噪聲[9]??紤]到圖像形成過程中產(chǎn)生比較強(qiáng)的量化噪聲,在對(duì)焊縫圖像處理之前,采用高斯濾波對(duì)焊縫圖像去噪。
首先選定一個(gè)高斯模板,也稱高斯核,取3×3的高斯模板,將中心點(diǎn)坐標(biāo)假設(shè)為(0,0),則其他8個(gè)點(diǎn)的坐標(biāo)如圖2所示。
圖2 3×3高斯模板
由二維高斯函數(shù)分布(假定高斯函數(shù)的寬度σ為1.5)
(4)
計(jì)算得到高斯模板,如圖3所示。
圖3 計(jì)算后的高斯模板
采用高斯濾波對(duì)焊縫圖像去噪,結(jié)果如圖4所示。
圖4 去噪前后的焊縫圖像
考慮到焊縫圖像為一種單峰類間圖像,采用最大類間方差法(OTSU閾值分割)對(duì)圖像做閾值分割處理,分割閾值為T,前景點(diǎn)數(shù)占圖像比例為w0,平均灰度為h0,圖像總的平均灰度為h,前、背景圖像方差為σ,則推導(dǎo)公式為
(5)
聯(lián)立上式得
σ=w0×w1×(h0-h1)2
(6)
或
(7)
由式(7)可知,當(dāng)方差σ最大時(shí),灰度也最大,此時(shí)T為最佳閾值。焊縫圖像閾值分割處理結(jié)果如圖5所示。
圖5 閾值分割圖
由于窄焊縫處的灰度值遠(yuǎn)遠(yuǎn)小于相鄰邊的灰度值,距離焊縫邊緣越遠(yuǎn),灰度值越小。對(duì)ROI中的圖像數(shù)據(jù)進(jìn)行行遍歷,求取圖像ROI行數(shù)據(jù)中的最小灰度值,灰度值最小的像素點(diǎn)視為焊縫特征點(diǎn),記Ri為圖像i行的最小灰度值,即
Ri=min(g(i,j))
(i∈[ysmin,ysmax];j∈[xsmin,xsmax])
(8)
在工業(yè)現(xiàn)場焊接過程中,由于會(huì)出現(xiàn)飛濺等各種干擾情況,焊縫可能出現(xiàn)小部分不連續(xù)的情況,此時(shí)求得的最小灰度點(diǎn)可能為誤差點(diǎn)。故需對(duì)求得的焊縫特征點(diǎn)進(jìn)行篩選。設(shè)置一個(gè)閾值Rk,將焊縫特征點(diǎn)的最小灰度值Ri與Rk進(jìn)行比較。
(9)
對(duì)焊縫特征點(diǎn)使用最小二乘法擬合獲得焊縫中心線,x為各點(diǎn)的橫坐標(biāo),y為各點(diǎn)的縱坐標(biāo),這里取C為0,A、B都為1,則
Ax+By+C=0
(10)
提取得到的焊縫特征點(diǎn)中某些可能不正確,如這些不正確的點(diǎn)也用于計(jì)算焊縫中心線,則計(jì)算結(jié)果誤差較大,為消除焊縫圖像處理后的邊緣噪聲點(diǎn),得到一條清晰的線,需對(duì)滿足閾值條件的點(diǎn)再次使用最小二乘擬合方法進(jìn)行直線擬合,如此迭代多次,直至獲得較準(zhǔn)確的焊縫中心線輪廓,為焊縫中心線的亞像素檢測提供參考。
Huogh_line根據(jù)直線定義與對(duì)偶性得到,所有直線當(dāng)斜率存在時(shí),在直角坐標(biāo)系都可由方程(11)來表示。
y=kx+b
(11)
過點(diǎn)A(x0,y0)的所有直線參數(shù)都滿足
y0=kx0+b
(12)
則在k-b參數(shù)空間里就對(duì)應(yīng)一條直線,圖像空間的點(diǎn)與參數(shù)空間的直線一一對(duì)應(yīng),在該直線上再加一個(gè)點(diǎn)B(x1,y1),則點(diǎn)B也對(duì)應(yīng)一條直線,其在k-b上與A對(duì)應(yīng)的直線交于一點(diǎn),此點(diǎn)為直線AB的參數(shù),其霍夫空間表示為
(13)
式中:r為得到的霍夫空間各點(diǎn);θ為直線傾斜角度,由式(14)計(jì)算得到。
(14)
在傳統(tǒng)Hough_line直線檢測中[10],一般將θ設(shè)置為0~180°。本文提出的針對(duì)焊縫中心線的Hough_line亞像素檢測,通過考慮θ計(jì)算范圍的重新設(shè)定,得到焊縫中心線的亞像素級(jí)定位。給定θ的一個(gè)范圍,取一個(gè)最小值θmin和一個(gè)最大值θmax,計(jì)算此范圍內(nèi)的r,公式為
rij=xicosθj+yisinθj
(15)
式中:rij為某一邊緣的像素點(diǎn);xi為橫坐標(biāo);yi為縱坐標(biāo)。實(shí)驗(yàn)中當(dāng)r出現(xiàn)的次數(shù)大于設(shè)置的閾值時(shí),出現(xiàn)的這些點(diǎn)將在平面中形成一條直線,當(dāng)θj取到最小值的時(shí)候,連接的直線即為焊縫圖像的亞像素位置,其邊緣方向垂直于θ方向所在的直線。
Zernike矩[11]算子的基本思想是通過計(jì)算每個(gè)像素的四個(gè)參數(shù)來判斷該點(diǎn)是否為邊緣上的點(diǎn)。圖像中某一點(diǎn)f(x,y)的Zernike矩可表示為
(16)
式中積分號(hào)外為正則化因子,復(fù)數(shù)多項(xiàng)式Vpq(ρ,θ)以極坐標(biāo)的形式表示為
(17)
式中:p≥0,p-|q|為非負(fù)數(shù);s為常數(shù)。
如將邊緣順時(shí)針旋轉(zhuǎn)φ角,則旋轉(zhuǎn)后的Zernike矩可表示為
(18)
由式(18)可知,圖像的Zernike矩在旋轉(zhuǎn)前后幅值沒有變化,只是相移發(fā)生了改變,將邊緣旋轉(zhuǎn)角度φz后可得
?x2+y2≤1f′(x,y)ydxdy=0
(19)
(20)
(21)
(22)
完成對(duì)各個(gè)像素點(diǎn)提取之后,需要修正各點(diǎn)的坐標(biāo)以精確提取焊縫圖像,假設(shè)在初級(jí)邊緣檢測過程中采用N×N模板,考慮到模板的放大效應(yīng),檢測公式修正為
(23)
式中:(xs,ys)為邊緣的亞像素坐標(biāo);(x,y)為圖像經(jīng)過Zernike算子檢測到的像素坐標(biāo)。
為驗(yàn)證本文所提出方法的有效性,選定一幅焊縫圖像,像素為2592×1944,該圖像為使用150幀率的德國Basler公司的COMS工業(yè)相機(jī)采集得到,由于焊縫識(shí)別跟蹤系統(tǒng)要求實(shí)時(shí)性較強(qiáng),設(shè)置相機(jī)的工作模式為實(shí)時(shí)采集。圖像檢測環(huán)境為opencv,除運(yùn)用Hough_line與Zernike矩的亞像素檢測方法外,另選取基于樣條插值的亞像素檢測方法以進(jìn)行比較和驗(yàn)證。三種方法對(duì)同一焊縫圖像的中心線提取檢測結(jié)果如圖6所示。
圖6 三種亞像素檢測結(jié)果
在得出三種亞像素檢測方法效果圖后,根據(jù)三種亞像素檢測方法的像素計(jì)算值與運(yùn)行時(shí)間來確定最佳的圖像檢測方式,三種方法得到的像素計(jì)算值與運(yùn)行時(shí)間比較如表1所示。
表1 三種亞像素直線檢測方法像素與運(yùn)行時(shí)間對(duì)比
對(duì)三種亞像素檢測結(jié)果進(jìn)行比較。由圖6可以清楚地看出,基于Zernike矩的亞像素檢測算法較其它兩種算法得到的焊縫圖像更加清晰,整條焊縫中心線缺陷更少。從表1可以看出,基于Zernike矩的亞像素檢測算法在像素計(jì)算值上略高于其他兩種算法,運(yùn)行時(shí)間遠(yuǎn)小于其它兩種算法,運(yùn)行速度更快。針對(duì)焊縫中心線的檢測,本文提出的基于Zernike矩的亞像素檢測方法在運(yùn)用中不僅能解決焊縫識(shí)別過程中圖像缺陷的問題,更好地消除噪聲的影響,計(jì)算速度也明顯優(yōu)于其他兩種檢測方法。
考慮到亞像素檢測定位要精確到像素點(diǎn),首先對(duì)原圖像進(jìn)行了去噪和分割,使計(jì)算結(jié)果避免部分外在因素的干擾。在焊縫識(shí)別過程中,為將其精確到亞像素級(jí)別,進(jìn)行了像素點(diǎn)之間的識(shí)別和擬合,由于在原圖像中,焊縫中心線與整個(gè)薄壁結(jié)構(gòu)件之間較難區(qū)分,通過特殊的灰度值處理,使最后焊縫呈現(xiàn)出的效果更加清晰精準(zhǔn)。
針對(duì)整個(gè)薄壁結(jié)構(gòu)件窄間隙焊縫中心線提取,亞像素檢測是攝像機(jī)標(biāo)定前的關(guān)鍵步驟,對(duì)于之后的攝像機(jī)三維重建至關(guān)重要??紤]到該算法的誤識(shí)和誤報(bào)影響,在今后的研究中,通過采用高精度攝像機(jī)標(biāo)定技術(shù),并結(jié)合本文提出的Zernike矩算法的亞像素檢測技術(shù),將更精確地解決焊縫的識(shí)別與提取問題;此外,在焊縫圖像提取前加入激光投射或其它平行光光源,與無光源投射相比較,更能夠避免焊縫誤識(shí)方面的問題,其像素計(jì)算精度更高,計(jì)算速度也更快。
通過對(duì)焊縫中心線的Zernike矩的亞像素檢測,并與其它兩種亞像素檢測算法進(jìn)行比較,可知本文算法在像素計(jì)算上進(jìn)一步優(yōu)化,實(shí)現(xiàn)了運(yùn)行速度快且效率高的目的,很好地排除了一些來自于圖像外部的干擾,該方法有望在工業(yè)薄壁件的窄間隙焊接方面有更好的運(yùn)用價(jià)值與前景。