方路平,洪文杰,潘 清,姚家良
(浙江工業大學信息工程學院,杭州 310023)
基于視覺圖像的手指關節角度檢測方法及其實現
方路平,洪文杰,潘 清,姚家良
(浙江工業大學信息工程學院,杭州 310023)
常用的手勢識別方法受限于有限的二維圖像信息,難以從復雜的背景中有效地分割出目標像素,且大多依賴于監督學習的分類方法,只能在有限的手勢庫中進行選擇判定,無法適用于較為精細的手指運動檢測。為此,提出一種利用粒子群尋優算法來估計手指關節角度的方法,引入Kinect深度圖像優化特征提取,提高檢測準確性,通過對手部自由度的分析,引入多個約束條件,減少需要預測和估計的自由度個數。基于粒子群尋優算法,得出最優的預測模型,將手勢分類問題轉化為手指關節角度變量求解問題。實驗結果表明,該方法有效地提高了手勢檢測中的檢測準確率,降低了檢測失效的情況。
手勢識別;深度圖像;膚色檢測;粒子群優化算法;手指關節角度
DO I:10.3969/j.issn.1000-3428.2015.10.041
手勢識別一直是人工智能和人機交互研究的熱點。隨著科技的發展,機器人的智能化、現實增強技術等技術已經逐漸從設想變為真實的應用。成熟的手勢識別方法可以用于機器人、啞語識別、運動檢測等領域中,應用前景廣泛。
本文旨在把手指關節角度檢測方法應用到醫療領域。為了提高檢測的精度,提出一種基于粒子群尋優算法,使用深度圖像的手指關節角度檢測方法,通過以下3個方面改進現有手勢識別技術中存在的問題:
(1)利用Kinect的深度作為圖像特征,減小復雜特征提取中的誤差,并使用深度數據對圖像特征分割提取進行優化,解決復雜背景下的分割困難問題。
(2)提出將手建模成具有21個自由度的三維模型,將對手勢的檢測轉化為對自由度變量的求解問題,從而不再局限于有限的手勢庫,適用于精細的手指運動檢測。通過比對手勢三維模型和觀測深度圖
像,可以較為準確地判斷出關節角度,避免了誤判帶來的檢測失效。
(3)對自由度變量的求解,采用粒子群優化(Particle Swarm Optimization,PSO)算法,從而不再依賴于傳統的分類器,減少分類器訓練不佳帶來的檢測誤差。
在手勢識別的發展過程中,比較常見的手勢識別系統有2種:數據手套系統和徒手系統[1]。基于數據手套的手勢識別系統,需要用戶在手上佩戴特殊的手套或者相關識別傳感器來獲取測量手指和關節在空間的位置和運動的軌跡。在很多特效的電影或者游戲制作中,都可以看到這種類似的動作捕捉系統[2]。徒手系統是指通過圖像視覺的方法檢測用戶的動作,是人機交互研究的熱點之一。文獻[3]提出了基于隱性馬爾科夫模型的動態手勢檢測方法,可以識別預先指定的7種動態連續手勢。文獻[4]利用圖像的光流匹配特性,采用AdaBoost算法來識別手勢。基于二維圖像的手勢識別方法具有圖像采集設備簡單通用的優點,但其準確性都極大依賴于前期對圖像特征的提取,因此,在復雜背景下的準確度會受到較大影響。
隨著深度攝像技術的發展,基于深度圖像的手勢識別方法很好地改善了上述不足。文獻[5]提出基于深度圖像的手勢識別,采用決策樹的方法對常見的9種手勢在復雜背景下進行了檢測,收到了較好的檢測效果。2011年微軟發布Kinect,可以實現每秒30幀的深度圖像獲取,并且精度可以達到3 mm[6]。文獻[7]利用Kinect輸出的深度圖像的方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征,利用AdaBoost分類器來檢測手勢,減少了復雜背景對特征提取的干擾。但是,上述方法均依賴于分類算法,只能在有限的手勢庫中選擇判定,無法適用于較為精細的手指運動的檢測。文獻[8]提出利用Kinect跟蹤手掌和手指的所有關節在三維空間中的位置和方向,但算法實現對硬件要求比較高。文獻[9]通過引入 Sobol隨機序列可以在有限的計算資源的情況下獲得精確的手指關節跟蹤信息。文獻[10]通過將RGB圖像和對應的深度圖像與標記捕捉系統結合從而獲得精確的手部模型。
本文實現的具體算法方案設計如圖1所示,根據其執行的硬件環境可分為兩大部分:(1)圖像處理和采集模塊,主要由CPU執行,負責視頻圖像的獲取和簡單處理、膚色檢測和興趣區域的提取。(2)粒子群尋優模塊,主要運算由GPU執行,負責模型圖像的繪制以及目標函數的計算和降維。

