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