吳彩芳,謝 鈞,俞 璐
(1.解放軍理工大學 指揮信息系統學院,江蘇 南京 210007;2.解放軍理工大學 通信工程學院,江蘇 南京 210007)
表1 手型原圖的識別率
基于骨骼和深度信息的手勢識別的研究與應用
吳彩芳1,謝 鈞1,俞 璐2
(1.解放軍理工大學 指揮信息系統學院,江蘇 南京 210007;2.解放軍理工大學 通信工程學院,江蘇 南京 210007)
文中研究了基于Kinect的手勢識別技術,設計并實現了一個功能完善、性能優越的小型手勢交互系統。首先結合Kinect獲取的人體骨骼信息和深度信息,實現了手部的追蹤和提取,并且實驗效果不受實驗背景、光線、實驗者的膚色和服裝的影響。然后根據初步獲取的手型二值圖噪聲分布特點,提出一種過濾小規模連通分量像素點的方法對二值圖進行去噪。最后,分別以手型二值圖Hu矩和手型輪廓二值圖Hu矩為特征,使用SVM分類器進行訓練和識別。實驗結果表明,同手型二值圖的Hu矩相比,以手型輪廓二值圖的Hu矩作為特征具有明顯優勢。
靜態手勢識別;手勢交互系統;Hu矩;支持向量機
手勢識別是通過提取手部數據特征,經過處理和分析,使得計算機能從這些數據中識別出手勢。手勢識別和人臉識別、語音識別、指紋識別等一樣,都是使計算機模擬人腦來識別自然環境中事物的技術。鼠標和鍵盤是目前廣泛使用的人操控計算機的設備,然而隨著科技的發展,出現了一些新的人機交互場景,傳統的鼠標鍵盤不能滿足它們的需求,手勢識別作為更加自然的人機交互方式逐漸被人們研究和應用。計算機通過識別手勢觸發相應的命令,可以用于大型交互界面的控制、電腦游戲手柄的替代、遠程操控機器人進行高精度作業、與3D虛擬環境的交互[1]等。
手勢識別通常分為靜態手勢識別和動態手勢識別兩種。靜態手勢識別是對靜態的手型進行識別,動態手勢識別是根據手的移動軌跡、速度對手所做出的動作進行識別。文中主要針對靜態手勢識別進行研究和應用。靜態手勢識別通常分為手部分割、手部跟蹤、特征提取、分類識別幾部分。傳統的獲取數據的方法有基于數據手套和基于計算機視覺信息兩種。使用數據手套的方法[2]雖然精度高,但是設備昂貴,使用舒適感欠佳,難以推廣,因此現在一般都采用基于計算機視覺的方法獲取數據[3]。手部分割是將手從背景中分離出來,通常有基于運動的分割方法、基于特殊顏色標記的分割方法、建立膚色模型進行膚色檢測法[4]、深度信息法[5]等。特征提取可以提取像素特征、統計特征、Hu矩特征、手指個數、指尖夾角、手指名稱、手指方向等特征[5]。分類識別主要有模板匹配法[6]、支持向量機(SVM)[7]、神經網絡法、隱馬爾可夫模型法[8]等。
文中使用微軟推出的Kinect體感設備進行手勢識別的研究和實現,首次結合使用Kinect骨骼信息和深度信息的提取并跟蹤手部,使得后續的手勢識別操作更加靈活。選取Hu矩作為靜態手勢的特征,Hu矩因兼具旋轉不變性、平移不變性、尺度不變性等特點而被廣泛用于手勢識別的研究中。選取SVM分類器進行手勢分類識別。實驗對比了分別使用同一靜態手勢的手型Hu矩和手型輪廓Hu矩進行識別的效果,并分析原因。最后實現一個功能完善的小型手勢交互系統。
Kinect傳感器有兩個攝像頭和一個投影機,分別是彩色攝像頭、深度攝像頭和紅外投影機。紅外投影機發出激光,遇到物體反射回來被深度攝像頭接收,生成景深圖像,并且追蹤和提取出視野范圍內人的骨骼信息[9]。實驗所使用的Kinect2.0是微軟的第二代Kinect體感設備,深度攝像頭的可視范圍是距離攝像頭平面0.5 m到8 m之間的范圍,能夠檢測到的人體骨骼節點有25個,其中與實驗相關的節點有腕關節點、掌指關節點、食指指尖點和拇指指尖點。深度攝像頭每秒生成30幀景深圖像,景深圖像中每個像素點上的數值代表物體與Kinect攝像頭的距離,如果值為0,則表示該點處在視野范圍內沒有發現任何物體。Kinect追蹤并提取的人體骨骼關節點坐標信息中的Z坐標值是節點距攝像頭的距離。通過Kinect獲取的人體骨骼關節點信息可以定位到手的位置,根據骨骼關節點之間深度值的關系設定深度閾值,提取出手部像素點。
1.1 手部追蹤與提取
進行手勢識別時,實驗者位于Kinect體感設備正前方0.5 m到8 m之間的范圍內,面向攝像頭,確保身體前方沒有遮擋物,伸出一只手,Kinect獲取實驗者伸出的手的腕關節點、掌指關節點、食指指尖點和拇指指尖點的深度值,取其中的最大值賦值給max,最小值賦值給min。將Kinect獲取到的深度圖像通過以下方法轉化為二值圖像:深度值在閾值范圍[min-a,max]內的像素點的灰度值置為1,其他像素點的灰度值置為0。a是使該閾值范圍剛好囊括所有手部像素點的最小值。實驗結果表明,a的值取10可以滿足上述要求。該二值圖像是一個粗糙的手型圖像,大部分的背景點是黑色,大部分的手部像素點是白色,二值圖中有一些噪聲點待處理。初步獲取的手部圖像如圖1左所示。
1.2 二值圖去噪
從圖1可以看出,通過深度閾值提取的手部像素點生成的二值圖主要存在的問題就是畫面中有些孤立的噪音點。這些誤把背景識別成手或是把手誤識成背景的像素點比較分散,分布沒有規律。由于圖片是二值圖,通常使用的均值濾波、中值濾波、高斯濾波等方法不適用這種情況。文中提出一種簡單實用的方法,可以很好地解決這種帶有離散噪音點的二值圖的去噪問題。
提取二值圖中的連通分量,使像素點個數小于100的連通分量被周圍像素點多的大連通分量吞并,即像素點個數小于100的小連通分量像素點的值置為包圍它的大連通分量像素點的值,返回生成的二值圖。生成的二值圖如圖1右所示。

