匡遜君,趙文倩,李明富
(湘潭大學 機械工程學院,湘潭 411105)
為了實現機械零件的分類識別,本文采用了不變矩與支持向量機(SVM)相結合的方法。提取了圖像的HU不變矩和仿射不變矩,通過交叉驗證算法進行SVM核參數和懲罰因子的參數尋優,為了提高SVM分類器的分類性能,采用有向無環圖(DAG)方法設計多類分類器,實現了零件的分類。通過實驗驗證了本文提出的算法并對實驗結果進行了分析。
HU不變矩;仿射不變矩;SVM;零件分類;有向無環圖
計算機視覺研究的目標是使計算機具有通過二維圖像認知三維物體及周邊環境信息的能力,包括識別三維物體的幾何形狀、位置、運動、姿態等。機械零件的分類識別是計算機視覺在機械領域一個很重要的應用,它是機械加工制造自動化的基礎,能夠大大提高機械加工生產的效率,將人從繁重的勞動中解救出來,大大降低時間和成本。為了保障圖像分類識別的準確性和可靠性,我們希望其特征具有良好的不變性。因此,圖像不變性特征研究成為了計算機視覺研究的重點之一。Hu[1]提出了圖像的不變矩概念,這些不變矩具有旋轉、平移、比例不變性,在目標分類、圖像識別、形狀分析和圖像匹配等領域得到了廣泛的應用; D.Shen等[2]提出了基于小波變換的特征提取方法—小波矩不變量,Jan Flusser[3]提出了仿射不變量,并將它們應用于圖像和字符的分類識別,得到了很好的效果。本文提取了零件圖像的HU不變矩和仿射不變矩的組合矩,并將它們應用于零件的分類。實際的圖像分類研究應用中,訓練樣本較少而且特征維數很高,導致大部分機器學習分類器不能很好的解決圖像分類問題。以小樣本統計學習理論為基礎的支持向量機SVM擁有很好的泛化能力,對于訓練樣本較少的情況也能夠達到很好的分類效果,因而,SVM很適用于圖像的分類。近年來也被廣泛應用于圖像分類、人臉識別、文本分類、手寫體識別等領域并取得顯著的分類效果。本文的機械零件的分類問題實際上是一個典型的小樣本學習問題,因此本文利用SVM,結合提取的組合不變矩,來實現零件的分類識別。
矩特征表征了圖像區域的幾何特征,又稱為幾何矩,因其具有旋轉、平移、尺度等特性的不變特征,所以又將其稱為不變矩。在圖像處理中,圖像不變矩可作為一個重要特征來描述物體,可以據此特征來對圖像進行分類識別等操作。Hu于1962年首先提出了基于直角坐標系的規則矩概念,提出了連續函數矩的定義同時給出了關于矩的基本性質,證明了有關矩的旋轉、平移以及比例不變性等性質,給出了具有平移、旋轉和比例不變性的七個不變矩表達式:

目標識別最關鍵、最困難的問題之一是如何從任意尺度和視角所獲取的同一場景的圖像中提取不變的特征。在現實場景下,天氣、距離、攝像設備、視覺角度都會影響物體成像。當從不同的角度拍攝是,三維物體會發生變形,也就是仿射變換,這時只用HU不變矩反映目標物體的特征是不夠的。仿射變換被證明是模擬圖像視點變換的最佳方法[4]。Jan Flusser等提取了仿射不變矩作為特征并證明在物體圖像發生平移、比例、旋轉、傾斜變化下仍具有不變性:

支持向量機法(Support Vector Machine,簡稱SVM)是vapnik[5]等人在1995年基于統計學習理論基礎上提出的一種新的機器學習方法。與一般的分類器不同的是,SVM是基于結構風險最小化準則的分類器。通過適當地選擇函數的子集以及該子集中的判別函數,依據有限樣本信息,在模型的復雜性與學習能力之間尋求最佳折中,使實際風險達到最小化以及得到最好的泛化性能力。對于非線性可分的問題,SVM采用非線性映射方法,將特征空間由低維映射到高維,來實現樣本的分類。在分類的過程中,只需使用適當核函數K(xi, x),就可以避免求解非線性映射函數的具體形式,同時在運算中,也巧妙的解決了高維空間計算帶來的“維數災難”問題。因此,選擇滿足Mercer條件下的不同的內積核函數,就可以構成不同的SVM。目前研究最多的核函數有:
多項式函數:K(x, xi)=(v〈x+xi〉+1)q
徑向基RBF函數:K(x, xi)=exp(-g‖ Xi-Xj‖2)
S 形函數:K(x, xi)=tanh(v+〈xi+x〉+c)
在這三種核函數中,徑向基RBF函數對于高維、低維、大樣本、小樣本等情況都適用,并且具有較寬的收斂域,是較理想的分類依據函數[6]。因此本文將選用徑向基RBF函數作為SVM的核函數來進行零件的分類。
SVM最初是針對兩類問題提出的,由于本文要實現多類零件的分類,因此需要通過構造多個SVM二類分類器并將它們組合起來實現多類分類。本文將采用有相無環圖方法DAG(Directed Acyclic Graph)將多個SVM二類分類器組合起來實現樣本的分類,這里把這種方法稱為DVGSVM,其結構圖如圖1所示。

