易靖國 程江華 庫錫樹
摘要:針對基于視覺的手勢識別技術(shù)對環(huán)境背景要求高的問題,提出了一種利用深度信息進(jìn)行手勢提取和識別的方法。該方法首先采用Kinect深度攝像頭提供的深度信息和HSV膚色信息分割出手掌區(qū)域,并通過映射獲得二維手掌區(qū)域的二值圖像;然后在二維手掌區(qū)域中采用形態(tài)學(xué)操作,對手勢圖像進(jìn)行處理;接著利用Hu矩對手勢特征進(jìn)行提取。最后采用BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)實現(xiàn)對數(shù)字手勢1到10的識別。實驗結(jié)果證明該方法可適應(yīng)復(fù)雜背景,且魯棒性和穩(wěn)定性都比一般的手勢識別方法好。
關(guān)鍵詞:Kinect 手勢識別 Hu矩 BP神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP391.9 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2016)09-0050-04
Abstract:In light of the problem of the high requirements of environment background in the gesture recognition based on vision, It presents a method of depth information in gesture extraction and recognition. Firstly, this method use the deep information provided by Kinects deep camera and HSV color information to segmented the palm region, and obtain a two-dimensional binary image of the palm region through mapping; Then, we can use morphological operations in the region of two-dimensional palm to processing with gesture images; And then using Hu moments to extract the features of the gesture. Finally, using BP(Back Propagation)neural network for the gesture recognition of digital 1-10. Experimental results demonstrate that the proposed method can be adapted to the complex background, and the robustness and stability are better than the common method of gesture recognition.
Key Words:Kinect;hand gesture recognition;Hu moment;BP neural network
1 引言
手勢具有直觀性、自然性等特點(diǎn),是實現(xiàn)人機(jī)自然交互的重要手段之一[1]。傳統(tǒng)基于數(shù)據(jù)手套的識別方法通過采集手部關(guān)節(jié)數(shù)據(jù)進(jìn)行手勢提取,構(gòu)成復(fù)雜且成本高昂。隨著計算機(jī)視覺技術(shù)的發(fā)展,基于視覺圖像手勢識別成為一種主流研究方向之一,但該類方法算法復(fù)雜,且易受光照、背景、攝像頭特性等多因素影響,識別率不高[2]。
近年來,基于深度圖像的手勢識別正成為人機(jī)交互領(lǐng)域中的一個研究和應(yīng)用熱點(diǎn)。該類方法能夠方便地實現(xiàn)前景與背景的有效分離,在目標(biāo)識別與追蹤方面有獨(dú)特的優(yōu)勢[3]。李思岑[4]等利用Kinect的深度攝像頭,通過中值濾波進(jìn)行手勢分割,并用Canny算子提取手勢輪廓,再以之間位置完成之間檢測,從而實現(xiàn)數(shù)字手勢1-5的識別。該方法能夠很好的解決手指的移動容易識別錯誤的問題,但隨著手勢數(shù)量的增加,造成深度方向可分辨性降低,影響最終的識別效果;羅元[5]等通過在Hu矩的基礎(chǔ)上加入3個表達(dá)式,使不變矩包含更多細(xì)節(jié)特征,從而應(yīng)用手勢對輪椅進(jìn)行控制,該方法有效地避免了復(fù)雜背景對操作者手勢指令的干擾,使其能方便的控制輪椅,但在識別階段應(yīng)用的模板匹配方法有時會出現(xiàn)相似模板的干擾,對操作者造成危險;Li[6]通過對不同閾值期間的像素進(jìn)行聚類分割手勢區(qū)域,并根據(jù)手指的名稱、個數(shù)以及夾角建立三層分類器對手勢進(jìn)行分類,結(jié)合Kinect對手部輪廓的采集。該算法具有較高的識別準(zhǔn)確率,但計算量大,不適合對實時性要求較高的手勢識別系統(tǒng)。
綜上所述,本文正是依據(jù)Kinect高效且廉價的硬件平臺,獲取的深度信息不受光照、背景等因素的影響,實現(xiàn)復(fù)雜背景下的手勢識別。本文結(jié)構(gòu)安排如下:第二節(jié)介紹手勢識別方法,第三節(jié)對實驗結(jié)果進(jìn)行匯總分析。
2 手勢識別方法
本文提出的基于深度圖像的手勢識別系統(tǒng)流程圖如圖1所示。本文首先利用Kinect采集獲取深度圖像,同時對采集到的深度數(shù)據(jù)進(jìn)行形態(tài)學(xué)處理并保留手勢的邊緣,然后對捕捉到的手部深度數(shù)據(jù)采用HSV膚色模型進(jìn)行分割,然后對分割出的手部進(jìn)行跟蹤,最后選擇具有目標(biāo)不變性的Hu矩進(jìn)行特征提取,最后將提取的特征輪廓帶入神經(jīng)網(wǎng)絡(luò)模型,完成最終的手勢識別,該方法能夠大大提高手勢識別系統(tǒng)的穩(wěn)定性和魯棒性。
2.1 手勢跟蹤
本文基于深度圖像信息對手勢區(qū)域進(jìn)行提取跟蹤,首先根據(jù)手心關(guān)節(jié)點(diǎn)的坐標(biāo)位置建立一個手部信息的矩陣盒,再將此矩陣盒內(nèi)的一個手心關(guān)節(jié)位置開始向鄰域逐個遍歷像素,檢測像素是否屬于手部區(qū)域,如果符合,即在二值圖像中置1,循環(huán)遍歷所有需要遍歷的鄰域像素,最后得到手掌區(qū)域的二值圖像。
2.2 圖像處理
Kinect使用過程中,通常所采集的深度圖像存在著一些噪聲和空洞,這些噪聲和空洞大多存在于目標(biāo)的邊緣。所以如果直接對獲取的深度圖像進(jìn)行特征提取,其提取特征的特征值變化可能較大,進(jìn)而影響識別算法的準(zhǔn)確性。所以,在對手勢進(jìn)行分割后,需要對分割出的手部圖像進(jìn)行噪聲的濾波與形態(tài)學(xué)處理,以此為后續(xù)識別準(zhǔn)確性的提高打下基礎(chǔ)。
2.2.1 濾波處理
常見的高斯濾波等方法算法簡單且方便,但其在減少圖像噪聲的同時,降噪后目標(biāo)的邊緣產(chǎn)生模糊效應(yīng),從而影響后續(xù)的工作。本文采用雙邊濾波算法,在保證了平滑效果的同時,又能做到對邊緣信息很好的保存。
2.2.2 圖像形態(tài)學(xué)處理
圖形形態(tài)學(xué)出處理包括開運(yùn)算、閉運(yùn)算、膨脹、腐蝕和形態(tài)學(xué)梯度等操作,他們能夠消除噪聲、填充空洞。本文針對獲取的深度圖像含有很多空洞的情況,決定采用膨脹和腐蝕搭配使用以有效地填補(bǔ)凹洞與消除凸包。
2.3 手勢分割
由手勢識別流程圖可以看出,手勢的分割是后續(xù)處理的基礎(chǔ)和關(guān)鍵。本文在膚色檢測的基礎(chǔ)上利用深度信息實現(xiàn)手勢區(qū)域的提取,在分割的過程中,首先利用場景深度信息劃分出有效子空間,然后在該空間內(nèi)進(jìn)行膚色分割。Kinect在獲取深度圖像的同時,還獲得了基于RGB顏色空間的彩色圖像。雖然RGB、HSV和YCrCb色彩模型均可用于膚色檢測,但在應(yīng)對光照、場景環(huán)境以及膚色色度等干擾因素的變化時,HSV色彩空間進(jìn)行膚色分割的性能要明顯的由于另外兩種色彩空間。在HSV顏色空間中,其分量能過很好地反應(yīng)膚色。為了實現(xiàn)后續(xù)對手勢輪廓的有效檢測,本研究通過把Kinect或得的RGB顏色空間的彩色圖像變換到HSV顏色空間,采用基于膚色模型的去噪方法獲得準(zhǔn)確的手勢二值圖像。
(2)將分量設(shè)置閾值,在中進(jìn)行閾值判斷。若中任一點(diǎn)的分量值在范圍內(nèi),則將對應(yīng)的點(diǎn)得二值圖像的像素值賦值為1,否則賦值為0,通常取值0.03—0.123。
2.4 特征提取
手勢識別的過程是一個實時的過程,對用戶的動作要求迅速響應(yīng),這決定了復(fù)雜的特征提取方法對實時手勢識別系統(tǒng)并不適用。在手勢信息采集的過程中,用戶距離攝像頭的位置、不同用戶手形的區(qū)別、手勢的位置、姿態(tài)均會有一些變化。本文選擇的具有目標(biāo)不變性的特征提取方式為Hu矩,此方法具有良好的特征,不僅能對不同的手勢進(jìn)行有效區(qū)分,而且能適應(yīng)環(huán)境的改變不同用戶手形的差異和同種手勢的姿態(tài)變化,且特征具備旋轉(zhuǎn)、平移、縮放的不變性。
本文利用Hu矩對十種數(shù)字手勢進(jìn)行特征提取,十種手勢如圖2所示:
2.5 BP神經(jīng)網(wǎng)絡(luò)的手勢識別
手勢識別使用的三層BP網(wǎng)絡(luò)的結(jié)果如圖3所示,它包含一個輸入層、一個隱含層和一個輸出層。
實現(xiàn)BP神經(jīng)網(wǎng)路的第一步就是要選定合適的網(wǎng)絡(luò),并設(shè)立合理的參數(shù)。根據(jù)系統(tǒng)模型,本文采用的行為表示特征為Hu矩,表示一個手勢需要7個維向量輸入層節(jié)點(diǎn)數(shù)目為7,將最小均方誤差設(shè)為 0.01。而輸出層的神經(jīng)元節(jié)點(diǎn)數(shù)對應(yīng)輸出向量的某一維,每一個輸出向量代表著一個樣本識別結(jié)果,本文共有10種手勢需要識別,所以選擇輸出層節(jié)點(diǎn)數(shù)為10。表1列出了十種待識別手勢行為的輸出向量。
隱含層神經(jīng)元節(jié)點(diǎn)數(shù)目的選取對BP神經(jīng)網(wǎng)絡(luò)的性能至關(guān)重要。目前隱層節(jié)點(diǎn)數(shù)目的選擇沒有有效的準(zhǔn)確的確認(rèn)方法,大多數(shù)都是依靠經(jīng)驗嘗試的方法來估計隱含層節(jié)點(diǎn)數(shù)目[9],但在估計的過程也可采用隱含層節(jié)點(diǎn)公式(10)進(jìn)行參考。
其中h為隱含層節(jié)點(diǎn)數(shù)目,i為輸入層節(jié)點(diǎn)數(shù)目,o表示輸出層節(jié)點(diǎn)數(shù)目,a為一個1-10之間的常數(shù)。根據(jù)上述公式計算,隱含層節(jié)點(diǎn)數(shù)目可取范圍在5-14之間,加上分析不同隱含層數(shù)目是網(wǎng)絡(luò)訓(xùn)練效果,最終選定隱含層神經(jīng)元節(jié)點(diǎn)數(shù)目為9個。
輸入手勢樣本,每個樣本含有7個Hu矩特征值為輸入層輸入值,通過權(quán)值和閾值計算調(diào)整,系統(tǒng)收斂,使網(wǎng)絡(luò)趨于穩(wěn)定。因為BP神經(jīng)網(wǎng)絡(luò)是采用梯度修正法來對權(quán)值和閾值進(jìn)行學(xué)習(xí),僅考慮預(yù)測誤差的負(fù)梯度方向,未添加先前積累的數(shù)值,造成收斂速度緩慢。利用附加動量因子的方法來調(diào)節(jié)權(quán)值,權(quán)值的變化量是由當(dāng)前誤差曲面的負(fù)梯度的變化量與前面一次迭代修正所采納的權(quán)值變化量的比例求和得到,其公式為:
(11)
3 實驗結(jié)果與分析
本文的實驗環(huán)境采用Kinect第二代傳感器作為硬件,攝像頭的分辨率為彩色1080P,運(yùn)行環(huán)境為Window10,Visual Studio 2013,開發(fā)語言為C++,在測試系統(tǒng)時,每個手勢采用五幅圖像數(shù)據(jù)進(jìn)行擴(kuò)展,由于Hu矩的旋轉(zhuǎn)、縮放、平移不變形,分別將原圖像放大1.2倍,縮小0.8倍,旋轉(zhuǎn)270度和90度得到200幅新的樣本數(shù)據(jù),最終選擇200幅圖像進(jìn)行訓(xùn)練,50幅圖像用于測試識別。
表2為最終的實驗數(shù)據(jù)結(jié)果,由此可得出基于Hu矩特征的描述方法對本文研究的十種手勢具有良好的描述效果,利用提取出的特征手勢可以由BP神經(jīng)網(wǎng)絡(luò)進(jìn)行爭取的識別。
4 結(jié)語
本文利用膚色在HSV顏色空間中H分量具有較好的區(qū)分膚色的特性,結(jié)合背景模型,有效的解決了復(fù)雜背景下類膚色的干擾。在特征提取方面運(yùn)用Hu矩對手勢特征進(jìn)行提取,有效的對不同手勢進(jìn)行區(qū)分而能適應(yīng)環(huán)境的改變、不同用戶手形的差異和同種手勢的姿態(tài)變化,結(jié)合訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)手勢識別系統(tǒng),可以運(yùn)用于智能控制中的實時系統(tǒng)。
參考文獻(xiàn)
[1]Attila L, Tamas S. User-adaptive hand gesture recognition system with interactive training[J]. Image and Vision Computing,2005,23(12):1102-1114.
[2]周航.基于計算機(jī)視覺的手勢識別系統(tǒng)研究[D].北京:北京交通大學(xué),2007.
[3]毛雁明,黃立亮.基于Kinect深度信息的手勢分割與識別[J].系統(tǒng)仿真學(xué)報,2015,27(4),830-835.
[4]李思岑,王平,張鵬等.基于Kinect深度圖像信息的手勢跟蹤與識別[J].微型機(jī)與應(yīng)用,2015,34(6),53-55.
[5]羅元,謝彧,張毅.基于Kinect傳感器的智能輪椅手勢控制系統(tǒng)的設(shè)計與實現(xiàn)[J].機(jī)器人,2012, 34(1):110-114.
[6]Li Yi. Hand gesture recognition using Kinect[C]. Proceedings of 2012 IEEE 3rd International Conference on Software Engineering and Service Science, 2012: 1996-199.
[7]Ionescu D, Suse V, Gadea C, et al. An infrared-based depth camera for gesture-baswd control of virtual environments[C]. IEEE International Conference,2013:13-18.
[8]M Hu. Visual pattern recognition by moment invariants[J].IEEE Transaction on Information Theory,1962.8(2):179-187.
[9]高雅靜.人機(jī)交互中的手勢識別技術(shù)研究[D].西安電子科技大學(xué),2013.