李思岑,王 平,張 鵬,宋丹妮(西華大學 電氣信息學院,四川 成都 610039)
基于Kinect深度圖像信息的手勢跟蹤與識別
李思岑,王平,張鵬,宋丹妮
(西華大學 電氣信息學院,四川 成都 610039)
針對基于視覺的手勢識別技術對環境背景要求較高的問題,提出了一種利用深度信息進行手勢提取和識別的研究方案。采用Kinect深度攝像頭,通過中值濾波以及深度信息與鄰域特點來分割手部區域并用Canny算子提取出手勢輪廓,再以深度圖像的凸缺陷指尖來完成對指尖的檢測,從而實現對數字手勢1到5的手勢識別。該方法可快速有效地對指尖進行檢測,魯棒性和穩定性都比其他方法更好。實驗結果表明,該手勢識別方案的平均識別率達到92%,證明了該方法的可行性。
手勢識別;Kinect;Canny算子;凸缺陷檢測
人機交互(Human-Computer Internet,HCI)是指人和計算機之間通過某些交互方式(媒介、對話接口等),使用某種對話語言來傳遞和交換信息,是計算機系統的重要組成部分[1]。在很長一段時間里,以鼠標和鍵盤作為輸入設備、字符文本和圖形窗口作為輸出設備是最主要的人機交互方式。近年來,隨著計算機視覺技術的不斷發展與完善,使用攝像頭進行手勢的捕捉是手勢識別的主要方式。與傳統的需要專用硬件設備(數據手套輸入設備等)輔助才能完成手勢輸入相比,自然人機交互實現的手勢輸入具有廣闊的應用前景和重要的研究價值。
使用計算機視覺技術進行手勢輸入,需要對獲得的手勢圖像進行手勢分割,將手勢從整個輸入圖像中分割出來。手勢提取的方法主要有以下三種:(1)增加限制法:該方法是通過增加種種限制因素來增加背景區與手勢區的對比,主要使用背景相減或者差分法,但該方法降低了人機交互所提出的自然性,故主要用于手勢訓練樣本[2]。(2)膚色模型法:膚色在特定空間中總是分布在某個區域,可以根據膚色區域與非膚色區域將手勢分割出來。ALON J等人[3]采用膚色模型與運動信息結合的方法來進行手勢分割,但膚色易受光照變化、攝像機參數、人類種族、年齡、性別等因素影響。(3)模板匹配法:該方法首先建立一個手勢的訓練模板數據庫,用這些模板遍歷整幅圖像并進行匹配,在匹配的同時完成識別[4]。其缺點是運算量較大,不能有效地運用于實時跟蹤識別中。
2010年微軟公司推出了用于 Xbox 360的體感外設3D攝像機Kinect,采用結構光編碼技術獲得拍攝圖像深度信息。Kinect攝像部分包括紅外發射器、紅外攝像頭和RGB攝像頭。圖像處理器通過分析散斑圖案獲得空間距離生成深度影像。
本文依據Kinect高效且廉價的硬件基礎,基于圖像深度信息的手勢模型,首先利用中值濾波對深度數據做噪點去除和平滑處理,然后通過二值化、骨骼點進行手勢提取,再以深度圖像的凸缺陷指尖來作為檢測基礎,對已分割出的手部二值圖像用Canny算子提取出手勢輪廓,利用凸缺陷之間的關系剔除偽指尖點,完成對指尖的精確檢測。基于Kinect深度圖像信息的手勢提取與識別由于手勢分割只與手和攝像頭之間的距離有關,故對背景復雜干擾的魯棒性較好。
一個完整手勢識別主要分為圖像深度信息獲取與預處理、圖像深度信息的手勢提取分割、手勢建模、手勢識別等幾個步驟,流程圖如圖1所示。

圖1 手勢提取與識別流程圖
1.1圖像深度信息獲取原理
Kinect共有 3個鏡頭,中間是普通的RGB彩色攝像頭,左邊是紅外發射器,右邊是紅外 CMOS攝像頭組成的深度傳感器。圖像深度獲取是通過左右兩邊的紅外發射器和紅外CMOS攝影機一同完成的,紅外發射器發出紅外光覆蓋整個待檢測區域,與此同時紅外線CMOS攝影機接收反射光線得到深度圖像,其中每一個像素的顏色代表了那一點物體與攝像頭的距離。基于Kinect獲取的圖像深度信息圖如圖2所示。

圖2 基于Kinect深度圖像信息獲取
1.2圖像深度信息預處理
中值濾波是一種基于排序統計理論、能有效抑制噪聲的非線性數字濾波技術,常被用于濾除圖中的斑點噪聲和椒鹽噪聲。其基本原理是把數字圖像中一像素點p(i,j)的值用該點的一個鄰域窗口 w中各點值的中值代替,使周圍像灰度值接近真實值,從而消除孤立噪聲點。其方法是把該鄰域窗口w中所有像素的灰度值按從小到大的次序排列,生成單調上升(或下降)的二維數據序列,并選擇中間值作為中心像素點 p(i,j)的灰度新值,窗口移動時,就能夠通過中值濾波對圖像進行平滑處理。中值濾波的基本公式可以表示為:

其中,f(r,s)表示鄰域窗口 w內任意像素點的灰度值,Nf(i,j)表示 f(i,j)的實心鄰域。本文中選擇的 w為 11×11的正方形濾波窗口。
該算法不僅可以對噪聲區域進行平滑處理,還可以很好地保持區域之間的邊界形態。對圖2(b)所示的深度信息圖進行中值濾波,結果如圖3所示,圖3較好地說明了中值濾波是如何去掉結構化人為干擾的。中值濾波對于抑制邊緣模糊有很好的特性,本文使用中值濾波算法實現了對深度圖像的降噪濾波。

