王博龍,房建成
(北京航空航天大學(xué) 儀器科學(xué)與光電工程學(xué)院,北京100191)
基于Kinect傳感器的近場手勢識別追蹤系統(tǒng)的實現(xiàn)
王博龍,房建成
(北京航空航天大學(xué) 儀器科學(xué)與光電工程學(xué)院,北京100191)
利用Kinect深度傳感器所獲取的圖像深度信息實現(xiàn)手部從背景中的分割,并通過零均值離散高斯濾波、二值化、取最小外包矩形、歐式距離變換等一系列過程對手勢目標(biāo)進(jìn)行識別,最后把得到的識別結(jié)果顯示在電腦上,實現(xiàn)實時追蹤。該系統(tǒng)相較其它類似系統(tǒng)具有算法簡單,實時性好,實現(xiàn)成本低等特點。
Kinect;深度信息;手勢識別;人機交互;體感
手勢識別與追蹤作為計算機圖形學(xué)研究的熱門內(nèi)容之一,正開始應(yīng)用于各類視頻交互應(yīng)用中,包括Microsoft、Nintend、PrimeSense、Asus等知名廠商已經(jīng)投人大量的研究經(jīng)費來進(jìn)行手勢追蹤的研究和相關(guān)設(shè)備的開發(fā)。準(zhǔn)確而高效手勢識別可應(yīng)用于很多領(lǐng)域,如虛擬現(xiàn)實、人機交互的增強等。Microsoft在2010年11月推出的Kinect體感游戲設(shè)備利用即時動作進(jìn)行識別讓玩家擺脫傳統(tǒng)游戲手柄的束縛,通過自己的肢體來控制虛擬人。而在眾多手勢識別的應(yīng)用中,人們更愿意坐著而非站著,近場手勢識別在此種體驗背景下作為未來交互體驗的主要趨勢,更是眾多交互應(yīng)用需要解決的首要問題,在此之前,電腦和視頻游戲為控制人體運動提供了大量的接口,例如:鼠標(biāo)、操作桿和按鈕等等。但是,這些接口只是提供了少量的自由度上的控制并且必須自動計算運動細(xì)節(jié)。索尼的EyeToy[1]是一個基于視覺的系統(tǒng),該系統(tǒng)不需要任何的標(biāo)記,就能夠提取出一個拳擊或者揮手的簡單2D動作,此法實現(xiàn)成本低、實時性好,但只能在2D層面上對手勢進(jìn)行提取,Kinect的深度信息處理則能在3D層面上提取手勢,信息更豐富,可擴(kuò)展性強。
文獻(xiàn)[2]建立了一個視覺的接口來把從單個視頻攝像機上獲得的噪音輪廓數(shù)據(jù)轉(zhuǎn)換成約有2 s延遲的全身運動。該方法用一般的攝像頭就能簡單實現(xiàn),但實時性差,2 s的延遲無法滿足大部分人機交互需求,本文所采取的手勢提取方法延時約為0.3 s。
文獻(xiàn)[3]提出了基于視頻跟蹤來捕獲用戶運動的方法,但是這個方法同樣不能夠?qū)崟r并且精確地重建復(fù)雜人體運動。
算法上,針對手勢識別的研究主要側(cè)重于皮膚顏色建模、連續(xù)動態(tài)手勢的基于圖像屬性的魯棒特性提取等[4]。但基于深度信息實現(xiàn)手勢識別的方法未見公開報道。
文中依托Kinect廉價且高效的硬件基礎(chǔ),采用了基于圖像深度信息的手勢模型,首先利用深度數(shù)據(jù)作噪點去除,做高斯濾波,二值化分割出手勢區(qū)域,再對該片區(qū)域提取輪廓、抽象出最小矩形,接著對該最小矩形作距離變換,得到最終的近場手勢模型。
采取圖像深度信息進(jìn)行手部分割只與手和攝像頭之間的距離有關(guān),故對背景干擾的魯棒性較強,且所需計算量不大,可基本滿足實時性的要求(基于openCV的框架下刷新率為 3 Hz)。
如圖1,Kinect是微軟開發(fā)的一款家用視頻游戲機主機
的體感周邊外設(shè),它是一種 體感攝影機,同時具有即時動態(tài)捕捉、圖像識別、麥克風(fēng)輸入、語音識別、社群互動等功能。Kinect有三個攝像頭,中間的鏡頭是RGB彩色攝像機,左右兩邊鏡頭則分別為紅外發(fā)射器和紅外CMOS攝像機所構(gòu)成的3D深度感應(yīng)器。
圖1 Kinect結(jié)構(gòu)示意圖Fig.1 The configuration of the Kinect
圖像深度的獲取通過紅外發(fā)射器和紅外線CMOS攝影機共同來完成,紅外線發(fā)射器發(fā)出的紅外光覆蓋整個待檢測區(qū)域,同時紅外線CMOS攝影機接收反射光線得到深度圖像。后者得到的圖像是一個“深度場”,其中每一個像素的顏色代表了那一點物體到攝像頭的距離。如圖2所示,左圖為深度信息圖,離攝像頭近的物體呈現(xiàn)亮色彩,反之則呈現(xiàn)暗色彩。右圖為普通攝像頭獲取的原始圖像。
圖2 深度圖像與RGB圖像對比示意圖Fig.2 Comparison between depth pic&RGB pic
在進(jìn)行深度數(shù)據(jù)提取時需注意Kinect硬件本身的限制,如圖3所示,上圖為距離Kinect約60 cm處獲得的深度圖像,能得到完整的手掌深度數(shù)據(jù)。下圖為距離60 cm處再伸手往前3 cm處獲得的深度圖像,可見整個手掌已與遠(yuǎn)處不可識別的深度數(shù)據(jù)一同變黑。由此可知在近場手勢的探測中,手掌若越過了60 cm的臨界距離,深度圖像將無效。
圖3 Kinect無效深度圖像示意圖Fig.3 Kinect recognition effect without depth detection
深度圖獲得過程的核心是光編碼技術(shù)[5],該技術(shù)用近紅外光對場景進(jìn)行編碼,形成一個具有三維縱深的 “體編碼”。這種編碼來自于激光散斑,是當(dāng)激光照射到粗糙物體或穿透毛玻璃后形成的隨機衍射斑點
這些散斑具有高度的隨機性,而且會隨著距離的不同變換圖案,也就是說空間中任意兩處的散斑圖案是不一樣的,只要在空間中打上這樣的結(jié)構(gòu)光,整個空間就都被標(biāo)記,把一個物體放進(jìn)這個空間,只要觀察物體上面的散斑圖案,就可以得到這個物體的位置
紅外攝像頭獲取反射光線后將信息傳給PS1080 SoC芯片,制作出場景深度圖像。該芯片包含一個USB2.0物理層協(xié)議,其USB2.0接口可將所有數(shù)據(jù)傳送給主機,并適用于各種主機CPU——所有深度獲取算法均在PS1080上運行,主機只需運行最低限度的USB通信層。通過這種設(shè)計,即使是計算能力非常有限的主機設(shè)備也能具備深度獲取能力,既保證了實時性也使得對系統(tǒng)的要求不至于苛刻。
在Windows下搭建好Kinect調(diào)試環(huán)境后,在Microsoft Visual Studio 2010調(diào)試工具的幫助下,即可獲得圖像的深度數(shù)據(jù)。
從深度數(shù)據(jù)中分離出手掌的方案有多種,文中采用了一種實時性最好的處理方案,即認(rèn)為離鏡頭最近的物體為手部,在深度閾值下將圖像二值化,從而分離出手部輪廓,并最終達(dá)到跟蹤手勢的目的。
該方案雖不夠嚴(yán)謹(jǐn),但能適應(yīng)大部分場合的交互需求,并且實時性好,對硬件的運算能力要求低。
1)零均值離散高斯濾波
由于文中的圖像處理涉及對手掌輪廓進(jìn)行處理,因此有必要在提取輪廓前對圖像進(jìn)行平滑處理,去除毛邊。本文選用常用的零均值離散高斯濾波器函數(shù)進(jìn)行平滑處理:
其中,高斯分布參數(shù)決定了高斯函數(shù)的寬度。對于圖像處理來說,常用二維零均值離散高斯函數(shù)作平滑濾波器。
2 )二值化
一幅圖像包括目標(biāo)物體、背景還有噪聲,要想從多值的數(shù)字圖像中直接提取出目標(biāo)物體,最常用的方法就是設(shè)定一個閾值T,用T將圖像的數(shù)據(jù)分成兩部分:大于T的像素群和小于T的像素群。這是研究灰度變換的最特殊的方法,稱為圖像的二值化(BINARIZATION)。圖像的二值化,就是將圖像上的像素點的灰度值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出明顯的只有黑和白的視覺效果。
3 )歐式距離變換
所謂歐氏距離變換,是指對于一張二值圖像(再次我們假定白色為前景色,黑色為背景色),將前景中的像素的值轉(zhuǎn)化為該點到達(dá)最近的背景點的距離。歐氏距離變換在數(shù)字圖像處理中的應(yīng)用范圍很廣泛,尤其對于圖像的骨架提取,是一個很好的參照。
如圖4所示,原始圖像在經(jīng)過高斯濾波之后,將距離攝像頭深度數(shù)據(jù)最低的值(即攝像頭最近)認(rèn)為是手掌,進(jìn)行二值化處理。再對二值化的圖像取最小矩形,并作距離變換得到手掌的骨架信息。
圖4 深度信息處理過程示意圖Fig.4 Image processing diagrammatic sketch
其后將最小矩形的質(zhì)心認(rèn)為是手掌的運動軌跡,輸出給openCV加以顯示,實現(xiàn)了初步的手勢跟蹤。
通過深度信息進(jìn)行手勢分割可有效避免光照和復(fù)雜背景對檢測手勢的干擾,魯棒性好。同時深度層面的信息簡化了數(shù)據(jù)處理方法,客觀上減少了計算量,加快了刷新頻率,增強了人機交互的實時性。同時,此種手勢識別方法也存在一定不足:它無法識別 范圍以內(nèi)的物體。但在常見的辦公室環(huán)境下,只需稍加調(diào)整,即可規(guī)避此類不足,開展實時有效的人機交互。
[1]梁愛虎.SOA思想技術(shù)與系統(tǒng)集成應(yīng)用詳解[M].北京:電子工業(yè)出版社,2007.
[2]Miehael p papazoglou.Web服務(wù)原理與技術(shù)[M].北京:機械工業(yè)出版社,2010.
[3]Musser D R,Shao Z.Concept use or concept refinement:an important distinetion in building generic specifications[C]//Proc.4th Intemational Conference on Formal Enginering Methods,LNCS 2495.Berlin:Springer一Verlag,2002:132一143.
[4]陳一民,張云華.基于手勢識別的機器人人機交互技術(shù)研究[J].機器人,2009,31(4):351-356.
CHEN Yi-min,ZHANG Yun-hua.Based on the research on man-machine interaction of gesture recognition robot[J].Robot,2009,31(4):351-356.
[5]Lee S,Choi J,Oh S,et al.A real-time 3D IR camera based on hierarchical orthogonal coding[C]//IEEE International Conference on Robotics and Automation.Piscataway.NJ.USA:IEEE.2006:2035-2040.
[6]Huang J,Ma Z,Hu Y,et al.Robotic 3D Structured light scanning system based on external axle[C]//International Conference on IntelligentComputation Technology and Automation.Piscataway.NJ.USA:IEEE.2008:1126-1129.
Design and implementation of a near-field gesture-driven system on the kinect sensor
WANG Bo-long,F(xiàn)ANG Jian-cheng
(School of Instrumentation Science and Opto-electronics Engineering,Beijing University of Aeronautics and Astronautics,Beijing 100191,China)
First,hand contours are split from the background based on depth information from images got by the Kinect depth sensor.After a Zero-mean Dispersed Gauss Filter processing,the hand contours are binarized with a certain threshold value.And then,a minimum matrix surrounding the hand contours are given.Centroid of this matrix is considered to be the track of this hand.Skeleton information also can be obtained after an euclid distance transform.At last,recognition result are translated into a red point shown on the screen.
Kinect;depth information;hand gesture recongnition;man machine interaction;somatosensory
TN-9
A
1674-6236(2014)13-0078-03
2013-09-29 稿件編號:201309226
王博龍(1988—)男,湖南南縣人。研究方向:手勢識別、人機交互。