楊 智,於雙飛,李 堅,劉楚天
(廣東工業(yè)大學(xué)機電工程學(xué)院,廣州 510006)
在自動化和智能化發(fā)展的大背景下,工業(yè)制造對自動化焊接要求越來越高[1-2]。傳統(tǒng)的焊接機器人采用的是示教-再現(xiàn)的方法實現(xiàn)自動焊接[3],但是示教-再現(xiàn)無法應(yīng)對熱變形、制造誤差等問題。目前激光三角測量原理[4]在焊縫檢測中應(yīng)用十分廣泛,通過二維圖像中的激光條紋可以獲取焊縫的三維坐標(biāo)。焊接時,為了減少弧光干擾,激光視覺傳感器平行安裝在焊炬正前方一定的距離,但是過大的前視距離會使跟蹤滯后導(dǎo)致焊接精度不足,前視距離過小使得圖像容易受到飛濺、弧光的干擾[5]。因此在焊接過程中如何從有噪聲干擾的圖像中精準(zhǔn)找到焊縫特征點是焊縫跟蹤的關(guān)鍵問題。傳統(tǒng)方法是使用形態(tài)學(xué)的方法降低圖像中的噪聲,再從圖像中提取焊縫特征點。文獻[6]提出了一種基于區(qū)域優(yōu)化的圖像二值化的方法。該方法自適應(yīng)的確定ROI區(qū)域,并建立區(qū)域判定優(yōu)化模型確定二值化的閾值。文獻[7]利用激光條紋在圖像中的連續(xù)性,提出了一種提取焊縫中心線的序列重力法(SGM),減小光學(xué)噪聲對特征點定位準(zhǔn)確性的影響。文獻[8]根據(jù)焊縫特征的連續(xù)性提出了一種基于圖像列方向像素灰度分布的曲線峰值提取方法。 文獻[9]提出一種字符串描述符來描述焊縫輪廓。在焊接過程中使用卡爾曼濾波跟蹤激光條紋,再用字符串描述符描述焊縫輪廓,確定焊縫位置。在焊接時會產(chǎn)生大量的弧光和飛濺,基于形態(tài)學(xué)的圖像處理方法在無人干預(yù)的情況下很難滿足實際的生產(chǎn)需求。本文中針對焊接環(huán)境中弧光、飛濺等干擾的問題,提出了一種基于高斯核相關(guān)濾波器(KCF)[10]的雙濾波器焊縫特征跟蹤方法,該方法用每幀中都建模的跟蹤器Rp和只在噪聲干擾較小的可靠幀中建模的跟蹤器Rn的兩個濾波器跟蹤焊縫特征,再使用卡爾曼濾波器融合兩個跟蹤器輸出結(jié)果,提高系統(tǒng)魯棒性。同時,為了能同時適應(yīng)坡口焊、搭接、T型等常見的焊接接頭,在起始幀中對激光線段分段,再用線段方向聚類的方法將方向不同的激光線分類,最后用最小二乘法擬合激光線,求解線段交點,得到焊縫特征點。最后實驗表明該方法具備良好的跟蹤精度。
為了實現(xiàn)焊縫特征跟蹤,需要在第一幀中確定焊縫位置。在焊槍開啟前,由于沒有弧光干擾,可以在第一幀中采用形態(tài)學(xué)的方法確定焊縫特征點的初始位置。焊接的工件由金屬塊組成,當(dāng)激光照射在工件焊接件接頭時,圖像中會呈現(xiàn)出折線,如圖1所示,折線的拐點即為焊縫位置特征點。
(a) 實物圖 (b) 激光視覺傳感器成像
本文對激光條紋切片再使用方向聚類的方法區(qū)分不同的線段,提取焊縫特征。算法步驟如下:
(1)首先對相機采集的圖像預(yù)處理。為了降低反光等光學(xué)噪聲的影響,在圖像中依次使用中值濾波,閾值分割,形態(tài)學(xué)膨脹和形態(tài)學(xué)腐蝕操作。使用距離變換[11]計算激光線條的骨架,并將骨架上的點作為激光條紋線的中心點,線激光的中心點的集合設(shè)為{P}。圖2a中的T型接頭的圖像經(jīng)過步驟(1)提取的激光線條的骨架如圖2b所示。
(2)對激光條紋中心點集合{P}分段。把集合{P}中每m個連續(xù)的像素點近視為一個直線線段Li,并用最小二乘法對其擬合,得到線段的方程f,方程f由Pc,V兩個參數(shù)表示,Pc=[x,y]確定該線段的位置信息,V=[vx,vy]為線段的方向矢量。集合{P}中的點分成若干條線段,可表示為集合{L}={L1,L2,...,Li}。
(3)線段是方向性的矢量數(shù)據(jù),{L}中的線段Li按不同方向分組可以構(gòu)成方向集合,方向不同的線段的集合設(shè)為{D}={D1,D2,...,Dj},其中{Di}中為方向相同的直線線段。按式(1)對相鄰的兩個線段Li和Li+1方向余弦比較,如果這兩個線段夾角的余弦小于閾值,則認(rèn)為兩條線段都是屬于同一條直線,線段Li和Li+1都添加到子集合{Di}中,否則需要生成一個新的子集合{Ds},將線段Li+1添加到集合{Ds}中,并將子集合{Ds}添加到{D}中。圖2b中激光線的骨架經(jīng)過步驟(2)、步驟(3)后得到紅綠兩條方向不同的線段,結(jié)果如圖2c所示。
(1)
(4)經(jīng)過以上計算可以把方向不同的激光條紋分成不同組。再采用最小二乘法分別對集合{D}中的各元素{Di}中的點直線擬合,求解相鄰兩條直線的交點。焊縫特征點為其中一個交點。圖2c經(jīng)過步驟(4)后得到焊縫特征點,結(jié)果如圖2d所示。
(a) T型接頭原圖 (b) 激光線的骨架
在焊接過程中,由于有很強的光學(xué)噪聲干擾,用圖像形態(tài)學(xué)的方法很難從干擾的圖像中提取焊縫特征,因此使用KCF算法實時對圖像中的焊縫特征跟蹤。KCF根據(jù)第一幀中指定的目標(biāo)區(qū)域訓(xùn)練跟蹤器,利用跟蹤器對下一幀中預(yù)測位置附近進行采樣點響應(yīng),響應(yīng)值最大的位置認(rèn)為是目標(biāo)點的位置。焊接之前,圖像沒有弧光干擾,用上文中的方法提取焊縫確定焊縫特征的位置,以特征點為中心,從圖像中提取M×N大小的區(qū)域作為正樣本。訓(xùn)練的負(fù)樣本由循環(huán)位移得到。設(shè)訓(xùn)練樣本為(xi,yi),則線性回歸函數(shù)為:
f(xi)=wTxi
(2)
其中,w表示權(quán)重系數(shù),訓(xùn)練的目的是找到合適的權(quán)重w讓損失函數(shù)的值最小,即:
(3)
式中,λ為懲罰系數(shù)。令式(3)導(dǎo)數(shù)等于0,可以求得權(quán)重系數(shù)為:
w=(XHX+λI)-1XHy
(4)
(5)
目標(biāo)模型Z在分類器的響應(yīng)值為:
f(z)=wTz=?Tα(X)α(z)
(6)
則基于核函數(shù)的嶺回歸可以表示為:
?=(K+λI)-1y
(7)
其中,?是?i組成的向量,K為核矩陣,K=α(X)α(X)T。因此將求解w最優(yōu)的問題轉(zhuǎn)化為求解?最優(yōu)的問題。為了加速對式(7)的計算,算法中引入循環(huán)矩陣,KCF所有的訓(xùn)練負(fù)樣本都采用循環(huán)矩陣循環(huán)位移得到。所有循環(huán)矩陣在傅里葉空間具有對角性質(zhì),核矩陣可以表示為[12]:
(8)
下文中用∧表示離散傅里葉變換,kxx為核矩陣的第一行。利用循環(huán)矩陣的性質(zhì)可以求出:
(9)
目標(biāo)模型Z在當(dāng)前幀中的響應(yīng)為:
(10)
在新一幀圖像中,特征點的坐標(biāo)如下:
(ci,si)=maxf(z)
(11)
(12)
由于視頻中連續(xù)兩幀圖像的變化較小,KCF通過在前一幀訓(xùn)練濾波器,推測目標(biāo)在后一幀中的位置,所以在跟蹤時候有較高的精度。但是在焊接的過程中由于弧光、飛濺等干擾,如果對每一幀中焊縫特征建模更新模型參數(shù),則容易在模型中引入背景,導(dǎo)致跟蹤焊縫特征的時候出現(xiàn)漂移。如果在跟蹤時不積極更新模型參數(shù),在檢測的時候會導(dǎo)致檢測精度不足。所以為了能更好的適應(yīng)焊接的環(huán)境,在每幀圖像上使用兩個KCF跟蹤器(Rn,Rp)跟蹤同一個焊縫特征點,其中Rp在每一幀中都對焊縫特征建模并更新模型參數(shù),而Rn只在響應(yīng)值f(z)大于閾值的可靠幀中更新模型參數(shù)。最后采用卡爾曼濾波融合Rn和Rp的輸出結(jié)果。焊縫特征k時刻的狀態(tài)向量為:
Sk=(px,py,vx,vy)T
(13)
(px,py)T為焊縫特征的像素坐標(biāo),為上一次的最優(yōu)估計。(vx,vy)T是焊縫特征在像素坐標(biāo)上的兩個坐標(biāo)軸的速度分量, 由跟蹤器Rp計算得到。在用卡爾曼數(shù)據(jù)融合過程中,由于無法準(zhǔn)確求出目標(biāo)的加速度,因此在兩幀之間的運動視為勻速運動,加速度對系統(tǒng)的影響視為噪聲。則狀態(tài)向量的預(yù)測方程可以表示為:
(14)
(15)
(16)
其中,Pk為k時刻的最優(yōu)估計的協(xié)方差矩陣。Q為模型中的噪聲矩陣,是位移和速度矢量的協(xié)方差矩陣。AT表示A的轉(zhuǎn)置矩陣,卡爾曼增益為:
(17)
其中,H是狀態(tài)向量和觀測的轉(zhuǎn)換矩陣。R為觀測噪聲協(xié)方差矩陣。
(18)
(19)
(20)
其中,Sk+1為k+1時刻的最優(yōu)估計,但是為了卡爾曼濾波不斷的運行下去,需要更新Sk+1的協(xié)方差矩陣:
(21)
其中,I為單位矩陣。在k+2時刻,Pk+1為式(17)中的Pk,再依次完成預(yù)測方程計算,更新狀態(tài)方程,最后得到k+2時刻的最優(yōu)估計。
為了驗證本文中的算法的有效性,分別進行坡口焊、搭接、T型等常見焊接接頭的焊縫特征點提取和焊接圖像特征跟蹤實驗,并對實驗的結(jié)果評估分析。
實驗采用搭接、T型和坡口接頭的鋼板進行實驗,其中坡口和T型的鋼板厚6 mm,搭接類型的鋼板厚為10 mm,原始圖像分別如圖3a、圖3c、圖3e所示。用上文中的焊縫特征提取算法依次讀取焊縫的原始圖像,輸出結(jié)果如圖3b、圖3d、圖3f所示,其中不同的顏色代表區(qū)分出的不同的線段,“+”代表計算得到的特征點。結(jié)果顯示本文中算法能自適應(yīng)的從搭接、T型和坡口接頭的圖像中準(zhǔn)確地提取出所有的特征點。
(a) 搭接接頭 (b) 搭接接頭處理結(jié)果
(c) T型接頭 (d) T型接頭處理結(jié)果
(e) 坡口接頭 (f) 坡口接頭處理結(jié)果
為了驗證本文中跟蹤算法的可靠性,實驗使用現(xiàn)場焊接的圖像數(shù)據(jù)對該方法檢驗,實驗用線結(jié)構(gòu)光傳感器獲取焊縫信息,相機為映美精DMK 23UM021,相機和激光傳感器相距50 mm,安裝在ABB IRB1410焊接機器人上。線結(jié)構(gòu)光傳感器與焊接工件距離為16 cm,焊接電流為218 A,焊接速度為6 mm/s,獲得451張焊接圖像數(shù)據(jù)。并對圖像中的焊縫特征點進行標(biāo)注,以獲得焊縫特征在圖像中的實際位置。在圖4第一幀中,焊接電源還沒有開啟,圖像中的噪聲較小,從第一幀中提取焊縫特征點,以提取的焊縫特征點為中心,提取80×40大小的區(qū)域作為跟蹤目標(biāo)。
第001幀 第100幀 第240幀 第340幀 第450幀
在開始焊接后,分別使用本文提出的方法和KCF算法持續(xù)對第一幀中的焊縫特征跟蹤,并從焊接過程中隨機選取五張圖。其中不同的顏色代表不同的算法,如圖5所示,紅色代表本文所提出的方法,綠色為KCF。“+”符號表示焊縫特征點。從圖中可以看到在強弧光干擾時候,KCF算法會出現(xiàn)較大誤差,不利于長時間跟蹤。本文中提出的方法能夠在噪聲干擾下準(zhǔn)確定位,抗干擾能力較好。為了更加合理地評價本文中的方法,使用圖像中標(biāo)注的像素坐標(biāo)和算法輸出像素坐標(biāo)的歐幾里得距離衡量跟蹤誤差,誤差折線圖如圖5所示。從圖中可以看到在焊接過程中,KCF在跟蹤時隨著跟蹤的時間增加誤差逐漸變大,在連續(xù)的強噪聲干擾的圖像中產(chǎn)生了過大的誤差。本文中提出的方法可以有效地抑制跟蹤目標(biāo)點的漂移,減少跟蹤誤差,跟蹤的最大誤差小于8個像素,整體表現(xiàn)較好,滿足焊接需求。
圖5 兩種算法的跟蹤誤差曲線
本文針對焊接過程中弧光飛濺等干擾導(dǎo)致焊縫特征提取困難的問題,利用焊縫在時間和空間中的連續(xù)性,使用KCF跟蹤算法跟蹤焊縫特征。針對焊縫跟蹤過程中光學(xué)噪聲干擾過大導(dǎo)致焊縫特征跟蹤出現(xiàn)漂移的問題,提出使用兩個活躍程度不同的跟蹤器跟蹤焊縫特征,最后使用卡爾曼濾波器融合兩個跟蹤器輸出結(jié)果。經(jīng)過實驗測試,在強弧光和飛濺等光學(xué)噪聲干擾的情況下,該方法能抑制跟蹤過程中的出現(xiàn)的跟蹤漂移,減小跟蹤誤差。在451張測試的圖像中,平均跟蹤誤差為3.71個像素,具有較高的跟蹤精度。