鄒瀟+鄭慶慶+李冰
摘 要:手勢識別是人機交互領域的一種重要手段。針對現有算法識別率低,魯棒性弱的問題,本文基于Kinect傳感器獲取的手勢深度圖像,對復雜背景干擾下的手部區域進行分割,然后利用梯度方向直方圖(HOG)對手部灰度圖像進行特征提取,最后利用最小馬氏距離分類器進行建模、分類,實現靜態手勢識別。根據Kinect傳感器獲取的深度信息結合閾值分割法,能夠準確地檢測手部區域,為后續識別打下良好的基礎。而HOG特征適應光照的變化,且具有幾何不變矩的特性。實驗結果表明,本文提出的手勢識別方法在光照變化和復雜背景干擾下具有較強的魯棒性和較高的識別率。
關鍵詞:Kinect傳感器;深度信息;HOG特征;手勢分割;手勢識別
DOIDOI:10.11907/rjdk.172288
中圖分類號:TP301
文獻標識碼:A 文章編號:1672-7800(2018)002-0028-03
0 引言
手勢識別具有直觀性、自然性和豐富性的特點,其識別研究引起了人們極大的關注,在人機交互領域成為主流。根據手勢采集設備不同,可以分為基于數據手套的手勢識別和基于計算機視覺的手勢識別。基于計算機視覺的手勢識別無需穿戴數據手套,使操作者更加自然地進行人機交互,目前已經成為手勢識別的研究重點[1-3]。
本文研究對象是靜態手勢,其識別的一般流程如圖1所示。對于一幅輸入圖像,首先分割出手部區域,其次在手部區域提取某種特征描述子來表示該手勢的特性,最后采用某種分類方法對手勢進行識別。其中手部區域分割是手勢識別的基礎,手勢輪廓提取的完整度對后續手勢特征的提取以及手勢識別有很大影響。由于膚色在顏色空間有很好的聚類特性,目前很多成熟的算法都是基于膚色模型來分割手勢。例如采用高斯方法,對復雜背景有很好的識別效果,但是高斯模型復雜,計算量大,不適合實時操作。2010年微軟推出Kinect外設傳感器,可以獲取深度圖像,根據人手區域與背景區域在深度圖像中具有不同的深度值,利用簡單的閾值分割法來進行手勢區域檢測。基于深度圖像的手勢識別方法受光照和復雜背景的干擾小,成為近年來的研究熱點。
靜態手勢識別的各個模塊如圖1所示,特征提取步驟對手勢識別系統的性能有至關重要的作用,同時影響著手勢識別的準確率和效率。手部區域特征大致分為三類:低層特征、中層特征和高層特征。低層特征從原始的3維空間域或其變換域產生,Keskin[4]等定義了一種像素點深度特征集合來構造手勢特征,這些描述手不同位置信息的特征在一個大的特征空間里匹配起來非常耗時。為了減少訓練時間和內存消耗,Kuznetsova[5]等提出使用ESF描述子提取手部區域特征,ESF描述子由點云中隨機點的直方圖串聯構成。除了深度信息、Haarlet系數[6]、Gabor系數[7]和Flusser不變矩[8]也被用來提取有效的旋轉和光照不變的手勢特征,相對于低層特征的全局性,中層特征通常基于局部描述子。手部區域可以劃分成矩形或扇形的細胞單元,所有細胞單元中點的直方圖串聯起來形成局部描述子。高層特征是指細致的手部輪廓,Ren[9]等用時間曲線表達手部形狀,曲線的每一段對應一個手指,時間曲線記錄了每個輪廓頂點到中心點的相對距離,同時保存了拓撲信息。Hu不變矩具有平移、旋轉、縮放不變性。王先軍等[10]利用7個Hu不變矩進行手勢識別,取得了較高的識別率,但是他缺乏局部特征描述。Chang等[11]利用CSS描述子對簡單手勢取得了很好的識別效果,對比較復雜的手勢卻無能為力,這是由于CSS描述子缺乏全局信息。混合手勢特征可以結合不同層次的特征,嵌入局部和全局的信息,例如Liu[12]等人采用了手指、手掌,前臂的平移、旋轉和尺度不變三種幾何特征。為了評估不同的3維手勢特征,Sorce[13]等在不同的照明條件下比較了手部邊緣特征與SURF描述子。實驗表明:一方面,除非不依賴光照的邊緣提取算法,否則利用邊緣特征來識別效果很差;另一方面,基于SURF的特征在可選的光照條件下是最好的。這些實驗結果能幫助研究者設計更有效的手勢識別特征。
本文提出一種基于Kinect深度信息,并結合HOG特征方法對靜態手勢進行識別。首先利用Kinect相機獲取的深度圖像分割出手勢區域,其次提取該區域的HOG特征,最后采用馬氏距離對特征進行分類,從而實現手勢識別。
1 基于Kinect深度信息的手勢分割
Kinect是微軟開發的一款家用視頻游戲主機XBOX360的體感周邊外設,是一種3D體感攝像機[14]。其有3個鏡頭,中間鏡頭是RGB彩色攝像機,左右兩邊的鏡頭分別為紅外線發射器和紅外線CMOS攝影機所構成的3D深度感應器,可以同時獲得一個場景的RGB圖像和深度圖像。深度圖像是一個“深度場”,其中每一個像素的顏色代表了那一點物體到攝像頭的距離,離攝像頭越近的物體越亮。由于采集手勢時,人手通常置于攝像頭的最前端,根據深度閾值能夠有效地將手部圖像分割出來。實際應用中,Kinect傳感器獲得的深度圖像存在一些空洞和噪聲點,尤其在目標的邊界處得到的深度值不穩定,需要進行預處理。本文采用一種非線性的深度中值濾波算法[15]對深度圖像預處理,可以去掉一些孤立的噪聲點,保留手部邊緣。圖2給出了手勢分割的一個示例,圖2(a)為Kinect相機獲取的RGB彩色圖像,圖2(b)為其相應的深度圖像,經過去噪等預處理,基于灰度直方圖(如圖2(c)所示)進行手勢分割,得到圖2(d)所示的手部區域。
2 HOG特征提取
Dalal于2005年提出HOG(梯度方向直方圖)特征,由于該特征對光照變化和復雜背景具有較好的魯棒性,在行人檢測的應用中取得了較好的效果。本文將HOG特征用于手勢識別,在一幅圖像中,局部目標的表象和形狀能夠被梯度或邊緣的方向密度分布很好地描述。HOG特征還可以描述整個手部區域的灰度變化情況,位置和方向空間的量化可以一定程度上抑制旋轉帶來的影響。endprint
手勢HOG特征的提取步驟如下[16-17]:
(1)將輸入圖像灰度化。
(2)使用一維離散微分模板分別在水平和垂直方向上計算圖像中每個像素的梯度Gx(x,y)和Gy(x,y),然后根據公式(1)得到每個像素梯度的幅值G(x,y)和方向α(x,y),這主要是為了捕獲輪廓信息,同時弱化光照的干擾。
(3)將圖像劃分成小的細胞單元(稱為cell),為cell構建梯度方向直方圖,cell中的每個像素點為直方圖的bin進行加權投票,權值根據像素點的梯度幅值進行高斯加權得到。
(4)將若干個相互連通的cell組成一個區間(稱為block),一個block內所有cell的特征向量串聯起來便得到該block的HOG特征。這些區間互有重疊,意味著每一個cell的特征會以不同的結果多次出現在最后的特征向量中。
(5)在block中進行梯度歸一化得到描述符,即HOG特征。由于局部光照的變化以及前景—背景對比度的變化,使得梯度變化幅度比較大,需要對其以L2范數為因子進行歸一化處理。
HOG特征向量的長度D由圖像大小,cell大小,每個cell的梯度方向直方圖的bin數以及block大小和移動步長決定。其計算方法如公式(2):
其中,cDim表示每個cell的特征維數,bSize表示block大小,cSize表示cell大小,bStep表示移動步長,w和h表示圖像的寬和長。
3 基于Kinect傳感器和HOG特征的靜態手勢識別
3.1 實驗方法
為了驗證本文提出方法的有效性,采集10位志愿者的4種手勢(即剪刀、石頭、布和另一種任意手勢),每種手勢做10遍,得到400個手勢樣本,測試樣本和訓練樣本各占總體的1/2,對前3類手勢的訓練樣本,每類50個手勢用同樣的方法提取HOG特征作為模板庫。為了減少HOG特征向量的維數,將分割出來的手勢灰度圖像歸一化到64×64像素,cell大小取為8×8像素,每個cell的特征維數為9,相鄰2×2個cell構成1個block,block的移動步長為8個像素,那么根據公式(2)求得一幅手勢圖像的HOG特征為1764維的向量。
在分類判決階段,利用測試樣本的HOG特征與標準模板之間的馬氏距離最小且不超過某一閾值作為判斷準則。該閾值由測試樣本與50個另一種任意手勢的訓練樣本的HOG特征集的最小距離決定,超過閾值即判斷手勢無效,返回。馬氏距離針對所有特征向量均衡處理,而且與尺度無關,因此采用馬氏距離來計算測試樣本與模板之間的相似度是比較合適的[15],表達式如公式(3)所示。
其中,x為測試樣本的HOG特征向量,μ=(μ1,μ2,…,μN)T為模板庫特征數據計算出的平均值所組成的一組向量,S為協方差矩陣。馬氏距離越小,相似度越高。
3.2 實驗結果
實驗中采用MATLABGUI生成一個操作界面,能夠自動識別隨機輸入的兩種測試手勢,并作出輸贏比較,各種實驗結果如圖3所示。可見,本文方法對于剪刀、石頭、布這3類手勢的平均識別率達到了98.5%。
4 結語
近年來,手勢識別技術在人機交互領域受到越來越多的關注。本文主要研究了基于Kinect傳感器的靜態手勢檢測與識別方法,在預處理階段,利用深度信息進行手勢分割有效地避免了光照和復雜背景對檢測手勢區域的干擾,后續引入的HOG特征具有旋轉不變的特性,且適應光照變化,因此結合二者的靜態手勢識別方法獲得了較高的識別率。本文用來測試的手勢比較簡單,而且采集深度圖像時,志愿者的手伸到了最前端,使得在預處理階段就能獲得準確的手部輪廓,今后的工作將豐富手形的變化,建立一個完整的手勢數據庫,從而進一步提高Kinect傳感器的靜態手勢檢測與識別方法的推廣。
參考文獻:
[1] 劉陽,尚趙偉.基于Kinect骨架信息的交通警察手勢識別[J].計算機工程與應用,2015,51(3):157-161.
[2] 劉亞瑞,楊文璐.基于Kinect和變形雅可比-傅里葉矩的手勢識別[J].傳感器與微系統,2016,35(7):48-50.
[3] 周天彤,徐飛林,張旖帆,等.基于unity和kinect的交警手勢識別仿真系統的設計和實現[J].計算機測量與控制,2016,24(5):156-159.
[4] C KESKIN, F KIRAC, Y KARA, et al. Randomized decision forests for static and dynamic hand shape classification[J]. IEEE CVPR Workshops,2012:31-36.
[5] A KUZNETSOVA, L LEAL-TAIXE, B Rosenhahn. Real-time sign language recognition using a consumer depth camera[J]. IEEE ICCV Workshops,2014:83-90.
[6] M VAN DEN BERGH, D CARTON, R DE NIJS, et al. Real-time 3D hand gesture interaction with a robot for understanding directions from humans[J]. IEEE RO-MAN,2011:357-362.
[7] N PUGEAULT, R BOWDEN. Spelling it out: real-time ASL finger-spelling recognition[J]. IEEE ICCV, 2012,28(5):1114-1119.endprint
[8] L GALLO, A PLACITELLI. View-independent hand posture recognition from single depth images using PCA and flusser moments[C]. International Conference on Signal Image Technology and Internet Based Systems,2012:898-904.
[9] Z REN,J YUAN,Z ZHANG. Robust hand gesture recognition based on finger-earth movers distance with a commodity depth camera[C]. ACM International Conference on Multimedia,2011:1093-1096.
[10] 王先軍,白國振,楊勇明.復雜背景下BP神經網絡的手勢識別方法[J].計算機應用與軟件,2013,30(3):247-249,267.
[11] CHANG C C, LIU CHENGYI, TAIWENKAI. Feature alignment approach for hand posture recognition based on curvature scale space[J]. Neuro-computing,2008,71(10):1947-1953.
[12] Y LIU,Y YANG,L WANG, et al. Image processing and recognition of multiple static hand gestures for human-computer interaction[J]. ICIG,2013:465-470.
[13] S SORCE,V GENTILE,A GENTILE. Real-time hand pose recognition based on a neural network using Microsoft kinect[C]. IEEE International Conference on Broadband and Wireless Computing, Communication and Applications,2013:344-350.
[14] 羅元,謝彧,張毅.基于Kinect傳感器的智能輪椅手勢控制系統的設計與實現[J].機器人,2012,34(1):110-113.
[15] 蒲興成,王濤.基于改進Hu矩算法的Kinect手勢識別[J].計算機工程,2016,42(7):165-172
[16] 任彧,顧成成.基于HOG特征和SVM的手勢識別[J].科技通報,2011,27(2):211-214.
[17] 劉淑萍,劉羽,於俊,等.結合手指檢測和HOG特征的分層靜態手勢識別[J].中國圖象圖形學報,2015,20(6):0782-0788.endprint