贠衛(wèi)國(guó),史其琦,王 民
(西安建筑科技大學(xué) 信息與控制工程學(xué)院, 陜西 西安 710055)
由于手語特征具有多樣性,因此在以計(jì)算機(jī)作為輔助的手語識(shí)別其研究對(duì)象通常都是手勢(shì)圖像識(shí)別。手勢(shì)識(shí)別的關(guān)鍵是手勢(shì)提取,即從手勢(shì)圖像中挖掘出能夠部分或完全表達(dá)手勢(shì)的信息的如形狀上下文等基于形狀的[1];局部二值模式(Local Binary Patterns,LBP)等基于紋理的[2];傅里葉描述子等基于頻率特征的[3]等有意義的特征。由于手勢(shì)特征的類別多種多樣,為了提高手勢(shì)識(shí)別的準(zhǔn)確率將從2個(gè)方面入手[4]:(1) 手勢(shì)特征的提取。手勢(shì)特征的采集容易受環(huán)境影響從而造成手勢(shì)的幾何特征和紋理特征有較大浮動(dòng),因此必須選用一些表達(dá)能力較強(qiáng)的特征來描述手勢(shì)特征[5]。(2) 識(shí)別分類器的選擇。例如,尚小晶等[6]提出一種基于改進(jìn)概率神經(jīng)網(wǎng)絡(luò)(Probabilistic Neural Network,PNN)的手勢(shì)動(dòng)作識(shí)別方法。吳健健等[7]提出一種基于多特征融合與支持向量機(jī)(Support Vector Machine,SVM)的手勢(shì)識(shí)別方法。
基于以上分析,本文提出了一種融合紋理特征、幾何特征和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)等特征進(jìn)行手勢(shì)識(shí)別的方法,并且將深度卷積神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Neural Network,DCNN)作為分類器引入到手語識(shí)別中,從而來提高手語的識(shí)別率,并將此方法應(yīng)用于建立的手語數(shù)據(jù)庫(kù)-“hand”數(shù)據(jù)庫(kù)中進(jìn)行。
手勢(shì)圖像的特征眾多,因此需要對(duì)手勢(shì)圖像進(jìn)行預(yù)處理。手勢(shì)圖像預(yù)處理的步驟如圖1所示,首先將手勢(shì)RGB圖像轉(zhuǎn)換為手勢(shì)灰度圖像從而消除顏色特征的影響;其次將灰度圖像轉(zhuǎn)換成二值圖像并選取二值圖像的前景部分作為手勢(shì)提取區(qū)域[8]。
LBP是描述手勢(shì)圖像紋理特征最常見的一種形式。LBP算子能夠從3×3大小的窗口中,比較中心點(diǎn)像素與相鄰點(diǎn)像素的灰度值[9]。LBP局部區(qū)域紋理計(jì)算方法如公式(1)所示:
(1)
圖1 手勢(shì)圖像預(yù)處理的步驟Fig.1 Gesture image preprocessing steps
手勢(shì)識(shí)別的算法流程圖如圖2 所示。
圖2 手勢(shì)識(shí)別的算法流程圖Fig.2 Gesture recognition algorithm flow chart
CNN具有2個(gè)最大的特點(diǎn):(1)局部連接性,圖像中距離越近的像素之間的影響也就越大;(2)權(quán)值共享性,圖像中區(qū)域間的權(quán)值是可以共享的[10]。概況的講,卷積層的計(jì)算方法就是根據(jù)公式(2):
conv=σ(imgMat*W+b),
(2)
圖3 多個(gè)卷積核運(yùn)算提取圖像特征Fig.3 Multiple convolution kernel operations to extract image features
式中:“σ”表示激活函數(shù);“imgMat”表示灰度圖像矩陣;“*”表示卷積操作;“W”表示卷積核;“b”表示偏置值。
圖3中我們分別使用了2個(gè)不同卷積核進(jìn)行卷積運(yùn)算從而提取圖像特征,得到了不同的圖像特征。實(shí)際中,我們會(huì)采用多個(gè)卷積核來提取圖像特征,進(jìn)而來進(jìn)行下一步的運(yùn)算。
Hu氏不變量是具有旋轉(zhuǎn)、平移、尺度不變性的量[11]。函數(shù)f(x,y)的二維Hu氏p、q階統(tǒng)計(jì)量定義如式(3)所示,式中p,q為非負(fù)整數(shù)。
(3)
考慮質(zhì)心(xc,yc)時(shí),則式(3)變成式(4):
(4)
平移不變性通過以上統(tǒng)計(jì)量結(jié)果得到,尺度不變性由公式(5)計(jì)算確保。
(5)
Hu氏不變量見式(6)~(12),這些特征量可以用來描述手勢(shì)圖像特征。
φ1=η20+η02,
(6)
(7)
φ3=(η30-3η12)2+(η03-3η21)2,
(8)
φ4=(η30+η12)2+(η03+η21)2,
(9)
φ5=(η30-η12)(η30+η12)[(η30+η12)2-3(η21+η03)2]+
(3η21-η03)(η21+η03)[3(η21+η30)2-(η21+η03)2],
(10)
φ6=(η20-η02)[(η30+η12)2-(η21+η03)2]+4η11(η30+η21)(η21+η03),
(11)
φ7=(3η21-η03)(η30+η12)[(η30+η12)2-3(η03+η12)2]+(3η21-η03)
(η03+η12)[3(η30+η12)2-(η03+η21)2].
(12)
在我們的實(shí)驗(yàn)中,為了滿足深度卷積神經(jīng)網(wǎng)絡(luò)的輸入,特征選取7個(gè)Hu不變量的絕對(duì)值的對(duì)數(shù)值。
灰度共生矩陣(Gray Level Cooccurrence Matrix,GLCM)用來反映手勢(shì)灰度圖像的相鄰像素之間的梯度信息量[4]。式(13)是灰度共生矩陣的計(jì)算公式:
(13)
式中:PGLCM(x,y)為歸一化后的GLCM值,GGLCM(x,y)為原GLCM值,L為GLCM級(jí)數(shù)。
對(duì)比度、逆差矩、能量、熵和相關(guān)性這5個(gè)量[12]的計(jì)算方法依次如式(14)~(18)所示。
(14)
(15)
(16)
(17)
(18)
傅里葉級(jí)數(shù)特征是一種常用的表示手勢(shì)輪廓的方法,傅里葉級(jí)數(shù)特征是將手勢(shì)輪廓變換到頻域上進(jìn)分析,其高頻部分可以清晰表達(dá)圖像的形狀紋理特征[13]。將預(yù)處理后的手勢(shì)邊緣圖像排序?yàn)樾蛄?x0,y0),(x1,y1),…,(xK-1,yK-1)。其中(x0,y0)是首坐標(biāo),K是范圍內(nèi)的點(diǎn)數(shù)。每個(gè)坐標(biāo)都是1個(gè)復(fù)數(shù)s(k)=x(k)+j(k) (k=1,2,…,K),對(duì)其進(jìn)行傅里葉變換可得到傅里葉系數(shù)a(u)(u=0,1,2,…,K-1):
(19)
手勢(shì)輪廓的傅里葉級(jí)數(shù)特征是a(u)傅里葉反變換。
(20)
深度卷積神經(jīng)網(wǎng)絡(luò)具有更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)以及更強(qiáng)大的特征學(xué)習(xí)和表達(dá)能力[14]。DCNN可以看作是一種機(jī)器學(xué)習(xí)和深度學(xué)習(xí)交叉的產(chǎn)物。1990年LeCun等[15]提出了使用梯度反向傳播算法訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)模型。本文將DCNN作為分類器應(yīng)用于手勢(shì)識(shí)別從而解決手勢(shì)識(shí)別問題。
深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)是由若干個(gè)單層卷積神經(jīng)網(wǎng)絡(luò)相互嵌套組成的,主要處理對(duì)象是二維輸入數(shù)據(jù),是一種監(jiān)督型深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)[16]。如圖4所示一種最常見的深度卷積神經(jīng)網(wǎng)絡(luò)模型,其由2個(gè)卷積層(C1、C2)、2個(gè)下采樣層(S1、S2)和1個(gè)全連接層堆疊而成。單層卷積神經(jīng)網(wǎng)絡(luò)的權(quán)值共享是通過約束神經(jīng)元來實(shí)現(xiàn)的。各網(wǎng)絡(luò)層的輸入和輸出都是由一組維度確定的特征向量來表示,有利于卷積運(yùn)算降低時(shí)耗。
圖4 深度卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)Fig.4 Deep convolutional neural network architecture
過擬合現(xiàn)象是訓(xùn)練中極易產(chǎn)生的現(xiàn)象,訓(xùn)練時(shí)若測(cè)試樣本過少,樣本參數(shù)可能會(huì)過度擬合訓(xùn)練數(shù)據(jù)集,這樣容易影響訓(xùn)練數(shù)據(jù)集的泛化性能,造成過擬合現(xiàn)象從而對(duì)測(cè)試樣本產(chǎn)生錯(cuò)誤的分類結(jié)果。為了削弱這種情況,本文采用“dropout”方法的深度卷積神經(jīng)網(wǎng)絡(luò)通過在訓(xùn)練過程中隨機(jī)地忽略隱含層中一定比例的節(jié)點(diǎn)響應(yīng),有效地提高了網(wǎng)絡(luò)的魯棒性。
本文中的手勢(shì)數(shù)據(jù)均由本課題組人員自行錄制,針對(duì)不同人以及不同背景下的手勢(shì)分別進(jìn)行了采集,并將手勢(shì)圖片保存成jgp格式,創(chuàng)建了“hand”數(shù)據(jù)庫(kù)。為了驗(yàn)證方法的有效性,我們?cè)凇癶and”數(shù)據(jù)庫(kù)中進(jìn)行試驗(yàn)。試驗(yàn)使用Lenovo筆記本電腦window 10系統(tǒng),MATLAB(R2016a版本)環(huán)境,處理器為英特爾Core i5-7300HQ @ 2.5GHz。
本文所建立的“hand”手勢(shì)數(shù)據(jù)庫(kù)由5 220個(gè)樣本構(gòu)成,讓15個(gè)不同的人把使用頻率較高的86個(gè)手語詞用攝像機(jī)采集數(shù)據(jù)。將所采集的手勢(shì)圖像統(tǒng)一調(diào)整成512×512(像素)大小,以方便進(jìn)行操作和處理,并按照手語詞對(duì)應(yīng)的意思為圖像文件命名,儲(chǔ)存在本地硬盤中以備程序調(diào)用和對(duì)比[17]。我們隨機(jī)選擇使用“hand”數(shù)據(jù)庫(kù)每個(gè)45張手勢(shì)圖像作為訓(xùn)練樣本,5張作為測(cè)試樣本。
將多特征進(jìn)行融合并采用不同的分類器進(jìn)行試驗(yàn)對(duì)比,其中類別數(shù)分別為100維LBP特征,7個(gè)Hu氏不變量,7層深度卷積神經(jīng)網(wǎng)絡(luò),10個(gè)灰度共生矩陣特征量,400維傅里葉特征,總特征維數(shù)為520維。
試驗(yàn)結(jié)果見表1。通過對(duì)比分析得出文獻(xiàn)[6]中的方法的識(shí)別率是最低的,說明PNN作為分類器的識(shí)別率最低,其識(shí)別效果最差,識(shí)別時(shí)間過長(zhǎng);文獻(xiàn)[7]中的方法識(shí)別率中等,SVM的識(shí)別效果高于PNN;本文方法采用的分類器DCNN識(shí)別率最高可以達(dá)到97.73%,識(shí)別效果最好且大幅縮短了識(shí)別時(shí)間。同時(shí)可以看出隨著特征融合的種類數(shù)的增多,其方法識(shí)別率隨之升高。
表1 “hand”數(shù)據(jù)庫(kù)試驗(yàn)結(jié)果Tab.1 “hand” database test result
本文提出了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的多特征融合的手勢(shì)識(shí)別算法,將深度卷積神經(jīng)網(wǎng)絡(luò)作為分類器融入到手勢(shì)識(shí)別中。伴隨著融合特征復(fù)雜度提高,“dropout”方法能夠在DCNN中避免過擬合現(xiàn)象,進(jìn)而有效地提高識(shí)別率,對(duì)比概率神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)作為分類器大幅縮短了識(shí)別時(shí)間,做到了高效分類。同時(shí)伴隨著深度卷積神經(jīng)網(wǎng)絡(luò)層數(shù)的增加,“dropout”方法能夠通過隨機(jī)忽略各網(wǎng)絡(luò)層中一定比例的節(jié)點(diǎn)響應(yīng),提高算法的魯棒性。