吳志勇,杜 振
(1. 山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049; 2. 中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100)
基于Kinect傳感器的家電手勢(shì)控制應(yīng)用研究
吳志勇1,2,杜 振2
(1. 山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049; 2. 中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100)
為提高智能家電的人機(jī)交互性,研究實(shí)現(xiàn)了一種基于Kinect傳感器的手勢(shì)識(shí)別系統(tǒng),用戶通過該系統(tǒng)可手勢(shì)控制電視的多種操作功能。對(duì)常見的3種動(dòng)態(tài)手勢(shì)識(shí)別算法進(jìn)行分析對(duì)比后,結(jié)合應(yīng)用需求,重點(diǎn)研究了動(dòng)態(tài)手勢(shì)識(shí)別DTW算法。基于Kinect for Windows SDK獲取的手勢(shì)深度圖像和骨骼圖像數(shù)據(jù),采用DTW算法進(jìn)行識(shí)別,最后給出了程序?qū)崿F(xiàn)。實(shí)驗(yàn)表明,該方法可實(shí)現(xiàn)多種電視控制功能,而且具有較好的實(shí)時(shí)性和準(zhǔn)確性。
Kinect;手勢(shì)識(shí)別;DTW算法;家電控制
隨著人機(jī)交互技術(shù)的發(fā)展,人與機(jī)器設(shè)備之間的交互體驗(yàn)越發(fā)簡單和自然?,F(xiàn)今,不論是小小的智能手機(jī)終端還是大屏幕設(shè)備都可采用觸屏技術(shù),使人們擺脫了繁瑣的鍵盤輸入和鼠標(biāo)控制。未來,人機(jī)交互的理想狀態(tài)可通過語言、手勢(shì)、表情等自然操作設(shè)備[1],而這些功能已在多種領(lǐng)域嘗試和應(yīng)用,其功能優(yōu)化和發(fā)展依賴于語音識(shí)別、手勢(shì)識(shí)別、人臉識(shí)別技術(shù)的發(fā)展。
另外,隨著物聯(lián)網(wǎng)智能家居產(chǎn)業(yè)的發(fā)展,智能家電設(shè)備將是智能家庭空間的重要應(yīng)用,如何使家庭用戶與智能家電設(shè)備更自然地交互,是各大家電廠商技術(shù)競(jìng)爭(zhēng)的動(dòng)力。目前,采用較廣泛的技術(shù)是在智能家電設(shè)備中嵌入無線模塊,通過無線感知、遠(yuǎn)程控制、服務(wù)的方式為家庭用戶提供操作功能,而這仍需要家庭用戶通過各種終端進(jìn)行操作?,F(xiàn)今,手勢(shì)識(shí)別技術(shù)取得較大發(fā)展,相對(duì)傳統(tǒng)手勢(shì)識(shí)別技術(shù)易受光照、背景等外部因素影響,手勢(shì)識(shí)別準(zhǔn)確率具有較大提高[2]。本文研究一種基于Kinect傳感器的智能電視手勢(shì)控制系統(tǒng),通過Kinect采集圖像深度數(shù)據(jù)和骨骼數(shù)據(jù),采用DTW算法識(shí)別手勢(shì)動(dòng)作,完成智能電視控制功能。實(shí)驗(yàn)表明,該方法可實(shí)現(xiàn)多種智能電視控制功能,而且具有較好的實(shí)時(shí)性和準(zhǔn)確性。
Kinect是微軟發(fā)布的一款體感外設(shè),設(shè)備擁有3個(gè)攝像頭,可同時(shí)獲取RGB彩色圖像、深度圖像和人體骨骼圖像,是研究基于計(jì)算機(jī)視覺的手勢(shì)識(shí)別技術(shù)的理想設(shè)備[3]。其外觀如圖1所示,中間一個(gè)是RGB攝像頭,圖像采集速度可達(dá)30 f/s(幀/秒);兩邊分別是紅外線發(fā)射器和紅外線接收器,用于深度圖像的獲??;兩側(cè)是一組四元傳聲器陣列,用于聲源定位和語音識(shí)別。
圖1 Kinect外觀圖
手勢(shì)通常可分為靜態(tài)手勢(shì)和動(dòng)態(tài)手勢(shì),靜態(tài)手勢(shì)是指手在不動(dòng)的情況下,手指和手掌做出不同的姿勢(shì)和形狀;動(dòng)態(tài)手勢(shì)是指手隨時(shí)間的變化,手的位置和形狀發(fā)生變化的手勢(shì),而動(dòng)態(tài)手勢(shì)更能表達(dá)操作者的豐富意圖[4]。結(jié)合應(yīng)用需求,本文重點(diǎn)研究動(dòng)態(tài)手勢(shì)識(shí)別,動(dòng)態(tài)手勢(shì)識(shí)別算法包括3種,即基于語義識(shí)別、基于統(tǒng)計(jì)識(shí)別和基于模板識(shí)別,表1對(duì)各種識(shí)別方法進(jìn)行了比較。
表1 手勢(shì)識(shí)別技術(shù)比較
識(shí)別算法算法、模型優(yōu)點(diǎn)缺點(diǎn)語法識(shí)別上下文無關(guān)句法分析、語法推理,較少使用易于理解準(zhǔn)確率低、魯棒性差統(tǒng)計(jì)識(shí)別隱馬爾科夫模型HMM準(zhǔn)確率高計(jì)算過程復(fù)雜模板識(shí)別動(dòng)態(tài)時(shí)間規(guī)整DTW算法簡單、效率高易受外界影響
從比較來看,動(dòng)態(tài)手勢(shì)識(shí)別算法主要應(yīng)用HMM和DTW兩種,針對(duì)簡單孤立的手勢(shì)識(shí)別,兩種算法識(shí)別效果不大,但因HMM模型建立過程復(fù)雜,所以本文選擇較為簡單有效的DTW算法進(jìn)行手勢(shì)識(shí)別。
3.1 DTW算法思想
DTW算法采用動(dòng)態(tài)規(guī)劃的思想,可以很好地解決時(shí)間軸畸變問題,被廣泛應(yīng)用于語音識(shí)別系統(tǒng)[5]。而語音識(shí)別和手勢(shì)識(shí)別相類似,起決定作用的不是語言和手勢(shì)移動(dòng)的速度,而是音調(diào)和手勢(shì)移動(dòng)軌跡。
設(shè)模板特征向量時(shí)間序列A={a1,a2,…,ai}和待識(shí)別特征向量時(shí)間序列B={b1,b2,…,bj},其中i不一定等于j。通過DTW算法可構(gòu)建一個(gè)時(shí)間規(guī)整函數(shù),使序列B的時(shí)間軸j映射到序列A的時(shí)間軸i的總誤差最小。設(shè)F={f(1),f(2),…,f(n)}為時(shí)間規(guī)整函數(shù),其中f(n)=(i(n),j(n))表示第n個(gè)匹配點(diǎn),i(n)和j(n)分別是序列A和B的特征矢量,其匹配距離可表示為d(ai(n),bj(n))。按照DTW動(dòng)態(tài)規(guī)劃先局部后整體的算法原理,即獲得使所有匹配點(diǎn)的特征向量之間的加權(quán)距離和D最小
(1)
為保證手勢(shì)識(shí)別的準(zhǔn)確率提高,需對(duì)規(guī)整函數(shù)F加入限制條件[6]:
1)連續(xù)性限制:對(duì)規(guī)整函數(shù)中的所有匹配點(diǎn)f(n)嚴(yán)格按序計(jì)算匹配距離。
2)單調(diào)性限制:結(jié)合手勢(shì)動(dòng)作的時(shí)間有序性,要求規(guī)整函數(shù)F中的匹配點(diǎn)f(n)不違背時(shí)間順序,即ft+1≥ft。
根據(jù)上述限制條件,添加相應(yīng)的約束條件后,利用下列遞歸公式獲得累積距離,即可得到最優(yōu)路徑,確定匹配手勢(shì)模板
D(ai(n),bj(n))=d(ai(n),bj(n))+min(D(ai(n),bj(n)),
(ai(n),bj(n)),(ai(n),bj(n)))
(2)
3.2 基于Kinect的手勢(shì)識(shí)別
以Kinect SDK提供的人體骨骼模型為基礎(chǔ),通過Kinect傳感器可實(shí)時(shí)獲取人體骨骼中的20個(gè)節(jié)點(diǎn)的三維坐標(biāo)信息[7]。根據(jù)智能電視手勢(shì)控制需求,分左右手臂兩組選擇20個(gè)骨骼節(jié)點(diǎn)中的4個(gè)節(jié)點(diǎn)提取動(dòng)態(tài)手勢(shì)特征,即左手節(jié)點(diǎn)、左手腕節(jié)點(diǎn)、左手肘節(jié)點(diǎn)和左手臂節(jié)點(diǎn);右手節(jié)點(diǎn)、右手腕節(jié)點(diǎn)、右手肘節(jié)點(diǎn)和右手臂節(jié)點(diǎn),如圖2所示。
圖2 人體骨骼節(jié)點(diǎn)
結(jié)合智能電視控制操作,本文設(shè)計(jì)了如表2所示的動(dòng)態(tài)手勢(shì)。
表2 手勢(shì)操作類型
序號(hào)動(dòng)作控制含義1左手握拳,右手握拳手勢(shì)識(shí)別開始2左手向右,右手向右順向頻道切換3左手向左,右手向左逆向頻道切換4左手向上,右手向上音量增大5左手向下,右手向下音量減小
由于基于DTW的手勢(shì)識(shí)別是一種基于模板匹配的方法,因此需要建立手勢(shì)模板庫。將錄制好的手勢(shì)數(shù)據(jù)存入模板庫,然后利于DTW算法對(duì)控制手勢(shì)與模板庫匹配,識(shí)別出手勢(shì)。基于DTW的識(shí)別流程如圖3所示。
圖3 基于DTW算法的手勢(shì)識(shí)別流程
智能電視手勢(shì)控制系統(tǒng)以實(shí)現(xiàn)對(duì)智能電視的節(jié)目切換、音量調(diào)節(jié)、靜音開關(guān)等控制功能為目標(biāo),模擬系統(tǒng)由智能電視、Kinect傳感器、無線視頻機(jī)頂盒、便攜式計(jì)算機(jī)組成,如圖4所示。
圖4 系統(tǒng)組成結(jié)構(gòu)
系統(tǒng)中的無線視頻機(jī)頂盒連接智能電視,并通過無線方式接收便攜式計(jì)算機(jī)發(fā)送的手勢(shì)識(shí)別信號(hào)。Kinect傳感器與便攜式計(jì)算機(jī)連接。傳統(tǒng)情況下,視頻機(jī)頂盒是通過遙控器操作控制,而接入Kinect體感傳感器后,通過手勢(shì)識(shí)別軟件,視頻機(jī)頂盒接收筆記本電腦發(fā)送的用戶手勢(shì)控制功能,完成對(duì)視頻設(shè)備的手勢(shì)控制。
本文通過Kinect攝像頭獲取手勢(shì)深度圖像和骨骼圖像,需要用到的開發(fā)工具包括Visual Studio .Net 2010,Kinect SDK for Windows 1.0和OpenCV。Kinect SDK for Windows是微軟發(fā)布的基于Kinect的開發(fā)套件[8],為驅(qū)動(dòng)Kinect設(shè)備提供API接口,但該SDK并沒有提供手勢(shì)識(shí)別引擎,因此需要自己實(shí)現(xiàn)手勢(shì)識(shí)別功能,安裝SDK后,設(shè)備管理器內(nèi)顯示如圖5所示的設(shè)備信息。OpenCV是開源的計(jì)算機(jī)圖像處理開發(fā)包,可用于對(duì)獲取手勢(shì)圖像的處理。
圖5 Kinect設(shè)備信息
為獲取深度圖像和骨骼圖像,Kinect SDK提供了一個(gè)傳感器對(duì)象和兩個(gè)獲取深度數(shù)據(jù)、骨骼數(shù)據(jù)的重要方法。KinectSensor對(duì)象表示Kinect硬件設(shè)備,是獲取彩色影像數(shù)據(jù),深度數(shù)據(jù)和骨骼追蹤數(shù)據(jù)的源頭。
kinectSensor_DepthFrameReady方法可打開深度圖像幀來提取深度幀數(shù)據(jù),kinectSensor_ SkeletonFrameReady方法打開骨骼圖像幀來提取骨骼幀數(shù)據(jù),獲取骨骼數(shù)據(jù)方法使用如下:
private void kinectSensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) {
using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame()) { if (skeletonFrame != null) {
Skeleton[] skeletonData = new Skeleton[ks.SkeletonStream.FrameSkeletonArrayLength];
skeletonFrame.CopySkeletonDataTo(skeletonData);
its.ProcessSkeleton(skeletonData, ks.AccelerometerGetCurrentReading(), skeletonFrame.Timestamp);
}
}
}
獲取深度圖像和骨骼圖像后,通過調(diào)用已封裝的手勢(shì)識(shí)別方法gestureRecongniation()進(jìn)行手勢(shì)識(shí)別,演示程序如圖6所示。
圖6 手勢(shì)識(shí)別演示程序(截圖)
通過測(cè)試,手勢(shì)識(shí)別響應(yīng)時(shí)間在0.3 s以內(nèi),正確率達(dá)95%,通過與其他手勢(shì)識(shí)別系統(tǒng)比較,該系統(tǒng)具有明顯優(yōu)勢(shì),如表3所示。
表3 手勢(shì)識(shí)別系統(tǒng)比較
手勢(shì)識(shí)別系統(tǒng)比較項(xiàng)方便性受環(huán)境影響度擴(kuò)展性精確度響應(yīng)時(shí)間基于手環(huán)差較高差較高慢基于RGB圖像好高較好一般快基于Kinect深度圖好低好高快
現(xiàn)今,基于大數(shù)據(jù)、云計(jì)算、智能穿戴推動(dòng)下的人機(jī)交互技術(shù)發(fā)展迅速,智能家居、智能汽車等與大眾息息相關(guān)的技術(shù)已不再陌生,人類與機(jī)器之間的交互和溝通趨向自然化、簡單化。本文以微軟Kinect傳感器為基礎(chǔ),研究實(shí)現(xiàn)了手勢(shì)識(shí)別系統(tǒng)在智能家電控制中的應(yīng)用,通過本系統(tǒng)的實(shí)現(xiàn)對(duì)手勢(shì)識(shí)別技術(shù)和家電人機(jī)交互發(fā)展具有應(yīng)用指導(dǎo)意義。
[1] 楊碧玲.手勢(shì)和語音識(shí)別_智能家電人機(jī)交互新趨勢(shì)[J].集成電路應(yīng)用,2013(3):32-35.
[2] 陳艷麗,金紀(jì)東.手部姿勢(shì)與揮動(dòng)速度識(shí)別的人機(jī)交互[J].電子測(cè)量與儀器學(xué)報(bào),2014(1):56-61.
[3] 方華,劉詩雄.基于Kinect骨骼系統(tǒng)的手勢(shì)識(shí)別研究[J].計(jì)算機(jī)工光盤軟件與應(yīng)用,2014(2):65-68.
[4] 陳靜. 基于Kinect的手勢(shì)識(shí)別技術(shù)及其在教學(xué)中的應(yīng)用[D].上海:上海交通大學(xué),2013.
[5] SU C J,CHIANG C Y,HUANG J Y. Kinect-enabled home-based rehabilitation system using dynamic time warping and fuzzy logic[J]. Applied Soft Computing,2014(22):652-666.
[6] 鄒洪.實(shí)時(shí)動(dòng)態(tài)手勢(shì)識(shí)別關(guān)鍵技術(shù)研究[D].廣州:華南理工大學(xué),2011.
[7] 張毅,張爍.基于Kinect深度圖像信息的手勢(shì)軌跡識(shí)別及應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2012(9):3547-3549.
[8] 吳秦,陳智.基于Kinect骨骼跟蹤技術(shù)的人機(jī)交互[J].常州大學(xué)學(xué)報(bào),2014(3):6-11.
Research on Gesture Control System Applied on Home Appliance by Kinect Sensor
WU Zhiyong1,2,DU Zhen2
(1.SchoolofComputerScienceandTechnology,ShandongUniversityofTechnology,ShandongZibo255049,China; 2.SchoolofInformationScienceandEngineering,OceanUniversityofChina,ShandongQingdao266100,China)
To improve human-computer interaction of the intelligent home appliances, a gesture recognition system based on Kinect sensor is implemented. Smart TV with a variety of operating functions is controlled by the gesture recognition system. According the application needs the DTW gesture recognition algorithm is focused after analysis and comparison of three kinds of dynamic hand gesture recognition algorithm. The gesture is recognized with DTW algorithm after obtained the data of depth gesture image and skeleton gesture image by the Kinect SDK for Windows. Finally, the program demo is given. The tests show this method can achieve a variety of TV control function and has better real-time performance and veracity.
Kinect;gesture recognition;DTW algorithm;appliance control
山東省高等學(xué)??萍加?jì)劃項(xiàng)目(J10LG80)
TP216.2
B
10.16280/j.videoe.2015.16.014
2015-07-02
【本文獻(xiàn)信息】吳志勇,杜振.基于Kinect傳感器的家電手勢(shì)控制應(yīng)用研究[J].電視技術(shù),2015,39(16).
吳志勇(1978— ),講師,博士生,主要研究領(lǐng)域?yàn)榍度胧较到y(tǒng)、模式識(shí)別。
責(zé)任編輯:時(shí) 雯