千承輝, 邵晶雅, 夏 濤, 劉懷賓
(吉林大學 儀器科學與電氣工程學院,吉林 長春 130000)
手語作為最原始的信息交流方式,在虛擬環境和人機交互等領域廣泛應用,它可以使聽力障礙者獲得有用信息,且可以在特殊工作環境中實現工作平臺的非接觸式操作[1]。Hyeon-Kyu Lexe的研究團隊使用自創的PowerGesture系統,通過手勢控制幻燈片的放映[2];富士康實驗室完成對常用手勢進行匹配[3],利用傳統攝像頭采集彩色圖像進行處理,但因攝像頭本身的技術參數易受環境影響,只能實現簡單手語的識別;2010年微軟研發了Kinect技術,具有識別人體骨骼圖像、3D動態軌跡等技術優勢,使手語動態識別領域有了新的飛躍[4,5];2012年香港中文大學基于支持向量機(support vector machine,SVM)的方法設計了一種手勢翻譯系統,其采用對特征關節坐標進行學習分類的方式,較好的完成了對于手語單詞的識別[6];2013年Chai X等人利用Kinect對手勢軌跡進行三維重構完成日常手語識別[7]。
本文將動態手語分為兩類:一類是含有標志靜態手型的動態手勢;二類是完全由手勢軌跡決定其語義的動態手勢。對于一類動態手勢而言,提取的是其圖像信息,手掌關節相對于脊椎中部骨骼關節的矢量變化信息。具體識別過程為:將Kinect傳來的圖像信息進行手部分割、手部跟蹤算法,跟蹤掌骨與肩胛骨的相對移動速度,并與閾值0.5cm/s進行比較,判斷是否進行一類或二類動態手語信息的提取,將提取到的信息與模板庫中的樣本進行匹配,再經過手勢分類器和一定語義模型的矯正,最終以中英文句子和語音的形式,輸出用戶的輸入手勢。
本文對4種手部特征提取算法的比較和實驗結果分析,得出梯度方向直方圖(histogram of oriented gradient,HOG)特征算子具有較高的準確率,并在此基礎上加入有限狀態機和動態時間規整(dynamic time warping,DTW)算法來實現兩類動態手語的識別。
Kinect中部的RGB攝像頭和兩側的深度傳感器通過空間建模、骨骼信息追蹤技術,可得到RGB彩色圖像、深度圖像、人體骨骼坐標。利用Kinect得到的彩色和深度圖像,進行一類含有標志型靜態手型動作的手語識別;利用骨骼坐標的相對移動變化,進行二類由手勢軌跡決定其語義的手語識別[8,9]。
進行手部有效區域截取是靜態手勢識別的第一步,首先利用Kinect得到人體骨骼特征與深度圖像,通過手部分割算法進行手掌輪廓截取,再通過邊緣檢測等算法濾除服飾等非手部因素干擾,得到手部形態信息。
但上述提取到的手型區域中仍然含有環境背景噪聲的影響,所以,需要利用彩色圖像中的人體膚色來完成精準的提取。常用的膚色識別方式有6種。實驗得出:基于RGB圖像參數和色度參數Cr和Cb的膚色閾值分割檢測效果明顯優于剩余4種方案,考慮到計算的便捷性,選取基于RGB圖像參數的閾值分割為系統膚色識別方案。
將上一步得到的手勢有效圖像區域,進行手勢特征的提取,并將各手勢的特征信息存入模板庫。對圖像而言,其特征可分為幾何特征、紋理特征、灰度特征等,本文選取4種靜態手勢識別算法提取圖像特征信息,如圖1所示,并對4種方式所得到的識別結果進行對比,最終選定HOG特征算子為手勢提取最優方案。

