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