圖3 中值濾波效果
2.1手心的檢測與跟蹤
本文基于深度圖像信息進行手部區域提取的基本流程為:先根據手心關節點坐標位置建立一個手部信息的矩形盒;再在這個矩形盒內以手心關節點位置開始向鄰域逐個遍歷像素,檢測像素是否屬于手部區域,如果符合條件就在二值圖中置1,循環遍歷所有需要遍歷的鄰域像素直到個數為空;最后得到手部區域的二值圖。
在對手勢進行檢測完畢之后,調用 Hand Tracker的startHandTracking()函數就可以對手部進行跟蹤。圖4為不同深度距離位置對手心檢測的結果。

圖4 不同深度位置對手心跟蹤檢測
2.2手勢的分割
在檢測跟蹤到手心以后,根據手心Z坐標的深度值對深度圖像進行分割,如式(2)所示:

其中,手部可能存在區域的像素值為 255,其他區域為0,式(2)中的閾值設定為150 mm。
將手心點投影到2D空間,根據手的大小做一次二維分割,如式(3)所示:

其中,W(Z)表示以手心為中心的一個包圍盒,大小與手勢到Kinect的距離成正比。

基于最優化算法的 Canny邊緣檢測算子[5],提取的邊緣線形連接較為完整,定位準確性較高,效果好。本文采用此方法對深度圖像進行邊緣提取。首先用一階偏導的有限差分來計算梯度的幅值和方向,再對梯度方向進行量化,使其只有8個方向,即 0°、45°、90°、135°、180°、225°、270°、315°,對于每一個梯度強度非零的像素點,查找沿其量化后的梯度方向的兩個相鄰像素點,然后通過閾值判斷為非邊緣點還是候選邊緣點。對于弱邊緣點,如果它與強邊緣點在8連通區域相連,則該點記為弱邊緣點,同時將其邊緣提取置為1,所有標記為1的點就成了最后的邊緣。手部提取輪廓如圖5所示。

圖5 手部提取輪廓
2.3手心、指尖檢測與識別
為了獲取更準確的手心坐標,利用細化方法中的距離變換 (Distance Transform)算法來計算手部區域的骨骼,從而得到手心位置。
本文采用葛立恒掃描法(Graham Scanning Method)[6]進行凸包檢測,在結束對凸包點的檢測之后,采用參考文獻[6]的方法繼續計算缺陷點(Convex Defects),再由閾值判定條件得到代表手指凸包點的個數從而實現對1~5的檢測識別,結果如圖6所示。

圖6 1~5手勢識別
由表1實驗驗證結果可知,基于 Kinect的深度圖像手勢識別平均正確率達到92%,能夠達到基本手勢識別的目的。使用深度圖像信息進行手勢識別可能會受到拍攝光照、角度和手勢的彎曲程度的影響,通過識別結果可以了解到,手勢 1、2、3的出錯概率較 4、5多,造成錯誤識別的原因大都是因為手指的彎曲造成深度信息錯位,這也是以后需要改進的方面。
本文設計并實現了基于 Kinect深度圖像信息的手勢提取與識別,此方案使用設備簡單,計算量少,能有效提高工作效率。相比較于傳統基于二維計算機視覺識別,該方法增加了深度信息,能夠很好地去除復雜背景的影響,可以解決手指水平豎直移動容易識別錯誤的問題。但由于手勢增加可能造成深度方向可分辨性降低,在后續工作中將考慮對平面信息和深度信息融合進行識別。

表1 不同環境下手勢識別率
[1]MINSKY M R.Manipulating simulated objects with realworld gestures using a force and position sensitive screen[J].AQH Computer Graphics,1984,18(3):195-203.
[2]任海兵,祝遠新,徐光,等.基于視覺手勢識別的研究——綜述[J].電子學報,2000,28(2):118-121.
[3]ALON J,ATHITSOS V,Yuan Quan,et al.A unified framework for gesture recognition and spatiotemporal gesture segmentation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2009,31(9):1685-1699.
[4]趙亞飛.基于視覺的手勢識別技術研究[D].杭州:浙江大學,2011.
[5]舒欣,李東新,薛東偉.五幀差分和邊緣檢測的運動目標檢測[J].計算機系統應用,2014,23(1):124-127.
[6]Graham scan.http://en.wikipedia.org/wiki/Graham_scan.
Research on gesture tracking and recognition based on Kinect depth data
Li Sicen,Wang Ping,Zhang Peng,Song Danni
(School of Electrical and Information Engieering,Xihua University,Chengdu 610039,China)
Aiming at the problemthat gesture recognitiontechnology basedonvisionrequires a lot onenviroment and background,a gesture extraction and recognition scheme based on depth data is presented in this paper.By Kinect,the hand is segmented through the median filtering,the depth information and neighborhood features,and Canny operator is used to extract the hand contour.Then fingertip detection is completed by depth-based convex defects detection,implementing gesture recognition for number gesture 1 to 5.This method can quickly and effectively detect the fingertip,robustness and stability are better than other methods.Experimental results show that the average recognition rate of this scheme is 92%,which proves the feasibility of the method.
gesture recognition;Kinect;Canny operator;depth-based convex defects detection
TP301.6
A
1674-7720(2015)06-0053-03
2014-10-29)
李思岑(1989-),女,碩士研究生,主要研究方向:嵌入式技術及應用、圖像處理。
王平(1970-),男,碩士生導師,主要研究方向:傳感器系統集成技術、信息融合技術、生物醫學信息處理、嵌入式計算機系統可靠性技術等。
張鵬(1988-),男,碩士研究生,主要研究方向:信號與信息處理、圖像處理。