圖1 DAGSVM分類結構圖
對于一個n類的分類問題,DAG結構共含有n(n-1)個節點,每一個節點就是一個分類器,對應n(n-1)個分類器,分布于n層結構中。對于給定的輸入樣本X,從根節點出發,然后計算每個節點決策函數值,如果為1,則從左邊進入下一節點,如果為-1,則從右邊進人到下一個節點,然后計算下一個節點的值,依此類推,在最后一層葉節點處的輸出就是X的類別,只需n-1次運算就能夠得出分類的結果。DAGSVM方法與一般的決策樹方法相比,簡單直觀、分類的精度高、重復訓練樣本少。
要利用DAGSVM實現機械零件的分類,先要訓練分類器。因此,首先要采集一定數量的機械零件樣本圖像作為訓練樣本并提取其不變矩作為分類器的訓練數據。對訓練樣本進行標號并作為對應訓練樣本的訓練目標,進行訓練。訓練的結果就是要在DAGSVM特征空間中形成由支持向量描述的分類超平面,將各類別之間的特征空間劃分開來。訓練完成后,就得到了DAGSVM分類器。然后就可以將待分類的機械零件樣本的不變矩特征輸入到DAGSVM分類器,分類過程中,待分類零件樣本的不變矩特征落入哪個類別訓練樣本所對應的特征空間的范圍,就表明該樣本屬于該類別,從而實現了分類。
DAGSVM機械零件分類的實現過程如下:
1)采集一定數量的零件圖像,將其分為訓練樣本和待分類樣本,并分別提取其HU不變矩和仿射不變矩,作為樣本的特征。
2)構造K(K-1)個分類器,每個分類器取任意2個零件類別樣本進行訓練,K為待分類樣本的類別數。該階段就是通過對樣本的訓練,獲得最優分類函數:

式中K(xi, x)為核函數,本文選用的是徑向基RBF函數,xi為訓練樣本集,x為待分類的樣本,yi是樣本的類別標記,n為訓練樣本個數,SV為支持向量。
3)采用DAGSVM方法構造零件分類的多分類器。
4)將待分類零件樣本的特征向量輸入3)得到的多分類器模型,輸出的結果即為零件的類別。
該實驗選用工廠環境下拍攝的5類機械零件共90張圖像進行分類識別。如圖2所示,圖上零件從左至右依次是:螺母、螺栓、齒輪、軸和螺柱。

圖2 實驗用零件圖像
選取90張機械零件圖像中的59張作為訓練樣本,進行預處理,得到二值化圖像。再提取其HU不變矩和仿射不變矩作為樣本特征。將交叉驗證算法應用于樣本特征空間,進行參數尋優,得到最優的(g,C)參數組合,然后通過訓練得到分類器。最后將待分類樣本輸入SVM分類器進行分類,其具體流程如圖3所示。

圖3 基于不變矩和SVM的機械零件分類分類流程圖
實驗中對采集的圖像進行灰度化,圖像增強,濾波處理后,再采用自適應閾值算法進行閾值處理得到樣本的二值圖像,如圖4所示,然后再提取每一幅圖像的7個HU不變矩和3個仿射不變矩,以圖2中零件為例的不變矩如表1所示。

圖4 零件樣本的二值化圖像
Vapnik 等[7]人的研究證明:SVM性能好壞與所選擇的核函數的類別關系不大,核函數參數和誤差懲罰因子才是影響SVM性能的最關鍵因素。本文選擇RBF函數作為核函數來設計分類器。對RBF核函數,其需要是尋找最佳的核參數g和誤差懲罰因子C,其中核參數g是徑向基核函數的寬度參數,懲罰因子C用于控制模型復雜度和逼近誤差的折中。

