劉晶
(華東理工大學(xué)機(jī)械與動(dòng)力工程學(xué)院,上海 200237)
鑄件質(zhì)量對(duì)產(chǎn)品的性能影響較大,因此對(duì)鑄件進(jìn)行分析和檢測(cè)是非常必要的。鑄件缺陷包括孔洞類缺陷、裂紋類缺陷、表面缺陷類缺陷和鑄鐵形狀、尺寸和質(zhì)量不合格類缺陷,以及鑄件成分、組織及性能不合格類缺陷[1]。通??梢酝ㄟ^(guò)外觀和內(nèi)部檢查來(lái)檢測(cè)鑄件質(zhì)量,鑄件的表面形狀及尺寸偏差等可以通過(guò)外觀檢查檢測(cè),內(nèi)部檢查主要用來(lái)檢查內(nèi)部孔洞和裂紋等缺陷。鑄件內(nèi)存在孔洞類缺陷,會(huì)減小有效承載面積,從而會(huì)影響鑄件的力學(xué)性能和抗疲勞性及抗沖擊性,也會(huì)對(duì)鑄件的耐腐蝕性和耐熱性有不良的影響[2]。當(dāng)孔洞類缺陷受到局部應(yīng)力較大時(shí),就會(huì)產(chǎn)生裂紋,從而容易產(chǎn)生鑄件疲勞失效及斷裂。鑄件內(nèi)的裂紋類缺陷如果隱藏在鑄件內(nèi)部,會(huì)產(chǎn)生較大的危險(xiǎn),甚至?xí)谑褂眠^(guò)程中出現(xiàn)嚴(yán)重事故。孔洞和裂紋這類鑄件內(nèi)部缺陷,可以通過(guò)無(wú)損檢測(cè)技術(shù)進(jìn)行檢測(cè),目前一些學(xué)者結(jié)合圖像處理技術(shù)來(lái)提取缺陷[3-12]。
對(duì)于鑄件內(nèi)部缺陷的檢測(cè),常用的無(wú)損檢測(cè)方法包括射線檢測(cè)和超聲檢測(cè)。射線檢測(cè)效果最好,它能夠直觀地反映出鑄件內(nèi)部缺陷種類、形狀、大小和分布情況。而超聲檢測(cè)尤其適用于大厚度的大型鑄件,它可以比較精確地測(cè)出內(nèi)部缺陷的位置和分布情況等。根據(jù)這兩種檢測(cè)方法的適用范圍,本文選用工業(yè)CT進(jìn)行鑄件檢測(cè),工業(yè)CT是一種比較先進(jìn)的無(wú)損檢測(cè)方式,可以用來(lái)掃描非常復(fù)雜的鑄件。通過(guò)工業(yè)CT設(shè)備掃描鑄件后,可以得到一系列二維斷層圖像,通過(guò)這些圖像能夠看出鑄件內(nèi)部結(jié)構(gòu)及內(nèi)部缺陷的位置、形狀、尺寸、分布情況等。對(duì)鑄件進(jìn)行工業(yè)CT檢測(cè),可以在線檢測(cè)鑄件是否存在缺陷,存在哪一類缺陷,實(shí)現(xiàn)實(shí)時(shí)檢測(cè),極大提高鑄件質(zhì)量,進(jìn)而為改進(jìn)鑄造工藝提供參考。工業(yè)CT這種無(wú)損檢測(cè)要比傳統(tǒng)的檢測(cè)方式更加先進(jìn),通過(guò)工業(yè)CT檢測(cè)鑄件,在改善鑄件質(zhì)量、識(shí)別鑄件廢品等方面起著重要作用。對(duì)鑄件定期進(jìn)行無(wú)損檢測(cè),監(jiān)測(cè)其是否出現(xiàn)危險(xiǎn)性缺陷,在防止和杜絕事故方面起重要作用[13]。通過(guò)工業(yè)CT進(jìn)行鑄件檢測(cè),從圖像中可以直觀地觀察到大的缺陷,但是很多缺陷尺寸較小,因此必須通過(guò)圖像處理的方法進(jìn)一步精確地確定全部缺陷的空間位置及大小。
為了更好地提取圖像輪廓,首先采用改進(jìn)的中值濾波去除噪聲。具體的方法是:逐行掃描CT圖像,當(dāng)處理每一個(gè)像素時(shí),判斷這個(gè)像素是否是濾波窗口所覆蓋的鄰域像素極大值或極小值。如果是,則采用正常的中值濾波處理該像素;如果不是,則不進(jìn)行處理。改進(jìn)的中值濾波能有效地去除突發(fā)噪聲點(diǎn),同時(shí)也能夠保護(hù)目標(biāo)圖像的邊緣。
在去除圖像中的噪聲后,通過(guò)迭代法求閾值對(duì)圖像進(jìn)行分割,其步驟如下:1)求出圖像的最大灰度值和最小灰度值,分別記為Gmax和Gmin,令初始閾值ti=(Gmax+Gmin)/2(i=0,1,…n)。2)根據(jù)閾值ti將圖象分割為目標(biāo)和背景兩部分,分別求出兩者的平均灰度值G1和G2。3)計(jì)算新閾值ti+1=(G1+G2)/2。4)如果ti=ti+1,則ti就是閾值;如果不相等,則i=i+1,轉(zhuǎn)第2步。
通過(guò)迭代法確定閾值后,圖像分為目標(biāo)和背景兩部分,可以更好地提取出圖像的邊緣輪廓,從而找到缺陷部分的輪廓。目標(biāo)像素值用1表示,背景像素值用0表示。
輪廓追蹤分為粗提取和精提取兩步,粗提取圖像邊緣像素的步驟如下:從圖像左上角逐行掃描像素,以該像素和其相鄰右方像素,相鄰下方像素,相鄰右方像素的下方像素構(gòu)成一個(gè)2×2窗口,只要這個(gè)窗口屬于圖1中任何一種,則該像素就是圖像的邊緣像素,否則就不是圖像的邊緣像素。
圖1 2×2窗口
在確定好圖像的邊緣像素集合后,需要將這些像素點(diǎn)按照順時(shí)針或逆時(shí)針排序,以便確定出圖像的邊緣像素之間的鄰接關(guān)系,使得內(nèi)部缺陷輪廓的邊緣數(shù)據(jù)實(shí)現(xiàn)有序。在輪廓追蹤出圖像輪廓及內(nèi)部缺陷輪廓的邊緣后,為后續(xù)的缺陷類型識(shí)別做準(zhǔn)備。輪廓追蹤首先在圖像中按從上到下、從左到右的順序搜索,找到的第1個(gè)像素值為1的點(diǎn),這個(gè)點(diǎn)一定是最左上方的邊界點(diǎn),記為Pa。該點(diǎn)的右、右下、下、左下4個(gè)鄰點(diǎn)中至少有1個(gè)是邊界點(diǎn),記為Pb。從Pb開(kāi)始找起,按照8連通區(qū)域沿逆時(shí)針順序找相鄰點(diǎn)中的邊界點(diǎn)Pc。如果Pc下一個(gè)頂點(diǎn)是Pa,則表明已經(jīng)轉(zhuǎn)了一圈,這個(gè)輪廓找到;否則從Pc點(diǎn)繼續(xù)找,直到找到Pa為止。在找到這個(gè)輪廓后,再?gòu)臎](méi)有搜索到的點(diǎn)開(kāi)始繼續(xù)重復(fù)上述步驟,去找其他的輪廓,直至所有邊緣點(diǎn)都被搜索到,找到圖像中所有的內(nèi)外輪廓,搜索結(jié)束。
以粗提取得到的輪廓點(diǎn)作為控制點(diǎn)進(jìn)行NURBS曲線擬合,然后將粗提取的輪廓點(diǎn)向NURBS曲線作投影,得到曲線上的投影點(diǎn),這些投影點(diǎn)就是輪廓提取的亞像素坐標(biāo)。輪廓提取過(guò)程中,粗提取得到像素級(jí)坐標(biāo),精提取得到亞像素級(jí)坐標(biāo)。將精提取后的輪廓數(shù)據(jù)進(jìn)行排序。
NURBS曲線的數(shù)學(xué)定義如下:
式中:ωi為權(quán)因子;Pi為控制點(diǎn);Ni,k(t)是由節(jié)點(diǎn)矢量T=[t0,t1,…tn+k+1]按de Boor-Cox遞推公式確定的k次規(guī)范B樣條基函數(shù)。
通過(guò)粗提取和精提取可以提取出缺陷輪廓數(shù)據(jù)。
在缺陷輪廓數(shù)據(jù)提取后,可以進(jìn)行缺陷類型識(shí)別??锥搭惾毕萃ǔ嗝嫘螤钰呌趫A形或橢圓形,深度有限。而裂紋類缺陷常常呈條紋狀,主要是用長(zhǎng)度和深度來(lái)表現(xiàn),寬度尺寸較小。根據(jù)孔洞類缺陷和裂紋類缺陷自身的形狀特征,引入圓形度和狹長(zhǎng)度2個(gè)參數(shù)進(jìn)行類型識(shí)別。對(duì)一個(gè)缺陷,需要通過(guò)計(jì)算圓形度和狹長(zhǎng)度,確定其形狀是更傾向于圓形或長(zhǎng)條紋形,圖2為缺陷類型識(shí)別流程圖。
圖2 缺陷類型識(shí)別流程圖
圓形度是圖像處理中很重要的一個(gè)參數(shù),是表示物體圓形程度的指標(biāo),常常用于特征的提取與描述。圓形度能反映出孔洞類缺陷接近圓形的程度,圓形度C定義為
式中:A為缺陷的面積;P為缺陷的周長(zhǎng);C越接近1,缺陷越接近圓形。
設(shè)排序后的缺陷數(shù)據(jù)為(x0,y0), (x1,y1),…(xn,yn),那么缺陷面積A可以用下式計(jì)算:
狹長(zhǎng)度是表示物體長(zhǎng)形程度的參數(shù),能反映出裂紋類缺陷接近長(zhǎng)條紋狀的程度,狹長(zhǎng)度定義為
式中:a和b分別表示缺陷具有的最小面積外接矩形的長(zhǎng)邊和短邊;e越接近1,缺陷形狀越狹長(zhǎng)。
本文通過(guò)旋轉(zhuǎn)卡殼算法確定最小面積外接矩形,步驟如下:1)首先計(jì)算缺陷多邊形的4個(gè)端點(diǎn),用Xmin、Xmax、Ymin、Ymax表示。2)通過(guò)這4個(gè)點(diǎn)構(gòu)造4條切線,確定2個(gè)“卡殼”集合。設(shè)置當(dāng)前多邊形最小面積為無(wú)窮大。3)順時(shí)針旋轉(zhuǎn)線直到其中一條和多邊形的一條邊重合。計(jì)算新矩形的面積,并且和當(dāng)前面積最小值比較。如果小于當(dāng)前最小值,則此值作為最小值,并保存與最小值對(duì)應(yīng)的矩形信息。 4)重復(fù)步驟3),直到線旋轉(zhuǎn)過(guò)的角度大于90°。5)得到外接矩形的最小面積,得到最小面積外接矩形的長(zhǎng)邊a和短邊b。
為了更好地識(shí)別出鑄造零件內(nèi)部缺陷,本文通過(guò)工業(yè)CT設(shè)備對(duì)1個(gè)鑄造零件(如圖3)進(jìn)行掃描,獲得多個(gè)斷層截面圖像。圖像掃描矩陣為1203×1270,像素間的距離為0.08 mm。
圖3 鑄件圖片
取其中一幅圖像進(jìn)行研究,圖4為一幅工業(yè)CT仿真圖像,圖像中有孔洞類缺陷和裂紋類缺陷。采用改進(jìn)的中值濾波對(duì)圖4的圖像去除噪聲,并進(jìn)行閾值分割后的圖像如圖5所示,在預(yù)處理后,缺陷更明顯。圖6為輪廓提取后的結(jié)果,從圖中可以看到孔洞類缺陷和裂紋類缺陷共有11處缺陷。圖7為放大后的內(nèi)部缺陷。利用圓度和狹長(zhǎng)度對(duì)圖像中的缺陷進(jìn)行計(jì)算,圖8為該圖像中11處缺陷的圓度和狹長(zhǎng)度的對(duì)比,從圖中可以看出第1到第10個(gè)缺陷圓度接近1,狹長(zhǎng)度較小,形狀近似圓形,屬于孔洞類缺陷,第11個(gè)缺陷狹長(zhǎng)度接近1,圓度較小,屬于裂紋類缺陷。為了更準(zhǔn)確地識(shí)別缺陷是孔洞類缺陷還是裂紋類缺陷,可以對(duì)該層圖像相鄰的上下幾層圖像采用同樣的方法進(jìn)行圖像輪廓提取及缺陷類型識(shí)別,計(jì)算相鄰幾層圖像缺陷的圓形度和狹長(zhǎng)度,從而確定三維空間中缺陷是哪一類缺陷。
圖5 預(yù)處理后圖像
圖6 輪廓提取后圖像
圖7 放大后部分缺陷
圖8 圓度和狹長(zhǎng)度對(duì)比
選擇鑄件同一方向的切片圖像進(jìn)行研究,如圖4、圖9、圖10所示。3處切片圖像處的缺陷數(shù)量如表1所示,從表中可以看出不同位置的切片圖像處的缺陷數(shù)量不同,某些位置的缺陷數(shù)量要多于其他位置,這可以為技術(shù)人員改善鑄造質(zhì)量提供參考。
圖4 工業(yè)CT圖像
圖9 第二處切片
圖10 第三處切片
表1 3處不同位置的缺陷統(tǒng)計(jì)
本文對(duì)工業(yè)CT圖像中的孔洞類缺陷和裂紋缺陷的類型識(shí)別進(jìn)行了研究,通過(guò)Microsoft Visual Studio 2013編寫(xiě)程序。此方法通過(guò)改進(jìn)的中值濾波、閾值分割及通過(guò)2×2窗口首先提取出圖像邊緣輪廓,然后對(duì)內(nèi)部缺陷輪廓進(jìn)行排序,再根據(jù)孔洞類缺陷和裂紋類缺陷自身的形狀特征,引入圓形度和狹長(zhǎng)度2個(gè)參數(shù)進(jìn)行缺陷類型識(shí)別。通過(guò)實(shí)驗(yàn)表明此方法可以有效地提取孔洞類缺陷和裂紋缺陷。此方法不僅適用于工業(yè)CT圖像的缺陷類型檢測(cè),也可用于其他類型圖像的缺陷類型檢測(cè)。