王博龍,房建成
(北京航空航天大學 儀器科學與光電工程學院,北京100191)
基于Kinect傳感器的近場手勢識別追蹤系統的實現
王博龍,房建成
(北京航空航天大學 儀器科學與光電工程學院,北京100191)
利用Kinect深度傳感器所獲取的圖像深度信息實現手部從背景中的分割,并通過零均值離散高斯濾波、二值化、取最小外包矩形、歐式距離變換等一系列過程對手勢目標進行識別,最后把得到的識別結果顯示在電腦上,實現實時追蹤。該系統相較其它類似系統具有算法簡單,實時性好,實現成本低等特點。
Kinect;深度信息;手勢識別;人機交互;體感
手勢識別與追蹤作為計算機圖形學研究的熱門內容之一,正開始應用于各類視頻交互應用中,包括Microsoft、Nintend、PrimeSense、Asus等知名廠商已經投人大量的研究經費來進行手勢追蹤的研究和相關設備的開發。準確而高效手勢識別可應用于很多領域,如虛擬現實、人機交互的增強等。Microsoft在2010年11月推出的Kinect體感游戲設備利用即時動作進行識別讓玩家擺脫傳統游戲手柄的束縛,通過自己的肢體來控制虛擬人。而在眾多手勢識別的應用中,人們更愿意坐著而非站著,近場手勢識別在此種體驗背景下作為未來交互體驗的主要趨勢,更是眾多交互應用需要解決的首要問題,在此之前,電腦和視頻游戲為控制人體運動提供了大量的接口,例如:鼠標、操作桿和按鈕等等。但是,這些接口只是提供了少量的自由度上的控制并且必須自動計算運動細節。索尼的EyeToy[1]是一個基于視覺的系統,該系統不需要任何的標記,就能夠提取出一個拳擊或者揮手的簡單2D動作,此法實現成本低、實時性好,但只能在2D層面上對手勢進行提取,Kinect的深度信息處理則能在3D層面上提取手勢,信息更豐富,可擴展性強。
文獻[2]建立了一個視覺的接口來把從單個視頻攝像機上獲得的噪音輪廓數據轉換成約有2 s延遲的全身運動。該方法用一般的攝像頭就能簡單實現,但實時性差,2 s的延遲無法滿足大部分人機交互需求,本文所采取的手勢提取方法延時約為0.3 s。
文獻[3]提出了基于視頻跟蹤來捕獲用戶運動的方法,但是這個方法同樣不能夠實時并且精確地重建復雜人體運動。
算法上,針對手勢識別的研究主要側重于皮膚顏色建模、連續動態手勢的基于圖像屬性的魯棒特性提取等[4]。但基于深度信息實現手勢識別的方法未見公開報道。
文中依托Kinect廉價且高效的硬件基礎,采用了基于圖像深度信息的手勢模型,首先利用深度數據作噪點去除,做高斯濾波,二值化分割出手勢區域,再對該片區域提取輪廓、抽象出最小矩形,接著對該最小矩形作距離變換,得到最終的近場手勢模型。
采取圖像深度信息進行手部分割只與手和攝像頭之間的距離有關,故對背景干擾的魯棒性較強,且所需計算量不大,可基本滿足實時性的要求(基于openCV的框架下刷新率為 3 Hz)。
如圖1,Kinect是微軟開發的一款家用視頻游戲機主機
的體感周邊外設,它是一種 體感攝影機,同時具有即時動態捕捉、圖像識別、麥克風輸入、語音識別、社群互動等功能。Kinect有三個攝像頭,中間的鏡頭是RGB彩色攝像機,左右兩邊鏡頭則分別為紅外發射器和紅外CMOS攝像機所構成的3D深度感應器。

圖1 Kinect結構示意圖Fig.1 The configuration of the Kinect
圖像深度的獲取通過紅外發射器和紅外線CMOS攝影機共同來完成,紅外線發射器發出的紅外光覆蓋整個待檢測區域,同時紅外線CMOS攝影機接收反射光線得到深度圖像。后者得到的圖像是一個“深度場”,其中每一個像素的顏色代表了那一點物體到攝像頭的距離。如圖2所示,左圖為深度信息圖,離攝像頭近的物體呈現亮色彩,反之則呈現暗色彩。右圖為普通攝像頭獲取的原始圖像。

