楊紅玲,宣士斌,莫愿斌
(廣西民族大學 信息科學與工程學院,廣西 南寧 530006)
近年來隨著科學技術的高速發展,人機交互的方式得到了很大改變,各種新型的人機交互方式不斷出現,鼠標鍵盤的交互方式變為觸摸屏與語音,交互形式變得多樣化、人性化。而更為高效的交互形式是讓機器能夠理解人的肢體語言,在各類肢體語言中手勢最為常見,可將它作為一種簡單、自由的人機交互手段。
基于手勢進行人機交互時,一個很重要的過程是對手勢進行識別。手勢識別時,首先提取手勢的特征,然后對所提取的特征根據有效的識別方法進行手勢識別。常見的手勢識別方式有很多,例如基于神經網絡的識別方法具有較強的識別分類能力,但是如果采用的神經網絡層數較淺,很容易出現過擬合現象[1-2];基于幾何特征的識別方法通過提取手勢結構、邊緣、輪廓等特征進行手勢識別,具有良好的穩定性,但是不能在提升樣本量的同時提升識別率[3-5];基于隱馬爾可夫模型的識別方法雖然具有描述手勢時空變化的能力,但識別速度卻不盡如人意[6]。隨著機器學習和深度學習在計算機視覺的迅速發展,基于機器學習和深度學習的方法得到了更多的關注。其中基于深度卷積神經網絡具有局部連接、權值共享、深度層次化結果、自動特征提取等特點,給手勢識別[7-8]帶來了新的思路。
因此針對手勢變化的復雜性,通過對比支持向量機、決策樹、隨機森林和鄰近算法在手勢識別中的特點和存在的問題,提出了一種基于深度卷積神經網絡的手勢識別方法。該方法提取手勢的骨架與邊緣相融合的特征圖,將特征圖作為深度卷積神經網絡的輸入,通過學習獲取分類手勢時的分類模型,實現手勢識別。
利用計算機代替人學習提高自身的處理問題的能力就是機器學習。隨著計算機技術的高速發展,使用機器學習的領域逐漸擴大,基于機器學習的方法已經在語音、圖像、文本、金融等領域取得了突破性進展。
文中通過對比常見的有監督學習算法,從中選擇最優的學習算法進行手勢識別。算法的輸入為采集得到的原始手勢圖像,將原始圖像通過濾波、去除噪聲等預處理后進行骨架與邊緣特征提取,獲取這兩種特征相融合的特征圖,然后將融合后的特征作為輸入,訓練支持向量機、決策樹、隨機森林和卷積神經網絡的手勢識別模型,通過對比選取最優的分類模型作為輸出來判斷手勢所代表的含義。具體算法流程如圖1所示。

圖1 手勢識別算法流程
由于手勢變化的復雜性,人們在進行手勢識別時更加關注手勢本身所代表的含義,而原始的手勢圖像中包含很多不必要的細節信息,從而增加了識別難度。為了增加手勢識別的準確率,減少計算的復雜度,將手勢的骨架特征與邊緣特征相融合作為手勢識別的輸入,以減少不必要的細節信息對手勢識別的干擾。
骨架作為手勢的一種表示形式,能夠保持手勢體的幾何、形狀、拓撲信息,能夠有效地描述手勢。因此,骨架能夠很好地描述手勢所代表的物理含義,可以將手勢骨架信息作為一類手勢識別的特征描述,手勢骨架提取結果如圖2(b)所示。
雖然單一的手勢骨架特征能夠很好地解釋手勢所代表的含義,但是在提取不準確或者一定的條件下,骨架特征信息會有一定的缺失。對此,進一步利用形態學算子提取手勢二值圖像的邊緣,獲取具有更好解釋效果的手勢邊緣圖像,然后將其手勢骨架圖像相結合作為卷積神經網絡的輸入,獲取更好的識別效果,融合結果如圖2(d)所示。

