陸藝丹, 張 薇,2,3
(1.上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院, 上海 200093;2.上海理工大學(xué) 上海市現(xiàn)代光學(xué)系統(tǒng)重點(diǎn)實(shí)驗(yàn)室, 上海 200093;3.上海理工大學(xué) 教育部光學(xué)儀器與系統(tǒng)工程研究中心, 上海 200093)
焊接缺陷的X射線圖像檢測一直是無損探傷領(lǐng)域的研究熱點(diǎn)之一,其主要目的是對焊接缺陷進(jìn)行檢測,并通過圖像判斷該元件焊接缺陷的位置和大小是否在合理誤差范圍內(nèi)。傳統(tǒng)的檢測方法是X射線膠片檢測,該方法耗時(shí)長并且不夠經(jīng)濟(jì),因此已經(jīng)被淘汰。隨著技術(shù)發(fā)展,當(dāng)前的焊接缺陷檢測技術(shù)均已數(shù)字化,然而X射線檢測結(jié)果多數(shù)還采用人眼評估的方法,評定人員工作量大,而且對經(jīng)驗(yàn)有相當(dāng)高的要求,評定人員的主觀因素對檢測結(jié)果有很大影響。人工檢測的低效率與低精度難以滿足工業(yè)中大批量圖像處理的檢測要求。因此采用計(jì)算機(jī)輔助檢測評估,可以有效地減少人工評估帶來的弊端,使得整個(gè)檢測過程更加客觀,效率與精度更高。
通常焊接缺陷包括了未焊透、未熔合、夾渣、裂縫以及氣孔。在印制電路板(PCB)基板加工過程中,最常出現(xiàn)的是氣孔,若焊接點(diǎn)中的氣孔過多過大,則會(huì)影響電路的導(dǎo)電性能,并出現(xiàn)短路等問題。X射線圖像具有噪聲多、缺陷對比度不高、背景起伏較大等特點(diǎn),給缺陷自動(dòng)檢測帶來很多困難[1],而且由于圖像噪聲以及背景灰度與缺陷灰度相似的原因,將造成誤檢與漏檢。當(dāng)前焊接缺陷的檢測主要包括兩個(gè)步驟,圖像處理和特征提取[2]。通常圖像處理使用的步驟包括圖像降噪[3],對比度增強(qiáng)[4],邊緣檢測[5],圖像分割[6]以及形態(tài)學(xué)處理[7]。圖像處理后就是提取特征,一般包括了圖形特征和紋理特征,利用提取出的特征可進(jìn)行缺陷的判別。
目前常用的圖像處理方法是直接利用全局分析[8],該方法進(jìn)行缺陷的檢測將會(huì)導(dǎo)致背景中相似灰度的亮點(diǎn)被誤判為氣孔。還有研究者提出先利用閾值法進(jìn)行分割,再與圖像背景進(jìn)行差分處理,但分割后的二值圖像可能包含不屬于感興趣的區(qū)域,會(huì)對最后的結(jié)果產(chǎn)生影響。因此本文利用區(qū)域標(biāo)記法,對二值圖像進(jìn)行甄選,先去除無效區(qū)域后再對感興趣區(qū)域進(jìn)行氣孔的提取,從而降低誤判率,實(shí)現(xiàn)對焊接區(qū)域缺陷的自動(dòng)檢測。
圖1 X射線實(shí)時(shí)檢測系統(tǒng)Fig.1 X-ray real-time inspection system
本文以Image J圖像處理系統(tǒng)為基礎(chǔ)開發(fā)出自動(dòng)檢測焊接氣孔的插件。Image J完全采用Java語言編寫,因此它與平臺無關(guān),可以不加修改地運(yùn)行在Windows,Mac OS和Linux操作系統(tǒng)上。該軟件能提供一系列的標(biāo)準(zhǔn)處理函數(shù),例如濾波、平滑等,而且Image J采用了開放式結(jié)構(gòu),通過加入Java語言的插件可以完成對其功能的擴(kuò)展。由于對焊接進(jìn)行缺陷提取需要一系列的標(biāo)準(zhǔn)處理函數(shù),并且需要處理大批量的圖像,所以利用Image J的可擴(kuò)展的屬性,我們可以開發(fā)出通用性較高的插件來檢測批量的焊接缺陷圖像。
如圖1所示,檢測系統(tǒng)主要由三部分組成:轉(zhuǎn)換模塊、處理模塊以及串行通信模塊。轉(zhuǎn)換模塊由X射線源、傳送車、待測元件、圖像增強(qiáng)器以及CCD圖像傳感器組成,該模塊主要功能是將不可見的X射線轉(zhuǎn)換為可見信號:首先利用增強(qiáng)器將X射線轉(zhuǎn)換為可見光,然后通過CCD圖像傳感器將可見光信號轉(zhuǎn)換為電信號,并將電信號傳入處理模塊。處理模塊包括了監(jiān)視器、圖像采集卡、計(jì)算機(jī)以及計(jì)算機(jī)顯示屏,模塊工作時(shí),圖像采集卡捕捉模擬電信號并將其轉(zhuǎn)換成數(shù)字信號,數(shù)字信號隨后被送入計(jì)算機(jī),并被圖像處理算法處理,處理結(jié)果最后被實(shí)時(shí)顯示并存儲(chǔ)。一旦上述的檢測儀器搭建好,若非改變其中特定的硬件設(shè)備,X射線圖像的質(zhì)量不會(huì)改變,因此需要可靠的圖像處理算法才能計(jì)算出可靠的缺陷結(jié)果。
若在焊縫區(qū)域存在氣孔或者未焊透等情況,該區(qū)域的X射線圖中將會(huì)出現(xiàn)亮點(diǎn)或者亮線,根據(jù)這個(gè)特征,在圖形處理時(shí)就可通過分析區(qū)域中灰度值的大小來檢測氣孔是否存在。
每一幅X射線圖中,焊接缺陷所在的區(qū)域只占整幅圖像很小的一部分,如圖2所示,焊點(diǎn)的釬料對X射線的吸收與PCB基板材料顏色有顯著的差異,X射線投射到鉛錫焊料時(shí)大部分被吸收,對應(yīng)的圖像中就是一個(gè)陰影,且與芯片和基板相比顏色較深,其中陰影區(qū)域中的白色亮點(diǎn)就是焊點(diǎn)中的氣孔。若對圖像進(jìn)行全局處理分析,與氣孔灰度相似的背景也會(huì)被誤判為焊接缺陷,并且焊接區(qū)域有兩個(gè)明亮部分,這也對氣孔的提取造成困擾,所以從運(yùn)算的時(shí)間與效率來看,全局分析并不合理。
因此本文利用區(qū)域標(biāo)記將焊接區(qū)域進(jìn)行提取,再進(jìn)行局部圖像處理,得到氣孔的定位。整個(gè)測試流程如圖3所示。
圖2 焊接缺陷實(shí)例圖Fig.2 The welding defects
圖3 X射線圖圖像處理系統(tǒng)Fig.3 X-ray image processing system
由于光照不均勻以及圖像捕捉設(shè)備強(qiáng)度范圍有限等原因,在圖像獲取和傳輸過程中不可避免地要產(chǎn)生噪聲信息,這些噪聲信息將嚴(yán)重影響到后續(xù)的圖像處理效果,因此需要對圖像進(jìn)行預(yù)處理操作,使圖像降噪以及增強(qiáng)對比度。中值濾波器的基本思想是用像素點(diǎn)領(lǐng)域灰度值的中間值來代替該像素點(diǎn)的灰度值,該方法能夠很好地去除脈沖噪聲、椒鹽噪聲還能保留圖像的邊緣細(xì)節(jié)[8],因此選擇3×3的二維窗口中值濾波器進(jìn)行降噪。為了能夠調(diào)整圖像灰度差別,使得焊點(diǎn)區(qū)域更加清晰,還需進(jìn)行圖像增強(qiáng)步驟,提升目標(biāo)與背景的對比度。
一般情況下,可以直接用閾值分割法對預(yù)處理后的X射線圖進(jìn)行二值化處理,從而獲取焊點(diǎn)區(qū)域的位置。但由于焊點(diǎn)中某些氣孔的灰度值與PCB基板以及銅線的相似,圖像分割時(shí),部分氣孔會(huì)被誤判為背景,使得分割出的圖像含有零散的白點(diǎn)。如圖4所示,利用Otsu閾值分割后,焊接點(diǎn)區(qū)域中含有大量氣孔,而且很多邊緣區(qū)域被忽略掉,這使得后續(xù)的氣孔提取中,位于邊緣區(qū)域的缺陷無法被識別出,影響評判結(jié)果。所以在圖像分割前需對陰影區(qū)域內(nèi)的亮點(diǎn)進(jìn)行閉運(yùn)算,去除氣孔,同時(shí)使用形態(tài)學(xué)濾波器進(jìn)行邊緣膨脹。如圖5所示,二值圖像中已經(jīng)沒有白色氣孔,而且焊點(diǎn)整體形狀趨近于焊盤原來的形狀,主體區(qū)域信息都得到了保留。
圖4 二值圖像Fig.4 Binary image
圖5 分割效果圖Fig.5 Segmentation image
在圖像分割完之后,需要解釋圖中對象的個(gè)數(shù)與類型。如果孤立地考慮每個(gè)像素,將不能確定二值圖像中一共有幾個(gè)對象、它們的位置以及各個(gè)像素屬于的對象。因此對圖像進(jìn)行遍歷,依次標(biāo)記所遇到的區(qū)域。
2.3.1初標(biāo)記
在區(qū)域標(biāo)記的第一階段,圖像由左上到右下進(jìn)行遍歷并順序?yàn)樗星熬跋袼貥?biāo)記為1,背景為0。使用8鄰域關(guān)系來檢查每個(gè)像素與鄰近像素的關(guān)系。其中X表示待檢查像素(u,v)的位置。當(dāng)使用8領(lǐng)域N8時(shí),N1=(u-1,v)、N2=(u-1,v-1)、N3=(u,v-1)以及N4=(u+1,v-1)都需要檢查,領(lǐng)域的表達(dá)式為
(1)
對于邊界上的像素點(diǎn),其鄰接像素可能在圖像外,這些點(diǎn)可以作為背景部分來考慮。對鄰域從左上角開始,首先沿水平方向掃描,然后按垂直方向掃描。如果當(dāng)前的像素是一個(gè)前景像素,則會(huì)被賦予新的區(qū)域標(biāo)號,或者如果該鄰域中的鄰近節(jié)點(diǎn)是之前檢查過的前景像素,則該像素的標(biāo)號與其鄰近節(jié)點(diǎn)的標(biāo)號一致(見圖6(a)、(b)、(c)、(d)與(e))。
如果兩個(gè)或者兩個(gè)以上的鄰近節(jié)點(diǎn)屬于不同區(qū)域,這就意味著標(biāo)號沖突,即一個(gè)簡單的鏈接區(qū)域中的像素包含不同標(biāo)號(如圖6(f))。此時(shí)前景像素用鄰域中較小的像素替代(如圖6(g)),因?yàn)猷徲蛑袃蓚€(gè)標(biāo)記相互沖突時(shí),事實(shí)上是屬于同一個(gè)區(qū)域,這些沖突先會(huì)被記錄下來待后續(xù)處理。
2.3.2處理沖突
第二步的任務(wù)是處理上一步中出現(xiàn)的標(biāo)記沖突,使得本屬于同一區(qū)域的各個(gè)部分相合并。一旦所有屬于同一區(qū)域的標(biāo)記沖突被標(biāo)記下來,該區(qū)域中所有的像素標(biāo)記將被更新為最小值(如圖6(i))。
通過順序區(qū)域標(biāo)記法,可對分割圖像進(jìn)行標(biāo)記,對應(yīng)的區(qū)域統(tǒng)計(jì)信息如表1所示。在進(jìn)行測試前,首先會(huì)使用Image J的矩形選擇工具Rectangular selections對其中一個(gè)焊盤區(qū)域進(jìn)行選定,并將該區(qū)域面積作為初始值。由表中數(shù)據(jù)可以看出,在19個(gè)標(biāo)簽中只有12個(gè)區(qū)域面積趨近于5 000像素,而其他的區(qū)域面積都遠(yuǎn)小于初始值,因此這12個(gè)區(qū)域?qū)⒆鳛楦信d趣區(qū)域(ROI)進(jìn)行重新標(biāo)記,并進(jìn)行后續(xù)的局部分析,即氣孔提取,如圖7所示。
圖6 順序區(qū)域標(biāo)記Fig.6 Sequential region labeling
標(biāo)簽12345678910區(qū)域面積/像素5 3715 2075 1335 2995 7155 157141148023標(biāo)簽111213141516171819區(qū)域面積/像素474 9905 2305 3185 5115 0545 83511254
圖7 區(qū)域標(biāo)記Fig.7 Region labeling
為了能夠去除盤中的白色氣孔亮點(diǎn),使得焊盤內(nèi)沒有明顯的灰度差,需要對源圖像進(jìn)行閉運(yùn)算。將預(yù)處理后圖像圖8(a)與只有12個(gè)焊盤的ROI圖像進(jìn)行相加得出只含有焊盤區(qū)域的前景圖,同時(shí)填充ROI外的背景,得到的背景圖像如圖8(b)所示。通過將圖8(a)與(b)兩圖像相減可得到粗略的差分圖像,為了有更好的圖像分割效果,將差分ROI外填充為黑色,這樣氣孔圖像與非氣孔圖像的灰度差值會(huì)最大化,分割效果也會(huì)越好,如圖8(c)所示。最后將差分圖像用Otsu閾值分割法得到氣孔的分布圖,如圖8(d)所示。
在提取出氣孔的全局分布圖之后,繼續(xù)利用區(qū)域標(biāo)記法,標(biāo)記所有氣孔并得出每個(gè)氣孔的特征,圖9對應(yīng)的是圖7(b)15號區(qū)域的氣孔分布,表2是對該區(qū)域部分氣孔提取的參數(shù)。
圖8 缺陷提取Fig.8 Defects extraction
圖9 氣孔標(biāo)記Fig.9 Void labeling
標(biāo)簽面積/像素周長/像素長軸/像素短軸/像素偏轉(zhuǎn)角/(°)圓度124657.11319.27816.247169.8470.948212243.11313.95211.133117.1400.82539836.04212.26910.17023.2550.94848542.87014.6737.376173.7690.58151115.8995.8602.390130.6980.547624.8282.2571.12890.0001.000
對于焊點(diǎn)檢測的評估者,利用焊接缺陷檢測系統(tǒng)所得出的氣孔參數(shù),并根據(jù)氣孔面積占焊接盤的比例以及不同氣孔的面積與數(shù)量比來判斷元件焊接是否符合要求。表3與表4分別是根據(jù)圖7(b)標(biāo)記后的二值圖與圖8(d)氣孔分布圖得出的氣孔分析結(jié)果,不同質(zhì)檢部門可以根據(jù)氣孔分析結(jié)果以及產(chǎn)品質(zhì)量要求來評判產(chǎn)品是否符合本部門要求。
表3 氣孔占焊點(diǎn)的面積比例Tab.3 Void area ratio
表4 氣孔面積分布Tab.4 Void area distribution
基于Image J圖像處理軟件建立焊接缺陷提取插件,通過區(qū)域標(biāo)記法篩選出ROI,相比于全局處理,可以有效地降低誤檢與漏檢。在圖像分割步驟中,焊盤區(qū)域的氣孔可以通過形態(tài)學(xué)去除;通過ROI圖與降噪圖像之間的數(shù)學(xué)操作計(jì)算出差分圖,并利用Otsu閾值分割得到焊接點(diǎn)氣孔的精確分布;最后通過區(qū)域標(biāo)記法統(tǒng)計(jì)出氣孔的面積參數(shù)以及所占焊接區(qū)域比例,從而判斷元件的焊接是否滿足需求。該插件在檢測焊接點(diǎn)氣孔時(shí)具有較高的精確度,可以廣泛應(yīng)用于汽車電子等行業(yè)。但是,由于提取出的焊盤區(qū)域是橢圓,與真實(shí)的矩形焊盤略有差別,在邊緣部分依然會(huì)有較小的氣孔被忽略,故仍然需要改進(jìn)算法,以提升精確度。