馬立勇,袁統帥
哈爾濱工業大學(威海)信息與電氣工程學院,山東 威海 264200
電子產品的焊點質量直接影響產品的可靠性,因此,對電子產品焊點質量進行檢測,是保證電子產品質量的重要工作。自動化和計算機技術的發展促進了機器視覺代替人工進入工業生產檢測環節,從而有效地解決在高速、高精、微距、超視等情況下人類的視覺容易出現疲勞、受環境和主觀因素影響大等問題。
由于實際生產工藝的不成熟,受溫度、焊錫量及元件貼裝位置等因素影響,各焊點的形狀與表面千差萬別,往往會產生缺陷,比如焊料過少導致的虛焊等,這就給焊點的圖像檢測帶來了諸多的困難。雖然焊點檢測技術得到了快速發展,但是在工業生產當中還是以抽樣破壞檢測的方法進行焊點檢測,這種方法不能滿足生產中高效率、高檢測率的要求。因此,對焊點缺陷進行快速的無損檢測具有重要意義。為了解決該問題,出現了基于神經網絡的檢測方法[1-3],但是這類方法由于特征提取不明顯,分類方法粗淺,容易出現誤檢或者漏檢。為了能夠更有效地檢測焊點質量,將極限學習機(Extreme Learning Machine,ELM)算法應用到分類檢測中去,從而準確檢測焊點質量。雖然神經網絡系統辨識經過了50多年的發展,取得了很多顯著的理論成果,但是大規模系統中的大數據量、高維度以及數據的高不確定性,使神經網絡的辨識速度很難滿足實際的要求。此外,像核算法、人工神經網絡、深度學習等方法不僅需要大量的訓練時間,并且會出現“過飽和”、“假飽和”等各種問題[4-6]。而通過主成分分析(Principal Component Analysis,PCA)將高維度數據可視化,簡化數據以便學習,再利用極限學習機算法訓練速度快,泛化能力好的特性,使得極限學習機在焊點檢測分類中具有很大的優勢。本文對焊點圖像進行預處理后,采用極限學習機算法對焊點的特征圖像進項檢測分類,有更高的檢測準確率。
本文使用的方法主要包括兩部分:主成分分析和極限學習機。圖像分類時,原始數據往往是高維度的,不利于學習,因此通過主成分分析將用于學習的數據先進行降維處理,更便于后續利用極限學習機進行數據分類。
主成分分析可以和機器學習相結合進行分類。主成分分析利用降維的思想將高維度數據映射到低維度空間,并期望所投影的維度上方差最大。對于d維度空間的n個樣本 z1,z2,…,zn,其矩陣形式為 Zd×n=[z1,z2,…,zn],對所有列取平均,可得:

這里n為樣本總數,m為樣本均值。令Zˉ=[m,m,…,m],則定義樣本集X的協方差矩陣:

設 St的秩為 k,則 λ1≥λ2≥…≥λk;wi,i=1,2,…,k為對應的特征向量。累計貢獻率為:

當ηm大于某個閾值(通常要達到70%~80%)時,可認為主成分數目為m。wi,i=1,2,…,m稱為樣本主成分,W=[w1,w2,…,wm]為主成分矩陣。
使用主成分分析得到的新變量為:

由此可見,通過主成分分析可以將樣本降維,樣本從n×d維降低至n×m維,這樣就只保留了貢獻率較高的部分[7]。
極限學習機是一種快速訓練的單隱層前饋神經網絡的學習算法。極限學習機相比于傳統的方法,其網絡訓練速度提高了數千倍,并且不影響網絡的收斂能力。
對于N個任意不同的樣本(xi,ti),其中 xi=[xi1,xi2,…,xin]T∈Rn,ti∈R ,i∈1, N 。對于具有L個隱層神經元的單隱層前饋神經網絡,可記為:

xi=[xi1,xi2,…,xin]T∈Rn表示輸入層與隱層第i神經元之間的輸入權值,βi表示隱層第i個神經元與輸出層神經元之間的輸出權值,bi表示隱層第i個神經元的閾值,wi?xj表示 wi與 xj的內積。
具有L個隱層神經元的單隱層前饋神經網絡采用激勵函數g(x),可以逼近來自同一連續系統的N個輸入樣本,預計輸出yi為:

這里ε是噪聲,其模型如圖1所示。

圖1 ELM模型
隱層神經元將輸入數據轉換成不同的表示。轉換分為兩個步驟進行,首先通過輸入層權重和閾值將數據映射到隱層,其次轉換映射數據。極限學習機中的非線性轉換函數可以很好地提高其學習能力。隱含層數據表達h可以用于查找輸出權重。
神經網絡中的隱層不局限于一種轉換函數,不同的功能可以使用不同的函數(sigmoid、hyperbolic tangent、threshold等)[8-9]。通常情況下,線性網絡節點數等于數據特征數。
實際中,極限學習機通過矩陣形式求解,使用矩陣易于編寫,并且在計算機上運行速度快,其矩陣形式可以表示為:

雖然極限學習機包括訓練方面,但是和其他神經網絡一樣,網絡本身是不可見的,數學上,只有一個矩陣描述兩個線性空間的映射關系。因此極限學習機可以視為兩個映射:輸入XW和輸出Hβ,它們之間是一個非線性轉換H=g(XW+b),隱含層節點數目決定了W、H和β的大小[10-11]。
擁有不同的隱含層類型則對于每一種類型都是獨立的,兩種隱含層類型:

線性隱含層可以加入到極限學習機中:

由上述介紹可知:

訓練這個網絡等同于求解方程(7)的最小二乘解。認為H的秩等于N,在這一假設下,可計算左偽逆為:

則有:

采用極限學習機算法進行焊點檢測可以直接應用于實際生產當中,根據實際生產需要,要求焊點檢測準確率在95%以上,實現器件的實時檢測。
本文采用極限學習機算法,對所采取到的圖像進行處理時,重點包括兩方面的工作,一方面是圖像預處理提取特征,另一方面是對特征圖像檢測分類。
如圖2所示,視覺檢測系統包括條形光源、PC機和相機。相機采用Basler acA 2500-14gm GigE相機配有Aptina MT9P031 CMOS芯片,每秒14幀圖像,500萬像素分辨率。該相機外觀輕巧,適合安裝在狹小空間。利用圖2所示系統采集焊點圖像。

圖2 實驗系統圖
在所有的待檢測焊點圖像庫中隨機獲取部分圖像,對所獲得的全部圖像進行預處理。用中值濾波去對全部圖像進行濾波,可以消除噪聲,避免干擾;由于標準焊點是表面光滑的半橢球體,缺陷焊點則是表面不規則形狀,采用分水嶺算法對圖像進行分割,可獲得焊點輪廓和分割區域輪廓;最后將獲得的分割輪廓圖像統一轉化成50×50大小的圖像作為提取的特征圖像。
本文采用的基于極限學習機的焊點檢測方法基本步驟如下:
步驟1對測試件進行圖像采集,獲取焊點圖像。
步驟2對焊點圖像進行預處理,首先截取焊點所在區域,再進行中值濾波,最后將濾波結果進行分水嶺分割,從而獲得特征圖像。預處理結果均為50×50的圖像,將其轉換成1×2 500的行向量,通過主成分分析對此行向量進行降維,降低維度至1×87的行向量,作為極限學習機的輸入xi。
步驟3確定極限學習機的隱含層節點數目N,確定輸入層的輸入權值wi和bi,i=1,2,…,N。激勵函數為sigmoid,隱含層節點數目為200。
步驟4計算隱含層輸出矩陣H和輸出權值β:β=H-1T。
步驟5輸入測試集,獲取測試結果并分析。
隨機采集合格焊點150張圖像和缺陷焊點100張圖像,共計250張圖像進行圖像預處理,隨機選取其中的50個合格焊點和50個缺陷焊點預處理結果作為訓練樣本,剩余的圖像預處理結果作為測試樣本。圖3是合格焊點和缺陷焊點的樣本圖以及預處理后的結果。