圖2 多特征融合效果圖
1.2.1 基于支持向量機的手勢識別
支持向量機是建立在VC維理論和結構風險最小原理基礎上的機器學習算法,能夠很好地解決非線性以及高維度識別的問題。由于手勢本身的復雜性,因此可以考慮將其引入到手勢識別,將融合后的特征圖像轉化為支持向量機訓練時所需要的一維特征向量并作為輸入,訓練獲取分類模型,進行手勢識別。
1.2.2 基于決策樹的手勢識別
決策樹學習是以實例樣本為基礎的歸納學習算法,可以從一組無次序、無規則的事例樣本中推理出決策樹所表示形式的分類器和預測模型,從而實現對未知數據樣本的分類或預測。文中采用ID3學習算法生成決策樹并進行剪枝,通過手勢融合特征圖像樣本訓練生成決策樹模型進行手勢預測。在利用決策樹生成算法對手勢進行識別時,由于獨特的樹形結構在預測時能減少識別時間,并且能夠直接體現數據的特點,因此具有一定的可信度,但是對于圖像數據來說,高維度的數據訓練存在分類識別精度的問題。
1.2.3 基于隨機森林的手勢識別
在機器學習中,隨機森林是一個包含多個決策樹的分類器,其輸出的類別由個別樹輸出的類別的眾數而定。隨機森林學習算法中每棵樹的訓練過程與決策樹類似,只是無需對決策樹進行剪枝。并且數據樣本和特征選擇是一個隨機過程,每棵樹的具體構造如下:
(1)用N表示訓練樣本的個數,M表示圖像轉化為一維數據結構作為訓練的特征;
(2)從N個訓練樣本中采用又放回的抽樣方式,取樣N次,形成一組訓練集;
(3)對抽取的樣本,隨機選擇m個特征(m?M),計算其最佳的分割方式,訓練生成一棵決策樹;
(4)選取20個數據集進行訓練,每棵樹都會完整地成長而不會剪枝。
利用隨機森林算法對手勢進行識別時,由于結果需要根據多棵樹輸出的眾數而定,因此相對決策樹分類來說,精確度會有一定的提升,但是由于多棵樹的預測,時間將會增加。
1.2.4 基于卷積神經網絡的手勢識別
隨著深度學習的快速發展,卷積神經網絡已經在語音識別[9]、手寫字體識別[10]、車牌識別[11]、人臉識別[12]等領域得到了廣泛的應用,其高效的識別精度和速度對手勢識別也具有一定的促進作用。因此可以采用基于深度學習的方法來進行手勢識別。
卷積神經網絡(CNN)具有三個最基本的特征[13]:局部連接、權值共享和下采樣。通過局部連接和權值共享減少訓練參數,通過下采樣提升模型的魯棒性,減少訓練參數。因此根據卷積神經網絡的特征,其一般包含兩個特殊的網絡神經元層:卷積層和下采樣層。由于文中的分類任務較為簡單,因此基于AlexNet的網絡結構進行精簡,具體的網絡結構如圖3所示。
圖3 手勢識別的卷積神經網絡結構
該結構共有6層,Input Layer為輸入層,具體為64×64的手勢特征融合圖像,Layer1-Layer3為卷積層,Layer4-Layer5為全連接層,Layer6 Output為輸出層,輸出層神經元有3個,分別代表手勢類別:石頭、剪刀、布。卷積核和各偏置等參數的初始值均隨機產生,輸入樣本后通過前向傳播和反向傳播算法對網絡進行訓練來更新參數。
卷積濾波實質就是用卷積核在圖像矩陣中滑動遍歷,卷積核與圖像上相對位置的元素作乘積,將所得結果相加得到一個結果值,最后通過激活函數獲得卷積結果。當卷積核滑動遍歷整張圖像,結束特征提取,獲取一個新的圖像特征矩陣(feature map)。同時卷積核滑動的步幅也和最后獲取的特征矩陣存在以下關系:
(1)
f(x)=max(0,x)
(2)
W2=(W1-F+2P)/S+1
(3)
H2=(H1-F+2P)/S+1
(4)
式1為卷積計算,式2為激活函數,式3和式4為卷積變化。其中,xi,j為圖像的第i行第j列元素,wm,n為卷積核中第m行第n列權重,wb為卷積核的偏置項;f為激活函數,即relu函數;W2為卷積后feature map的寬度,W1為卷積前圖像的寬度,F為filter的寬度,P為Zero Padding數量,Zero Padding是指在原始圖像周圍補幾圈0,如果值是1,那么就補1圈0,S為步幅;H2為卷積后Feature Map的高度,H1為卷積前圖像的寬度。
卷積濾波后再通過下采樣圖像特征矩陣進行降維,減少計算量,同時避免特征過多導致出現過擬合,增強網絡結構對位移的魯棒性。具體的卷積和下采樣計算如下所示:
(5)
其中,ai,j為卷積后的第i行第j列元素;P為下采樣函數,一般為MaxPoling或MeanPoling,文中采用MaxPoling。
對提出的方法在兩個數據庫上進行驗證,第一個數據庫是在室內場景采集的手勢圖像數據庫,通過普通的攝像頭拍攝不同環境、不同旋轉角度下的3種類別的手勢圖像各100張,用于算法性能的測試;第二個數據庫采用Thomas Moeslund’s Gesture Recognition Database。同時在兩個數據庫中對文中所涉及的手勢識別模型進行驗證,結果如表1所示。

表1 識別性能的比較(1)
可以看出,平均消耗時間上雖然隨機森林(RF)和決策樹(DT)比基于卷積神經網絡(CNN)的消耗時間過短,這是因為其獨特的樹形結構在分類過程中會減少算法的時間復雜度,但是在平均識別率上,CNN卻有著天然的優勢,而且其消耗時間也在可接受范圍之內;而SVM無論在消耗時間還是速度上都遜色于CNN,因此采用深度卷積神經網絡進行手勢識別可行。
為了更好地驗證卷積神經網絡訓練次數對手勢識別率和誤差的影響,從拍攝的各類手勢圖像中選取2 000個訓練樣本和100個測試樣本進行實驗,不同的訓練次數與手勢識別率和誤差的關系如圖4所示。

圖4 訓練次數與手勢識別率和誤差的關系
可以看出,訓練次數較少時,手勢的識別率較低,網絡需要訓練較多的次數才可以達到較好的識別效果。因為在訓練次數較低時,由于手勢的復雜性,并不能提取出具有高效分類的網絡參數,使得訓練誤差仍然很高,當訓練進行到一定程度時,網絡參數不會發生太大變化,誤差趨于穩定,網絡識別率的提高趨于穩定。
為進一步驗證文中算法的性能,與國內其他學者提出的算法進行比較,表2顯示了手勢樣本在不同方法下的識別率和時間消耗對比。

表2 識別性能的比較(2)
通過對比發現,文中算法獲取的識別率相對較高的原因在于將手勢圖像的骨架和邊緣的融合特征圖像作為卷積神經網絡的輸入,能夠描述手勢所代表的物理含義,從而獲得更好的識別效果。而且網絡結構更為簡單,從一定程度上減少了識別的消耗時間,從而實現快速準確的手勢識別。
針對手勢的復雜性,通過融合手勢的邊緣與骨架特征作為識別算法的輸入,提出基于卷積神經網絡的手勢識別方法。實驗結果表明,基于卷積神經網絡的手勢識別具有較高的準確率,并且識別速度也在可接受范圍之內。下一步將通過改進網絡結構進一步提高手勢識別的速度,實現復雜環境下動態的手勢識別。