圖1 數字1,3,5手型凸包提取、輪廓—掌心距離、Hu矩值和HOG特征值
利用手部凸包和凸缺陷提取手指形態信息。通過計算矢量和之間特征角是否小于手指角度的閾值,從候選指尖中篩選指尖信息。針對手語“一、三、五”進行凸包實驗,提取圖像的指尖信息,如圖1(a)所示。從圖中可以看到,數字“三”“五”的指尖輪廓非常接近,不能準確提取到其各自的特征。由此可見,當用戶手勢過于復雜時,凸包提取方法不能準確的提取信息。
手部輪廓可以選取輪廓到圖像質心的距離變化來表征,對手勢邊緣進行間隔取樣500個像素點,用每個圖像的邊緣到中心的距離減去該圖像中邊緣到掌心距離的最小值對比手型。從得到的圖像最低處,引入Freeman鏈碼沿一定方向得到每一個手勢邊緣點到掌心的歐氏距離[11],如圖1(b)所示,各手勢間區別較為明顯。但該方法每次都需要尋找手勢區域的中心和質心,運算周期長,因此,當用戶手勢增加時,時間運行的成本也會增加,不利于模板庫的多手勢擴充。
矩常用于表示變量的分布情況,在圖像處理中,利用矩方法得到圖像的灰度密度分布特征,完成圖像的特征提取。矩特征作為首選特征提取方式,在以像素為單元的離散圖像中定義為圖像函數,其階幾何矩和中心距分別為
(1)
(2)

M1=η20+η02
M3=(η30-3η12)2+(3η21-η03)2
M4=(η30+η12)2+(η21+η03)2
M5=(η30-3η12)(η30+η12)(η30+η12)2-
3(η21+η03)2+(3η21-η03)(η21+η03)·
(3(η30+η12)2-(η21+η03)2)
M6=(η20-η02)((η30+η12)2-(η21+η03)2)+
4η11(η30+η12)(η21+η03)
M7=(3η21-η03)(η30+η12)((η30+η12)2-
3(η21+η03)2)-(η30-3η12)(η21+η03)
(3(η30+η12)2-(η21+η03)2)
(3)
從圖1(c)得出數字3的M5和M6均為負數,與其他數字模板不同,說明不同樣本之間Hu矩數字雖然有一定波動,但并不是每一個模板獨有的數據特征。使用Hu矩作為特征量進行手勢識別計算速度快,但由于手型外圍輪廓的Hu特征中不變矩數值普遍較小,對手型變化靈敏,故不利于手型模板的擴充和多用戶手勢識別。
HOG算法將圖像分割成小的連通區域即單元(cell),連通為較大的Block區間,完成對其所包含Cell梯度的歸一化處理[12]。將所有的Block內的信息組合成圖像特征向量,用于后續模板匹配。
手型1,3,5的HOG特征曲線如圖1(d)所示,大多HOG特征向量都為0.49~0.54之間,且每一個數字都有自己的特征位。因此,只要將其相應的特征位作為模板匹配條件,當系統再次識別到用戶的手勢時,二者相比,即可完成手語的識別。
基于統計、模板和語法的方法是手語識別的主要方式。基于模板的方式有動態規劃、DTW等,利用測得事件與預存模板事件打的范數大小作為識別依據[13]。本文對于一類含有標志靜態手勢的動態手語選用有限狀態機為主要識別方式,對二類手勢軌跡表征手語含義的動態手語則選用動態時間規整來完成手語翻譯。手語識別框圖如圖2所示。

圖2 手語識別框圖
在進行一類含有標志性手型動作的手語翻譯的過程中,雖然完成過程中手型各異,但開始和結束的手型特征基本相似,因此,加入有限狀態機的模型。以圖3中“早上好”為例,將“早上1”、“早上2”、“好”分別設定為狀態1,2,3,只有當程序識別到狀態1時,才會進行狀態2的拾取,否則繼續狀態1的拾取。當完成該句中的所有手語單詞的識別以后,再經過一定語義模型的矯正,即輸出該手語句子,這在一定程度上提高了算法的可靠性。

圖3 “早上好”手型有限狀態機
對于二類由手部運動軌跡決定其語義的動態手語,主要依賴所獲得的特征關節標準化后的球坐標數據與模板手勢特征關節數據進行對比來完成[14]。
DTW的理論依托為動態規劃,比較兩段長短不同但內容相似序列,多次提取用戶關節特征,在模板之間匹配所得的規整路徑[15]。這里,將模板庫中的軌跡序列定義為矩陣,將用戶再次輸入的骨骼坐標序列作為陣,根據下列公式計算出其歐式幾何距離的累加值