圖1 算法總體流程
4.1 圖像采集
圖像采集模塊用于取得RGB圖像和對應的深度圖像。為了克服深度攝像頭和彩色攝像頭位置不一致帶來的視覺差,需要利用深度圖像對該RGB圖像進行校準操作[11]。通過給Kinect的指定API函數傳入一個全為0的深度數據,就可以準確地校準彩色圖像。經過校準以后,深度圖像和彩色圖像的每個像素就建立起了一一對應的映射關系。
4.2 特征提取
圖像特征的提取過程中,為了更準確地分割背景和目標,在傳統膚色檢測方法[12]的基礎上,利用Kinect的深度信息來篩選像素,整體膚色檢測分割流程如圖2所示。

圖2 膚色分割處理流程
深度過濾利用了RGB像素和深度像素的映射關系,濾除指定深度值之外的膚色或者膚色相近的區域。通過引入深度數據來優化分割,提高了其在復雜背景下的準確性,為后續計算提供了穩定準確的輸入。
尺寸過濾可以濾除尺寸明顯不正確的區域,例如濾除尺寸明顯過大的膚色相近區域,更重要的是
可以濾除噪點,減少了對后續計算的干擾。除了過濾掉不合適的點之外,還應用了形態學的膨脹,以擴張和消除區域中的空洞。
圖3演示了特征圖像的提取過程和最終結果。雖然在圖3(a)中,背景圖像較為復雜,面部和手部這2個膚色區域都重疊在了一起,分割算法依然取得了目標像素,并且去除了大量噪點,使得最終獲得的特征圖像只包含了目標的深度數據,其他像素值被濾除為0。

圖3 特征圖像的提取過程和最終結果
5.1 手的建模
為了擺脫對有限的手勢庫的依賴,文獻[13]將手建模成27個自由度的模型。本文通過對手部自由度的進一步分析,可以引入多個約束條件,將自由度數目縮減為21個。將這21個自由度組合成一個向量記作:

因此,對手勢庫中特定手勢的搜索和判決,轉變成對自由度變量的求值運算,從而將檢測由定性檢測變為定量計算。
本文采用了球體和圓柱體2種幾何對象拼接的方法來創建手的三維模型。具體來說,利用球體構成手指的關節和指尖,利用縮放的球體(橢球)構成拇指的部分趾骨,利用圓柱體構成手掌和手指的趾骨。通過上述方法可繪制出由37個幾何體組成的一個完整的手部三維模型,如圖4所示。通過代入不同數值的XD,就可以構造出具有不同姿態的手的三維模型。
確定了手部三維模型的建模方法以后,利用OpenGL對不同姿態的手勢模型進行了渲染繪制。由于手部模型包含 22個球體和 15個柱體,總計2 260個頂點,且每個頂點需要經過多次矩陣變換,計算量較大,因此通過幾何體實例化繪制方法[14]和自定義著色器編程方法來提高繪制速度,可以較為高效地繪制出多個不同形態的手的三維模型圖像,然后生成對應的二維深度圖像。

圖4 手的關節活動示意圖及三維模型
最終繪制完成的手勢模型圖像如圖5所示,隨機賦值XD向量中的元素可生成多個不同姿態的手勢圖像。

圖5 多個假設模型的繪制結果
5.2 特征圖像之間的比對計算
在獲得了觀測圖像和模型圖像以后,用如下公
式計算兩者的匹配程度:

其中:

