葛艷茹,張國(guó)偉,孫溫和,盧秋紅
(1.上海電力學(xué)院,上?!?00090;2.上海合時(shí)智能科技有限公司,上?!?01108)
基于Kinect傳感器的靜態(tài)手勢(shì)識(shí)別與仿真
葛艷茹1,張國(guó)偉1,孫溫和1,盧秋紅2
(1.上海電力學(xué)院,上海200090;2.上海合時(shí)智能科技有限公司,上海201108)
經(jīng)濟(jì)的飛速發(fā)展,智能化的程度越來越高,手勢(shì)作為日常生活中最自然、直接的交流手段,被快速地運(yùn)用到人機(jī)交互中。在Kinect傳感器的基礎(chǔ)上,獲得身體部位深度圖像,并對(duì)深度圖像進(jìn)行基于開操作的重建處理,得到重建圖像。然后對(duì)重建圖像進(jìn)行邊緣檢測(cè),得到手部輪廓。最后采用hu矩陣檢測(cè)直線交點(diǎn)個(gè)數(shù)的方式,判斷手指?jìng)€(gè)數(shù)。實(shí)驗(yàn)結(jié)果表明,Canny算子和hu矩陣的結(jié)合,不但能快速準(zhǔn)確地進(jìn)行手勢(shì)識(shí)別,大大提高實(shí)驗(yàn)的準(zhǔn)確性,而且能夠避免外界復(fù)雜背景和光照的影響,具有很好的魯棒性。
Kinect;深度信息;閾值分割;邊緣檢測(cè);指尖檢測(cè)
上海市電站自動(dòng)化技術(shù)重點(diǎn)實(shí)驗(yàn)室(No.13DZ2273800)
進(jìn)入計(jì)算機(jī)時(shí)代以來,人機(jī)交互技術(shù)一直相對(duì)單一,傳統(tǒng)的鼠標(biāo)鍵盤交互方式給人們的生活學(xué)習(xí)帶來很大局限性,特別是近年來生活水平不斷提高,傳統(tǒng)交互方式已經(jīng)不能滿足人們各個(gè)方面的需求[1]。手勢(shì)交互是未來人機(jī)交互的發(fā)展趨勢(shì),將為我們提供更自然、更富創(chuàng)意的方式與計(jì)算機(jī)進(jìn)行交流,并已在智能家居、增強(qiáng)現(xiàn)實(shí)、手語識(shí)別等領(lǐng)域得到廣泛應(yīng)用[2]。例如,我們可以通過手勢(shì)識(shí)別系統(tǒng)將聾啞人的手語轉(zhuǎn)化為語音,以便他們和不懂手語的人進(jìn)行交流[3]。用戶自由的、直接的操縱用戶界面,這種手勢(shì)交互模式已成為未來的發(fā)展趨勢(shì),也成為近年來的一個(gè)研究熱點(diǎn)[4]。
微軟公司發(fā)布的Kinect x-box傳感器是一種革命性的深度傳感器,被迅速用到游戲上,通過傳感器上面的RGB攝像和紅外攝像機(jī)區(qū)分深度,有效捕捉游戲者的動(dòng)作和姿態(tài)[5]。此外,Kinect的出現(xiàn)也造福了許多領(lǐng)域,尤其是利用Kinect傳感器做的手勢(shì)識(shí)別,此項(xiàng)技術(shù)的應(yīng)用是廣泛的,例如醫(yī)療康復(fù)、虛擬現(xiàn)實(shí)、手語等[6]。手勢(shì)識(shí)別的研究方法也是多種多樣,如文獻(xiàn)[7]將數(shù)據(jù)手套和傳感器結(jié)合,確定手關(guān)節(jié),獲取手部數(shù)據(jù),實(shí)現(xiàn)手勢(shì)提取,但是此種方法必須佩戴數(shù)據(jù)手套,有很大的局限性,且數(shù)據(jù)手套價(jià)格昂貴,不夠經(jīng)濟(jì);文獻(xiàn)[8]基于視覺的手勢(shì)分割算法的研究,在運(yùn)動(dòng)分析和膚色模型的基礎(chǔ)上,采用卡爾曼濾波和TSL(Tinysoft Statistical analysis Language)膚色模型相結(jié)合的手勢(shì)分割方法,分割出手勢(shì),擴(kuò)大了輪廓點(diǎn)的搜索范圍,收縮手勢(shì)的凹陷區(qū)域;文獻(xiàn)[9]基于Kinect深度信息的手勢(shì)提取與識(shí)別研究,將深度圖轉(zhuǎn)換為三維點(diǎn)云,進(jìn)行深度信息過濾,以此提取手勢(shì)數(shù)據(jù),并將統(tǒng)計(jì)后的手勢(shì)數(shù)據(jù)輸入到支持向量機(jī)進(jìn)行訓(xùn)練,實(shí)現(xiàn)手勢(shì)識(shí)別;文獻(xiàn)[8、9]采用的是常用的膚色模型手勢(shì)識(shí)別方法,對(duì)手部擺放位置要求嚴(yán)格,手部不能和其膚色相似的部位重疊,易受背景膚色和光照條件的影響。
本文側(cè)重研究Kinect傳感器的靜態(tài)手勢(shì)識(shí)別,研究順序是先對(duì)彩色圖像進(jìn)行深度處理,對(duì)所得深度圖像進(jìn)行基于開的重建圖像的操作,然后對(duì)圖像進(jìn)行二值化處理,利用Canny算子進(jìn)行邊緣檢測(cè),最后利用hu矩陣進(jìn)行指尖識(shí)別,得出手指?jìng)€(gè)數(shù)。圖1是本文靜態(tài)手勢(shì)識(shí)別的系統(tǒng)研究框圖。
Kinect獲取的深度圖像的每個(gè)像素點(diǎn)由2個(gè)字節(jié)組成,共16位,其中,高十三位表示從紅外攝像頭到物體的距離,以毫米為單位,距離區(qū)間為0到4096毫米[10],后面三位表示用戶編號(hào),如圖2所示。高十三位表示攝像頭到物體的距離,那么手部深度圖像的獲取就可以通過設(shè)定物體到攝像頭的距離閾值來獲取,超過閾值的部分置0,小于的置1,但是利用這種距離閾值的方法來獲取手部深度圖像往往包含背景,得不到想要的效果,如圖3所示。
圖1 系統(tǒng)研究框圖
圖2 Kinect深度值和用戶索引編號(hào)
圖3 身體深度圖
上面圖3已經(jīng)初步得到了身體的深度圖像,但是很顯然,除了手部深度圖像以外,操作者的身體以及背景都在這幅圖上展現(xiàn)出來,這對(duì)后面的手勢(shì)識(shí)別產(chǎn)生很大影響,下面做的事情就是把手掌從背景中分離出來。
數(shù)學(xué)形態(tài)學(xué)中分析圖像一般是以圖像中具有形態(tài)的結(jié)構(gòu)元素為基礎(chǔ)研究對(duì)象,并通過這些具有形態(tài)的結(jié)構(gòu)元素來獲取圖像的邊緣輪廓。常用的形態(tài)學(xué)圖像處理方法有膨脹、腐蝕、開運(yùn)算(公式(1))和閉運(yùn)算(公式(2)),這些處理方法各有其優(yōu)點(diǎn),既可以單獨(dú)使用,又可以結(jié)合起來,到達(dá)所需要的處理效果。接下來要做的就是對(duì)圖3的身體深度圖進(jìn)行基于開運(yùn)算的重建操作。
A是原始圖像,B是結(jié)構(gòu)元素圖像,公式(1)是開操作,就是A先被B腐蝕,腐蝕后的結(jié)果再被B膨脹,開操作一般用來刪除不能包含結(jié)構(gòu)元素的微小區(qū)域,平滑物體的邊界輪廓,又可以做到不改變其面積。公式(2)是閉運(yùn)算,A先被B膨脹,膨脹后的結(jié)果再被B腐蝕,可使輪廓線更光滑,但與開操作刪除微小區(qū)域不同,閉操作通常用來填補(bǔ)間斷和長(zhǎng)細(xì)的鴻溝,消除小的空洞,填補(bǔ)輪廓線中的斷裂。本文在開操作的基礎(chǔ)上,進(jìn)行圖像重建操作,正確的恢復(fù)腐蝕后所保留物體的形狀,經(jīng)過開操作的重建處理所得的深度圖像如圖4所示:
圖4基于開的重建圖像
圖4可以看出,經(jīng)過上文基于開的重建操作,除去了圖中一些細(xì)小的干擾,并且完整地保存了手部形狀,但是仍然沒有實(shí)現(xiàn)把手掌部位分割出來,接下來,采用最佳閾值法二值化的方法對(duì)圖像將進(jìn)行處理,先統(tǒng)計(jì)每個(gè)像素在整幅圖像中的個(gè)數(shù),計(jì)算每個(gè)像素在整幅圖中所占的比例,遍歷灰度級(jí)[0,255],計(jì)算方差最大的灰度值,也就是最佳閾值,本文得到的最佳閾值為150,經(jīng)過二值化處理得到的圖像如圖5所示,從圖中可以看出,經(jīng)過二值化處理后,手掌區(qū)域已經(jīng)很好地從背景中分離,為后續(xù)的手指?jìng)€(gè)數(shù)的識(shí)別打下了良好的基礎(chǔ)。
圖5已經(jīng)把手掌區(qū)域從背景區(qū)域分離出來,接下來要做的事情就是進(jìn)行手指?jìng)€(gè)數(shù)的識(shí)別,進(jìn)行識(shí)別之前,先用對(duì)圖像進(jìn)行邊緣檢測(cè),在這里采用Canny算子進(jìn)行邊緣提取,此算子先對(duì)圖像進(jìn)行去噪,接著尋找亮度梯度,最后采用滯后閾值的方法找出圖像邊緣。此外,Canny算法會(huì)盡可能多地標(biāo)識(shí)出圖像中的實(shí)際邊緣,以及與實(shí)際圖像中的實(shí)際邊緣盡可能接近的邊緣,圖像中的邊緣只能標(biāo)識(shí)一次,而且圖像噪聲也不會(huì)被確定為邊緣。所以,本文采用Canny算子對(duì)圖像進(jìn)行邊緣檢測(cè),檢測(cè)后的邊緣圖像如圖6所示。
圖5 二值化處理后的圖像
圖6 Canny算子邊緣檢測(cè)
由上圖可以看到Canny算子很準(zhǔn)確的把手掌邊緣檢測(cè)出來,接下來采用的是hu矩陣的方法來進(jìn)行手指的檢測(cè),hu矩陣用來檢測(cè)圖像中的直線,通過找到點(diǎn)的幾何,來確定直線,進(jìn)而把直線的獲取轉(zhuǎn)換成了點(diǎn)的計(jì)數(shù)問題,而且,此種方法受噪聲的影響不大。處理順序是先得到hu矩陣和峰值點(diǎn)圖像,尋找若干個(gè)個(gè)大于最大值0.3倍的峰值,在hu矩陣中標(biāo)出峰值位置,合并距離小于設(shè)定值的線段,丟棄長(zhǎng)度小于設(shè)定值的線段,最后標(biāo)出線段交點(diǎn),從直線的斜率和斷、端點(diǎn)標(biāo)記可以判斷出手指?jìng)€(gè)數(shù),所得圖像如圖7所示,由圖可見,除去干擾點(diǎn)以后,每個(gè)指尖處都會(huì)有一個(gè)黃色標(biāo)記點(diǎn)的集合,從圖中我們也可以明顯的看出,數(shù)字‘1’的黃色點(diǎn)集合有一個(gè),數(shù)字‘3’的黃色點(diǎn)集合有三個(gè),數(shù)字‘5’的黃色點(diǎn)集合有五個(gè),也就是有幾個(gè)點(diǎn)的集合就有幾根手指,從而很好地識(shí)別出了阿拉伯?dāng)?shù)字‘1’、‘3’、‘5’。
圖7 hu矩陣處理圖像
為證明此次仿真結(jié)果的正確性,對(duì)‘1’、‘3’、‘5’三個(gè)數(shù)字的識(shí)別分別進(jìn)行了100次的實(shí)驗(yàn)測(cè)試,測(cè)試結(jié)果如表1所示:
表1 實(shí)驗(yàn)匯總對(duì)照表
此次研究,分離出了手部區(qū)域,并利用Canny算子獲取了邊緣信息,采用hu矩陣檢測(cè)直線交點(diǎn)的方法檢測(cè)出手指?jìng)€(gè)數(shù),成功的完成了此次手勢(shì)識(shí)別,準(zhǔn)確性好,魯棒性高,要注意的是Kinect傳感器放置的高度和角度會(huì)影響分割效果,所以實(shí)驗(yàn)的時(shí)候要選好高度和角度,以便更好地完成手勢(shì)識(shí)別。而手勢(shì)識(shí)別分為靜態(tài)手勢(shì)識(shí)別和動(dòng)態(tài)手勢(shì)識(shí)別,本次研究針對(duì)的是靜態(tài)手勢(shì)識(shí)別,接下來將會(huì)把動(dòng)態(tài)手勢(shì)識(shí)別作為日后的研究工作。
[1]徐鵬飛,張紅英.基于Kinect深度圖像信息的手勢(shì)分割和指尖檢測(cè)算法[J].西南科技大學(xué)學(xué)報(bào),2014(1):49-54.
[2]李長(zhǎng)龍.基于Kinect深度圖像的手勢(shì)識(shí)別研究[D].西華大學(xué),2014.
[3]衛(wèi)潔.基于Kinect傳感器的動(dòng)靜態(tài)手勢(shì)識(shí)別研究[D].上海師范大學(xué),2015.
[4]鄭斌玨.基于Kinect深度信息的手勢(shì)識(shí)別[D].杭州電子科技大學(xué),2014.
[5]El-Laithy R A,Huang J,Yeh M.Study on the Use of Microsoft Kinect for Robotics Applications[C].Position Location and Navigation Symposium(PLANS),2012 IEEE/ION.IEEE,2012:1280-1288.
[6]Mitra S,Acharya T.Gesture Recognition:A Survey[J].Systems Man&Cybernetics Part C Applications&Reviews IEEE Transactions on,2007,37(3):311-324.
[7]王兆其.虛擬人合成研究綜述[J].中國(guó)科學(xué)院大學(xué)學(xué)報(bào),2000,17(2):89-98.
[8]莫舒.基于視覺的手勢(shì)分割算法的研究[D].華南理工大學(xué),2012.
[9]鄧瑞,周玲玲,應(yīng)忍冬.基于Kinect深度信息的手勢(shì)提取與識(shí)別研究[J].計(jì)算機(jī)應(yīng)用研究,2013,30(4):1263-1265.
[10]曹林,翁武毅.基于Kinect手勢(shì)識(shí)別的研究與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2014(6):204-205.
Kinect;Depth Information;Threshold Segmentation;Edge Detection;Fingertip Detection
Static Gesture Recognition and Simulation Based on Kinect Sensor
GE Yan-ru1,ZHANG Guo-wei1,SUN Wen-he1,LU Qiu-hong2
(1.Shanghai University of Electric Power,Shanghai 200090;2.Shanghai Hrstek Corporation,Shanghai 201108)
The rapid development of economy,makes the intellectualized degree is higher and higher.Hand gestures,which are quickly used in human-computer interaction,play as the most natural and the most direct means of communication in daily life.Based on the Kinect sensor,obtains the depth image by Kinect sensor,and then based on the depth image processing operations start rebuilding,and then binarized to give hand image depth,and then to get the hand contour edge detection.The hu matrix detection line intersection number,to determine the number of fingers.The experimental results show that the combination of Canny operator and hu matrix has the very good robustness,not only can fast accurate for gesture recognition,greatly improve the accuracy of the experiment,but also can avoid the complex background and the influence of illumination.
1007-1423(2016)29-0067-04
10.3969/j.issn.1007-1423.2016.29.016
葛艷茹(1991-),女,河南周口人,碩士研究生,研究方向?yàn)槭謩?shì)識(shí)別張國(guó)偉(1970-),男,山西人,副教授,碩士研究生導(dǎo)師,研究方向?yàn)樾畔z測(cè)孫溫和(1993-),女,浙江樂清人,在讀碩士研究生,研究方向?yàn)閱文恳曈XSLAM技術(shù)盧秋紅(1973-),女,博士,高級(jí)工程師,碩士生導(dǎo)師,研究方向?yàn)闄C(jī)器人技術(shù)
2016-08-16
2016-10-10
1007-1423(2016)29-0071-04
10.3969/j.issn.1007-1423.2016.29.017