表1 提取的圖像的不變矩
實質上,SVM參數選擇的問題,就是一個優化的問題。目前存在的SVM參數尋優算法有:交叉驗證法、實驗試湊法、網格搜索法、遺傳算法和梯度下降法等等[8]。
本文選取交叉驗證算法來確定SVM核參數g和誤差懲罰因子C參數。算法過程為:將訓練樣本數據分成K個相等子集,每次將K-1個子集作為SVM訓練數據,而將另外一份數據作為測試數據。針對懲罰因子C和不同的核參數,計算剩余那一個子集的分類正確率。系統根據分類率的高低自動調整懲罰因子C的值,通過上述算法選擇分類正確率最高的參數組合作為模型的最優參數,獲得最佳的(g,C)參數組合。
將交叉驗證算法應用于零件樣本數據,在軟件Libsvm 2.86上實現過程如圖5所示。

圖5 參數選擇結果圖
通過交叉驗證算法計算結果,最終確定參數(2, 0.35355)為最優的(g,C)參數組合,對應圖中坐標點(-1.5,1),并以此來實現零件的分類。

圖6 DAGSVM零件多分類器結構圖
要實現5類零件的分類,依據DAGSVM分類算法,如圖6所示設計多分類器。圖中SVM1、SVM2、SVM3、SVM4、SVM5、SVM6分別代表螺母VS螺柱、螺栓VS螺柱、螺母VS軸、齒輪VS螺柱、螺栓VS軸、螺母VS齒輪的2類分類器。在確定了RBF核函數和(g,C)參數組合后,選擇每個2類分類器對應的兩個類別的零件樣本進行訓練,便可以得到圖6中所有的分類器。
利用不變矩和圖6中DAG SVM分類器對零件進行分類的結果如表2所示。

表2 實驗分類結果
從上面的實驗結果來看,對5類零件的分類識別達到了較為理想的效果,但也存在誤判,經過進一步的分析發現,影響分類正確率的主要原因有:
1) 實驗用的零件大多來自工廠現場,零件表面都有較大程度的磨損、擦傷和油污,這影響到了圖像二值化時的分割效果,提取的不變矩不能精確描述圖像的特征,一定程度上影響了分類正確率。
2)由于條件限制,拍攝的機械零件訓練樣本圖像不夠充足,對分類器的性能造成了一定的影響。
3)DAG SVM方法具有分類速度快、易于計算、學習效果好等優點的同時,也存在一些缺陷:當它前面的分類器出現誤分時,后面的分類器無法糾正它的錯誤,出現錯誤累積。有待作出進一步的改善。
將SVM和不變矩應用于機械零件的分類識別中,并對分類結果進行了驗證。運用交叉驗證法進行核參數和懲罰因子的優化選擇,該方法易于實現,有效克服了核函數參數選擇對SVM分類效果造成的影響。利用有向無環圖方法能快速的實現零件的分類,避免了分類重疊和不可分類現象。實驗結果表明本文所研究的方法是行之有效的。
[1] Hu M K.Visual pattern recognition by moment invariants[J].IEEE Transactions on Information Theory, 1962, 8(2): 179-187.
[2] Shen D, Horace H Slp.Discriminative Wavelet Shape Descriptors for recognition of Z-D Patters[J].Pattern Recognition, 1999, 32(2): 151-165.
[3] Flusser J, Suk T.Pattern recognition by affine moment invariants[J].Pattern Recognition, 1993, 26(1): 167-174.
[4] Rahtu, M.Salo,J.Heikkila.Affine invariant pattern recognition using multiscale.Autoconvolution.IEEE Transactions on Pattern Analysis and Machine Intelligence,2005, 27(6): 908-918.
[5] V vapnik.The nature of statistical learning theory[M].NewYork: springer-verlag, 1995.
[6] 李盼池, 許少華.支持向量在模式識別中的核函數特性分析[J].計算機工程與設計, 2005, 26(2): 302-304.
[7] Vapnik V, Golowich S, Smola A.Support vector method for function approximation, regression estimation, and signal processing[C]//Mozer M, Jordan M, Petsche T.Neural Information Processing Systems 9.Cambridge, MA: MIT Press, 1997(4): 281-287.
[8] 奉國和.SVM分類核函數及參數選擇比較[J].計算機工程與應用, 2011, 47(3): 123-125.