王 萍, 胡 炎
(天津大學 電氣與自動化學院,天津 300072)
?
基于歐氏骨架的手勢識別系統*
王 萍, 胡 炎
(天津大學 電氣與自動化學院,天津 300072)
引進最新骨架提取算法,設計并實現了一種以手勢的歐氏骨架為基準的手勢識別系統,系統由通用視頻采集模塊和ARM開發板硬件組成。利用動態前景檢測算法結合YCbCr膚色識別模型,分割出手勢區域;借助歐氏距離變換和Delta—中軸骨架提取算法獲得手勢區域的歐氏骨架,并提取骨架的關鍵點和歐氏距離等幾何參數,以此建立手勢識別的幾何模型。實驗測試正確識別率高達94 %,每幀圖片處理時間小于25 ms,表明該系統實時、有效。
歐氏骨架; 手勢識別; 關鍵點; 實時
手勢識別是人機交互領域內一項重要的研究課題,旨在將人手作為直接的信息輸入設備,通過預先定義的手勢模型,對計算機下達相應的指令。根據感知設備的不同,手勢識別系統可以分為:基于數據手套[1](硬件傳感器)和基于計算機視覺[2]兩種類型。其中,數據手套的成本較高,在一定程度上也影響人機交互的友好性。
基于計算機視覺的手勢識別系統的建模方法主要有:隱馬爾可夫模型[3]、神經網絡[4]和幾何特征[5]。其中,隱馬爾可夫模型對于時間序列有較強的分析處理能力,適用于動態手勢識別。但所需計算量較大,難以滿足快速實時應用的需求;神經網絡具有較快的計算速度,兼具較強的魯棒性和學習能力,但處理時間序列的能力較差,適用于靜態手勢識別;基于幾何特征的手勢識別方法是利用手掌、手指區域和輪廓的幾何特征,借助模板匹配技術[6]進行手勢的匹配識別。基于幾何特征的手勢識別方法更接近人類視覺上對手勢的理解,且不需要借助復雜分類器,穩定性和實時性較好。
本文引進最新骨架提取算法,設計并實現了一種以手勢的歐氏骨架為基準的手勢識別系統。Delta—中軸[7]骨架提取算法是目前骨架提取最新研究成果,其主要優勢是快速、魯棒性強,適合于骨架提取的實時計算。實際測試表明,利用骨架信息結合歐氏距離變換的關鍵點構建的手勢識別模型,具有識別率高、實時性較好的優點。
手勢識別系統的設計如圖1所示,包括5個部分:視頻采集、動態檢測、骨架提取、手勢識別和結果顯示。其中,每幀圖像大小為240像素×240像素,格式為YUV,識別系統采用Qt框架為主進程。線程1主要用來執行圖像序列采集和手勢分割,分割結果上傳到緩存隊列,緩存隊列設定長度為10。線程2從隊列中讀取手勢二值圖像,執行骨架提取和手勢識別。

圖1 手勢識別系統設計框架
2.1 動態分割算法
膚色分割所依賴的顏色空間通常有RGB,HSV和YCbCr。由于RGB三通道均含有亮度信息,用于膚色識別時亮度的適應性較差。HSV空間將亮度、色度和飽和度分開,但膚色在HSV空間中分布緊密性不好,因此環境適應性較差。YCbCr空間在人臉識別中[8,9]應用較為廣泛,它將亮度和色度分開,利用色度分割膚色,分割效果相對較好。在YCbCr空間中,膚色滿足
133≤Cr≤173,77≤Cb≤127
(1)
為了滿足準確提取手部的二值區域,本文采用了Vibe算法[10]結合式(1)來檢測運動的手部區域。Vibe算法是一種基于像素級別的背景建模、前景檢測算法。該算法對硬件內存占用少,運算速度快,但當目標存在大面積同色區域時,內部容易出現空洞。
本文動態手勢分割操作如下:在Vibe算法更新過程中,如果當前點被檢測為前景點,則利用式(1)檢驗該點的8鄰域像素點是否滿足膚色條件;如果滿足膚色條件點的個數大于3個,則將其8鄰域內所有像素點全部標記為膚色點,并在對當前幀的更新操作中直接判別為前景點。該操作可以有效填補手勢區域內的空洞。在背景穩定不變的前提下,通過以上方法可以有效地分割出手勢區域,如圖2所示。

