緱新科,王 潤(rùn)
(1.蘭州理工大學(xué),甘肅 蘭州 730050;2.甘肅省工業(yè)過(guò)程先進(jìn)控制重點(diǎn)實(shí)驗(yàn)室,甘肅 蘭州 730050)
手勢(shì)識(shí)別相比于人臉識(shí)別,行為識(shí)別等更具有直觀性和簡(jiǎn)潔性。因此,手勢(shì)識(shí)別[1]廣泛應(yīng)用于人工智能、虛擬現(xiàn)實(shí)、人機(jī)交互以及醫(yī)療保健等領(lǐng)域。手勢(shì)識(shí)別系統(tǒng)通常包括手勢(shì)信息的獲取,手部檢測(cè),手部追蹤[2]以及手勢(shì)識(shí)別等幾個(gè)關(guān)鍵的步驟。手勢(shì)識(shí)別起源于20世紀(jì)80年代,由Grimes發(fā)明了基于硬件的手勢(shì)識(shí)別系統(tǒng)從此開(kāi)始了手勢(shì)識(shí)別的研究。Korea Polytechnic大學(xué)的李金石,李振恩等[3]采用熵分析法從背景復(fù)雜的視頻數(shù)據(jù)中心分割出人的手勢(shì)形狀進(jìn)行手識(shí)別,平均識(shí)別率可達(dá)95%。2018年,Pedreo[4]等人通過(guò)計(jì)算手勢(shì)圖像的立體HOG 和HOF 特征進(jìn)一步提升了手勢(shì)識(shí)別率可達(dá)98%。
盡管國(guó)內(nèi)的手勢(shì)識(shí)別起步較晚,但也取得了不錯(cuò)的成績(jī)。清華大學(xué)祝遠(yuǎn)新[5]提出了一種基于運(yùn)動(dòng)、形狀和色彩等多信息分層融合的方法,在線對(duì)12種手勢(shì)進(jìn)行識(shí)別,其識(shí)別率可達(dá)90%左右。2018年吳小風(fēng)[6]等人通過(guò)算法Faster-CNN對(duì)10種手勢(shì)圖像進(jìn)行識(shí)別平均準(zhǔn)確率可達(dá)98%。
HOG 特征提取由法國(guó)的Naveet Dalal[7]等人在2005年首次提出,是一種實(shí)現(xiàn)行為、表情和手勢(shì)識(shí)別等檢測(cè)的圖像描述算法,對(duì)環(huán)境具有很強(qiáng)的魯棒性。在本文中,首先通過(guò)HOG對(duì)手勢(shì)圖像進(jìn)行特征提取,為了除去HOG特征提取中含有大量的冗余信息,所以利用PCA[8]降維技術(shù)只保留手勢(shì)特征的主要成分。深度學(xué)習(xí)[9-10]在圖像分類上展現(xiàn)了強(qiáng)大的潛力,但其耗時(shí)長(zhǎng)且需要大量的樣本數(shù)據(jù),并不適合小樣本分類的問(wèn)題。傳統(tǒng)手勢(shì)識(shí)別使用單一分類器的學(xué)習(xí)能力有限,故本文提出了一種基于ABC優(yōu)化的集成分類器來(lái)強(qiáng)化學(xué)習(xí)。本文利用本文設(shè)計(jì)的集成分類器是以SVM[11-12],KNN[13],XGBoost[14]為基分類器,并通過(guò)ABC算法為這三個(gè)基分類器尋找最優(yōu)的權(quán)重。
HOG 特征是一種圖像的局部特征,對(duì)于幾何和光學(xué)形變具有極強(qiáng)的魯棒性。HOG[15]特征結(jié)合SVM已經(jīng)廣泛應(yīng)用到圖像識(shí)別當(dāng)中。首先利用HOG 對(duì)手勢(shì)圖像進(jìn)行特征提取,算法的具體步驟[16]如下:
(1) 灰度化,將RGB圖像轉(zhuǎn)換成灰度圖像。
(2) 標(biāo)準(zhǔn)化gamma空間和顏色空間。gamma標(biāo)準(zhǔn)化可以減少光照對(duì)手勢(shì)圖像的影響,同時(shí)增強(qiáng)該算法的魯棒性,降低對(duì)于光照的敏感性。校正公式如下:
(3) 計(jì)算圖像梯度。分別利用梯度算子[-1,0,1]和[1,0,-1]T對(duì)手勢(shì)圖像做卷積運(yùn)算,該算子公式為:
上式中,Gx(x,y),Gy(x,y),H(x,y)分別是在像素點(diǎn)在(x,y)處的水平梯度和垂直梯度和像素值,且像素點(diǎn)(x,y)處的梯度幅值和梯度方向的公式分別為:
(4) 計(jì)算HOG的特征維數(shù)。實(shí)驗(yàn)中的檢測(cè)窗口大小是64*64,塊大小是16*16,塊的步進(jìn)是8*8,再將每個(gè)塊劃分為4 個(gè)胞元,每個(gè)胞元大小為8*8,設(shè)置每個(gè)胞元的直方圖的bin 值為9,也就是每個(gè)塊有4*9=36 個(gè)特征向量,所以一個(gè)64*64 的檢測(cè)窗口HOG 特征向量為[(64-16)/8+1]2*36=1764維。將手勢(shì)圖片尺寸歸一化為64*64,并提取的HOG特征圖如圖1所示。
圖1 提取HOG特征圖
PCA(主成分分析)是最常用的降維方法之一,其原理是用n維特征向量代替總維度m維特征向量(m≥n),在降維的過(guò)程中盡量將數(shù)據(jù)損失降到最小,通過(guò)PCA 降維可以避免維度爆炸,并除去一定的干擾信息。
一般用下式來(lái)表示數(shù)據(jù)信息的主成分:
y為前n個(gè)主成分特征,xi為需要的降維特征,x為訓(xùn)練樣本的特征均值,UT為協(xié)方差矩陣。UT具體為:
在HOG-PCA特征降維的過(guò)程為:首先計(jì)算出HOG原始特征的特征維度,本文選取的HOG 手勢(shì)特征為1764 維;得到HOG 的特征維度后,計(jì)算協(xié)方差矩陣UT,并求得相應(yīng)的特征值和特征向量;最后將特征值進(jìn)行排列,取前n 個(gè)特征值對(duì)應(yīng)的特征向量組成n維手勢(shì)特征向量。
2.3.1 基于SVM的分類方法
SVM 一般用于解決線性分類的問(wèn)題,首先將一般分類問(wèn)題簡(jiǎn)化成一個(gè)二分類的模型。線性分類器就是設(shè)計(jì)一個(gè)超平面[17],在樣本空間(xi,yi),i=1,…,xRd,y{-1,+1}中,該超平面可表示為:
在最佳分割超平面上的點(diǎn),從一個(gè)點(diǎn)到一個(gè)超平面的距離為:
通過(guò)對(duì)w和wo的歸一化,得:
y1為類別1,y2為類別2,分類面之間的距離為2/||w||,如果該樣本空間線性可分,SVM在式(7)的限制下,求一個(gè)超平面使得2/||w||的值最大,并利用拉格朗日求極值:
即可得到L(w,w0,)的極小值滿足:
通過(guò)上式即可求得最佳超平面的法向量和支持向量。SVM分類算法在實(shí)際問(wèn)題中經(jīng)常需要根據(jù)樣本特征維度和分布情況的不同選取不同的核函數(shù)。本文經(jīng)過(guò)反復(fù)試驗(yàn)發(fā)現(xiàn)高斯核函數(shù)具有準(zhǔn)確率高且穩(wěn)定性強(qiáng)的特征,因此,選擇高斯核函數(shù),其表達(dá)式為:
2.3.2 基于KNN的分類方法
K近鄰算法(KNN)是最近鄰算法的一個(gè)推廣,該算法的原理是將一個(gè)測(cè)試數(shù)據(jù)點(diǎn)x分類為與它最接近的K 個(gè)近鄰中出現(xiàn)最多的那個(gè)類別。KNN算法從測(cè)試樣本點(diǎn)x開(kāi)始生長(zhǎng),一直擴(kuò)大到包含進(jìn)K 個(gè)訓(xùn)練樣本點(diǎn),并且把測(cè)試樣本點(diǎn)x歸為這最近的K 個(gè)訓(xùn)練樣本點(diǎn)中出現(xiàn)頻率最大的類別。一般使用歐式距離測(cè)量測(cè)試樣本與訓(xùn)練樣本的相似度。
若K 值固定,并且允許訓(xùn)練樣本個(gè)數(shù)無(wú)限增大,則全部的這K個(gè)近鄰都將收斂于x。與最近鄰規(guī)則相同,K個(gè)近鄰的標(biāo)記都是隨機(jī)變量,概率P(wi|x),i=1,2…k彼此相互獨(dú)立。如果P(wm|x)為較大的那個(gè)后驗(yàn)概率,則根據(jù)貝葉斯分類[18]規(guī)則,可以選取類別wm,而最近鄰規(guī)則以概率P(wm|x)選取類別,根據(jù)K近鄰規(guī)則,只有當(dāng)K個(gè)最近鄰中的大多數(shù)的標(biāo)記為wm,則將類別判定為wm。做出這樣斷定的概率為:
通常類別概率和K值成正比。
2.3.3 基于XGBoost的分類方法
XGBoost是一種提升樹(shù)模型,它是將許多樹(shù)模型集成在一起,形成一個(gè)很強(qiáng)的分類器,而所用到的樹(shù)模型則是CART回歸樹(shù)[19]模型。該算法思想就是一層一層的添加樹(shù),每次添加一個(gè)樹(shù),其本質(zhì)是學(xué)習(xí)一個(gè)新的函數(shù),用來(lái)擬合上次預(yù)測(cè)結(jié)果的殘差。當(dāng)?shù)玫絢棵樹(shù)時(shí)訓(xùn)練完成,下一步預(yù)測(cè)該樣本的分?jǐn)?shù),根據(jù)其樣本的特征,每棵樹(shù)會(huì)落到相對(duì)應(yīng)的一個(gè)葉子節(jié)點(diǎn),得到一個(gè)相應(yīng)的分?jǐn)?shù),再將每棵樹(shù)對(duì)應(yīng)的分?jǐn)?shù)相加就是該樣本的最終預(yù)測(cè)值。
XGBoost具體計(jì)算步驟如下:
(1) XGBoost目標(biāo)函數(shù)具體為:
其中,Ω(fk)具體為:
(2) Xgboost使用梯度提升策略,保留已經(jīng)有的模型,一次添加一個(gè)新的回歸樹(shù)到模型中,假設(shè)第i個(gè)樣本在第t次迭代的預(yù)測(cè)結(jié)果為,ft(xi)為加入的新的回歸樹(shù),可得如下推導(dǎo)過(guò)程:
將式(15)的結(jié)果代入式(14)中,可得:
(3) 將目標(biāo)函數(shù)做二階泰勒展開(kāi),并且引入正則項(xiàng):
集成分類器[20]的原理是首先構(gòu)造出n個(gè)基分類器,基分類器[21]可以是同質(zhì)也可以是異質(zhì),每個(gè)分類器都可以輸出一個(gè)結(jié)果,針對(duì)這些結(jié)果使用統(tǒng)計(jì)方法來(lái)做最終的決策,理論上基分類器的差異越大集成分類器的分類效果就越好。本文使用的三個(gè)異質(zhì)分類器為:SVM 分類器,KNN 分類器,XGBoost 分類器。通過(guò)ABC 算法[22-23]為這三種分類器尋找最優(yōu)的權(quán)重,使之成為一個(gè)新的集成分類器來(lái)有效提高手勢(shì)識(shí)別率。該算法核心思路如下圖2所示。
圖2 核心思路圖
各個(gè)分類器的權(quán)重由人工蜂群算法得出,人工蜂群算法是群智的一種,其基本思想是蜂群由雇傭蜂、跟隨蜂和偵察蜂整個(gè)蜂群尋找最大的蜜源,即實(shí)際優(yōu)化問(wèn)題中的最優(yōu)解。假設(shè)在D維空間中,隨機(jī)生成SN個(gè)可行解,蜜源的位置公式為:
xi(i=1,2,…,SN)為D 維向量,即D 為優(yōu)化參數(shù)的個(gè)數(shù),j{1,2,…,D},xmax,j和xmin,j為迭代空間的最大值和最小值。
雇傭蜂在當(dāng)前蜜源附近展開(kāi)搜索,并記錄自己到目前為止的最優(yōu)值。則新蜜源的更新搜索公式為:
j{1,2,…,D},k{1,2,…,SN},且k≠i,φ為[-1,1]之間的隨機(jī)數(shù)。
偵察蜂選擇雇傭蜂的概率為:
fit(xi)為搜索個(gè)體的適應(yīng)度值,為了防止ABC優(yōu)化算法陷入局部最優(yōu),如果一個(gè)蜜源經(jīng)過(guò)limit 次迭代仍未能尋到更優(yōu)值,則拋棄該蜜源,然后該蜜源對(duì)應(yīng)的雇傭蜂變?yōu)閭刹旆渌阉餍碌拿墼础?/p>
經(jīng)過(guò)該優(yōu)化算法可得:權(quán)重個(gè)數(shù)為3,則初始化蜜源空間為3 維;種群大小為30;最大迭代次數(shù)為200,當(dāng)?shù)瓿蓵r(shí)輸出最優(yōu)權(quán)重參數(shù)。
為了進(jìn)行實(shí)驗(yàn)對(duì)比,首先進(jìn)行HOG-PCA的特征提取及降維處理,并分別與分類器SVM,KNN 以及XGBOOST 在數(shù)據(jù)集NUS Hand Posture dataset Ⅱ中Hand Postures 的下進(jìn)行實(shí)驗(yàn)分析,并分別得到分類速度和手勢(shì)識(shí)別率,然后通過(guò)人工蜂群算法對(duì)這三種分類器設(shè)置最優(yōu)的權(quán)重得到一個(gè)集成分類器進(jìn)行手勢(shì)識(shí)別,并與以上三種分類器進(jìn)行比較。
本文采用NUS Hand Posture dataset Ⅱ中的Hand Postures 數(shù)據(jù)集,其中共包含10 種手勢(shì)姿勢(shì),拍攝于不同的背景之下。將其定義為手勢(shì)a 到j(luò),共2000 張,每類200 張。訓(xùn)練集數(shù)目為1500,驗(yàn)證集數(shù)目為500。實(shí)驗(yàn)之初已經(jīng)對(duì)樣本集進(jìn)行了歸一化(64*64)和灰度化等預(yù)處理。處理后的手勢(shì)圖像a到j(luò)如圖3所示。
圖3 手勢(shì)圖像a到j(luò)
HOG提取的手勢(shì)特征具有許多冗余信息,通過(guò)PCA降維后,不僅可以具備描述手勢(shì)信息的能力,若選取合適的特征維度,還可以在一定程度上提高手勢(shì)識(shí)別率。選取不同維度的主成分并利用SVM進(jìn)行識(shí)別,如下圖4所示。
圖4 HOG-PCA特征降維
通過(guò)上圖可以特征得到維度在350維時(shí),手勢(shì)識(shí)別率最高為92.17%。選取特征維度350維的手勢(shì)特征和原始HOG(1764維)特征進(jìn)行比較,結(jié)果如下表1所示。
表1 HOG和HOG-PCA對(duì)比實(shí)驗(yàn)
通過(guò)上表可知經(jīng)過(guò)PCA降維處理后手勢(shì)識(shí)別率上升了0.37%,分類速度也縮短為不足原始數(shù)據(jù)的1/3。
所以,選取特征維度為350 維的手勢(shì)特征分別與SVM支持向量機(jī),KNN,XGBoost進(jìn)行分類識(shí)別。在經(jīng)過(guò)反復(fù)多次實(shí)驗(yàn)后,KNN 分類器最終選擇K 值為32。XGBoost 分類器選擇樹(shù)的深度為10,學(xué)習(xí)率為0.03。單個(gè)分類器的分類效果如表2所示。
表2 不同分類器的單獨(dú)表現(xiàn)
從上述實(shí)驗(yàn)中可以發(fā)現(xiàn)雖然HOG特征降維后的數(shù)據(jù)使用單獨(dú)分類器可以基本完成手勢(shì)分類,但效果還不夠理想,沒(méi)有達(dá)到預(yù)期要求。為了進(jìn)一步提高手勢(shì)識(shí)別率,現(xiàn)在將單個(gè)分類器改進(jìn)為經(jīng)過(guò)人工蜂群算法優(yōu)化的集成分類器,ABC 算法將優(yōu)化后的權(quán)重參數(shù)重新分配給各基分類器,從而提高集成分類器的分類性能,可進(jìn)一步提升手勢(shì)識(shí)別率?;诸惼鱏VM,KNN,XGBoost 權(quán)重參數(shù)之比為:0.3656:0.3215:0.3129。則集成分類器的識(shí)別效果如表3所示。
表3 集成分類器的識(shí)別效果
通過(guò)實(shí)驗(yàn)可以看出本文設(shè)計(jì)的集成分類器的與單獨(dú)的分類器相比可以有效的提高手勢(shì)識(shí)別率2.57%。
本文通過(guò)HOG-PCA 選取最佳的特征維度,并利用人工蜂群算法將基分類器SVM,KNN,XGBoost 設(shè)置成一個(gè)更優(yōu)的集成分類器來(lái)進(jìn)一步提高手勢(shì)識(shí)別率,并且達(dá)到了預(yù)期的效果。但是集成分類器相比于單個(gè)分類器分類速度較慢,下一步的改進(jìn)方向是提高集成分類器的分類速度。