在式(1)中,括號中第1項用于計算每個像素點上的深度差異均值。這項在最初的迭代中占比不大,因為此時圖像和圖像之間很有可能處于完全不重合的狀態中。第2項的作用就是對完全不重合的區域進行懲罰,可見當2幅圖像完全不重合的時候,其值最大為k,而當2幅圖像完全重合的時候,該項值為0。因此,第2項可以看成是粗誤差,用于有效地將2個圖像的像素重疊在一起;而第1項為細誤差,用于計算在2個圖像像素基本重合的時候,彼此之間的深度誤差。
公式中的多個參數需要通過多次反復的實驗來確定。本文中,定義dmax為60,dmin為10,k為120。
為了求得最優解,可以通過多種尋優算法,本文采用了粒子群尋優算法。該算法在不犧牲精度的同時,能保證較為有效的尋優速度,更適用于接近實時的視頻檢測。
基礎粒子群尋優算法雖然可以通過設定最大速度的方法來限制粒子的飛行軌跡,但是仍然會導致粒子不可控。控制這種現象的方法有慣性常數法和收縮因子法。本文采用的是收縮因子的算法[15],其修改基礎PSO的速度更新公式如下:

初始粒子的速度為0,粒子的最高速度νmax設定為粒子位置上下限的20%。初始粒子的位置隨機,其上下限由粒子的尋優空間給定。若粒子在運動過程中,位置超出上下限,則會被強制移回上下邊界,以保證其始終處于尋優空間之中。
由于手掌所提供的特征信息充足,因此在21個自由度中,手的全局平移和旋轉變量可以非常準確地確定;而其余15個自由度的檢測則容易陷入局部最優。因此,在PSO算法中,設計每隔4代,每個粒子 χi有1/2的概率被隨機化。其隨機化規則為每個元素 χij依如下合集被隨機化,每個合集中只有一個元素隨機化,即1/5的概率被隨機化。

同時,由于視頻圖像幀的連貫性,可以將當前t幀的最優粒子,作為初始粒子傳遞給下一幀t+ 1幀。最優值大于閾值時,可以認為是跟蹤失敗,下一幀的粒子需要重新在尋優空間做隨機化,而小于閾值時,這一幀的最優粒子將被傳遞給下一幀,成為下一幀N個粒子中的一個,實現了連續跟蹤。
本文采用的硬件平臺:處理器為Intel i5 2550k,顯卡為AMD HD7850,內存為8 GB。設定粒子數目為64,尋優 25代,所得到的程序結果演示如圖 6所示。

圖6 程序結果演示
為了分析檢測的準確性,本文選取了實際手勢中食指、中指和無名指的如圖7所示的2個關節,利用三角尺將其角度依次固定為30°,45°和60°,作為檢測的參照值。

圖7 檢測指定關節示意圖
依據上述方案,共檢測了18個手勢姿態,部分典型的檢測結果如表1所示。“關節”一欄標記了選取的關節;“手勢圖解”一欄以圖示方式比對了計算出來的手的模型和實際手勢;“角度”一欄則比對了該關節的實際角度值和檢測結果之間的差異。其中,“實際”一欄為預先用量角器測得的指定關節的角度值;“檢測”一欄則為該關節測量到的值。表 2統計了兩者之間的誤差情況。

表1 手勢檢測圖像對比和關節角度檢測結果