圖2 動態手勢分割
2.2 Delta—中軸骨架提取算法

MAδ(X)={x∈X|δx≥δ}
(2)

δx=max{d(z),z∈Lpxy}
(3)


圖3 不同情況下x處的最大形變圓
2.3 歐氏距離局部極大值點
歐氏距離變換[11]的局部極大值點是3×3鄰域距離變換的最大值點。本文在下文中提到的極值點,均指距離變換的局部極大值點。文獻[12]指出,局部極大值點只分布于骨架上距離值變化穩定的區域。因此,在骨架線末端開叉的位置,不會出現局部極值點。由于本文使用的是精準歐氏距離變換,因此,可以使用骨架線上局部極值點的距離值估算物體的局部寬度
物體的局部寬度≈局部極值點距離值×2倍
(4)
3.1 模型參數
本文提出的以歐氏骨架為基準的手勢識別模型如圖4所示,包括掌心、骨架端點、距離端點最近的歐氏距離極大值點(以下稱極值點)、內(外)掌心圓、以及各極值點的歐氏距離值(也即最大內切圓半徑)等參數。

圖4 本文提出的手勢識別模型
各特征參數說明如下:
1)掌心:本文定義掌心為手部區域歐氏距離變換的最大值點,記掌心點為C0,C0處的距離變換值為VC0。
2)端點:端點即骨架線的端點,通過端點檢測即可獲得骨架線的所有端點。
3)極值點:由于端點處距離值無法估算手指、手腕等寬度,本文使用距離各端點最近的局部極大值點的距離值來估算手指、手腕等寬度。
4)內掌心圓以C0為圓心,0.5VC0為半徑的圓。如果端點的最近局部極值點位于內掌心圓內,則判定該端點無效。
5)外掌心圓以C0為圓心,1.2VC0為半徑的圓。如果端點位于外掌心圓內,則判定該端點無效。
6)關鍵點模型的關鍵是利用以上各參數從判定為有效的端點中,識別出手指端點和手腕端點,亦即模型的關鍵點。在此基礎上,可以根據手指寬度信息識別出單指和多指的情況。
3.2 匹配規則
一般人體手掌的寬度約等于除大拇指外的4根手指的寬度,而手腕的寬度大約為手掌寬度的2/3。根據式(4),手掌寬度為2VC0,手指和手腕的寬度用最近局部極值點的距離值來估算,計算方法同掌寬。假設最近局部極值點處距離值為h,令l=2VC0/4。由于本文提出的模型是接近手指末端的寬度,因此,手指的平均寬度應小于l,則單根手指的指端極值點處距離值應滿足h<1.2l,手腕極值點處距離值滿足h>2.5l,如果不存在并指的情況,可直接根據h值的范圍判斷手指和手腕。



圖5 合并鄰近的極值點
判別規則:
單指:若hi<1.2l且ai=1,則pi為手指端點,單指情況;
手腕:hi/2>1.25l且ai=2,則pi為手腕端點;
多指并攏:hi/ai< 1.2l,ai≥2,則pi為手指端點,多指并攏。
4.1 實驗測試
本文實驗環境為Cortex—A9,1G內存,4核×1.6GHz,Linux操作系統,視頻采集設備為500W像素OV5640攝像頭模塊。實驗測試針對如圖6所示的10種手勢。實驗方式為:線程1實時動態檢測,當手部區域移動到采集區中心位置時,線程2執行一次手勢識別,打印識別結果并保存結果圖像;每種手勢以不同方向進入采集區域10次,統計識別結果。其中,前6種手勢識別率達到98 %,后4種并指的情況識別率為88 %,總體識別率達到94 %。

圖6 10種手勢的識別模型
由于手勢10中包含單指和并指的情況,本文僅以手勢10為代表給出手勢10詳細的模型參數,如表1所示(其中,l=30.2×2/4=15.1像素)。從表1可以看出,手腕的寬度與手指的寬度差異較大。