圖1 初步提取的效果圖和二值圖去噪后的效果圖
1.3 手型輪廓提取
文獻[10]使用手型圖像Hu矩作為靜態手勢數據特征,文獻[11]使用手型輪廓Hu矩作為靜態手勢數據特征,兩篇文獻都使用了SVM分類器來識別手勢。為了探索使識別率最大化的數據特征,文中對同一靜態手勢分別用手型Hu矩和手型輪廓Hu矩做數據特征,用SVM分類器識別,對比識別效果并分析原因。下面進行手型輪廓提取。
假設集合C為手部的輪廓點集。指針s指向整幅圖片第一個掃描到的手部像素點。
(1)從上到下,從左到右依次掃描圖片像素點,掃描到第一個手部像素點后將指針s和p指向該點。
(2)從p上方像素點開始順時針掃描p周圍的8個像素點,直到遇到第一個手部像素點,用指針q指向該點,將p指針指向的點加入集合C中,p指針指向q指針指向的點。
(3)循環進行步驟2,直至p指針指向的點和s指針指向的點再次重合。返回集合C中的像素點。返回生成的輪廓圖如圖2所示。

圖2 手勢輪廓提取
1.4 特征提取
文中選取的數據特征是Hu矩。Hu矩主要表征了圖像區域的幾何特征,具有旋轉、平移、尺度不變性。Hu矩是由七個矩不變量組成的特征,這七個不變矩是由圖片的二階和三階的中心矩的線性組合構成的[12]。對于連續的圖像f(x,y)(≥0),p+q階幾何矩mpq定義為:
p+q階中心矩μpq定義為:


七個Hu不變矩的定義如下:
Φ1=η20+η02
Φ3=(η30-3η12)2+(3η21-μ03)2
Φ4=(η30+η12)2+(η21+μ03)2
Φ5=(η30-3η12)(η30+η12)[(η30+η12)2- 3(η21+η03)2)]+(3η21-η03)(η21+η30)[3(η12+η30)2-(η21+η03)2]
Φ6=(η20-η02)[(η30+η12)2-(η21+η03)2]+4η11(η30+η12)(η12+η03)
Φ7=(3η21-η03)(η30+η12)[(η30+η12)2- 3(η21+η03)2]-(η30-3η12)(η12+η03)[3(η30+η12)2-(η21+η03)2]
文中采用SVM作為手勢分類識別的工具。SVM是一種由統計學發展而來的機器學習方法。主要思想是通過一個非線性映射p,把樣本空間映射到一個高維乃至無窮維的特征空間中,使得在原來的樣本空間中非線性可分的問題轉化為在特征空間中線性可分的問題。對于分類、回歸等問題來說,很可能在低維樣本空間無法線性處理的樣本集,在高維特征空間中卻可以通過一個線性超平面實現線性劃分(或回歸)。一般的升維都會帶來計算的復雜化,而SVM應用核函數的展開定理巧妙地解決了這個難題,就不需要知道非線性映射的顯式表達式;由于是在高維特征空間中建立線性學習機,所以與線性模型相比,不但幾乎不增加計算的復雜性,而且在某種程度上避免了“維數災難”[13]。
實驗采用LIBSVM工具包。LIBSVM是臺灣大學林智仁教授等開發設計的一個簡單易用、快速有效的SVM模式識別與回歸的軟件包。該軟件對SVM所涉及的參數調節相對比較少,提供很多的默認參數,利用這些默認參數可以解決很多問題,并提供了交互檢驗的功能。該軟件可以解決C-SVM、v-SVM、ε-SVR和v-SVR等問題,包括基于一對一算法的多類模式識別問題[14]。
3.1 手勢識別實驗
實驗目的是對圖3所示的五種靜態手勢進行分類識別,并且應用于手勢交互系統中。實驗開發環境是Visual Studio 2012,編程語言使用C#,硬件設備使用Kinect for Windows2.0。

