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