表2 誤差統計
從表1的圖示對比可見,最優模型和實際手勢的匹配還是較為準確的,僅從視覺上并不能看出兩者之間存在較大的差異。由表2的誤差數據可見,檢測值較好地逼近了實際的值。
由于本文采用的是對關節角度XD的求解方法,檢測誤差為定量的誤差,不會發生較顯著的檢測失效的情況。并且不再依賴于有限的手勢庫,可以檢測任何約束條件下的手勢。
本文分析了常用手勢檢測方法中存在的影響檢測準確性的主要因素,并針對這些問題提出了解決的方法,主要在特征提取、手勢建模和尋優求解3個方面開展了工作,結合相應的改進優化實現對手勢的精確檢測。實驗結果證明,本文方法有效地解決了常用手勢檢測中存在的檢測不準確、容易檢測失效的不足,使得手指的精細檢測成為可能。雖然借助了OpenCL技術提高了計算速度,但方法的實時性較低,后續需要對其進行進一步的優化以提高實時性以及實現添加針對不同用戶自動建模的方法,這將有利于提高該檢測方法的精度和實用性。隨著硬件技術的提高,會有更多新設備應用到手勢檢測領域,使得更為精確的手勢檢測成為可能。
[1] 崔育禮.手勢識別若干關鍵技術研究與應用[D].上海:同濟大學,2008.
[2] Lee J.Interactive Control of Avatars Animated with Human Motion Data[C]//Proceedings of the 29 th Annual Conference on Computer Graphics and Interactive Techniques.New York,USA:ACM Press,2002:491-500.
[3] Wang Xiaoyan,Xia Ming.Hidden-Markov-Models-based Dynamic Hand Gesture Recognition[J].Math-ematical Problems in Engineering,2012,(10):1-11.
[4] Wang Menghui.Hand Recognition Using Thermal Image and Extension Neural Network[EB/OL].(2011-10-07). http://www.hindaw i.com/journals/mpe/2012/905495.
[5] 曹雛清,李瑞峰,趙立軍.基于深度圖像技術的手勢識別方法[J].計算機工程,2012,38(8):16-18.
[6] Khoshelham K.Accuracy Analysis of Kinect Depth Data[C]//Proceedings of International Society for Photogrammetry and Remote Sensing.Calgary,Canada:[s.n.],2011:133-138.
[7] Li Hui,Yang Lei,W u Xiaoyu,et al.Static Hand Gesture Recognition Based on HOG with Kinect[C]// Proceedings of the 14th International Conference on Intelligent Human-machine Systems and Cybernetics. Washington D.C.,USA:IEEE Press,2012:271-273.[8] Oikonomidis I,Kyriazis N,Argyros A.Efficient Modelbased 3d Tracking of Hand Articulations Using Kinect[C]//Proceedings of British Machine Vision Conference.Dundee,UK:[s.n.],2011:1-11.
[9] Oikonomidis I.Lourakis M.Evolutionary Quasi-random Search for Hand Articulations Tracking[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C.,USA:IEEE Press,2014:3422-3429.
[10] Zhao Wenping,Chai Jinxiang,Xu Yingqing.Combining Marker-based Mocap and RGBD Cam era for Acquiring High-fidelity Hand Motion Data[C]//Proceedings of ACM SIGGRAPH Symposium on Computer Animation. New York,USA:ACM Press,2012:33-42.
[11] 韓 崢,劉華平,黃文炳,等.基于Kinect的機械臂目標抓取[J].智能系統學報,2013,8(2):149-155.
[12] Argyros A A,Lourakis M I A.Real-time Tracking of Multiple Skincolored Objects with a Possibly Moving Camera[C]//Proceedings of the 8 th European Conference on Computer Vision.Berlin,Germany:Springer,2004:368-379.
[13] Ge S,Yang Y,Lee T H.Hand Gesture Recognition and Tracking Based on Distributed Locally Linear Embedding[J].Image and Vision Computing,2008,26(12):1607-1620.
[14] Pharr M,Fernando R.GPU Gems 2:Programming Techniques for High-performance Graphics and General Purpose Computation[M].Cambridge,USA:Addison-Wesley Professional Press,2005.
[15] 紀雪玲,李 明,李 瑋.一種克服局部最優的收縮因子PSO算法[J].計算機工程,2011,37(20):213-215.
編輯 顧逸斐
Finger Joint Angle Detection Method Based on Visual-image and Its Implementation
FANG Luping,HONG Wenjie,PAN Qing,YAO Jialiang
(College of Information Engineering,Zhejiang University of Technology,Hangzhou 310023,China)
Traditional methods of gesture recognition are incompetent to detect finger’s delicate movement due to poor segmentation effect using 2D images and limited gesture templates through supervised training of classifier.This paper proposes a method of finger joint angle measurement by Particle Swarm Optimization(PSO)algorithm,introduces Kinect depth image to optimize feature extraction and improve accuracy.Through the analysis of hand free degree,it introduces multiple constraints to reduce the degrees of freedom number,optimize PSO to calculate the best model and analyze the measurements,transform the common problems of gesture classification to the variable solution of finger joint angle. Experimental results show that this method can effectively improve the detection accuracy and reduce the situation of detection fault.
gesture recognition;depth image;skin color detection;Particle Swarm Optimization(PSO)algorithm;finger joint angle
方路平,洪文杰,潘 清,等.基于視覺圖像的手指關節角度檢測方法及其實現[J].計算機工程,2015,41(10):221-225,231.
英文引用格式:Fang Luping,Hong Wenjie,Pan Qing,et al.Finger Joint Angle Detection Method Based on Visual-image and Its Im plementation[J].Computer Engineering,2015,41(10):221-225,231.
1000-3428(2015)10-0221-05
A
TP391.41
浙江省國際科技合作基金資助項目(2012C34G2020027)。
方路平(1968-),男,教授,主研方向:圖像識別;洪文杰,碩士;潘 清,講師;姚家良,碩士。
2014-10-08
2014-11-06E-mail:flp@zjut.edu.cn