??? 摘? 要: 提出了一種將支持向量機(SVM)用于機械零件識別的方法。實驗采用了97張零件圖片,9類零件其中一部分作為訓練樣本,另一部分作為測試樣本。提取零件的Hu矩作為特征向量,并將BP神經網絡與SVM進行了比較。實驗結果表明,以多項式為核函數的SVM有較高的識別率。?
??? 關鍵詞:支持向量機; 零件識別; Hu矩; BP神經網絡
?
??? 零件識別是計算機視覺與模式識別在機械工業領域中的重要應用之一。它作為機械加工自動化的基礎,將人從繁重的勞動中解放出來,提高了生產率,也降低了成本。機械零件識別已經在國內引起了廣泛關注,現有的方法主要集中在模板匹配和神經網絡方面[1-3]。?
??? 支持向量機SVM(Support Vector Machine)是Vapnik等人根據統計學習理論(SLT)提出的一種新的機器學習方法。SVM建立在SLT的VC維理論和結構風險最小化原理的基礎上,根據有限樣本信息在模型復雜性與學習能力之間尋找最佳折衷,以期獲得最好的推廣能力。SVM有效地克服了神經網絡分類中出現的過學習、欠學習以及陷入局部極小值等諸多問題。在解決小樣本、非線性及高維數等模式識別與回歸分析問題中,表現出獨特的優勢和良好的應用前景。近年來,SVM在手寫體識別、人臉識別、文本分類等領域都取得了很大的成功[4-6]。?
??? 本文將SVM應用在零件識別上,通過實驗,取得了比較滿意的結果。?
1 支持向量機?
1.1 VC維和SRM?
??? 支持向量機最初是建立在VC維和結構風險最小化原理基礎上的。在模式識別方法中VC維被直觀地定義為:對一個指示函數集,如果存在h個樣本能夠被函數集中的函數按所有可能的各種形式分開,則稱函數集能夠把h個樣本打散。能打散的最大樣本數目就是它的VC維,它反映的是函數集的學習能力。VC維越大則學習機器越復雜。結構風險最小原則(SRM)是統計學理論中提出的一種新策略,即把函數集構造為一個函數子集序列,并使子集按VC維的大小排列;在每個子集中尋找最小經驗風險,在子集間折中考慮經驗風險和置信范圍使實際風險最小[7]。?
1.2 最優分類面?
??? 如圖1所示,實心圓和空心圓分別代表兩個不同的類,H為超平面,H1和H2分別為各類中離分類超平面最近的樣本,且平行于分類超平面的平面。H1、H2上的樣本點就是支持向量,margin為它們之間的距離,稱為分類間隔。所謂最優分類面就是能使兩類正確分開,而且使分類間隔最大。前者保證經驗風險最小,后者保證置信范圍最小,從而使實際風險最小[7]。?
?
?
??? 設有N個訓練樣本,(x1,y1),…,(xl,yl)·xi∈Rn,yi∈{+1,-1},若線性可分,則存在決策函數:?
?????
??? SVM的目的就是要找出一個最優超平面,使得margin=?
??? 從而原始最優問題轉換為求:?
??? ?
??? 問題已轉換成求解(4)式的最小值。通過這種轉換,將問題轉換成一個不等式在條件約束下的二次尋優問題,存在唯一解α*,再轉換成對偶問題后,即可求得最優超平面的參數,w*、b*:?
?
??? 對于非線性問題,SVM的核心思想是利用非線性映射Ф,將輸入向量映射到一個高維空間,然后在這個高維空間中構造最優分類面。Rn上的樣本集{xi,yi}映射到高維空間得新樣本集{φi(xi),yi},然后根據新樣本集構建最優分類面,所得判決函數: ?
?
式中,K為核函數,不同的核函數產生不同的支持向量機算法。核函數的選擇在支持向量機算法中是一個難點[8]。常見的核函數有:?
??? (1)多項式核函數:K(x,xi)=[(x,xi)+1]d,d為多項式階數。?
??? (2)徑向基形式核函數RBF:?
??? (3)Sigmoid核函數:K(x,xi)=tanh(v(x,xi)+c)。?
1.3 SVM多類分類方法?
??? 基本的支持向量機方法僅能解決二分問題,要實現多分問題,需要在二分的基礎上構造出多類分類器[9-11]。SVM的多類分類方法目前主要有以下三種:?
??? (1) 一對多分類器?
??? 對N類分類樣本,構造N個兩類分類器,其中第i個分類器用第i類的樣本作為正樣本,其余樣本作為負樣本。判別方式是:對某個輸入待測樣本,其分類結果為分類器輸出值最大的那個分類器類別。?
??? (2) 一對一分類器?
??? 對N類中的每兩類構造一個子分類器,需要構造N(N-1)/2個分類器,然后采用投票法確定分類結果。?
??? (3) 決策樹分類器?
??? 將多類分類問題分解為多級兩類分類問題,如圖2所示。?
?
?
??? 以上三種就是目前流行的SVM的多類分類器構造法。第一種方法的優點是構造的分類器少,缺點是容易產生多個相同輸出值,降低了識別率;第二種方法的缺點是類別多了以后,構造的分類器較多,優點是采用投票法,識別結果更好;第三種方法介于前兩種方法之間,缺點是如果某個結點發生誤判,就會導致下面輸出都是錯的。本文選用第二種方法來構造多類分類器。?
2 特征提取?
??? 零件識別,主要基于零件的形狀,而矩特征能夠充分反映物體的形狀信息。Hu提出的7個不變矩,對于目標的平移、旋轉、縮放都不敏感。本文提取零件的Hu矩作為SVM的訓練樣本特征空間。Hu矩的y計算如下:?
??? 設f(x,y)為一幅二維數字圖像,為圖像質心位置,則0~3階中心矩定義如下:?
?
3 實驗結果與分析?
??? 實驗采用了97張零件圖像,每張為1 024×1 280,總共9類零件,樣本集42張,被測集55張,如圖3所示。?
?
?
??? 基于SVM和神經網絡的零件識別流程圖分別如圖4、圖5所示。?
?
?
?
??? 實驗1:分別對不同核函數情況下SVM識別情況進行了比較,發現以多項式為核函數的支持向量機分類器有較好的識別效果,如表1所示。?
?
?
??? 實驗2:將SVM與神經網絡的識別率進行比較。發現SVM的正確率比較高,如表2所示。?
?
?
??? 零件誤識別的主要原因是零件二值化時,分割效果不好,造成特征提取有一定的誤差。然而,SVM卻能很好地識別,這進一步證實了SVM比神經網絡有更好的泛化性。?
??? 以統計學習理論為基礎的SVM,不僅克服了神經網絡過學習和陷入局部極小的問題,而且具有很強的泛化能力。經過實驗驗證,將SVM用于機械零件識別的方法行之有效,識別率高于神經網絡。?
參考文獻?
[1] 歐彥江.基于神經網絡的機械零件識別研究,四川大學碩士論文,2006.?
[2] 吳文榮.基于機器視覺的柔性制造島在線零件識別系統研究,電子科技大學碩士論文,2004.?
[3] 安新,李麗宏,安慶賓,等,機械零件識別系統的研究.微計算機信息,2006,22(7):236-238.?
[4] 朱家元,楊云,張恒喜,等.基于優化最小二乘支持向量機的小樣本預測研究.航空學報,2004(6):29-32.?
[5] 尚磊,劉風進.基于支持向量機的手寫體數字識別.兵工自動化,2007,26(3):39-41.?
[6] 陳鵬.智能交通中汽車牌照自動識別系統的研究. 中國海洋大學碩士論文,2005.?
[7] VAPNIK V N.統計學習理論的本質[M].張學工譯.北京:清華大學出版社,2000.?
[8] 郭麗娟,孫世宇,段修生.支持向量機及核函數研究. 科學技術與工程,2008(2):487-490.?
[9] PLATT J, CRISTIANINI N, TAYLOR J S. Large margin?DAGS for multi-class classification. Asvances in Neural?Information Processing Systems, 12 ed. S.A. Solla, T. K.Leen and K.-R. Muller, MIT Press, 2000.?
[10] MAYLRAZ E, ALPAYDIN E. Support vector machines for ??? multi-class classification. Proceedings of the International?Workshop on Artificial Neural Networks (IWANN99),IDIAP Technical Report 98-06,1999.?
[11] WESTON J, WATKINS C. Watkins. Multi-class support?vector machines. In Proceeding of ESANN99,ed.M.Verleysen,D.Facto Press, Brussels, 1999: 219-224.?