呂華富
(四川大學計算機學院,成都 610065)
手勢是人類除語言外最為自然的交流方式之一。隨著科學技術的不斷發(fā)展,尤其使無人機、虛擬現(xiàn)實等技術的發(fā)展,人通過手勢來進行人機交互的需求也在不斷增長。較成熟的手勢識別系統(tǒng)已經開始應用于很多領域,如體感游戲、智能電視、醫(yī)療設備、手語識別和機器人控制等[1-3]。因此,對手勢識別的研究有著重要意義。
手勢識別的流程分為檢測分割、分析和識別三個主要階段。檢測分割階段主要進行手勢檢測和分割,分析階段主要完成特征檢測的任務,識別階段完成特征提取和手勢識別任務?,F(xiàn)有手勢識別方法中在分析和識別階段需要人工提取特征來完成手勢識別任務,分類器上多使用SVM[4]、人工神經網絡[5]以及隱馬爾科夫模型[6]。而在近年來,隨著深度學習快速發(fā)展,卷積神經網絡網絡逐漸成為圖像分類領域中最熱門的算法。其中很重要的一個原因是它的特征學習能力使得特征識別突破了需要人工設計的局限,使其具有了一定的通用性。
基于卷積神經網絡的優(yōu)點,本文采用其來完成手勢識別任務,并在公開的ThomasMoeslund手勢識別數(shù)據集[7]上做實驗分析。
在ThomasMoeslund手勢識別數(shù)據集中包含24種未處理的靜態(tài)手勢圖像。圖1展示了24種待識別手勢的實例圖像??梢钥吹剿惺謩荼尘熬鶠榫|的黑色。為了驗證網絡的性能,本文中將數(shù)據集劃分為1440張(約70%)和600張(約30%)兩部分,分別作為訓練集和測試集。
圖1
手勢分割的過程如下:
原始圖像是248×256的灰度圖。第一步將灰度圖轉換為二值圖。這個二值圖通過在原始圖像上設置125灰度的閾值得到,其中大于閾值的部分值為1,其余值為0。通過嘗試發(fā)現(xiàn)這個閾值可以很好地在這個數(shù)據集中區(qū)分黑色背景和手勢部分。第二步對二值圖像進行形態(tài)學處理。首先采用8×8的結構元素對二值圖進行膨脹,然后對二值圖進行填孔,最后采用3×3的結構元素對二值圖進行腐蝕。第三步定位手勢位置并在原始圖像中將手勢分割出來。通過跟蹤最大白色像素區(qū)域的邊界,確定手勢區(qū)域并于矩形的方式在原始圖像相同位置提取像素。
隨機選取的部分分割好的手勢圖像實例如圖2所示。觀察圖片可以發(fā)現(xiàn)分割好的手勢圖像中手勢信息保存完整,而且由于是單一背景并不需要再對背景進行處理。為了節(jié)約計算資源和卷積神經網絡訓練的時間,統(tǒng)一通過模式平均技術將分割圖像調整大小到64×64。
圖2
第1節(jié)中描述了訓練本文網絡所用的數(shù)據。訓練集包含1440張64×64像素的已經分割處理好的手勢圖像。實驗在Win10環(huán)境下進行,實驗計算機配置采用英特爾(Intel)i5處理器、內存8G,所有程序均使用MATLAB編寫并在MATLAB 2017b環(huán)境下運行。下面將展示卷積神經網絡的結構和訓練過程。
網絡輸入是64×64手勢圖像。訓練的卷積神經網絡包含3個卷積層。其結構描述如下:
第一個卷積層:先對原圖進行一圈零填充,然后使用3×3的卷積核對64×64的原始圖像進行卷積操作,得到16張64×64的卷積特征圖。接著使用2×2的池化窗口對卷積特征圖進行最大值池化操作,得到16張32×32的特征圖。
第二個卷積層:先對輸入特征圖進行一圈零填充,然后使用3×3的卷積核進行卷積操作,每個得到32張32×32的卷積特征圖。接著使用2×2的池化窗口對卷積特征圖進行最大值池化操作,每個得到32張16×16的特征圖。
第三個卷積層:先對輸入特征圖進行一圈零填充,然后使用3×3的卷積核進行卷積操作,每個得到64張32×32的卷積特征圖。接著使用2×2的池化窗口對卷積特征圖進行最大值池化操作,每個得到32張16×16的特征圖。
輸出層和最后一層卷積層通過全連接的方式進行連接。考慮到待識別的手勢種類是24,最后的輸出層包含24個神經元。表1和圖3分別展示了卷積神經網絡的一些具體參數(shù)和學習曲線。
表1
圖3
首先在測試集上測試訓練好的卷積神經網絡。然后在使用未進行訓練的測試集來進行測試,以此來驗證網絡的泛化能力。網絡性能的好壞通過通用識別準確率來進行衡量。識別準確率定義為:
表2展示了在測試集和訓練集上手勢的識別準確率。觀察結果可以看到訓練好的網絡不僅在訓練集上識別準確率高達99.86%,在測試集上識別準確率也高達98.67%。
表3展示了本文結果與一些在此數(shù)據集上的早期工作的對比??梢钥吹奖疚氖褂梅椒ㄔ赥homasMoes?lund手勢識別數(shù)據集上識別相同種類數(shù)量的手勢取得了更高的識別準確率。本文的結果展示了在盡量保存原始手勢信息的情況下,選用合理結構的卷積神經網絡來識別靜態(tài)手勢可以取得更高的識別準確率。
后采用形態(tài)學處理保證手勢的完整性。通過判斷處理后的二值圖像中最大連通區(qū)域定位手勢在原始圖像中的位置,并在原圖像中分割出完整的手勢。通過以上操作得到了包含完整手勢信息的手勢圖像的同時也極大地減少了多余背景對于手勢分類的影響。使用測試集手勢圖像再使用訓練集訓練的卷積神經網絡上進行識別得到98.67%的識別準確率。本文也存在比較明顯的缺點,那就是本文的高識別準確率是在背景單一的數(shù)據集上獲得的。今后的研究可選取更加復雜的數(shù)據集,考慮更多的環(huán)境因素的影響,獲取一個泛化能力更強的網絡模型。
本文采用基于膚色的方法將手勢圖像二值化,然
表2
表3
參考文獻:
[1]孫麗娟,張立材,郭彩龍.基于視覺的手勢識別技術.計算機技術與發(fā)展,2008,18(10):214–216.
[2]易靖國,程江華,庫錫樹.視覺手勢識別綜述.計算機科學,2016,43(6A):103-108.
[3]李勇,高文,姚鴻勛.基于顏色手套的中國手指語字母的動靜態(tài)識別.計算機工程與應用,2002,17:55-58.
[4]Sultana A,Rajapuspha T.Vision Based Gesture Recognition for Alphabetical Hand Gestures Using the SVM Classifier.Int J Comput Science and Engineering Technology,2012,3(7):218-223.
[5]Yewale SK,Bharne PK.Hand Gesture Recognition Using Different Algorithms Based on Artificial Neural Network.In:2011 International Conference on Emerging Trends in Networks and Computer Communications(ETNCC),22-24 April2011,Udaipur,pp(2011):287-292.
[6]ZakiM.M.,Shaheen S.I.Sign Language Recognition Using a Combination ofNew Vision Based Features,Pattern Recognition Letters,Vol.32,Issue 4,1Mar2011:572-577.
[7]Thomas Moeslund's Gesture Recognition Database-PRIMA.http://www-prima.inrialpes.fr/FGnet/data/12-MoeslundGesture/database.htm l.
[8]Nguyen T-N,Huynh H-H,Meunier J.Static Hand Gesture Recognition Using Principal Component Analysis Combined with Artificial Neural Network.JAutom Control Eng,2015,3(1):40-45.
[9]OKOyedotun.,A Khashman.Deep Learning In Vision-based Static Hand Gesture Recognition.Neural Comput&Applic,2016,28(12).