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