劉 智,胡 慧,蔡雄武,何瑛駿
(1.佛山職業技術學院機電工程學院,廣東佛山 528137;2.中南大學機電工程學院,長沙 410083)
隨著工業機器人技術的日益發展,焊接工業機器人以其穩定、高效、降低勞動強度和環境適應性強等特點被廣泛應用在汽車、船舶、石化管道等領域。劉少林等[1]針對中厚板激光焊接跟蹤系統設計,利用攝像頭、計算機、線激光以及顯示單元等的視覺系統,研究了激光焊接焊縫的視覺特征提取方法以及結構。馬國棟、王延深等[2]將激光焊接頭與CCD視頻跟蹤模塊集成在一起,提出一種采用一字線激光進行自動化焊縫檢測的方法。李明利、劉占民[3]在焊接坡口激光檢測圖像處理方面,模擬了多種光線情況下,有效地對圖像進行了過濾并提取了焊縫的特征。針對焊縫特征數據的準確性,許二娟等[4]利用圖像處理后提取的焊縫數據進行深入地誤差處理數據檢測。在激光跟蹤焊接方面,對于數據的精度以及檢測一直是難點[5-8]。
針對傳統焊接領域存在的工作勞動強度大、環境差、人力資源成本高、焊接質量不穩定等問題,本文利用MATLAB強大的圖像處理技術,探索設計了一種基于圖像形態學的焊縫特征提取方法,較準確地得到了焊縫的三維特征點與特征線。利用攝像頭成像原理與三角形特性,設計了一套獲取薄板件焊縫三維結構特征的系統,并研究了焊縫數據識別與提取的算法。基于自行研究的算法,對兩塊鋁制薄板件的拼接縫隙進行了提取和再現。
為了使圖像更精準,需要對攝像頭進行校正。用攝像頭對一些圖片進行標定,用這些標定得到的數據參數來對攝像頭捕獲到的任意畫面進行消扭。對圖1所示的標定板進行各個角度地拍攝并保存出來,利用MATLAB標定工具箱進行圖片讀取并運算,將得到的標定參數保存。
如圖2所示,將需焊接的薄板件放置在實驗臺上,并打上激光線。攝像頭固定在相機架上,并將線激光安裝在與攝像頭成一定夾角的位置上,啟動工件移動平臺,打開攝像頭并開始錄制圖像。
圖1 標定圖格式
如圖3所示,利用相機與激光線的成像原理,將焊縫的特征凸顯在圖像中。
圖2 提取焊縫系統結構圖
圖3 成像原理圖
光線的反射在不同環境下都有所不同,如圖4所示,對不同照明環境下的激光反射圖像進行了拍攝和處理。圖4(a)、圖4(b)分別為經中值濾波和最佳閾值的二值化處理后夜間無其他光源照明、有光源照明條件下的激光反射圖像對比情況。
圖4 不同照明條件下激光反射圖像
由圖4(a)可知,在光照條件較差的環境下所拍攝得到的圖像,激光反射線條紋幾乎沒有受其他光線的影響,得到的圖像特征較為凸顯,能較為容易地進行圖像處理及有關數據的提取;圖4(b)在有光源照射的情況下,比較吻合焊接的生產條件,但所得圖像會產生光源反射光的干擾,在進行圖像處理以及數據提取時,因圖像中存在其他反射光,進行處理的數據不準確便會直接影響焊接的軌跡;如果是光線影響較為嚴重的環境進行焊接操作,反射光對圖像產生較大的干擾,可通過加裝濾光片,能在較大程度上降低反射光的干擾,較容易地對其進行圖像處理和數據提取。為了驗證數據的可靠度,此實驗并沒有加濾光片。
加裝上濾光片的攝影在圖像顯示中反射的激光線也會存在干擾即噪聲。為了更好地建立三維模型,必須先將圖像進行初步的降噪處理。
2.2.1 中值濾波原理
在圖像處理中,通常需要進行一定程度的降噪。中值濾波是一種非線性數字濾波器技術,常用于去除圖像或者其他信號中的雜訊[9]。在實際焊接過程中,焊接飛濺、煙塵是不可避免的,此步驟便能實現過濾的功能。
如圖5所示,當要求在降低噪聲的同時保存圖像主要特征時,中值濾波有明顯的效果。其原理是將每一像素點的灰度值設置為該點的一個鄰域中各個點的值的中值來代替。對于一維中值濾波,設模板的尺寸為M,M=2×r+1,r為模板半徑,給定一維信號f(i),i=1,2,3,…,N,則中值濾波輸出為:
式中:median為取向量的中值。
對于二維的中值濾波情況:
g(x,y)=median[f(s,t)]或B=medfilt 2(f,[m,n])
中值濾波器可用以下步驟來完成:(1)將模板放置在圖中漫游,并將模板中心與圖中某個像素位置重合;(2)讀取模板中各個像素點的灰度值;(3)將模板中的灰度值從小到大排列;(4)獲取這些灰度值排列在中間的值;(5)將這個中間值賦給對應模板中心位置的像素。
重復此5步驟,直至圖像中每個像素值都被重新賦予新的值。
圖5 濾波前后的對照圖
2.2.2 最佳閾值的二值化處理
圖像的二值化,就是將圖像上像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的只有黑和白的視覺效果。
一幅圖像包括目標物體、背景和噪聲,要想從多值的數字圖像中直接提取出目標物體,常用的方法就是設定一個閾值t,用t將圖像的數據分成大于t的像素群和小于t的像素群兩部分。這是研究灰度變換最特殊的方法,稱為圖像的二值化。
最佳的閾值也就是利用最大類間方差法(OTSU)求出對圖像進行二值處理的最佳閾值,從而進行圖像二值化處理[10]。二值法處理的基本原理如下。
把圖像分成N個灰度等級,ni代表灰度為i的像素總和,則圖像中總像素為:
根據上文設定的閾值t,將圖像像素分為A、B兩個區域,則A、B出現的概率分別如下:
根據OTSU法,求得σ2的最大值t*即為所求的最佳閾值:
在MATLAB中使用Graythresh函數進行計算,設q為需處理的圖像數據,即:
t*=graythresh(q)
再將其二值化,即:
c=im2bw(q,b)
由圖6所示可知,其平面受光線影響較嚴重,如按照傳統的閾值方式處理,將會如圖7(a)所示,其特征不平滑。圖7(b)所示為在經過最大類間方差法處理過后,較精準地得到其線激光數據。
圖6 未進行圖像處理的焊接板面
圖7 閾值處理前后對照圖
將處理好的每一幀圖像存入文件中,將每一幀圖像中的像素值重新排列,將所有的像素點按照三維數據排列。a為圖像的數據;h、l分別為圖像的長和寬,即:
式中:dm為獲取圖像后關于像素值的平面數據點。
按照激光三角法進行運算其高度Z軸方向上的數據,得出其高度后進行數據判斷,得出激光需焊接的軌跡以及焊縫的平均寬度。
激光三角法測距技術的原理是從激光發射器中發射出一束激光,打到被測物體上,經過反射射到接收系統上。激光發射器、被測物體、接收系統形成了一個幾何三角關系,因此稱為激光三角測距法。激光三角法測距技術比較適用于較短距離的精密測量,通常被應用于機器人的視覺系統中[11-12]。
根據已獲得的閾值后的二值圖可以獲得其X、Y方向的數據值,其Z值就需要運用激光三角法原理,如圖8所示。由激光器發射的激光光束與水平面成角度a入射到被測物體表面,由B處的透鏡將反射的激光線匯聚成像,最后被攝像頭采集。在確定入射角光路后,將攝像頭正視于平面與基線AB平行(假設為X軸)即O軸,通過圖像處理算法得到的激光光點像素坐標為(PX,PY)。
成像點E與輔助點D。設PP′=X,則由相似三角形可得:
圖8 激光三角法原理圖
式中:PixelSize為像素單位大小;position為成像的像素坐標相對于成像中心的位置。
設步進電機速度為N(單位為mm/s),攝像頭的幀率為n,則圖像的拼接距離為S=N/n;設拍攝時間為s,則總幀數為P=S?n。如果圖像以Y軸進行疊加形成三維圖像,則其對應的第i張圖像中線激光的X坐標為:
同理,所得的焊接特征點也進行拼接,則可得其三維模型,如圖9所示。圖9(a)所示的焊縫即為Z軸較高的位置;圖9(b)所示為需焊接的軌跡。
圖9 MATLAB GUI運算界面
本文通過自行設計的焊縫激光跟蹤系統對焊縫特征的三維數據進行識別與提取。根據實際焊接過程的非線性,以及存在各種干擾因素的實際情況,對焊縫圖像進行過濾并增強圖形效果,使焊縫特征得到凸顯。利用圖像處理,對圖像中的噪聲再次過濾,并對激光條紋進行平滑處理,再經過激光三角法將其數據進行三維重建,并在MATLAB中GUI窗口顯示,對焊接實際情況進行監測。通過對需焊接的各種薄板件進行拍攝檢測,最后得到焊縫特征點數據和焊縫軌跡,為后續實現自動跟蹤焊接奠定基礎。