何濱昂,劉玉良
(1. 湖南大學 信息科學與工程學院,長沙 410012;2. 浙江海洋大學 信息工程學院,浙江舟山 316022;3. 舟山商文機器人科技有限公司,浙江舟山 316100)
船體焊接缺陷檢測,目前主要由驗船師登上腳手架,手持焊縫檢測尺、激光測厚儀等來完成。這種人工方式勞動強度很大,檢測效率低,船上狹窄邊角區(qū)域還存在驗船師無法到達的檢測盲區(qū),且龐大笨重的腳手架也會嚴重影響船舶運行效率。圖像處理具有準確、高效、便捷等優(yōu)點,是實現(xiàn)船體焊縫缺陷自動檢測的核心技術之一,為解決上述問題提供新思路。
目前,應用圖像處理技術檢測金屬焊縫質(zhì)量的研究已有相關報道。文獻[1]為實現(xiàn)無損焊縫缺陷檢測,提出基于機器視覺的殼管焊接質(zhì)量自動檢測系統(tǒng);文獻[2]根據(jù)X射線數(shù)字圖像的灰度變化特點,對焊縫區(qū)域采用水平和豎直方向上濾波操作并用布爾代數(shù)方法進行整合,得到反映缺陷特征的二值圖像;文獻[3]針對鋼板焊縫缺陷X射線圖像,采用支持向量機的方法對焊縫缺陷進行分類識別。文獻[3]的研究對象跟船體焊縫相似,但其邊緣提取算法是對目標進行搜索后尋找并標記黑白交替處,對于船體邊緣處的焊縫無法提取完整信息,且所采用的4循環(huán)遍歷尋找長軸與短軸的方法,運算較復雜,程序運行時困難重重。
船體焊縫缺陷與正常焊縫相比,存在位置分布不均、區(qū)域雜質(zhì)多等特征,比其他行業(yè)金屬焊縫復雜得多。本文在圖像特征提取與識別算法方面進行深入研究,通過算法改進等提出針對性的圖像處理算法。
根據(jù)船體焊縫缺陷檢測的要求,本文設計的圖像處理功能包括焊縫圖像預處理、輪廓提取、特征計算、識別算法以及OpenCV和C++編程等,圖像處理的各功能模塊如圖1所示[4]。船體焊縫圖像的輪廓提取、特征計算和缺陷類型識別等算法尤為關鍵,重點對這3部分的設計過程進行論述。
圖1 圖像處理系統(tǒng)的功能模塊
圖像預處理之后,需要進行邊緣檢測和二值化處理,而后應用形態(tài)學方法去除新增的孔、洞等虛假邊緣,最終得到船體焊縫的正確輪廓。
圖像邊緣檢測的經(jīng)典算子有Roberts、Sobel、Prewitt、Laplace和Canny等。相比較而言,Roberts算子平滑作用微弱但對噪聲敏感;Sobel和Prewitt不適合含噪聲的混合復雜圖像;Laplace不適合對比度差的圖像[5]。由于船體焊縫圖像存在對比度不強、灰度分布不均衡、噪聲大且動態(tài)模糊等特點,上述4種算子均不適用。Canny邊緣檢測算子是一種多級算法[6],采用基于邊緣梯度方向的非極大值抑制以及雙閾值的滯后閾值處理,不易受噪聲干擾,具有錯誤率低、定位準確等優(yōu)點。因此,本文采用Canny算子檢測焊縫圖像邊緣。算法流程如圖2所示。
圖2 Canny邊緣檢測算法流程
其中,最關鍵的滯后閾值處理如下:Canny算子為保證邊緣信息的準確性,最后一步將通過滯后閾值處理,進一步抑制虛假的弱邊緣,即通過查看弱邊緣像素點及其8個鄰域來跟蹤弱邊緣。原理是:若鄰域有1個像素為強邊緣點,則弱邊緣點保留為真實的邊緣點,否則將被當作虛假邊緣點被剔除。
Canny邊緣檢測的結(jié)果仍存在零星噪聲點或間斷點,如圖3所示。通過連通域檢測和形態(tài)學閉運算操作,得到圖3的結(jié)果。由此可見:形態(tài)學閉運算可恢復焊縫外形特征,同時徹底消除虛假的弱邊緣。
圖3 氣孔類型焊接缺陷邊緣檢測的閉運算效果
提取船體焊縫輪廓步驟如下:
1)選取3×3模板在黑白2值的圖像內(nèi)游動。模板中0~8表示各像素點的位置關系,0表示中心像素點,1~4表示其4個鄰域,即與中心像素點距離為1的點,5~8表示相應距離為 2的點,如圖4所示。
圖4 提取焊縫輪廓的3×3模板
2)若中心像素點為黑色,則無論鄰域1~8為何值,則中心像素點黑色保持不變;
3)若中心像素點為白色,并且鄰域1~4均不為黑色,則中心像素點白色保持不變;
4)其余情況將中心像素點標記為邊緣點。
運行上述算法,最終得到以紅色像素點代表輪廓的示意圖,如圖5所示。
圖5 提取焊縫輪廓的算法示意圖
關于裂紋、未熔合、氣孔、焊瘤等焊縫缺陷圖像的特征參數(shù),本文參照文獻[3]選取長寬比R、周徑比L、圓形度E、矩形度J和等效面積K進行表述。特征參數(shù)定義為
式中:L1、L2分別為焊縫圖像長軸和短軸長度;C為焊縫周長;S為焊縫面積。
根據(jù)式(1)選取焊縫圖像的短軸、長軸、周長和面積作為基準參數(shù),得到基準參數(shù)后計算特征參數(shù)。為降低復雜度,在計算長軸L1與短軸L2時采用最小外接矩形的方法,將焊縫缺陷點集放入C++的Vector(point)容器中,用OpenCV函數(shù)minAreaRect求出點集的最小外接矩形,矩形的長和寬分別代表長軸和短軸的長度。外接矩陣如圖6所示,其中黑色陰影區(qū)域代表具有缺陷的焊點集合。
圖6 焊縫缺陷的最小外接矩形示意圖
1)焊縫面積S的計算
利用圖像內(nèi)白色像素數(shù)來近似表達,見式(2)
式中:(x,y) ∈A為區(qū)域A中的像素點;f(x,y)為白色像素點。
2)周長C的計算
利用焊縫邊緣信息,應用Freeman鏈碼公式[7]計算
式中:ne為鏈碼中偶數(shù)鏈碼的數(shù)目;n0為奇數(shù)鏈碼的數(shù)目。
本文的焊縫缺陷識別基于計算所得的焊縫特征參數(shù),包括訓練和識別2個階段。訓練階段:首先計算未熔合、裂紋、氣孔和焊瘤4類焊縫缺陷各個圖像樣本的特征參數(shù),每類圖像樣本都具有5個特征參數(shù),再求取同一類共計3個焊縫缺陷的同一個特征參數(shù)的算術平均值,作為該類焊縫的子類判據(jù);識別階段,每輸入一幅待識別的焊縫缺陷圖像,計算其5個特征參數(shù)值,再分別計算特征參數(shù)值與相應子類判據(jù)的相似度,而后計算屬于同一焊縫缺陷類型的各個相似度的乘積,相似度乘積最大的焊縫缺陷類型被認定為所求的焊縫缺陷類型。焊縫缺陷類型的識別原理如圖7所示,其中相似度計算如式(4)
圖7中的相似度定義為最終相似度,是在式(4)計算結(jié)果的基礎上求取同一類型焊縫4個相似度的乘積。
圖7 船體焊縫缺陷識別的算法流程
1)焊縫圖像預處理。運行圖像灰度化、圖像增強和高斯濾波等算法。
2)焊縫圖像輪廓提取。運行canny邊緣檢測算子、形態(tài)學閉運算修復等算法。
3)特征計算。運行長寬比、周徑比、圓形度、矩形度和等效面積等特征參數(shù)算法。
4)缺陷識別。以OpenCV和C++為編程工具,運行識別算法,得到焊縫缺陷類型及具體位置。
計算得到4種焊縫缺陷的特征參數(shù)值見表1。
表1 計算得到4種焊縫缺陷的特征參數(shù)值
針對上述4種焊縫缺陷,在訓練階段分別選取3個圖像樣本為對象,利用式(1)計算得到的特征參數(shù)見表1。5個子類判據(jù)分別為7.198、2.263、0.246、0.633、4.219。若輸入1幅待識別的焊縫缺陷圖像后,計算得到5個特征參數(shù)依次為7.108、2.202、0.255、0.641和4.323,與裂紋類型焊縫缺陷的子類相似度分別為:98.75%、98.19%、96.34%、87.36%、99.4%,最終的裂紋相似度為81.12%;若高于任何其他3個焊縫類型的最終相似度,則該圖像被識別為具有裂紋類型缺陷的焊縫。
本文對含有裂紋、未熔合、氣孔、焊瘤4種類型焊縫缺陷各100張進行編程測試,識別結(jié)果表明:每張圖片的識別時間平均小于3 s,正確識別率均在97.3%以上。
本文針對人工方式檢測船體焊縫缺陷的勞動強度大、檢測效率低等問題,提出了適用于船體焊縫檢測的圖像處理算法。為提高特征參數(shù)的計算速度,提出焊縫圖像長軸、短軸的新型計算方法,并采用++和OpenCV編程驗證新型計算方法的準確性;最后設計了基于有限樣本的焊縫缺陷識別流程。測試結(jié)果表明:焊縫缺陷的準確識別率大于97.3%,滿足基本要求。本文目前僅對船體焊縫中易出現(xiàn)的裂紋、未熔合、氣孔、焊瘤4種缺陷的識別理論與方法進行了研究,下一步將針對更多種船體焊縫缺陷,探索提高焊縫識別率的改進算法和應用方法。