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