圖3 樣本圖像
對100個合格焊點和50個缺陷焊點進行分類檢測,PCA+ELM的計算結果ti(i=1,2,…,150),如圖4所示,分類結果如表1。對于缺陷類焊點達到100%的準確檢測,避免錯誤出廠,在合格焊點的檢測準確率也達到99%,可以滿足檢測要求。
4.1.1 準確率對比

圖4PCA+ELM計算結果T

表1PCA+ELM檢測結果
傳統分類方法有基于核和基于實例算法等。基于核的算法把輸入數據映射到一個高階的向量空間,在這些高階向量空間里,有些分類或者回歸問題能夠更容易解決;基于實例的算法常常用來對決策問題建立模型,這樣的模型常常先選取一批樣本數據,然后根據某些近似性,把新數據與樣本數據進行比較。其中比較著名的算法有支持向量機(Support Vector Machine,SVM)和鄰近算法(K-Nearest Neighbor,KNN)。最近10年來,深度學習得到了迅速發展,研究工作不斷深入,在模式識別和預測估計等領域取得了很大的成功。卷積神經網絡(Convolutional Neural Networks,CNNs)是深度學習的一種,已成為圖像識別領域的研究熱點[12-13]。但是在實現相同成功率的情況下,深度學習算法所需要的樣本比極限學習機多很多。
在MATLAB 2015b下,對所提到的各種算法進行測試并比較。僅用ELM進行測試,其準確率沒有優勢,而PCA+ELM相對于SVM、KNN、CNNs,在擁有相對較高的檢測準確率的同時,也具有很大的時間優勢,其檢測準確率如圖5。

圖5 檢測準確率對比
為了避免不合格產品的錯誤出廠,僅靠檢測準確率不足以滿足性能影響,因此需要新的指標。ROC曲線是描述檢測概率和虛警概率的制約關系,用于目標識別算法的評估。通過計算ROC曲線下的面積(Area Under an ROC Curve,AUC)作為判斷模型優劣的指標。AUC的取值范圍是[0,1],AUC的值越大,說明算法分類性能越好。若AUC為1,表示分類完全正確[14-15]。表2是PCA+ELM和SVM、KNN、CNNs幾種算法在不同樣本下AUC的值,可以看出,PCA+ELM的分類性能要優于SVM、KNN、CNNs。

表2AUC比較
從表2數據可以看出,PCA+ELM相對傳統分類方法分類性能更好。
4.1.2 時間對比
焊點檢測過程中,訓練及測試時間是判斷算法好壞的一個重要指標,表3是對PCA+ELM、ELM、SVM、KNN和CNNs幾種方法的時間統計;圖像采集時間和預處理時間相同,分別為2.4 ms和11.0 ms。由表中信息可以看出PCA+ELM明顯優于另外4種。

表3 檢測時間 ms
CNNs對圖像進行訓練時,準確率達到98%以上,訓練樣本迭代次數至少300次,訓練時間很長。由表3可見,極限學習機的訓練時間遠遠短于支持向量機、鄰近算法和卷積神經網絡,在測試時間上也比它們要快。卷積神經網絡等算法的檢測時間的局限,使其不能實現在線實時焊點檢測。
在圖像預處理過程中,使用中值濾波進行濾波,可以去除噪聲,減少干擾,濾波窗口大小選取影響到檢測準確率,因此依次對窗口大小為9×9到41×41的中值濾波進行測試,檢測結果如圖6。因此在后續檢測中,為了使得檢測準確率更高,檢測結果更穩定,選取窗口大小為31×31的中值濾波。

圖6 中值濾波窗口大小測試圖
不同情形下可采用不同的隱含層函數,主要的隱含層函數有sigmoid函數、RBF函數和hardlim函數等形式。在實際實驗中,隱含層神經元節點數目的選取很大程度決定了整個神經網絡的識別精度,也關系到系統的泛化性能。因此對極限學習機的隱含層激勵函數和節點數目進行測試,測試結果如圖7所示。圖中顯示sigmoid激勵函數測試準確率最高,并在200個神經元之后其檢測準確率不再上升,因此在實際檢測中選取sigmoid函數,神經元數目選擇200個。

