方舟,程筱勝,崔海華,石誠,韋號
(南京航空航天大學 機電學院,江蘇 南京 210016)
在視覺引導的工業機器人零件裝配過程中,視覺部分需要提供給機器人所需抓取零件的種類信息,這對零件識別的準確性至關重要,也是后續的抓取裝配等工作的基礎。支持向量機作為一種經典的機器學習方法在圖像識別中得到了廣泛的應用[1-3]??镞d君等人[4]提取零件圖像的Hu不變矩和仿射不變矩,采用基于有向無環圖的支持向量機進行零件識別。孫小權等人[5]對零件圖像進行小波變換去噪和降維后,利用主成分分析提取圖像特征向量輸入SVM對正畸帶環進行識別。吳益紅等人[6]將零件的局部二值模式(local binary pattern,LBP)特征譜轉成LBP直方圖,輸入SVM進行零件識別。韓曉艷等[7]人利用粒子群算法對SVM的參數進行尋優,但并未進行特征的選擇。秦豐等[8]人通過卷積神經網絡提取苜蓿葉片病斑圖像的特征后再利用SVM進行分類,但SVM參數尋優通過網格搜索法實現,其速度較慢,并且輸入SVM的特征都是通過人工組合來獲得,需經過大量實驗驗證其準確性。李東等人[9]通過提取服裝輪廓的傅里葉描述子,利用支持向量機進行服裝款式的識別,并且驗證了Hu矩和傅里葉描述子的融合特征反而會使識別準確率下降,由此可以看出傳遞給SVM的特征將影響最后的分類性能。
SVM的分類性能對參數的變化非常敏感,并且輸入的特征過多可能造成識別準確率的下降,然而特征選取往往依賴于實驗者的主觀判斷。針對以上問題,本文提出一種基于GAPSO-SVM算法的鈑金零件識別方法。首先,對圖像樣本進行圖像預處理,提取其形狀特征,建立不同種類零件的訓練集;其次,利用支持向量機進行訓練,通過遺傳粒子群算法同時進行支持向量機的參數優化和特征選擇,獲得優化后的參數和篩選后的特征;最后,提取測試集零件篩選后的特征,將其輸入訓練好的支持向量機模型獲得零件的類別。
本文提出的零件識別總體方案如圖1所示,其中,支持向量機的參數優化和特征選擇通過遺傳粒子群算法實現。

圖1 分類方案總體流程
鈑金零件表面紋理特征非常少,用SIFT[10]等局部不變性特征難以得到較好的提取和匹配效果。本文采用形狀特征作為支持向量機的輸入。首先對圖像進行預處理,包括gamma校正、閾值化、輪廓提取,最終獲取零件的形狀特征。
初步選擇的形狀特征定義如下。
1) 面積

(1)
面積為零件目標在圖像中所占的像素點數。
2) 周長
P=A-SUM(in)
(2)
式中SUM(in)為4鄰域都為輪廓點的像素總個數。
3) 延伸率
S=W/L
(3)
式中:L為零件輪廓最小包圍矩形的長,W為零件輪廓最小包圍矩形的寬。
4) 占空比
B=A/(LW)
(4)
占空比表示輪廓對最小外接矩形的充滿程度。
5) 復雜度
C=P2/(4πA)
(5)
復雜度表示輪廓與圓形的接近程度。
6)Hu不變矩
Hu不變矩由圖像的二階和三階歸一化中心矩推導而來,一共有7個值,這些值對圖像的平移、旋轉、縮放具有不變性,因此可以作為輪廓的不變特征來使用。
由于提取出的各個特征數量級差異較大,直接輸入SVM進行訓練會影響識別準確率,因此需要進行如式(6)所示的歸一化操作,將所有特征數值映射到0~1之間。
(6)
式中:fij、f′ij分別為第i個零件的第j個特征變換前和變換后的值;maxj、minj分別為所有零件的第j個特征的最大和最小值。
粒子群優化算法[11]是一種群智能算法,其思想類似于鳥群覓食的過程。二進制粒子群[12]將粒子的每一位按照0或者1編碼,粒子每一維的速度影響這一維置1的概率。
本文將遺傳算法的交叉和變異機制引入粒子群優化算法,進行SVM的參數優化和特征選擇,構成GAPSO-SVM算法,使其在保證前期快速尋優的情況下,能在后期有效地跳出局部最優解。算法流程如圖2所示。

