賀海浪,龍緒明,劉明曉,羅愛玲
(西南交通大學 電氣工程學院,四川 成都 610031)
隨著微電子技術不斷發(fā)展,電子元器件的引腳不斷向著高密度,小型化方向發(fā)展,這使得人們對印刷電路板(Printed Circuit Board,PCB)的焊接技術提出更高的要求。傳統(tǒng)的基于肉眼的人工檢測方法不管在速度上,還是在準確性上,都越來越不能滿足實際生產(chǎn)的需求[1]。與此相比,基于圖像處理與人工智能的自動光學檢測(Automatic Optic Inspection,AOI)技術卻能夠很好的應對這種趨勢,并且檢測速度快,不受外界干擾,穩(wěn)定性強。隨著圖像處理技術,模式識別技術和計算機技術的不斷發(fā)展,AOI檢測技術也在不斷的推陳出新,逐漸向著高準確性,高智能化方向發(fā)展[2]。
目前,AOI系統(tǒng)常用Partical分析方法[3],其需要對圖像的分割閥值和Partical的參數(shù)范圍進行確定。這對于用戶的使用來說,顯得過于復雜[4]。鑒于Partical分析方法的不足,有很多學者提出采用神經(jīng)網(wǎng)絡(Artificial Neural Network,ANN)的模式識別方法來檢測焊點的缺陷[5],取得了很好的效果。但是神經(jīng)網(wǎng)絡本身存在著局部最優(yōu)解,過度擬合等問題,這些都使其應用受到了一定的限制。
為了克服這些問題,本文提出一種將雙方向二維線性判別分析(Two Directional Two?dimension Linear Dis?criminant Analysis,(2D)2LDA)特征提取方法和支持向量機(Support Vector Machines,SVM)相結合的焊點檢測方法。在獲得焊點圖像后,若直接將圖像全部像素點作為特征向量輸入支持向量機,則會因特征向量的維數(shù)過高而增加計算的復雜度,而且過高的特征向量維數(shù)會導致分類性能的退化,即發(fā)生“維數(shù)災難”[6]。(2D)2LDA方法是對二維線性判別分析(Two?dimension Linear Dis?criminant Analysis,2DLDA)的發(fā)展,相比于2DLDA的僅在列方向進行投影,(2D)2LDA實現(xiàn)在行和列兩個方向對圖像的投影,使獲得的圖像特征更少,更有利于支持向量機的分類。SVM是一種在統(tǒng)計學習理論的基礎上發(fā)展起來的新一代學習算法[7],相比于人工神經(jīng)網(wǎng)絡,支持向量機對于未見過的測試樣本具有更好的推廣能力。其學習訓練過程是一個二次規(guī)劃(Quadratic Pro?gramming,QP)問題,能夠求得全局最優(yōu)解,避免局部最優(yōu)解,目前已成為機器學習領域的一個研究熱點。
對于一幅大小為m×n的圖像A,2DLDA降維的目的是找到一個 n行 d列的向量矩陣 w=[w1,w2,…,wd],通過公式:
將圖像A降到m×d維大小,在這個新的坐標空間中,同類樣本的類內(nèi)距最小化,不同類別樣本的類間距最大化,即最大化:
式中:tr(x)表示矩陣x的跡,TSb表示在投影空間中樣本的類間散布矩陣;TSw表示在投影空間中樣本的類內(nèi)散布矩陣。
令訓練圖像樣本數(shù)為N,共分成c類,第i(i=1,2,…,c)類訓練樣本 的 樣本數(shù)為 Ni,樣 本的均值,第 i類樣本的均值為 則:
式中:w為歸一化的列向量,根據(jù)Fisher準則,當Sw非奇異時,使J(w)最大的列向量為矩陣S最大d個特征值對應的歸一化特征向量。對于經(jīng)典的線性判別分析(Linear Discriminant Analysis,LDA),必然會有 Sw為奇異矩陣,而2DLDA成功的解決了這一問題[8]。
2DLDA方法降維只是對圖像列向特征的提取,而沒有改變圖像行維數(shù),這樣得到的特征維數(shù)依然過大。以100×100的圖像為例,當d=5時,可將其特征維數(shù)降到100×5,但這樣的特征維數(shù)依然比較大,會導致支持向量機識別時過多的時間消耗。
為解決2DLDA降維后圖片特征向量維數(shù)依然過高的問題。Noushath等人又提出(2D)2LDA方法[9]。注意到,2DLDA方法只是對圖像的列信息進行壓縮,而沒有對行向進行降維。這樣,就可對圖像進行轉置后再次運用2DLDA方法,得到最優(yōu)投影向量p=m×k,其中k為確定的行向降維后的維數(shù),這樣,通過下式:
可將圖像降維到k×n維,完成對圖像行向包含信息的降維。這樣,結合式(1)、式(8),即可得,
于是可從m×n大小的圖像中獲得k×d(k?m,d?n)個特征。
由于焊點圖像是RGB圖像,無法直接利用(2D)2LDA方法對圖像進行降維。如果直接簡單地將其轉換成灰度圖像,又將導致大量有用信息的丟失。面對這一問題,常見的解決方法是先對三種顏色灰度圖分別進行(2D)2LDA降維,然后再將獲得的結果組合起來,獲得大小為k×d×3大小的圖像特征。這種分別進行計算的方法將導致更多的時間開銷,無法滿足AOI設備焊點檢測時的速度要求。
為解決這一問題,本文采用將焊點的三色灰度圖先拼接成一幅灰度圖像,然后運用(2D)2LDA降維,如圖1所示為焊點RGB圖拼接策略。芯片的圖像尺寸為80×100,其中,左面上下兩個80×100分別為紅色和綠色灰度圖,右面上下都為藍色灰度圖,其中上面為藍色灰度圖的左面50列,下半部分為右側50列,這樣,可得到一幅160×150大小包含所有顏色灰度信息的圖像。表1顯示了將RGB灰度圖合并成一幅灰度圖與分別對三幅灰度圖進行降維時所用的時間對比。
圖1 RGB三色灰度圖拼接示意圖
表1 兩種方法所用時間對比
灰度圖像經(jīng)(2D)2LDA降維后,獲得的低維特征轉換成一維的向量x,作為支持向量機的輸入向量。支持向量機能夠實現(xiàn)的是二分類的問題,為了能讓其實現(xiàn)多分類,必須將其與二元分類器相結合,文獻[10]指出,一對一的分類方法更適合實際應用,在此,選擇將一對一的投票策略[6](One Against One With Voting)與支持向量機結合實現(xiàn)多分類。這樣,對每一個二分類,要找到一個分類函數(shù)f,將兩類樣本分割開,即:f:xi→yi其中yi∈{-1,+1},令分割函數(shù)為:
式中:wTx+b=0對應的是分割的最優(yōu)超平面;w向量垂直于最優(yōu)超平面。對于規(guī)范化的超平面(min(|| wTxi+b||)=1),必然滿足約束條件:
距離超平面最近的點到超平面的距離:
因此,兩類的分類間隔為2||w||,最大化分類間隔等價于最小化||w||22,這是一個在公式(11)條件下求||w||22最小值問題,由拉格朗日乘法求解:
通過標準的優(yōu)化技術,可求出最后的最優(yōu)解,用?*,w*,b*表示。在這些解中,只有對應式(11)取等號,即離最優(yōu)超平面最近的樣本點的拉格朗日乘數(shù)?i才不等于零,這些點xi稱為支持向量SV。
上面的分析是對應線性可分的,若樣本是線性不可分的,可放寬約束條件,在式(11)中引入一個松弛變量εi并將目標函數(shù)改寫為2||w||+,其中 c稱為代價系數(shù),并將特征xi通過一個核函數(shù)映射到更高維空間解決,在此選用的核函數(shù)為徑向基核函數(shù):
其中c和γ的值可通過林智仁教授提供的LibSVM工具獲得。這樣,對于一個待分類的樣本x,可通過公式(16)的決策函數(shù)h(x)進行分類。
用一對一的投票策略時,若最后票數(shù)有兩個相等的最大值時,若這兩個最大值中有一個代表的是合格焊點的類,則將該測試焊點判給另一個最大值代表的類,若兩個最大值所屬的類不包含合格焊點類,則將該測試樣本判給前一類。因為在PCB焊點檢測中,將不合格焊點判斷成合格焊點的漏報代價大于將合格焊點判斷成不合格焊點的誤報代價。
實驗樣本選用0805封裝的片式電阻,共被分成訓練集和測試集,其中訓練集和測試集所含各個類型樣本數(shù)量如表2所示。
表2 訓練集與測試集樣本數(shù)
進行(2D)2LDA降維時,設定降維后的行向和列向的特征值相等,表3列出當選用不同特征維數(shù)時的識別正確率,漏報率,識別用時,其中識別時間是指測試樣本平均用時。
表3 主要數(shù)據(jù)與選取特征數(shù)關系
從表3中可看出,隨著特征維數(shù)的增加,漏報率降低,識別的正確率增加,但隨之識別用時也大幅增加,綜合考慮表3中的數(shù)據(jù),決定選擇將圖像的維度降低到9維。最終測試結果如表4所示。
表4 支持向量機檢測結果
表4表明,作為關鍵數(shù)據(jù)的漏報率為0,其他缺陷的識別率不等,但都在95%以上,準確率最高可以達到100%,整體正確率為97.98%,可以得出結論,本文提出的焊點檢測方法是有效的。
提出一個雙方向二維線性判別分析與支持向量機相結合的PCB焊點檢測方法,先利用雙方向二維線性判別分析方法對焊點三色灰度圖的拼圖進行降維,然后將得到的焊點特征送入支持向量機進行分類。
當選取的焊點特征維數(shù)為9個時,焊點的整體分類正確率為97.98%,其中漏報率為0。
[1]吳浩.基于模式識別技術的焊點自動光學檢測算法研究[D].廣州:華南理工大學,2013.
[2]盧盛林,張憲民,鄺泳聰.基于神經(jīng)網(wǎng)絡的PCB焊點檢測方法[J].華南理工大學學報,2008,36(5):136?139.
[3]DAVID A,F(xiàn)ORSYTH J P.Computer version:a modern ap?proach[M].Beijing:Publishing House of Electronics Industry,2004.
[4]盧盛林,張憲民.少缺陷樣本的PCB焊點智能檢測方法[J].焊接學報,2009,30(5):57?60.
[5]MATSUSHIMA M,KAWAI N,F(xiàn)UJIE H,et al.Visual inspec?tion of soldering joints by neural network with multi?angle view and principal component analysis[J].Service Robotics and Me?chatronics,2010,23:329?334.
[6]張錚,王艷平,薛桂香.數(shù)字圖像處理與機器視覺:Visual C++與matlab實現(xiàn)[M].北京:人民郵電出版社,2010.
[7]CORTES C,VAPNIK V.Support vector networks[J].Machine Learning,1995,20:273?297.
[8]俞王新.計算機人臉檢測與識別方法的研究[D].上海:上海交通大學,2009.
[9]NOUSHATH S,KUMAR G H,SHIVAKUMARA P.(2D)2LDA:An efficient approach for face recognition[J].Pattern Rec?ognition,2006,39:1396?1400.
[10]LIN Shih?Chieh,CHOU Chih?Hsien,SU Chia?Hsin.A develop?ment of visual inspection system for surface mounted devices on printed circuit board[C]//2007 The 33rd Annual Conference of the IEEE Industrial Electronics Society(IECON).Taipei,Taiwan,China:IEEE,2007:2440?2445.