方舟,程筱勝,崔海華,石誠(chéng),韋號(hào)
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016)
在視覺引導(dǎo)的工業(yè)機(jī)器人零件裝配過程中,視覺部分需要提供給機(jī)器人所需抓取零件的種類信息,這對(duì)零件識(shí)別的準(zhǔn)確性至關(guān)重要,也是后續(xù)的抓取裝配等工作的基礎(chǔ)。支持向量機(jī)作為一種經(jīng)典的機(jī)器學(xué)習(xí)方法在圖像識(shí)別中得到了廣泛的應(yīng)用[1-3]??镞d君等人[4]提取零件圖像的Hu不變矩和仿射不變矩,采用基于有向無環(huán)圖的支持向量機(jī)進(jìn)行零件識(shí)別。孫小權(quán)等人[5]對(duì)零件圖像進(jìn)行小波變換去噪和降維后,利用主成分分析提取圖像特征向量輸入SVM對(duì)正畸帶環(huán)進(jìn)行識(shí)別。吳益紅等人[6]將零件的局部二值模式(local binary pattern,LBP)特征譜轉(zhuǎn)成LBP直方圖,輸入SVM進(jìn)行零件識(shí)別。韓曉艷等[7]人利用粒子群算法對(duì)SVM的參數(shù)進(jìn)行尋優(yōu),但并未進(jìn)行特征的選擇。秦豐等[8]人通過卷積神經(jīng)網(wǎng)絡(luò)提取苜蓿葉片病斑圖像的特征后再利用SVM進(jìn)行分類,但SVM參數(shù)尋優(yōu)通過網(wǎng)格搜索法實(shí)現(xiàn),其速度較慢,并且輸入SVM的特征都是通過人工組合來獲得,需經(jīng)過大量實(shí)驗(yàn)驗(yàn)證其準(zhǔn)確性。李東等人[9]通過提取服裝輪廓的傅里葉描述子,利用支持向量機(jī)進(jìn)行服裝款式的識(shí)別,并且驗(yàn)證了Hu矩和傅里葉描述子的融合特征反而會(huì)使識(shí)別準(zhǔn)確率下降,由此可以看出傳遞給SVM的特征將影響最后的分類性能。
SVM的分類性能對(duì)參數(shù)的變化非常敏感,并且輸入的特征過多可能造成識(shí)別準(zhǔn)確率的下降,然而特征選取往往依賴于實(shí)驗(yàn)者的主觀判斷。針對(duì)以上問題,本文提出一種基于GAPSO-SVM算法的鈑金零件識(shí)別方法。首先,對(duì)圖像樣本進(jìn)行圖像預(yù)處理,提取其形狀特征,建立不同種類零件的訓(xùn)練集;其次,利用支持向量機(jī)進(jìn)行訓(xùn)練,通過遺傳粒子群算法同時(shí)進(jìn)行支持向量機(jī)的參數(shù)優(yōu)化和特征選擇,獲得優(yōu)化后的參數(shù)和篩選后的特征;最后,提取測(cè)試集零件篩選后的特征,將其輸入訓(xùn)練好的支持向量機(jī)模型獲得零件的類別。
本文提出的零件識(shí)別總體方案如圖1所示,其中,支持向量機(jī)的參數(shù)優(yōu)化和特征選擇通過遺傳粒子群算法實(shí)現(xiàn)。
圖1 分類方案總體流程
鈑金零件表面紋理特征非常少,用SIFT[10]等局部不變性特征難以得到較好的提取和匹配效果。本文采用形狀特征作為支持向量機(jī)的輸入。首先對(duì)圖像進(jìn)行預(yù)處理,包括gamma校正、閾值化、輪廓提取,最終獲取零件的形狀特征。
初步選擇的形狀特征定義如下。
1) 面積
(1)
面積為零件目標(biāo)在圖像中所占的像素點(diǎn)數(shù)。
2) 周長(zhǎng)
P=A-SUM(in)
(2)
式中SUM(in)為4鄰域都為輪廓點(diǎn)的像素總個(gè)數(shù)。
3) 延伸率
S=W/L
(3)
式中:L為零件輪廓最小包圍矩形的長(zhǎng),W為零件輪廓最小包圍矩形的寬。
4) 占空比
B=A/(LW)
(4)
占空比表示輪廓對(duì)最小外接矩形的充滿程度。
5) 復(fù)雜度
C=P2/(4πA)
(5)
復(fù)雜度表示輪廓與圓形的接近程度。
6)Hu不變矩
Hu不變矩由圖像的二階和三階歸一化中心矩推導(dǎo)而來,一共有7個(gè)值,這些值對(duì)圖像的平移、旋轉(zhuǎn)、縮放具有不變性,因此可以作為輪廓的不變特征來使用。
由于提取出的各個(gè)特征數(shù)量級(jí)差異較大,直接輸入SVM進(jìn)行訓(xùn)練會(huì)影響識(shí)別準(zhǔn)確率,因此需要進(jìn)行如式(6)所示的歸一化操作,將所有特征數(shù)值映射到0~1之間。
(6)
式中:fij、f′ij分別為第i個(gè)零件的第j個(gè)特征變換前和變換后的值;maxj、minj分別為所有零件的第j個(gè)特征的最大和最小值。
粒子群優(yōu)化算法[11]是一種群智能算法,其思想類似于鳥群覓食的過程。二進(jìn)制粒子群[12]將粒子的每一位按照0或者1編碼,粒子每一維的速度影響這一維置1的概率。
本文將遺傳算法的交叉和變異機(jī)制引入粒子群優(yōu)化算法,進(jìn)行SVM的參數(shù)優(yōu)化和特征選擇,構(gòu)成GAPSO-SVM算法,使其在保證前期快速尋優(yōu)的情況下,能在后期有效地跳出局部最優(yōu)解。算法流程如圖2所示。
圖2 算法流程圖
其中算法關(guān)鍵步驟如下:
1) 種群粒子隨機(jī)初始化
隨機(jī)初始化種群中的每個(gè)粒子,并對(duì)粒子進(jìn)行編碼。本文采用使用徑向基核函數(shù)(radial basis function,RBF)的SVM,徑向基核函數(shù)定義為:
K(x,z)=exp(-γ‖x-z‖2),γ>0
(7)
需要優(yōu)化的參數(shù)為RBF參數(shù)γ和SVM的懲罰參數(shù)(penalty parameter)C。除此之外,還要進(jìn)行特征選擇,因此每個(gè)粒子的編碼向量分為三部分。前兩部分分別為SVM的參數(shù)C和γ的二進(jìn)制編碼,通過式(8)可轉(zhuǎn)換成十進(jìn)制:
(8)
式中:D為十進(jìn)制數(shù)值,Dmin和Dmax分別為參數(shù)的上、下限;dec(b)為二進(jìn)制編碼b的十進(jìn)制值;L為二進(jìn)制編碼的位數(shù);本文C和γ的二進(jìn)制編碼都取20位。第三部分為特征選擇標(biāo)志位,置0表示不選擇該特征,置1表示選擇該特征。每個(gè)粒子都表示一種參數(shù)和特征選擇情況。
2) 適應(yīng)度評(píng)價(jià)
為保證最后生成的粒子以盡可能少的特征維度以獲得高的分類準(zhǔn)確率。粒子適應(yīng)度評(píng)價(jià)函數(shù)如下:
(9)
式中:Fitness表示適應(yīng)度;wa為分類準(zhǔn)確率的權(quán)重;Accuracy為k折交叉驗(yàn)證的準(zhǔn)確率,本文k取10;wq為特征維數(shù)的權(quán)重;D為可供選擇的特征數(shù)量;fi取1代表第i個(gè)特征被選中,取0代表沒有選擇第i個(gè)特征。
3) 慣性權(quán)重更新
本文慣性權(quán)重按照迭代次數(shù)線性遞減的方式更新:
(10)
式中:k為當(dāng)前迭代次數(shù);wk為第k次迭代時(shí)的慣性權(quán)重;wmax和wmin分別為慣性權(quán)重的上、下限;Imax為允許迭代的最大次數(shù)。
4) 選擇、交叉和變異
交叉操作的父代粒子按照輪盤賭的策略選擇,當(dāng)產(chǎn)生的0~1間的隨機(jī)數(shù)小于交叉概率時(shí),對(duì)粒子每一段進(jìn)行單點(diǎn)交叉操作,如圖3所示。
圖3 交叉操作
變異操作可以讓粒子跳出局部最優(yōu)解,一般變異概率不易取過大,變異操作的公式如下:
(11)
本文實(shí)驗(yàn)零件圖像種類共6類。采集了不同角度和位置下共600張圖像(每類100張)作為訓(xùn)練集,60張圖像(每類10張)作為測(cè)試集。其中部分位置的零件訓(xùn)練集中輪廓圖如圖4所示((a)-(f)代表種類1-種類6),部分不同種類零件歸一化后的特征數(shù)據(jù)如表1所示。
圖4 部分不同種類零件原圖和輪廓
表1 部分零件的歸一化特征數(shù)值
特征維數(shù)D=12;參數(shù)C最大值Cmax=10,最小值Cmin=2-5;參數(shù)γ最大值γmax=10,最小值γmin=2-15;種群規(guī)模Scale=50;分類準(zhǔn)確率權(quán)重wa=0.95,特征維數(shù)權(quán)重wq=0.05;慣性權(quán)重最大值wmax=0.9,最小值wmin=0.4;學(xué)習(xí)因子c1=2,c2=2;迭代的最大次數(shù)Imax=100;交叉概率Pc=0.8,變異概率Pm=0.1。
二進(jìn)制粒子群在更新位置時(shí),如采用一般的sigmoid函數(shù),輸入速度越大,產(chǎn)生0的概率越低。為了保證產(chǎn)生新粒子的概率,本文將sigmoid函數(shù)改寫如下:
(12)
重復(fù)實(shí)驗(yàn)10次,計(jì)算最終全局最優(yōu)解的C、γ和選用的特征數(shù)如表2所示。分析可知,10次實(shí)驗(yàn)中有7次將初始選取的12維特征降維到3維,且都為延伸率、占空比、Hu矩1的組合,測(cè)試集識(shí)別正確率100%。如將初步選擇的12維特征全部用于識(shí)別,測(cè)試集識(shí)別正確率85%。說明本文提出的方法有足夠的能力進(jìn)行SVM的參數(shù)優(yōu)化與特征選擇。
表2 重復(fù)10次實(shí)驗(yàn)結(jié)果
為了對(duì)比,進(jìn)行了PSO算法對(duì)SVM參數(shù)優(yōu)化和特征選擇實(shí)驗(yàn)。圖5為隨著進(jìn)化代數(shù)的上升,GAPSO-SVM和PSO-SVM的適應(yīng)度上升點(diǎn)線圖??梢钥闯觯珿APSO比PSO在前期尋優(yōu)的速度更快,20代左右就能到達(dá)較高的適應(yīng)度值,最終適應(yīng)度高于PSO算法,說明算法具有跳出局部最優(yōu)解的能力。
圖5 兩種算法的性能對(duì)比
提出一種基于GAPSO-SVM的鈑金零件圖像識(shí)別方法,該方法可對(duì)視場(chǎng)內(nèi)不同位置和角度的鈑金零件進(jìn)行識(shí)別。本文方法的關(guān)鍵是結(jié)合了遺傳算法和二進(jìn)制粒子群算法的優(yōu)點(diǎn),通過計(jì)算選擇的特征維數(shù)和交叉驗(yàn)證的準(zhǔn)確率來評(píng)判當(dāng)前的適應(yīng)度。經(jīng)過不斷地迭代,得到最優(yōu)的SVM參數(shù)和所需特征。最終實(shí)驗(yàn)結(jié)果說明,該方法能有效地進(jìn)行支持向量機(jī)的參數(shù)優(yōu)化和特征選擇,從而在識(shí)別過程中有效地減少特征數(shù)量,并提高識(shí)別準(zhǔn)確率。