圖7 隱層參數測試
ELM以其快速的學習能力、良好的泛化性、簡單的參數設置等優點,廣泛應用于各個領域之中。由上述可得,最終選取大小為31×31的中值濾波窗口濾波后,進行分水嶺分割,將處理結果作為訓練測試樣本,使用極限學習機進行分類,隱含層激勵函數為sigmoid,節點數目為200。經過100次測試,得到測試標準差如圖8所示,由此可見該算法應用穩定。
使用PCA降維后再用ELM進行焊點分類,大大降低了識別時間,在64位Windows系統下,CPU為i5-4590,MATLAB 2015b中運行,本文算法相對支持向量機、鄰近算法、卷積神經網絡,檢測準確率更高,檢測時間縮短,檢測性能更好可以實現焊點的實時分類。
綜上所述,可見總體指標均達到生產要求。

圖8 檢測標準差
電子產品的焊點質量會影響產品的可靠性,焊點質量檢測是保證電子產品質量的重要工作。傳統算法檢測精度低、耗時長。本文將焊點圖像預處理后,采用PCA+ELM對焊點進行分類。基于極限學習機的焊點檢測分類是一種適合高速精確測量的檢測方法,該方法的整體系統構建簡單,占用空間小、精度高。本文方法分類精度高、耗時少,檢測準確率和檢測時間均達到生產要求,可應用到實際生產中。
[1]Jagannathan S.Automatic inspection of wave soldered joint using neural networks[J].Journal of Manufacturing Systems,1997,16(6):389-398.
[2]Acciani G,Brunetti G,Fornarelli G.Application of neural networks in optical inspection and classification of solder joints in surface mount technology[J].IEEE Transactions on Industrial Informatics,2006,2(3):200-209.
[3]Akusok A,Bjork K M,Miche Y,et al.High-performance extreme learning machines:A complete toolbox for big data applications[J].Access IEEE,2015,3:1011-1025.
[4]Huang Z,Yu Y,Gu J,et al.An efficient method for traffic sign recognition based on extreme learning machine[J].IEEE Transactions on Cybernetics,2016.
[5]Yadav B,Ch S,Mathur S.Discharge forecasting using an Online Sequential Extreme Learning Machine(OS-ELM)model:A case study in Neckar River,Germany[J].Measurement,2016,92:433-445.
[6]Al-Yaseen W L,Othman Z A,Nazri M Z A.Multi-level hybrid support vector machine and extreme learning machine based on modified K-means for intrusion detection system[J].Expert Systems with Applications,2017,67:296-303.
[7]Abdi H,Williams L J.Principal component analysis[J].Wiley Interdisciplinary Reviews Computational Statistics,2010,2(4):433-459.
[8]Huang G B.What are extreme learning machines?Filling the gap between frank Rosenblatt’s dream and John von Neumann’s puzzle[J].Cognitive Computation,2015,7(3):263-278.
[9]Huang G B.An insight into extreme learning machines:Random neurons,random features and kernels[J].Cognitive Computation,2014,6(3):376-390.
[10]Huang G B.Learning capability and storage capacity of two-hidden-layer feedforward networks[J].IEEE Transactions on Neural Networks,2003,14(2):274-281.
[11]Wang Y,Cao F,Yuan Y.A study on effectiveness of extreme learning machine[J].Neurocomputing,2011,74(16):2483-2490.
[12]Hinton G E,Salakhutdinov R R.Reducing the dimensionality of data with neural networks[J].Science,2006,313(5786):504.
[13]Makantasis K.Deep supervised learning for hyperspectral data classification through convolutional neural networks[C]//International Geoscience and Remote Sensing Symposium,2015:4959-4962.
[14]董元方,李雄飛,李軍,等.基于分辨粒度的gROC曲線分析方法[J].軟件學報,2013,24(1):109-120.
[15]楊一,張淑娟,何勇.基于ELM和可見/近紅外光譜的鮮棗動態分類檢測[J].光譜學與光譜分析,2015(7):1870-1874.