卓少偉 柳培忠 黃德天 王銘航 汪鴻翔
?
基于CW-RNNs網絡的手勢識別算法
卓少偉 柳培忠 黃德天 王銘航 汪鴻翔
華僑大學工學院
該文在分析表征手勢特征和神經網絡理論基礎上,根據(jù)手運動軌跡的連續(xù)性規(guī)律來研究適用于手勢識別的關鍵技術——基于手勢軌跡模型的新型神經網絡算法。針對手勢識別的模糊性和準確性問題,基于手勢局部區(qū)域跟蹤結果,采用一種新型神經網絡算法,實現(xiàn)用于人機交互的動態(tài)手勢識別。手勢識別部分的研究是采用一種新型的循環(huán)神經網絡(CW-RNNs)對手勢運動的軌跡進行識別。根據(jù)跟蹤部分提取的手指運動軌跡坐標,定義手勢模版,采用該方法對手勢模版進行學習。首先定義連續(xù)動態(tài)手勢模版,采用時間頻率循環(huán)神經網絡對手勢模版進行學習,對每組孤立的動態(tài)手勢模版進行學習,形成手勢識別模型。對影響CW-RNNs模型的因素進行了實驗驗證和深度分析,通過與多層RNNs、三層RNNs的識別效果進行比較,論證了本文模型對手勢軌跡模版識別的優(yōu)越性。
手勢識別 CW-RNNs 手運動軌跡 手勢模版
人機交互(Human - Computer Interaction, HCI)[1]是人工智能、模式識別和計算機視覺等科技領域的重要技術逐步成為研究者熱衷研究的對象。人機交互的方式從傳統(tǒng)的人手工操作轉變到現(xiàn)在的智能輸入。所以,人機交互技術也逐漸從以計算機或者機器人為中心轉移到以人為中心,加速了手勢識別、手語識別、行為識別等模式識別和人工智能領域的蓬勃發(fā)展[2]。
目前的手勢識別技術還遠遠不夠穩(wěn)定,仍然處在實驗研究階段,沒有進入穩(wěn)定期。人的手是一個靈活復雜的彈性物體,而且手勢具有靈活性、非固定性和多義性等特點,再加上手勢需要在一個特定的、實時的環(huán)境中應用,不同的研究者可能所研究的環(huán)境也不同,這樣就導致研究出的算法無法具有普適性,且只局限于某一類特定場景。手勢動作的可變性和復雜性與應用環(huán)境的大量干擾因素,如手臂、膚色和光照等,使研究者們暫時無法研究出一種具有統(tǒng)一性和通用性的手勢識別算法,因此,手勢識別目前仍然是一個具有挑戰(zhàn)性的研究方向。為了使手勢識別理論、算法和技術更加魯棒和成熟,研究者們會不斷突破技術局限,使手勢識別的理論和算法能夠應用到具體的實踐中。
Tom Defanti和Dniel Sandin[3]等人研究出的手勢識別產品——Sayre Glove手套式傳感器系統(tǒng),是數(shù)據(jù)手套的早期產品。Grimes等在Bell實驗室,使用“數(shù)據(jù)手套”所做的手勢識別的研究成果,取得了數(shù)據(jù)手套的專利。日本富士通實驗室也是在“數(shù)據(jù)手套”的基礎上,進行了更加精確的手勢識別技術研究,當時的手勢識別技術可以正確并且完整識別出46個手勢;之后,J. Davis和M. Shah在Grimes的“數(shù)據(jù)手套”基礎上進行了拓展研究,他們首次使用帶有高亮度標記特點的手套,通過突出來的指尖進行實驗,這樣可以識別出七種手勢[4];Stamer等對美國手語進行了研究,使用美國手勢中具有詞性的40個單詞組成短句子,識別率達到了驚人的99.2%[5,6];隨著手勢識別的研究逐漸風靡,Sturman等人也采用數(shù)據(jù)手套來進行手勢識別,對數(shù)據(jù)手套的識別方法作了豐富而詳細的介紹,其構想是將識別方法應用于虛擬現(xiàn)實[7]。后來,Christopher Lee和Xu等人使用CyberGlove對手勢識別進行研究,開發(fā)了一套基于手勢控制的機器人系統(tǒng),可以通過手勢來控制機器人上下左右的移動,而對提出的新手勢,先通過機器學習,而后再進行識別[8]。2007年,Caifeng Shan[9]等人利用Mean Shift算法以及粒子濾波等算法研究出一個手勢控制機器人,其識別率可以達到97.3%。
手勢識別的發(fā)展研究逐漸從基于外設的階段過渡到自然手勢研究階段,大量研究表明,基于自然的手勢識別更加靈活。比如,文獻[10]提出一種基于YCrCb的膚色提取方法;Valentino等人在Kinect平臺上開發(fā)了一套手勢跟蹤和識別彎曲系統(tǒng)[11];同年,文獻[12]采用顏色和深度信息檢測的方式跟蹤人手,應用基于Haarlet小波的手勢識別方法識別手勢。Rimkus等人開發(fā)了一套基于Kinect的3D手勢運動識別系統(tǒng),其手勢分類算法采用的是神經網絡[13]。Kjeldsen等人在Windows系統(tǒng)下開發(fā)出了一套基于計算機視覺的手勢控制軟件,其原理是通過手勢的運動軌跡識別來控制Windows系統(tǒng)[14]。Pavlovic等人也設計了一套基于計算機視覺的手勢交互系統(tǒng),可以通過雙手之間的手勢動作來模擬鼠標的拖拽,單擊及雙擊等操作[15]。Lars等提出了一種先采用顏色特征對手勢進行分割,后利用粒子濾波對手勢動作進行跟蹤,由于顏色特征的分割效果不佳,并且粒子濾波算法又相對比較復雜,導致手勢識別系統(tǒng)最終的識別效果不是很好[16]。Ho-SubYoon等人也采用HMM進行手勢識別,達到了不錯的識別效果[17]。Aditya Ramamoorthy等人也同樣利用膚色分割獲取輪廓,同時采用卡爾曼濾波的運動跟蹤方法,進行動態(tài)手勢識別,效果一般[18]。Hyeon-Kyu Lee等人提出了一種基于HMM門限的連續(xù)手勢識別模型,可以將手勢動作和無意義的動作區(qū)分開,而且能夠確定手勢動作的終點和起點[19,20]。
在模式識別領域內,神經網絡是一種具有自學習和自組織能力的算法。從本質而言,模式識別與人工智能所研究的內容是,如何使計算機具備人的一些功能,尤其是學習和記憶的功能,而神經網絡的研究目的就是構造一種跟人的腦神經類似的網絡結構,并且具備人腦學習和記憶的功能。在手勢識別研究中,神經網絡也被廣泛應用,例如,Yung-Hui Lee等人在臺灣手語研究中引入了神經網絡的學習算法[21];Maung等通過神經網絡來識別MAL靜態(tài)手勢庫一個子集,其平均識別率可以達到90%[22];Stergiopoulou等構建了一種SGONG神經網絡,提取到手勢特征輸出一種神經元網格,實現(xiàn)了提取手掌的形態(tài)學特征,其手勢識別方法采用的是基于相似度的分割技術[23]。
神經網絡的特點是通過模擬人腦結構,讓機器也具有人腦那樣的感知、學習和推理功能。在圖像識別系統(tǒng)中,根據(jù)是否需要特征可以將神經網絡分為兩類:有特征提取部分和無特征提取部分。存在特征提取的神經網絡可以利用先驗知識來獲取特征,然后利用網絡的分類能力來達到識別目標的目的。這種方法在抗干擾方面的能力不如無特征提取神經網絡。后者不具備特征提取的能力,該神經網絡的輸入為整幅圖像,導致其網絡結構復雜度大大增加,輸入模式的增加會導致網絡結構規(guī)模的龐大,同時還需要自身消除模式變形影響的能力。無特征提取神經網絡的抗干擾能力好,識別率高于有特征提取神經網絡??傊?,神經網絡可處理一些環(huán)境復雜、樣本缺損或畸變的問題,具有運行速度快、自適應性能優(yōu)良、識別率高等特點。
神經網絡模型具有多種網絡結構,比較典型的是三層前饋網絡、徑向基核函數(shù)網絡等。其中,應用最廣的是BP神經網絡模型。BP神經網絡是一種單向傳播的多層前向神經網絡,它主要分為輸入層、隱含層、輸出層。BP神經網絡的主要思想是從前向后逐層傳遞權值,從后向前逐層傳播輸出層的誤差,進行權值調整。
BP算法步驟如下:
①選定權系數(shù)初始值;②重復下述5個步驟直到收斂。
步驟1:從前向后各層計算單元
(2)
步驟4:計算并保存各權值修正量
(4)
步驟5:修正權值
在上述公式中,j表示處于某一層的第j個計算單元,i代表其前層的第i個單元,k代表后層的第k個單元,代表輸出,表示前層到本層的權值。
手勢識別算法的趨勢是基于學習的方法,隨著神經網絡乃至深度學習算法的普及,手勢識別算法的精度會逐步提升,算法的復雜度也會提升。
時鐘頻率驅動循環(huán)神經網絡(Clockwork RNNs)是一種新型的RNNs模型[24],是RNNs的一個改良版本,是一種使用時鐘頻率來驅動的RNNs模型。
圖1 CW-RNNs定向循環(huán)結構圖
3.1 網絡訓練
對RNNs的訓練和對傳統(tǒng)的ANN訓練一樣,也是使用BP誤差反向傳播算法,如果將RNNs進行網絡展開,那么參數(shù)是共享的,而傳統(tǒng)神經網絡卻不是。在使用梯度下降算法中,每一步的輸出不僅依賴當前步的網絡,而且還依賴于前面若干步網絡的狀態(tài)。比如,在t=4時,我們還需要向后傳遞三步,后面的三步都需要加上各種梯度值。其學習算法稱為Back propagation Through Time (BPTT)。
前向傳播的推導為:
(7)
(8)
后向傳播的推導為:
(10)
(11)
其中,a表示匯集計算的值,b表示經過激活函數(shù)計算的值,是不同節(jié)點之間連接的參數(shù),帶下標k的是輸出層,帶下標h的是隱層相關的,除此之外,所有帶括號的的函數(shù)都是激活函數(shù)。L是損失函數(shù)(Loss Function),具體的計算方法跟傳統(tǒng)的NN是一樣的,而輸出層和傳統(tǒng)的神經網絡也是完全一樣的,接收隱層傳入的數(shù)據(jù)并乘以參數(shù)求和,每一個計算出來的值都有個時間上標t,表示它是t時刻的節(jié)點。
與傳統(tǒng)神經網絡不同的是隱層的計算,隱層會接受來自上一時間戳隱層傳入的數(shù)據(jù),在公式里體現(xiàn)為:第一,求和是與傳統(tǒng)的神經網絡一致的,接收來自輸入層的數(shù)據(jù),第二,是接收來自上一隱層的數(shù)據(jù)。這里主要給出的是計算隱藏層的累積殘差的公式,因為輸出層與經典的神經網絡類似,由公式(4)~(6)可知,為當前時間輸出層傳回的殘差值,是接收下一時間隱層傳回的殘差值。
3.2 模型推導
CW-RNNs與傳統(tǒng)的RNNs一樣,可以按照下式來計算:
(13)
同時,CW-RNNs與傳統(tǒng)的RNNs也有不同,在第t步時,只有那些滿足的隱藏層組才會執(zhí)行。并且每一隱藏層組的周期都可以是任意的。原文中是選擇指數(shù)序列作為它們的周期,即。
因此與將被劃分為g個塊。
(15)
(17)
執(zhí)行的組所對應的o才會有輸出,處于非執(zhí)行狀態(tài)下的隱藏層組仍保留著上一步的狀態(tài)。圖2是含5個隱藏層組在t=6時的計算圖。
圖2 隱藏層計算圖
在CW-RNNs中,慢速組(周期大的組)處理、保留、輸出長依賴信息,而快速組則會進行更新。CW-RNNs的誤差后向傳播也和傳統(tǒng)的RNNs類似,只是誤差僅處于執(zhí)行狀態(tài)的隱藏層組進行傳播,而非執(zhí)行狀態(tài)的隱藏層組也復制其連接的前面的隱藏層組的后向傳播。即執(zhí)行態(tài)的隱藏層組的誤差后向傳播的信息不僅來自于輸出層,并且來自于其連接到的左邊隱藏層組的后向傳播信息,而非執(zhí)行態(tài)的后向傳播信息只來自于其連接到的左邊的隱藏層組的后向傳播數(shù)據(jù)。
3.3 本文算法步驟
搭建三層時鐘驅動循環(huán)神經網絡,如圖3所示。T1 使用CW-RNNs對手勢進行識別,將手勢跟蹤提取出來的手勢軌跡的特征向量作為網絡的輸入,構建訓練樣本。該手勢軌跡特征向量的維數(shù)等于網絡的輸入個數(shù)。 基于時鐘頻率驅動循環(huán)神經網絡的手勢識別方法訓練步驟如下: ①初始化網絡的參數(shù)。具體的參數(shù)配置包括各網絡層節(jié)點的個數(shù)、最大迭代次數(shù)、最小目標誤差精度、學習率等,各層權值的初值一般采用隨機的0~1之間的數(shù)。 ②選取構建好的手勢軌跡模版庫,提取出手勢運動軌跡的特征向量,作為訓練網絡的輸入層。 ③對網絡進行訓練,一直到最小誤差函數(shù)小于預設的誤差精度或者訓練次數(shù)大于預設的網絡迭代次數(shù)為止。 ④網絡的訓練過程結束,對網絡進行測試,測試過程與訓練過程不同,只需得到訓練輸出,進行識別。 圖3 三層CW-RNNs網絡圖 訓練過程如圖4所示。 圖4 CW-RNNs網絡訓練流程圖 實驗中,本文將手勢動作劃分為兩類:單手勢和組合手勢。其中單手勢為21個,組合手勢為27個,對每個手勢進行旋轉、縮放、平移、放大或縮小,形成規(guī)格統(tǒng)一的手勢軌跡模版,每個手勢選擇80個模版,形成3840個訓練樣本,另外,再選擇7個作為測試樣本,測試樣本庫為336個。單手勢的軌跡模版由19個英文字母和2個圖形構成,其中2個圖形表示手勢動作的開始和結束,如圖5~圖8所示。 單手勢和組合手勢采用的網絡結構稍有不同,不同之處是:由于輸出層的個數(shù)不同,隱層的節(jié)點數(shù)也不同;組合手勢由單手勢組成,組合手勢的軌跡可以看成多個單手勢運動軌跡的合成,組合手勢軌跡需要一個標識。 CW-RNNs網絡訓練參數(shù)為:采用三層的網絡結構,單手勢輸出層節(jié)點數(shù)m=21,輸入層的節(jié)點數(shù)為66;組合手勢輸出層節(jié)點數(shù)m=30,輸入層的節(jié)點數(shù)為94。目標誤差值為0.001,最大迭代次數(shù)M=2000次,學習速率為0.05。 隨著隱層節(jié)點數(shù)的增加,識別率在提高的過程中,出現(xiàn)了波動,但是整體還是保持穩(wěn)定的增長趨勢。波動現(xiàn)象表明,網絡模型的誤差還很大,沒有趨于平穩(wěn)。圖9為迭代次數(shù)為2000時,單手勢網絡的誤差下降曲線。 本文實驗選擇學習率為0.05,單手勢網絡的隱層節(jié)點數(shù)為21,組合手勢網絡三類手勢的隱層節(jié)點數(shù)均為10,得到的識別結果如表1所示。由上述實驗結果可以得知,CW-RNNs網絡的識別效果良好,但是需要設置并初始化很多參數(shù),比如隱層節(jié)點數(shù)、學習率、迭代次數(shù)和時間戳等,而且這些參數(shù)的選取理論性不足,卻會影響網絡的收斂速度和識別率,一般參數(shù)的選取會憑借經驗值,這樣會導致運算的效率較低。此外,訓練網絡模型的過程非常耗時,尤其是調整權值的過程比較復雜,并且當輸入樣本發(fā)生變化的時候,要重新對網絡進行訓練,泛化能力一般。 表1 手勢識別結果 為了驗證CW-RNNs網絡對手勢軌跡識別的特性,本文選取其它兩種循環(huán)神經網絡模型進行比較,多層循環(huán)神經網絡RNNs和三層簡化循環(huán)神經網絡(Simple RNNs)。單手勢軌跡模版作為訓練樣本,輸出層個數(shù)為21,網絡的迭代次數(shù)為2000次,學習率為0.05。三個不同RNNs模型的實驗結果如圖10所示。其中,綠色實線是多層循環(huán)經網絡模型(RNNs),藍色實線是三層簡化循環(huán)神經網絡模型(SRNs),紅色實線為本文采用的時鐘頻率驅動循環(huán)經網絡模型(CW-RNNs)。可以看出,本文模型的最終識別率時鐘高于SRNs模型,低于RNNs模型,本文模型在時間維度上能夠做到具有更快的收斂速度,在特定時間范圍內,SRNs模型識別率還沒有趨于穩(wěn)定,學習速率較慢,RNNs模型的識別率雖然高于本文算法,但其由于網絡結構的復雜性,需要耗費時間成本來換取識別效果,本文算法可以在最短的時間開銷前提下,收斂速度更快,在保證識別率的前提下,可以更快地趨于穩(wěn)定。 圖5 單手勢軌跡模版圖 圖6 雙軌跡手勢模版圖 圖7 三軌跡手勢模版圖 圖8 四軌跡手勢模版圖 圖9 誤差下降曲線圖 圖10 模型比較圖 本文首先構建動態(tài)手勢運動軌跡模版,然后利用一種新型的循環(huán)神經(CW-RNNs)對構建的訓練集進行訓練學習,并對訓練的結果進行測試。本文對影響CW-RNNs網絡模型的識別率的因素進行了分析,通過實驗比較來驗證隱層的節(jié)點數(shù)和學習率等參數(shù)對CW-RNNs網絡模型的作用。最后,通過實驗對比,比較了本文算法模型與RNNs和SRNs兩種網絡模型的差異,對各個模型的優(yōu)缺點進行了分析總結,證明本文算法效果還有一定的提升空間。 [1] Human-Computer Interaction[EB/OL]. http://en.wikipedia.org/wiki/Human- cmputer_interaction. [2] Takahashi T., Kishino F.. A hand gesture recognition method and its application[J]. Systems and Computersin Japan,1992,23(3): 38-48 [3] Defanti T,Sandin D. Final report to the National Endowment of the arts[J].USNEAR60-34-163. University of Illinois at Chicago Circle,1977. [4] Davis J, Shah M. Visual gesture recognitions[J]. IEEE Proceedings on Vision-Image Signal Processing,1994,141(2):101-106. [5] Starner T, Pentland A. Visual Recognition of American Sign Language Using Hidden Markov Models[J]. International Workshop on Automatic Face & Gesture Recognition,1995:189-194. [6] Grobel K, Assam M. Isolated sign language recognition using hidden Markov models[J]. IEEE International Conference on Systems, Man & Cybernetics, 1997:162-167. [7] Sturman D.J,Zeltzer. D,Pieper S. Handson. Interaction with virtual environments[C]//Proceedings of the 2nd Annual ACM SIGGRAPH Symposium on User interface Software and Technology,1989:19-24. [8] Lee C, Xu Y. Online interactive learning of gestures for human/robot interfaces[C]// IEEE International Conference on Robotics & Automation, 1996: 2982-2987. [9] Shan C, Tan T, Wei Y. Real-time hand tracking using a mean shift embedded particle filter[J]. Pattern Recognition,2007, 40(7): 1958-1970. [10] Choi KM,Na YG,Chae Sb,Jung KH. A hand gesture-based remote control of robot[C]// Proc. of KSBE Fall Conference, 2010:196-199. [11] Valentino Frati, Domenico Prattichizzo. Using kinect for hand tracking and rendering in wearable haptics[C]//IEEE World haptics Conference, 2011: 317-321. [12] Van den Bergh M, Van Gool L. Combining RGB and ToF cameras for real-time 3D hand gesture interaction[C]//IEEE Workshop on Applications of Computer Vision,2011:66-72 [13] Van den Bergh M, Van Gool L. Combining RGB and ToF cameras for real-time 3D hand gesture interaction[C]//IEEE Workshop on Applications of Computer Vision,2011:66-72 [14] Kjeldsen R, Kender J. Visual hand gesture recognition for windows system control[J]. Proc.int.workshop on Autom.face & Gesture Recognition, 1995:184-188 [15] Pavlovic V, Sharma R, Huang TS. Visual interpretation of hand gestures for human-computer interaction: a review[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1997, 19(7): 677-695. [16] Bretzner L, Laptev I, Lindeberg T. Hand gesture recognition using multi-scale color features, hierarchical model and particle filtering[C]//Fifth IEEE International Conference of Automatic Face and Gesture Recognition, 2002:423-428. [17] Yoon HS, Soh J, Bae YJ, et al. Hand gesture recognition using combined features of location,angle and velocity[J].Pattern Recognition,2001,34(7): 1491-1501. [18] Ramamoorthy A, Vaswani N, Chaudhury S, et al. Recognition of dynamic hand gestures[J]. Pattern Recognition,2003,36(9):2069-2081. [19] Lee HK, Kim JH. An HMM-Based Threshold Model Approach for Gesture Recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, October,1999, 21(10):961-973. [20] Elmezain M, Al-Hamadi A. A Hidden Markov Model-Based Isolated and Meaningful Hand Gesture Recognition[J]. Proceedings of World Academy of Science Engineering & Technology,2008:394. [21] Lee YH, Tsai CY. Taiwan sign language (TSL) recognition based on 3D data and neural networks[J]. Expert Systems with Application,2009,36(2): 1123-1128. [22] Maung THH. Real-Time Hand Tracking and Gesture Recognition System Using Neural Networks[J]. Proceedings of World Academy of Science Engineering & Technology, 2009: 362-368. [23] Chang CC, Lin CJ. LIBSVM: A Library for Support Vector Machines[J]. ACM Transactions on Intelligent Systems & Technology, 2011,2(3):389-396 [24] Jan Koutnik, Klaus Greff, Faustino Gomez, Juergen Schmidhuber. A Clockwork RNN[C]//Proceedings of The 31st International Conference on Machine Learning, 2014: 1863-1871.4 實驗結果與分析
5 結束語
參考文獻: