譚臺(tái)哲,韓亞偉,邵 陽
(1.廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣東 廣州 510006;2.河源廣工大協(xié)同創(chuàng)新研究院,廣東 河源 517001)
近年來隨著科技的發(fā)展,人機(jī)交互廣泛應(yīng)用于人們的生活中,常見的人機(jī)交互如鼠標(biāo)、鍵盤等,但這種交互方式限制了交互的速度和自然性[1-3];而手作為人體結(jié)構(gòu)中最靈活的部分,能夠在人機(jī)交互中向電腦及其一些智能設(shè)備更加方便地傳遞信息。早期,人們通過穿戴一些傳感器對(duì)手部數(shù)據(jù)進(jìn)行采集進(jìn)而對(duì)手勢(shì)進(jìn)行識(shí)別,這樣就造成成本很高昂,不利于普及,而且穿戴很不方便。隨著攝像頭精度的提高,基于計(jì)算機(jī)視覺的手勢(shì)識(shí)別開始流行[4],國(guó)內(nèi)的一些高校和科研機(jī)構(gòu)也做了大量研究,例如,Ghosh D K等[5]提出了基于膚色分割和SVM的算法進(jìn)行手勢(shì)識(shí)別。因?yàn)槭植渴侨梭w最靈活的部位之一,各種動(dòng)作可以產(chǎn)生很大的扭曲性,為了保證魯棒性,Yimin Zhou等[6]提出了一種把手掌和手指分開并分別取特征的方式進(jìn)行手勢(shì)識(shí)別,常亞楠等[7]使用HMM進(jìn)行動(dòng)態(tài)的手勢(shì)識(shí)別,這些方法取得了不錯(cuò)的效果。然而,在手勢(shì)識(shí)別的過程中,手部動(dòng)作的采集受到光照、復(fù)雜背景、硬件特性的影響,識(shí)別準(zhǔn)確率不高,而且不同環(huán)境識(shí)別結(jié)果偏差比較大。隨著深度圖像的引進(jìn),研究人員通常在識(shí)別的過程中運(yùn)用彩色圖像信息與深度信息相結(jié)合的方法[8-11],蒲興成等[12]使用了改進(jìn)Hu矩算法的Kinect手勢(shì)識(shí)別,Zhaojie Ju等[13]提出了基于EMD距離和Lasso算法的深度圖像手勢(shì)識(shí)別,吳曉雨等[14]提出了基于深度人手定位和HOG特征的靜態(tài)手勢(shì)識(shí)別算法及基于改進(jìn)HMMs的動(dòng)態(tài)手勢(shì)識(shí)別算法。對(duì)比以上方法,現(xiàn)階段手勢(shì)識(shí)別的難度主要集中在:①復(fù)雜環(huán)境下的手勢(shì)分割問題;②手勢(shì)的旋轉(zhuǎn)不變性問題,方向不能固定;③復(fù)雜手勢(shì)的識(shí)別;④手掌與手腕的分割問題。針對(duì)這種情況,本文通過Kinect攝像頭采集到RGB-D深度圖像信息,采用一種基于手部參數(shù)的手勢(shì)識(shí)別算法,分割的過程中采用膚色分割和深度信息分割相結(jié)合的方式進(jìn)行。手勢(shì)特征提取過程中通過對(duì)圖像進(jìn)行卷積、閾值化和形態(tài)學(xué)處理得到手指部分的圖像信息,然后通過手掌質(zhì)心和手指質(zhì)心來保證手勢(shì)的旋轉(zhuǎn)不變形。最后在極坐標(biāo)下具體識(shí)別每個(gè)手指的具體角度位置和彎曲狀態(tài),這樣能夠克服前人使用的方法中出現(xiàn)的上述問題,達(dá)到更高的識(shí)別率、保證更強(qiáng)的魯棒性,并且能夠準(zhǔn)確地判別左右手信息。
本文采集深度圖像的時(shí)候選擇設(shè)備是Kinect,Kinect是由微軟公司開發(fā)的體感攝像機(jī),特別之處在于該攝像機(jī)有3個(gè)攝像頭,從左到右依次是紅外投影機(jī)、彩色攝像頭、紅外攝像頭。中間的彩色攝像頭是采集RGB圖像的,兩端兩個(gè)是通過發(fā)射/接收紅外線來提供深度數(shù)據(jù)。經(jīng)過實(shí)驗(yàn)可知,從Kinect中采集的深度圖像一般情況下是不穩(wěn)定的,存在很多的噪聲和空洞,而且邊緣深度值不穩(wěn)定,因此在進(jìn)行下一步識(shí)別之前要進(jìn)行一些濾波和形態(tài)學(xué)處理[14],采集設(shè)備如圖1所示。
圖1 Kinect設(shè)備
經(jīng)過中值濾波和形態(tài)學(xué)處理以后得到的深度圖像如圖2所示。
圖2 采集圖像信息
手勢(shì)分割是手勢(shì)提取中最重要的部分,只有手勢(shì)提取更加完整清晰才能為后續(xù)的識(shí)別提供更多的準(zhǔn)確的參數(shù)依據(jù)。本文使用膚色和深度信息相結(jié)合的方式進(jìn)行分割,首先根據(jù)膚色消除掉除人體以外的信息,這樣就能夠很好地去除前景及非人體部位干擾,然后對(duì)通過膚色分割后的深度圖像進(jìn)行進(jìn)一步處理,本文使用根據(jù)深度信息使用最大類間方差法與固定閾值相結(jié)合的方法,分割出手勢(shì)區(qū)域。
1.2.1 膚色分割
本文選擇在HSV空間采用改進(jìn)的高斯模型的方法進(jìn)行膚色檢測(cè)和膚色分割,首先要將RGB空間轉(zhuǎn)到HSV空間。高斯模型的基本原理是根據(jù)膚色分布的概率建立高斯模型。計(jì)算公式如下
D(Cb,Cr)=exp[-0.5(P-μ)TC-1(P-μ)]
(1)
其中,μ表示均值、C表示協(xié)方差,根據(jù)建立的模型計(jì)算待測(cè)矢量P(Cb,Cr)與膚色的相似度,對(duì)計(jì)算出的結(jié)果D進(jìn)行歸一化,然后進(jìn)行閾值化以后就能夠得到具有深度信息的膚色圖像的二值圖像。分割效果如圖3所示。
圖3 膚色分割
1.2.2 深度信息分割
從以往的研究成果和實(shí)驗(yàn)來看[14],當(dāng)手和身體部分距離較近或者手掌與攝像機(jī)平面不平行的時(shí)候,直接使用最近點(diǎn)灰度值和固定閾值結(jié)合來分割效果不好。
在這種情況下本文考慮使用最大類間方差法與固定閾值相結(jié)合的方法,分割出手勢(shì)區(qū)域。首先假設(shè)一個(gè)圖像中包含L個(gè)灰度級(jí),那么灰度值為i的像素點(diǎn)個(gè)數(shù)為Ni,一般而言灰度值為0的點(diǎn)被認(rèn)為是背景點(diǎn),所以一張圖像中人體部分總的像素點(diǎn)數(shù)為N=N1+N2+…NL-1,因此可以得到灰度值為i的概率為pi=Ni/N??梢约僭O(shè)閾值為t,通過閾值t把人體軀干部分和手的部分區(qū)分開來,軀干部分為A=(1,2,…,t),手勢(shì)部分為B=(t+1,t+2…L-1)。由上可得兩個(gè)部分出現(xiàn)的概率分別是
(2)
(3)
因此人體軀干部分和手勢(shì)部分的灰度均值為
(4)
而灰度圖像的總均值為
(5)
由上可以推出人體軀干部分和手勢(shì)部分的類間方差為
σ2=PA(wA-w0)2+PB(wB-w0)2
(6)
而上述所說的類間方差越大就表示手勢(shì)部分和軀干部分的灰度值差別越大,因此使得類間方差最大的t就是說要求的最佳閾值
(7)
由上面所得到的t,再通過實(shí)驗(yàn)設(shè)置一個(gè)閾值τ,可以很完整地分割出手部圖像
(8)
通過這兩種方法分割出的效果如圖4所示。
圖4 手勢(shì)分割
通過膚色分割和深度信息分割相結(jié)合的方式對(duì)圖像進(jìn)行分割,這樣能夠既能夠很好地去除前景和背景干擾,又能去除光照等影響。對(duì)比幾種算子效果,最終選擇使用最簡(jiǎn)單的Roberts算子檢測(cè)方法對(duì)分割后的圖像進(jìn)行邊緣檢測(cè)處理,得到圖像b,如圖5所示。
圖5 手勢(shì)邊界
為了得到更加準(zhǔn)確的數(shù)據(jù)信息,增強(qiáng)下一步手勢(shì)識(shí)別的魯棒性,本文利用特殊的卷積處理,去掉手掌部分,然后得到手指部分的圖像信息。卷積算子G模型如下[7]
(9)
首先,通過圖像的卷積處理,得到圖像b,其中Ib(x,y)=Ia(x,y)×G;
然后,對(duì)得到的圖像b進(jìn)行閾值處理,得到圖像c,其中
(10)
最后,對(duì)圖像c進(jìn)行形態(tài)學(xué)膨脹處理,得到圖像d。過程如圖6所示。
圖6 手指分割過程
從已知分割后的手部圖像a獲取圖像信息。設(shè)手勢(shì)二值分割圖像的質(zhì)心為Phc(x0,y0)
其中,x,y為圖像坐標(biāo),I(x,y)為在圖像在該坐標(biāo)下的灰度值。用上述同樣的方法,求圖像c手指部分的質(zhì)心Pfc。
由上面求得的手掌質(zhì)心和手指質(zhì)心可以得到整個(gè)手的方向
(12)
手勢(shì)建模圖,如圖7所示。
圖7 手勢(shì)建模
(13)
Pn可以認(rèn)為是第n個(gè)角度手指部分的面積[8],即角度在[θn,θn+1]范圍內(nèi),半徑在[r1,r2]范圍內(nèi),根據(jù)手部特征,一般可取r1=0.5Rp,r2=2.5Rp。根據(jù)手的形狀特征,一般手的曲張度在180度以內(nèi),因此取M值取180。然后對(duì)Pn進(jìn)行標(biāo)準(zhǔn)化,可得
(14)
按照積分的定義以及手指的分布特性,最終求得的Pn_norm中極大值中的最大的5個(gè)值所在的位置就是5個(gè)手指的角度位置。由上可以求得每一個(gè)手指部分的與0度之間的角度為θn,n=1,2,3,4,5。因此可以定義
θ=θn+1-θn,n=1,2,3,4,5
(15)
當(dāng)θ取最大值時(shí),如果θn≥90度,則表示右手,如果θn<90度時(shí),則表示左手,當(dāng)然這樣的判別僅限于常規(guī)手勢(shì),非常規(guī)手勢(shì)會(huì)有誤差。
在角度變化范圍內(nèi),因?yàn)橛缮闲畔⒖梢苑浅>唧w地得到5根手指所處的位置和角度信息,設(shè)指尖到腕部Pw的距離為Di,這樣根據(jù)手指的特性,可以很精確地判斷手指的彎曲和伸直狀態(tài)
(16)
通過以上方法,在常規(guī)手勢(shì)下可以準(zhǔn)確判斷手勢(shì)樣例是左手還是右手。而通過手指具有的特性可以判別出手指是彎曲還是伸直。
本文一共定義了0-5這6種手勢(shì),分別代表6種不同手指彎曲狀態(tài)。由于網(wǎng)絡(luò)上并沒有完全公開的手勢(shì)識(shí)別數(shù)據(jù)庫,因此本文是使用實(shí)驗(yàn)室設(shè)備Kinect對(duì)20個(gè)人,每個(gè)手勢(shì)左右手分別采集30張深度圖像(包括強(qiáng)光、黑暗、復(fù)雜背景下各10張深度圖像),并且每個(gè)動(dòng)作伸手的角度是不相同的。一共采集7200張圖片進(jìn)行測(cè)試。手勢(shì)樣板如圖8所示。
圖8 手勢(shì)樣板
蒲興成等[13]提出了一種基于改進(jìn)Hu矩算法的Kinect手勢(shì)識(shí)別算法,吳曉雨等[14]提出了基于深度和HOG特征的靜態(tài)手勢(shì)識(shí)別算法,這兩種方法作為本文的對(duì)比方法。本文是基于深度圖像進(jìn)行手勢(shì)識(shí)別,在實(shí)驗(yàn)的過程中,由于Kinect的特性,共有3個(gè)攝像頭,既可以采集深度圖像,又可以采集RGB圖像,RGB圖像用于膚色分割,深度信息用于二次分割。
實(shí)驗(yàn)是在12GRAM、2.6GHzIntelCPU筆記本上進(jìn)行,Kinect型號(hào)是kinectforXbox360,使用VS2012進(jìn)行編程,調(diào)用OPENCV庫函數(shù)對(duì)數(shù)字0-5這6種手勢(shì)分別通過兩種方法進(jìn)行手勢(shì)識(shí)別。
實(shí)驗(yàn)分為兩個(gè)部分,第一部分不對(duì)左右手進(jìn)行區(qū)分直接實(shí)驗(yàn),然后作對(duì)比??傮w識(shí)別率見表1。
表1 識(shí)別率對(duì)比
第二部分是將左右手放在一起進(jìn)行識(shí)別,由于另外兩種方法沒有對(duì)左右手進(jìn)行分別,因此沒有做對(duì)比實(shí)驗(yàn)。先識(shí)別左右手,然后對(duì)手指的彎曲和伸展?fàn)顟B(tài)進(jìn)行識(shí)別。實(shí)驗(yàn)結(jié)果見表2。
表2 左右手判別
為了驗(yàn)證本文的識(shí)別效果,特別對(duì)3種不同的環(huán)境下手勢(shì)識(shí)別率進(jìn)行了一下對(duì)比,分別將采集到的3種場(chǎng)景下的手勢(shì)各400張圖片進(jìn)行了分別實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見表3。
表3 特殊環(huán)境識(shí)別率
從實(shí)驗(yàn)結(jié)果上面來看,顯然本文的方法取得了較好的識(shí)別率,當(dāng)光照或環(huán)境過于復(fù)雜的情況下,本文提出的算法比另外兩種算法分割出的手勢(shì)更加完整。而基于HOG直方圖的識(shí)別效果最差。從本文方法錯(cuò)誤識(shí)別的圖像來看,當(dāng)手指并攏或者相鄰手指之間呈現(xiàn)非常規(guī)角度時(shí),識(shí)別效果會(huì)受到一定影響。本文方法對(duì)光照、前景和背景干擾都有很強(qiáng)的魯棒性。對(duì)于左右手的識(shí)別,識(shí)別率達(dá)到了96%,從識(shí)別錯(cuò)誤的圖片可以看出,當(dāng)相鄰手指呈現(xiàn)非常規(guī)角度的時(shí)候,左右手識(shí)別會(huì)受到影響。3種特殊環(huán)境下識(shí)別效果如圖9~圖11所示。
圖9 光照條件下
圖10 黑暗條件下
圖11 復(fù)雜背景下
本文利用RGB-D圖像的深度和彩色數(shù)據(jù),提出了一種魯棒性強(qiáng)的靜態(tài)手勢(shì)識(shí)別方法。本文方法利用深度信息和彩色信息相結(jié)合的方法對(duì)手勢(shì)進(jìn)行分割能夠消除背景和光照條件對(duì)采集手勢(shì)數(shù)據(jù)信息的影響;而特征提取的過程中通過卷積和閾值相結(jié)合的方式得到手指信息特征,以及利用具體的手指角度信息和尺寸信息能夠很準(zhǔn)確地判斷手指的彎曲狀態(tài)和左右手信息。通過對(duì)比實(shí)驗(yàn),本文的方法對(duì)手勢(shì)的判別更加精準(zhǔn),而在左右手的判別上也有很高的識(shí)別率。
[1]Ben Abdallah M,Kallel M,Bouhlel M S.An overview of gesture recognition[C]//6th International Conference on Sciences of Electronics,Technologies of Information and Telecommunications.IEEE,2012:20-24.
[2]Song Y,Demirdjian D,Davis R.Continuous body and hand gesture recognition for natural human-computer interaction[J].ACM Transactions on Interactive Intelligent Systems,2012,2(1):1-28.
[3]WU Xia,ZHANG Qi,XU Yanxu,et al.Survey on current situation of the development of gesture recognition[J].Electronic Science and Technology,2013,26(6):171-174(in Chinese).[武霞,張崎,徐艷旭,等.手勢(shì)識(shí)別研究發(fā)展現(xiàn)狀綜述[J].電子科技,2013,26(6):171-174.]
[4]Droeschel D,Ckler J,Behnke S.Learning to interpret poin-ting gestures with a time-of-flight camera[C]//ACM/IEEE International Conference on Human-Robot Interaction.IEEE,2011:481-488.
[5]Ghosh DK,Ari S.Static hand gesture recognition using mixture of features and SVM classifier[C]//IEEE International Conference on Communication Systems and Network Technologies.IEEE,2015:1094-1099.
[6]CHANG Yanan.Dynamic gesture recognition based on HMM[D].Guangzhou:South China University of Technology,2012(in Chinese).[常亞南.基于HMM的動(dòng)態(tài)手勢(shì)識(shí)別[D].廣州:華南理工大學(xué),2012.]
[7]Zhou Yimin,Jiang Guolai,Lin Yaorong.A novel finger and hand pose estimation technique for real-time hand gesture recognition[J].SCI-Pattern Recognition,2016,49(C):102-114.
[8]Wu D,Zhu F,Shao L.One shot learning gesture recognition from RGBD images[C]//Computer Vision and Pattern Recognition Workshops.IEEE,2012:7-12.
[9]HE Xiaolei.Gesture recognition based on depth information and color information[D].Hubei:Huazhong University of Scie-nce and Technology,2012(in Chinese).[何小磊.基于深度信息和彩色圖像的手勢(shì)識(shí)別[D].湖北:華中科技大學(xué),2012.]
[10]Panwar M.Hand gesture recognition based on shape parameters[C]//International Conference on Computing,Communication and Applications.IEEE,2012:1-6.
[11]Chen M,Alregib G,Juang BH.Feature processing and mo-deling for 6D motion gesture recognition[J].IEEE Transactions on Multimedia,2013,15(3):561-571.
[12]PU Xingcheng,WANG Tao,ZHANG Yi.Kinect gesture recognition based on improved Hu moment algorithm[J].Computer Engineering,2016,42(7):165-172(in Chinese).[蒲興成,王濤,張毅.基于改進(jìn)Hu矩算法的Kinect手勢(shì)識(shí)別[J].計(jì)算機(jī)工程,2016,42(7):165-172.]
[13]Ju Z,Gao D,Cao J,et al.A novel approach to extract hand gesture feature in depth images[J].Multimedia Tools & Applications,2016,75(19):11929-11943.
[14]WU Xiaoyu,YANG Cheng,FENG Qi.Research on Kinect-based hand gesture recognition algorithm and its applications[J].Computer Applications and Software,2015,32(7):173-176(in Chinese).[吳曉雨,楊成,馮琦.基于Kinect的手勢(shì)識(shí)別算法研究及應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(7):173-176.]