圖2 算法流程圖
其中算法關鍵步驟如下:
1) 種群粒子隨機初始化
隨機初始化種群中的每個粒子,并對粒子進行編碼。本文采用使用徑向基核函數(radial basis function,RBF)的SVM,徑向基核函數定義為:
K(x,z)=exp(-γ‖x-z‖2),γ>0
(7)
需要優化的參數為RBF參數γ和SVM的懲罰參數(penalty parameter)C。除此之外,還要進行特征選擇,因此每個粒子的編碼向量分為三部分。前兩部分分別為SVM的參數C和γ的二進制編碼,通過式(8)可轉換成十進制:
(8)
式中:D為十進制數值,Dmin和Dmax分別為參數的上、下限;dec(b)為二進制編碼b的十進制值;L為二進制編碼的位數;本文C和γ的二進制編碼都取20位。第三部分為特征選擇標志位,置0表示不選擇該特征,置1表示選擇該特征。每個粒子都表示一種參數和特征選擇情況。
2) 適應度評價
為保證最后生成的粒子以盡可能少的特征維度以獲得高的分類準確率。粒子適應度評價函數如下:
(9)
式中:Fitness表示適應度;wa為分類準確率的權重;Accuracy為k折交叉驗證的準確率,本文k取10;wq為特征維數的權重;D為可供選擇的特征數量;fi取1代表第i個特征被選中,取0代表沒有選擇第i個特征。
3) 慣性權重更新
本文慣性權重按照迭代次數線性遞減的方式更新:
(10)
式中:k為當前迭代次數;wk為第k次迭代時的慣性權重;wmax和wmin分別為慣性權重的上、下限;Imax為允許迭代的最大次數。
4) 選擇、交叉和變異
交叉操作的父代粒子按照輪盤賭的策略選擇,當產生的0~1間的隨機數小于交叉概率時,對粒子每一段進行單點交叉操作,如圖3所示。

圖3 交叉操作
變異操作可以讓粒子跳出局部最優解,一般變異概率不易取過大,變異操作的公式如下:
(11)

本文實驗零件圖像種類共6類。采集了不同角度和位置下共600張圖像(每類100張)作為訓練集,60張圖像(每類10張)作為測試集。其中部分位置的零件訓練集中輪廓圖如圖4所示((a)-(f)代表種類1-種類6),部分不同種類零件歸一化后的特征數據如表1所示。

圖4 部分不同種類零件原圖和輪廓

表1 部分零件的歸一化特征數值
特征維數D=12;參數C最大值Cmax=10,最小值Cmin=2-5;參數γ最大值γmax=10,最小值γmin=2-15;種群規模Scale=50;分類準確率權重wa=0.95,特征維數權重wq=0.05;慣性權重最大值wmax=0.9,最小值wmin=0.4;學習因子c1=2,c2=2;迭代的最大次數Imax=100;交叉概率Pc=0.8,變異概率Pm=0.1。
二進制粒子群在更新位置時,如采用一般的sigmoid函數,輸入速度越大,產生0的概率越低。為了保證產生新粒子的概率,本文將sigmoid函數改寫如下:
(12)
重復實驗10次,計算最終全局最優解的C、γ和選用的特征數如表2所示。分析可知,10次實驗中有7次將初始選取的12維特征降維到3維,且都為延伸率、占空比、Hu矩1的組合,測試集識別正確率100%。如將初步選擇的12維特征全部用于識別,測試集識別正確率85%。說明本文提出的方法有足夠的能力進行SVM的參數優化與特征選擇。

表2 重復10次實驗結果
為了對比,進行了PSO算法對SVM參數優化和特征選擇實驗。圖5為隨著進化代數的上升,GAPSO-SVM和PSO-SVM的適應度上升點線圖。可以看出,GAPSO比PSO在前期尋優的速度更快,20代左右就能到達較高的適應度值,最終適應度高于PSO算法,說明算法具有跳出局部最優解的能力。

圖5 兩種算法的性能對比
提出一種基于GAPSO-SVM的鈑金零件圖像識別方法,該方法可對視場內不同位置和角度的鈑金零件進行識別。本文方法的關鍵是結合了遺傳算法和二進制粒子群算法的優點,通過計算選擇的特征維數和交叉驗證的準確率來評判當前的適應度。經過不斷地迭代,得到最優的SVM參數和所需特征。最終實驗結果說明,該方法能有效地進行支持向量機的參數優化和特征選擇,從而在識別過程中有效地減少特征數量,并提高識別準確率。