圖2 深度圖像與RGB圖像對比示意圖Fig.2 Comparison between depth pic&RGB pic
在進行深度數據提取時需注意Kinect硬件本身的限制,如圖3所示,上圖為距離Kinect約60 cm處獲得的深度圖像,能得到完整的手掌深度數據。下圖為距離60 cm處再伸手往前3 cm處獲得的深度圖像,可見整個手掌已與遠處不可識別的深度數據一同變黑。由此可知在近場手勢的探測中,手掌若越過了60 cm的臨界距離,深度圖像將無效。

圖3 Kinect無效深度圖像示意圖Fig.3 Kinect recognition effect without depth detection
深度圖獲得過程的核心是光編碼技術[5],該技術用近紅外光對場景進行編碼,形成一個具有三維縱深的 “體編碼”。這種編碼來自于激光散斑,是當激光照射到粗糙物體或穿透毛玻璃后形成的隨機衍射斑點
這些散斑具有高度的隨機性,而且會隨著距離的不同變換圖案,也就是說空間中任意兩處的散斑圖案是不一樣的,只要在空間中打上這樣的結構光,整個空間就都被標記,把一個物體放進這個空間,只要觀察物體上面的散斑圖案,就可以得到這個物體的位置
紅外攝像頭獲取反射光線后將信息傳給PS1080 SoC芯片,制作出場景深度圖像。該芯片包含一個USB2.0物理層協議,其USB2.0接口可將所有數據傳送給主機,并適用于各種主機CPU——所有深度獲取算法均在PS1080上運行,主機只需運行最低限度的USB通信層。通過這種設計,即使是計算能力非常有限的主機設備也能具備深度獲取能力,既保證了實時性也使得對系統的要求不至于苛刻。
在Windows下搭建好Kinect調試環境后,在Microsoft Visual Studio 2010調試工具的幫助下,即可獲得圖像的深度數據。
從深度數據中分離出手掌的方案有多種,文中采用了一種實時性最好的處理方案,即認為離鏡頭最近的物體為手部,在深度閾值下將圖像二值化,從而分離出手部輪廓,并最終達到跟蹤手勢的目的。
該方案雖不夠嚴謹,但能適應大部分場合的交互需求,并且實時性好,對硬件的運算能力要求低。
1)零均值離散高斯濾波
由于文中的圖像處理涉及對手掌輪廓進行處理,因此有必要在提取輪廓前對圖像進行平滑處理,去除毛邊。本文選用常用的零均值離散高斯濾波器函數進行平滑處理:

其中,高斯分布參數決定了高斯函數的寬度。對于圖像處理來說,常用二維零均值離散高斯函數作平滑濾波器。
2 )二值化
一幅圖像包括目標物體、背景還有噪聲,要想從多值的數字圖像中直接提取出目標物體,最常用的方法就是設定一個閾值T,用T將圖像的數據分成兩部分:大于T的像素群和小于T的像素群。這是研究灰度變換的最特殊的方法,稱為圖像的二值化(BINARIZATION)。圖像的二值化,就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的只有黑和白的視覺效果。
3 )歐式距離變換
所謂歐氏距離變換,是指對于一張二值圖像(再次我們假定白色為前景色,黑色為背景色),將前景中的像素的值轉化為該點到達最近的背景點的距離。歐氏距離變換在數字圖像處理中的應用范圍很廣泛,尤其對于圖像的骨架提取,是一個很好的參照。
如圖4所示,原始圖像在經過高斯濾波之后,將距離攝像頭深度數據最低的值(即攝像頭最近)認為是手掌,進行二值化處理。再對二值化的圖像取最小矩形,并作距離變換得到手掌的骨架信息。

圖4 深度信息處理過程示意圖Fig.4 Image processing diagrammatic sketch
其后將最小矩形的質心認為是手掌的運動軌跡,輸出給openCV加以顯示,實現了初步的手勢跟蹤。
通過深度信息進行手勢分割可有效避免光照和復雜背景對檢測手勢的干擾,魯棒性好。同時深度層面的信息簡化了數據處理方法,客觀上減少了計算量,加快了刷新頻率,增強了人機交互的實時性。同時,此種手勢識別方法也存在一定不足:它無法識別 范圍以內的物體。但在常見的辦公室環境下,只需稍加調整,即可規避此類不足,開展實時有效的人機交互。
[1]梁愛虎.SOA思想技術與系統集成應用詳解[M].北京:電子工業出版社,2007.
[2]Miehael p papazoglou.Web服務原理與技術[M].北京:機械工業出版社,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]陳一民,張云華.基于手勢識別的機器人人機交互技術研究[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,FANG 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—)男,湖南南縣人。研究方向:手勢識別、人機交互。