表1 手勢10實測模型參數
4.2 算法復雜度分析
本文重點分析了基于歐氏骨架的手勢識別部分(也即線程2內運行的程序)的算法復雜度,該部分主要分為Delta—中軸骨架提取算法、歐氏距離變換和手勢模型參數的計算三個部分。假設圖像前景點數目為N,骨架點的數量為N1,則Delta—中軸骨架提取算法和歐氏距離變換的復雜度為O(N),手勢模型參數的計算主要是以骨架為基準,因此,該部分算法的復雜度為O(N1)。考慮到N1 由于Delta—中軸骨架提取算法實時、高效和魯棒性強的特點,用于手勢識別具有穩定可靠的優勢。從實驗中可以看出,在無并指的情況下,本文提出的手勢識別模型準確識別率達到了98 %,每幀耗時不超過25 ms,因此,可以滿足實時應用的需求。該模型與傳統的手勢識別模型相比,不需要做手腕分割,具有更強的適應性和穩定性。 [1] Chaudhary A,Raheja J,Das K,et al.Intelligent approaches to interact with machines using hand gesture recognition in natural way:A survey[J].International Journal of Computer Science & Engineering Survey,2011,2(2):122-133. [2] Luzanin O,Plancak M.Hand gesture recognition using low-budget data glove and cluster-trained probabilistic neural network[J].Assembly Automation,2014,34(34):94-105. [3] 江 超,艾矯燕.基于OpenCV的攝像頭動態手勢軌跡識別及其應用[J].計算機應用,2012,32(z1):128-133. [4] Kim H,Lee J,Park J.Dynamic hand gesture recognition using a CNN model with 3D receptive fields[C]∥International Confe-rence on Neural Networks & Signal Processing,Nanjing:IEEE,2008:14-19. [5] Chen Z,Kim J,Liang J.Real-time hand gesture recognition using finger segmentation[J].The Scientific World Journal,2014,2014(2):267872. [6] 田 娟,鄭郁正.模板匹配技術在圖像識別中的應用[J].傳感器與微系統,2008,27(1):112-117. [7] Marie R,Labbani-lgbida O,Mouaddib E M.The delta medial axis:A fast and robust algorithm for filtered skeleton extraction[J].Pattern Recognition,2016,56:26-39. [8] 張云龍,謝澤奇,張會敏.一種復雜背景下的人臉檢測方法[J].傳感器與微系統,2011,30(6):42-48. [9] 馮輝宗,謝 靜,蔣建春.針對機動車駕駛員的人臉檢測方法[J].傳感器與微系統,2012,31(9):112-115. [10] Barnich O,Van M.Vibe:A universal background subtraction algorithm for video sequences[J].IEEE Transactions on Image Processing & Publication of the IEEE Signal Processing Society,2011,20(6):1709-1724. [11] 劉相濱,鄒北驥,孫家廣.基于邊界跟蹤的快速歐氏距離變換算法[J].計算機學報,2006,29(2):317-323. [12] 劉俊濤,劉文予,吳彩華.一種提取物體線形骨架的新方法[J].自動化學報,2008,36(6):617-622. Gesture recognition system based on Euclidean skeleton* WANG Ping, HU Yan (School of Electrical Engineering and Automation,Tianjin University,Tianjin 300072,China) A gesture recognition system is developed based on the lasted skeleton extracting algorithm and Euclidean distance transform.The system consists of generic video acquisition module and ARM.Firstly,gestures region are segmented by dynamic forescene detection algorithm combined with skin color detection model of YCbCr;secondly,the Delta-medial axis skeleton extraction algorithm and Euclidean distance transform are applied to obtain Eudidean skeleton so as to extract geometric parameters,and key points on the skeleton.Then a gesture recognition model is built by these geometric parameters.Test results show that the overall recognition rate reaches 94 %,processing time of each frame image is less than 25 ms,which shows that the system is real-time and effective. Euclidean skeleton; gesture recognition; key points; real-time 10.13873/J.1000—9787(2017)08—0111—03 2016—08—12 天津市自然科學基金資助項目(14JCYBJC21800) TP 216 A 1000—9787(2017)08—0111—03 王 萍(1955-),女,教授,博導,主要從事圖像識別、運動對象跟蹤、圖像理解。5 結束語