閆俊伢, 吳 迪, 滕 華
(1. 山西大學(xué)商務(wù)學(xué)院 信息學(xué)院, 山西 太原 030031; 2. 哈爾濱工程大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 黑龍江 哈爾濱 150001;3. 西華師范大學(xué) 計(jì)算機(jī)學(xué)院, 四川 南充 637009)
隨著人工智能技術(shù)的飛速發(fā)展,用于人機(jī)交互的手段也更加多樣化和智能化,手勢(shì)和語(yǔ)音作為人機(jī)交互的2種重要模式,得到了廣泛關(guān)注。簡(jiǎn)單的手勢(shì)作為人機(jī)交互方式使用已經(jīng)較為廣泛,但是,隨著交互功能性和手勢(shì)背景的復(fù)雜度增加,急需多種不同的手勢(shì)來(lái)實(shí)現(xiàn)交互功能,復(fù)雜手勢(shì)應(yīng)運(yùn)而生。復(fù)雜手勢(shì)的識(shí)別成為手勢(shì)交互方法在人工智能領(lǐng)域發(fā)展的最大挑戰(zhàn),復(fù)雜手勢(shì)的圖像特征提取及特征解析和分類成為手勢(shì)識(shí)別研究的關(guān)鍵問題[1]。
當(dāng)前,對(duì)于手勢(shì)識(shí)別的研究成果較多,特別是智能算法和深度學(xué)習(xí)的發(fā)展,為手勢(shì)特征的訓(xùn)練及分類提供了有力幫助。文獻(xiàn)[2]中通過(guò)深度學(xué)習(xí)算法來(lái)訓(xùn)練復(fù)雜背景下的手勢(shì)圖像,從而提高手勢(shì)圖像的識(shí)別效率。文獻(xiàn)[3]中采用深度視角傳感獲取手勢(shì)圖像數(shù)據(jù),以解決復(fù)雜手勢(shì)圖像樣本多視角提取的問題。文獻(xiàn)[4]中采用紅綠藍(lán)三通道圖像-深度圖像(RGB-D)法完成復(fù)雜背景下的手勢(shì)圖像分割,以提高復(fù)雜背景下的手勢(shì)輪廓及關(guān)鍵特征,這些方法從圖像特征提取、圖像數(shù)據(jù)訓(xùn)練解決復(fù)雜背景下的復(fù)雜手勢(shì)識(shí)別問題,在識(shí)別準(zhǔn)確率上均有所提升。作為一種特殊類型的神經(jīng)網(wǎng)絡(luò),深度卷積神經(jīng)網(wǎng)絡(luò)被認(rèn)為是學(xué)習(xí)圖像內(nèi)容的最佳技術(shù)之一,并且在圖像識(shí)別、分割、檢測(cè)和檢索相關(guān)任務(wù)方面顯示了最佳的效果。目前,大多數(shù)圖像處理競(jìng)賽的優(yōu)勝者都采用基于深度卷積神經(jīng)網(wǎng)絡(luò)模型。
本文中采用深度卷積神經(jīng)網(wǎng)絡(luò),并結(jié)合支持向量機(jī)(SVM)多類別分類算法(簡(jiǎn)稱本文算法)來(lái)實(shí)現(xiàn)復(fù)雜手勢(shì)的識(shí)別,以進(jìn)一步提高手勢(shì)識(shí)別的準(zhǔn)確度,解決大容量手勢(shì)樣本及多手勢(shì)種類的識(shí)別準(zhǔn)確率不高的問題。
手勢(shì)圖像的來(lái)源主要是通過(guò)攝像頭從不同角度獲取的圖像數(shù)據(jù)。一般比較簡(jiǎn)單的手勢(shì),只需要通過(guò)正面攝像頭便可以獲得圖像數(shù)據(jù),而復(fù)雜手勢(shì)必須通過(guò)不同攝像方位獲得圖像數(shù)據(jù)綜合判別其特點(diǎn)。從手部骨骼的輪廓及結(jié)構(gòu)作為主要特征來(lái)識(shí)別手勢(shì)。人手輪廓及關(guān)節(jié)如圖1所示[5]。
J1、 J2、 J3、 J4和J5分別為5個(gè)指尖關(guān)節(jié)輪廓,J6為腕關(guān)節(jié)輪廓。
靜態(tài)手勢(shì)特征的提取主要是根據(jù)5個(gè)手指指尖及手腕關(guān)節(jié)構(gòu)成的輪廓,以及5個(gè)手指的關(guān)節(jié)節(jié)點(diǎn),通過(guò)指尖數(shù)量、手指長(zhǎng)度、手勢(shì)輪廓周長(zhǎng)、手掌面積等來(lái)獲取手勢(shì)圖像特征??紤]到手勢(shì)圖像的背景及周邊環(huán)境和拍攝光線的影響,可以從不同角度來(lái)獲取手勢(shì)圖像,然后構(gòu)建人手輪廓及關(guān)節(jié)圖[6-7],最后根據(jù)多張圖片來(lái)提取手勢(shì)特征。而在動(dòng)態(tài)手勢(shì)特征提取時(shí),除了要根據(jù)手部輪廓和手關(guān)節(jié)分布結(jié)構(gòu)來(lái)獲取手勢(shì)特征外,還需要考慮到手的運(yùn)動(dòng)特點(diǎn),充分跟蹤手部運(yùn)動(dòng)時(shí)與攝像機(jī)的距離和角度,結(jié)合旋轉(zhuǎn)平移等方法來(lái)完成動(dòng)態(tài)手勢(shì)識(shí)別。
在手勢(shì)特征提取時(shí),還需要注意的一個(gè)問題就是手勢(shì)圖像去噪及二值化處理。去噪的過(guò)程一般采用濾波完成,通過(guò)高斯和中值濾波可以有效解決手掌輪廓邊緣提取的毛刺問題[7],并且可以處理手指與手指之間輪廓的不光滑問題,從而提高手勢(shì)圖像的純度,減少因噪聲累積迭代而引起的手勢(shì)識(shí)別錯(cuò)誤的問題。手勢(shì)特征的二值化處理主要根據(jù)手部和背景的顏色特點(diǎn),將手勢(shì)圖像提取出來(lái),合理設(shè)定手勢(shì)圖像及其背景分割閾值,提高手勢(shì)特征提取的準(zhǔn)確度。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)在基本神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行卷積和池化操作,將圖像樣本進(jìn)行處理后獲得特征圖,通過(guò)特征圖訓(xùn)練,減少了原始圖像樣本訓(xùn)練規(guī)模,提高了訓(xùn)練效率,但在輸出多類別情況下,需要經(jīng)過(guò)分類器處理。深度卷積神經(jīng)網(wǎng)絡(luò)處理流程如圖2所示。
圖2 深度卷積神經(jīng)網(wǎng)絡(luò)處理流程
設(shè)樣本集X=(x1,x2,…,xn),在第l層中對(duì)Mj個(gè)樣本特征圖進(jìn)行卷積運(yùn)算,
(1)
式中:l∈[1,n],為卷積神經(jīng)網(wǎng)絡(luò)的層序號(hào);j∈[1,Mj],為樣本特征圖的序號(hào);klj、blj分別為l層中給特征圖j賦予的權(quán)重及偏置; *為卷積運(yùn)算;f(·)的表達(dá)式[8]為
(2)
卷積操作對(duì)象為n個(gè)樣本的m個(gè)特征。卷積核尺寸為5×3和3×3經(jīng)過(guò)卷積運(yùn)算得到圖3所示的矩陣。
圖3 卷積運(yùn)算示意圖
設(shè)卷積核尺寸為h×w,池化方法有2種[9],分別是
(3)
(4)
其中式(3)為均值池化,式(4)為最大值池化,本文中選擇前者進(jìn)行池化操作。
令M=n/(h×w),樣本X=(x1,x2,…,xn)卷積池化后重新得到的樣本為
X=(x1,x2,…,xM)
。
(5)
然后,根據(jù)卷積池化后的樣本按照下式進(jìn)行轉(zhuǎn)換運(yùn)算:
(6)
限制條件為
∑aij=1, 0≤aij≤1
。
(7)
根據(jù)式(7)得到卷積神經(jīng)網(wǎng)絡(luò)的全連接層,然后選擇分類器預(yù)測(cè)樣本類別。
設(shè)第k個(gè)節(jié)點(diǎn)的訓(xùn)練輸出和實(shí)際標(biāo)簽分別為yk和dk,則誤差項(xiàng)δk[10]為
δk=(dk-yk)yk(1-yk)
。
(8)
假設(shè)第l、l+1層分別有L、M個(gè)節(jié)點(diǎn),則第l層節(jié)點(diǎn)j的誤差為
(9)
式中:hj為輸出;wjk為神經(jīng)元j到l+1層神經(jīng)元k的權(quán)重。
權(quán)重更新為
(10)
式中η為學(xué)習(xí)率。
偏置Δbk(n)的更新方式[11]為
(11)
式中α為偏置更新步長(zhǎng),一般α=1。
調(diào)整后的權(quán)重為
wjk(n+1)=wjk(n)+Δwjk(n)
,
(12)
調(diào)整后的閾值為
bk(n+1)=bk(n)+Δbk(n)
。
(13)
所有節(jié)點(diǎn)的誤差E為
(14)
當(dāng)E滿足設(shè)定的閾值時(shí),迭代停止,并得到穩(wěn)定的深度卷積神經(jīng)網(wǎng)絡(luò)模型。
根據(jù)式(6)計(jì)算得到全連接層的各個(gè)節(jié)點(diǎn)輸出值,采用SVM進(jìn)行分類。設(shè)輸入向量為X=(x1,x2,…,xn),經(jīng)過(guò)SVM映射[12],有
f(x)=sgn((W·X)+b)
,
(15)
式中: sgn()為單位階躍函數(shù);W、b分別為超平面的法向量和截距。
定義函數(shù)K(xi,xj)為SVM的映射函數(shù),本文中選擇單位階躍函數(shù)作為其核函數(shù)。那么式(15)可以轉(zhuǎn)變?yōu)榍蠼庾钚≈祮栴}[13],
(16)
根據(jù)對(duì)偶關(guān)系,可得
,
(17)
式中:yi、yj分別對(duì)應(yīng)樣本xi和xj;αi、αj分別為樣本xi和xj對(duì)應(yīng)的拉格朗日乘子。
計(jì)算式(17)得到
(18)
式(17)最終可以表示[14]為
(19)
手勢(shì)圖像經(jīng)過(guò)去噪處理后,獲得手勢(shì)圖像特征樣本,然后進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練,其主要流程如圖4所示。
圖4 手勢(shì)識(shí)別流程圖
以下通過(guò)實(shí)例仿真,驗(yàn)證卷積神經(jīng)網(wǎng)絡(luò)的SVM手勢(shì)識(shí)別分類效果。仿真數(shù)據(jù)來(lái)源分別為劍橋大學(xué)MSRC-12數(shù)據(jù)集,手勢(shì)圖像個(gè)數(shù)為6 244;ASL數(shù)據(jù)集樣本個(gè)數(shù)為6 650;Marcel數(shù)據(jù)集圖像樣本數(shù)為4 872, 樣本的訓(xùn)練和測(cè)試比例為3∶1。差異化設(shè)置卷積核尺寸和池化方法,充分驗(yàn)證卷積神經(jīng)網(wǎng)絡(luò)和SVM對(duì)手勢(shì)識(shí)別性能的影響,最后比較本文算法和常用的手勢(shì)識(shí)別算法[15]在MSRC-12、 ASL和Marcel這3個(gè)數(shù)據(jù)集的性能差異。設(shè)置η=0.01,池化方法初始化為最大值池化,卷積核初始為2×2。
3.1.1 識(shí)別準(zhǔn)確率
為了驗(yàn)證不同卷積核尺寸的手勢(shì)識(shí)別性能,差異化設(shè)置卷積核尺寸,運(yùn)用MATLAB軟件對(duì)3個(gè)不同數(shù)據(jù)集進(jìn)行仿真,結(jié)果如表1所示。
表1 不同卷積核尺寸的手勢(shì)識(shí)別準(zhǔn)確率
由表可以看出,卷積核尺寸對(duì)3種不同的手勢(shì)樣本數(shù)據(jù)集的識(shí)別準(zhǔn)確率影響較大,隨著卷積核尺寸的增大,手勢(shì)識(shí)別的平均準(zhǔn)確率逐漸降低,標(biāo)準(zhǔn)差增大,這可能是卷積核尺寸過(guò)大,對(duì)手勢(shì)圖像提取的粒度過(guò)大,漏掉了部分手勢(shì)重要特征的緣故。當(dāng)卷積核尺寸為2×2和3×3時(shí),兩者對(duì)手勢(shì)識(shí)別的準(zhǔn)確率差異較小,均表現(xiàn)出了良好的手勢(shì)識(shí)別準(zhǔn)確率,標(biāo)準(zhǔn)差也較小。相同卷積核尺寸的卷積神經(jīng)網(wǎng)絡(luò)對(duì)3種樣本的識(shí)別準(zhǔn)確率表現(xiàn)出了不同的性能,這主要是因?yàn)槭謩?shì)種類存在差異,手勢(shì)種類越多,相近的手勢(shì)特征也越多,導(dǎo)致分類的難度加大,容易造成手勢(shì)分類出現(xiàn)錯(cuò)誤,因此手勢(shì)種類的增加為手勢(shì)識(shí)別算法提出了更高要求。
3.1.2 不同卷積核的收斂時(shí)間
以下分別對(duì)卷積核尺寸為2×2、 3×3、 4×4和5×5的收斂性能進(jìn)行仿真,結(jié)果如表2所示。由表可以看出,卷積核尺寸越大,算法收斂越快,卷積核尺寸為5×5的收斂速度最快,卷積核尺寸為2×2的收斂速度最慢,這是因?yàn)橥ㄟ^(guò)最大池化,卷積核尺寸為5×5池化卷積后,參與訓(xùn)練的樣本變少,因此訓(xùn)練時(shí)間短。在實(shí)際操作中,可以綜合考量手勢(shì)識(shí)別準(zhǔn)確率和手勢(shì)識(shí)別時(shí)間,根據(jù)表1、 2的性能對(duì)比,本文中選擇的卷積核尺寸為3×3。
表2 不同卷積核的手勢(shì)識(shí)別收斂性能
在采用差異化卷積核尺寸對(duì)3種不同手勢(shì)數(shù)據(jù)集進(jìn)行識(shí)別性能分析時(shí),默認(rèn)選擇池化方法為最大值池化,現(xiàn)采用的卷積核尺寸分別用2種池化方法進(jìn)行性能仿真,結(jié)果見表3。由表可以看出,2種池化方法對(duì)3種不同數(shù)據(jù)集的手勢(shì)識(shí)別準(zhǔn)確率敏感度不強(qiáng),兩者準(zhǔn)確率差異較小,但是收斂時(shí)間差異較大,這是因?yàn)榍蠼饩当惹蠼庾畲笾敌枰馁M(fèi)更多的運(yùn)算時(shí)間,因此最大值池化法更適合于本文算法。
表3 不同池化方法的手勢(shì)識(shí)別準(zhǔn)確率和收斂時(shí)間
為了充分驗(yàn)證本文算法的手勢(shì)識(shí)別性能,采用常用手勢(shì)識(shí)別算法[15]和本文算法分別對(duì)MSRC-12樣本進(jìn)行手勢(shì)識(shí)別,結(jié)果見圖5。由圖可以看出,4種算法對(duì)MSRC-12手勢(shì)樣本的識(shí)別性能差異較大,決策樹算法的手勢(shì)識(shí)別準(zhǔn)確率約為0.6,本文算法的手勢(shì)識(shí)別準(zhǔn)確率超過(guò)了0.9。而在手勢(shì)識(shí)別時(shí)間方面,決策樹算法在30 s左右開始收斂,神經(jīng)網(wǎng)絡(luò)算法用時(shí)最久,超過(guò)50 s才開始收斂。綜上而言,本文算法的手勢(shì)識(shí)別準(zhǔn)確率性能最好,但識(shí)別時(shí)間優(yōu)勢(shì)不明顯。
圖5 不同算法的手勢(shì)識(shí)別性能
本文中將卷積神經(jīng)網(wǎng)絡(luò)和SVM分類相結(jié)合的方法用于手勢(shì)識(shí)別,通過(guò)合理設(shè)置卷積核尺寸和池化方法,可以獲得較好的手勢(shì)識(shí)別準(zhǔn)確率。下一步研究將在手勢(shì)識(shí)別時(shí)間方面進(jìn)行優(yōu)化,進(jìn)一步對(duì)卷積神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏置求解進(jìn)行優(yōu)化,以提高卷積神經(jīng)網(wǎng)絡(luò)的手勢(shì)識(shí)別效率,提高該算法在手勢(shì)識(shí)別方面的適用度。