(4)
若獲得累加距離小于設定閾值即默認兩模板匹配,否則認為無模板匹配。最后將規整路徑上的骨骼關節按照累加平均的方式,獲得更新后的骨骼坐標值。
手語標準庫主要分為靜態特征手型和動態手型軌跡。其中靜態特征手型標準庫儲存的為靜態手型經過標準化后的深度圖像。考慮到用戶個體差異和面對Kinect角度的多樣性,在構建標準庫時收入多用戶信息,測試多角度靜態手型,方便靜態手型識別更大范圍推廣。經通過實驗得出,當靜態手型特征庫的樣本圖片為圖片特征數的10倍左右時,將獲得性能良好的分類器模型。
動態手型軌跡而言,多次提取用戶關節特征,并利用DTW算法后的模板之間匹配所得的規整路徑。將規整路徑上的各關節圖像按照累加平均的方式獲得更新后的骨骼坐標值,并作為模板存儲。
手語識別算法需測試的指標,除了識別正確率以外,算法的時間復雜度和所能支持檢測的手勢區域都是需要了解的指標。故從以上3個方面出發,對手語識別算法性能經綜合評估。測試中定義含有標志靜態手勢的手語為一類靜態手勢,不含標志靜態手勢的手語為二類靜態手勢。圖4為手語識別界面。

圖4 手語識別界面
同時,本文將上述識別算法應用到機器人領域,通過識別人體的13個骨骼坐標來控制機器人的動作。
手語識別的準確率是評估手語翻譯系統的最重要指標,故選取用戶距傳感器1.3 m,截面夾角為0°的情況作為手勢識別的標準情況,并利用四類靜態手勢的特征算子完成標志手語識別的準確率。
如圖5所示,在融合數字和標志手型的靜態手勢識別中,HOG的拾取正確率明顯優于前三類,故選擇HOG作為完成一類動態標志手型識別的方式。

圖5 四種特征算子與識別率關系
如圖6(a)所示,在一類動態手勢識別之后加入有限狀態機完成手語句子翻譯,識別準確率達95 %;如圖6(b)所示,二類動態手語識別采用DTW算法,識別準確率達90 %。

圖6 一類、二類動態手勢識別正確率
手語識別有效區域是一項直接關系到算法適用范圍的指標,其包括用戶與傳感器的深度距離和用戶截面與傳感器截面之間夾角這兩項參數與手語識別準確率對應關系。
如圖7所示,經過靜態圖像的標準化后,一類動態手勢受距離參數影響較小,動態手勢正確率受截面夾角的影響主要依賴于靜態手勢庫受相應的標志靜態手勢訓練,利用機器學習的方式可提高手勢的正確率[16]。

圖7 手語識別有效區域測試
二類動態手勢利用人類骨骼關節歸一化骨骼坐標,當用戶人體主要關節在Kinect數據采集范圍內,手勢識別正確率基本不受距離參數的影響。但二類手勢受截面夾角旋轉影響較大,可以看出隨著夾角的增大,手勢識別的正確率有所下降,故二類動態手勢骨骼特征參數的標準化算法仍需改進。
實驗中,使用博創平臺搭建機器人,經過測試,人體可以通過姿態控制機器人實現前進、后退、轉向、速度控制等功能,圖8(a)為機器人運動側視圖。圖8(b)為上述算法應用到助老機器人身上,對Kinect采集到的圖像處理,實現快速尋找并移動到老人面前,與老人進行交流,滿足老人的需求。

圖8 機器人運動展示
由以上實驗得到,對于四種常用的圖像特征提取算法而言,HOG特征算子相較于其它特征算子具有較高識別率及穩定性;通過有限狀態機實現一類動態手勢識別,準確率可達95 %,通過加入DTW算法,實現二類動態手勢識別,準確率可達90 %以上;系統有效識別距離為0.9~2 m,截面夾角±45°,識別檢測時間小于1 s,具有較高的準確率及穩定性。同時,在機器人運動測試實驗中,完成了利用人體姿態控制機器人的動作。下一步工作是將該手語識別方法應用到嵌入式系統,例如實現對機器人的體感控制、設計手語翻譯產品等。