圖3 需要識別的手勢圖
為了完成實驗,編寫的程序依次完成如下功能:
(1)五種靜態手勢每種手勢讓不同的人來做,共做260次,使用Kinect記錄并生成260幅手型二值圖和260幅對應的手型輪廓二值圖。
(2)以每種手勢的前130張手型二值圖為訓練樣本,后130張手型二值圖為測試樣本,分別計算它們的Hu矩并按LIBSVM軟件包要求的格式生成訓練文件和測試文件。調用LIBSVM軟件包訓練SVM模型,并測試識別率。
(3)用同樣的方法使用手型輪廓二值圖Hu矩訓練模型并測試識別率。
3.2 實驗結果
使用手型二值圖Hu矩作為數據特征的總識別率Accuracy=65.68%。使用手型輪廓二值圖Hu矩作為數據特征的總識別率Accuracy=99.23%。手型識別率分別如表1和表2所示。
表1 手型原圖的識別率

表2 手型輪廓圖片的識別率

從上述實驗結果可以看出,用手型輪廓二值圖Hu矩做數據特征的識別率明顯比用手型二值圖Hu矩做數據特征的識別率高。出現這種差異的原因,是不同手勢的手型原圖中共同點較多,而不同手勢的手型輪廓共同點很少。手型原圖中手勢用手部的全部像素點表示,而手型輪廓圖中手勢只用手型的一圈外輪廓像素點表示。在手型原圖中,每種手勢的手掌部分面積占整個手型面積的一半以上,而手掌部分像素點是每種手勢的共同點;手型輪廓圖只保留了手型的外輪廓像素點,去掉了不同手勢相同的像素點,拉開了不同手勢之間的差異,因此用手型輪廓圖表示靜態手勢更具有代表性,使用手型輪廓Hu矩作為靜態手勢的數據特征進行識別的識別率更高。
接下來將使用手勢輪廓Hu矩訓練好的SVM模型,分類識別這五種手勢,據此實現一個功能完善的小型手勢交互系統。
3.3 手勢交互系統的實現
從上述實驗結果可以看出,已經做到了對上述五種手勢的分類識別。而且,調用Kinect體感設備的內置接口可以實現手勢的握拳和松拳的識別。利用這些條件,設計出一個手勢交互系統。該系統實現了鼠標的左鍵和中鍵的功能,實現了利用手勢遠程控制計算機上音樂播放器、視頻播放器、IE瀏覽器等常用的應用。與計算機交互時,操作人員只需站在Kinect視野范圍內,面向Kinect攝像頭,伸出手做上述的幾種手勢,即可遠程操控計算機上的應用。若做出某一手勢前計算機上相應的應用還未打開,則計算機做出回應,打開該應用;否則,計算機忽視該手勢命令。系統的工作流程圖如圖4所示。
分別讓10個人在10個不同的場景中測試該系統,每人每個手勢操作10次,記錄用手勢操控計算機的出錯率,結果如表3所示。

表3 手勢交互系統使用測試
通過測試結果可以看出,該手勢交互系統的魯棒性強,識別率與背景、光線等因素無關。使用手勢控制對計算機進行操作出錯次數少,出錯成本低,用戶使用的舒適度較好。用戶操作的空間范圍大,使用靈活。
文中提出一種結合Kinect獲取的骨骼信息和深度信息進行手勢分割和跟蹤的方法,以手勢輪廓Hu矩為數據特征,采用SVM分類器對五類靜態手勢進行分類識別,并且以該方法實現了一個功能完善的小型手勢交互系統。實驗結果表明,該方法識別率高、靈活性強,手勢交互系統魯棒性強、簡單實用。
雖然文中實現的手勢識別方法精度高,但是識別的手勢種類少,設計的手勢交互系統簡單,因此下一步將結合動態手勢識別,研究更復雜的手勢識別,實現功能更加豐富的手勢交互系統。Kinect體感設備提供了豐富的功能接口,手勢識別只使用了其中很少的一部分。除了可以識別人體骨骼,Kinect還提供了人臉識別、人眼跟蹤、語音識別、表情識別等功能接口,下一步可以結合這些接口開發出更加自然的人機交互系統。

圖4 手勢識別交互軟件的流程圖
[1] 翟 言.體感交互技術在大型沉浸式系統中的應用與研究[D].北京:北京林業大學,2014.
[2] 吳江琴,高 文,陳熙霖.基于數據手套輸入的漢語手指字母的識別[J].模式識別與人工智能,1999,12(1):74-78.
[3] Mitra S,Acharya T.Gesture recognition:a survey[J].IEEE Transactions on Systems,Man,and Cybernetics-Part C:Applications and Reviews,2007,37(3):311-324.
[4] 廖 赟.基于裸手的自然人機交互關鍵算法研究[D].昆明:云南大學,2012.
[5] Li Yi.Hand gesture recognition using Kinect[C]//Proceedings of 2012 IEEE 3rd international conference on software engineering and service science.[s.l.]:IEEE,2012:196-199.
[6] 李文杰.基于骨架化和模板匹配的交通指揮手勢識別[D].杭州:浙江工業大學,2011.
[7] 李云峰,胡文平.SVM多類分類算法及其在手寫體數字識別中的應用[J].物流工程與管理,2012(7):131-134.
[8] 洪 文,黃鳳崗,蘇 菡.基于連續隱馬爾科夫模型的步態識別[J].應用科技,2005,32(2):50-52.
[9] 余 淘.Kinect應用開發實戰:用最自然的方式與機器對話[M].北京:機械工業出版社,2012.
[10] 劉 云,甘志杰.基于Hu矩和支持向量機手完整性檢測算法及應用[J].計算機工程與應用,2008,44(30):223-225.
[11] Liu Yun,Yin Yanmin,Zhang Shujun.Hand gestures recognition based on Hu moments in interaction of virtual reality[C]//Proc of the intelligent human-machine systems and cybernetics.[s.l.]:[s.n.],2012:11-14.
[12] Huang Zhihu,Lecng Jinsong.Analysis of Hu’s moment invariants on image scaling and rotation[C]//Proc of 2010 2nd international conference on computer engineering and technology.[s.l.]:[s.n.],2012:476-478.
[13] Chang Chih-Chung,Hsu Chih-Wei,Lin Chih-Jen.The analysis of decomposition methods for support vector machines[J].IEEE Transactions on Neural Networks,2000,11(4):1003-1008.
[14] Chang Chih-Chung,Lin Chih-Jen.LIBSVM:a library for support vector machines[J].ACM Transactions on Intelligent Systems and Technology,2011,3(2):23-30.
Research and Application of Gesture Recognition Based on Information of Body Skeleton and Depth
WU Cai-fang1,XIE Jun1,YU Lu2
(1.School of Command Information System,PLA University of Science and Technology,Nanjing 210007,China;2.School of Communication Engineering,PLA University of Science and Technology,Nanjing 210007,China)
It explores the technology of gesture recognition based on Kinect in this paper,and designs and implements a small gesture interactive system with perfect function and excellent performance.At first,the Skeleton Information and Depth Information from Kinect is used to track and extract hand from the background.The result doesn’t be affected by the background,light,and experimenter’s skin color and costume.Then,according to the distribution of noise from preliminary acquisition in the binary images,a method of filtering the small scale connected component pixels is put forward to denoise.At last,Hu’s moments of hand binary images and hand contour binary images are used as features to train the Support Vector Machine (SVM) classifiers respectively.The experimental results show that compared with Hu’s moments of hand binary images,the Hu’s moments of the hand contour binary images have obvious advantages.
static gesture recognition;gesture interactive system;Hu’s moment;support vector machine
2015-09-17
2015-12-23
時間:2016-08-01
國家“863”高技術發展計劃項目(2012aa01a509,2012aa01a510)
吳彩芳(1991-),女,碩士研究生,研究方向為模式識別;謝 鈞,副教授,研究方向為智能信息處理;俞 璐,副教授,研究方向為計算機網絡。
http://www.cnki.net/kcms/detail/61.1450.TP.20160801.0842.002.html
TP391.4
A
1673-629X(2016)08-0200-05
10.3969/j.issn.1673-629X.2016.08.043