千承輝, 邵晶雅, 夏 濤, 劉懷賓
(吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院,吉林 長春 130000)
手語作為最原始的信息交流方式,在虛擬環(huán)境和人機交互等領(lǐng)域廣泛應(yīng)用,它可以使聽力障礙者獲得有用信息,且可以在特殊工作環(huán)境中實現(xiàn)工作平臺的非接觸式操作[1]。Hyeon-Kyu Lexe的研究團隊使用自創(chuàng)的PowerGesture系統(tǒng),通過手勢控制幻燈片的放映[2];富士康實驗室完成對常用手勢進行匹配[3],利用傳統(tǒng)攝像頭采集彩色圖像進行處理,但因攝像頭本身的技術(shù)參數(shù)易受環(huán)境影響,只能實現(xiàn)簡單手語的識別;2010年微軟研發(fā)了Kinect技術(shù),具有識別人體骨骼圖像、3D動態(tài)軌跡等技術(shù)優(yōu)勢,使手語動態(tài)識別領(lǐng)域有了新的飛躍[4,5];2012年香港中文大學(xué)基于支持向量機(support vector machine,SVM)的方法設(shè)計了一種手勢翻譯系統(tǒng),其采用對特征關(guān)節(jié)坐標(biāo)進行學(xué)習(xí)分類的方式,較好的完成了對于手語單詞的識別[6];2013年Chai X等人利用Kinect對手勢軌跡進行三維重構(gòu)完成日常手語識別[7]。
本文將動態(tài)手語分為兩類:一類是含有標(biāo)志靜態(tài)手型的動態(tài)手勢;二類是完全由手勢軌跡決定其語義的動態(tài)手勢。對于一類動態(tài)手勢而言,提取的是其圖像信息,手掌關(guān)節(jié)相對于脊椎中部骨骼關(guān)節(jié)的矢量變化信息。具體識別過程為:將Kinect傳來的圖像信息進行手部分割、手部跟蹤算法,跟蹤掌骨與肩胛骨的相對移動速度,并與閾值0.5cm/s進行比較,判斷是否進行一類或二類動態(tài)手語信息的提取,將提取到的信息與模板庫中的樣本進行匹配,再經(jīng)過手勢分類器和一定語義模型的矯正,最終以中英文句子和語音的形式,輸出用戶的輸入手勢。
本文對4種手部特征提取算法的比較和實驗結(jié)果分析,得出梯度方向直方圖(histogram of oriented gradient,HOG)特征算子具有較高的準(zhǔn)確率,并在此基礎(chǔ)上加入有限狀態(tài)機和動態(tài)時間規(guī)整(dynamic time warping,DTW)算法來實現(xiàn)兩類動態(tài)手語的識別。
Kinect中部的RGB攝像頭和兩側(cè)的深度傳感器通過空間建模、骨骼信息追蹤技術(shù),可得到RGB彩色圖像、深度圖像、人體骨骼坐標(biāo)。利用Kinect得到的彩色和深度圖像,進行一類含有標(biāo)志型靜態(tài)手型動作的手語識別;利用骨骼坐標(biāo)的相對移動變化,進行二類由手勢軌跡決定其語義的手語識別[8,9]。
進行手部有效區(qū)域截取是靜態(tài)手勢識別的第一步,首先利用Kinect得到人體骨骼特征與深度圖像,通過手部分割算法進行手掌輪廓截取,再通過邊緣檢測等算法濾除服飾等非手部因素干擾,得到手部形態(tài)信息。
但上述提取到的手型區(qū)域中仍然含有環(huán)境背景噪聲的影響,所以,需要利用彩色圖像中的人體膚色來完成精準(zhǔn)的提取。常用的膚色識別方式有6種。實驗得出:基于RGB圖像參數(shù)和色度參數(shù)Cr和Cb的膚色閾值分割檢測效果明顯優(yōu)于剩余4種方案,考慮到計算的便捷性,選取基于RGB圖像參數(shù)的閾值分割為系統(tǒng)膚色識別方案。
將上一步得到的手勢有效圖像區(qū)域,進行手勢特征的提取,并將各手勢的特征信息存入模板庫。對圖像而言,其特征可分為幾何特征、紋理特征、灰度特征等,本文選取4種靜態(tài)手勢識別算法提取圖像特征信息,如圖1所示,并對4種方式所得到的識別結(jié)果進行對比,最終選定HOG特征算子為手勢提取最優(yōu)方案。
圖1 數(shù)字1,3,5手型凸包提取、輪廓—掌心距離、Hu矩值和HOG特征值
利用手部凸包和凸缺陷提取手指形態(tài)信息。通過計算矢量和之間特征角是否小于手指角度的閾值,從候選指尖中篩選指尖信息。針對手語“一、三、五”進行凸包實驗,提取圖像的指尖信息,如圖1(a)所示。從圖中可以看到,數(shù)字“三”“五”的指尖輪廓非常接近,不能準(zhǔn)確提取到其各自的特征。由此可見,當(dāng)用戶手勢過于復(fù)雜時,凸包提取方法不能準(zhǔn)確的提取信息。
手部輪廓可以選取輪廓到圖像質(zhì)心的距離變化來表征,對手勢邊緣進行間隔取樣500個像素點,用每個圖像的邊緣到中心的距離減去該圖像中邊緣到掌心距離的最小值對比手型。從得到的圖像最低處,引入Freeman鏈碼沿一定方向得到每一個手勢邊緣點到掌心的歐氏距離[11],如圖1(b)所示,各手勢間區(qū)別較為明顯。但該方法每次都需要尋找手勢區(qū)域的中心和質(zhì)心,運算周期長,因此,當(dāng)用戶手勢增加時,時間運行的成本也會增加,不利于模板庫的多手勢擴充。
矩常用于表示變量的分布情況,在圖像處理中,利用矩方法得到圖像的灰度密度分布特征,完成圖像的特征提取。矩特征作為首選特征提取方式,在以像素為單元的離散圖像中定義為圖像函數(shù),其階幾何矩和中心距分別為
(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)得出數(shù)字3的M5和M6均為負數(shù),與其他數(shù)字模板不同,說明不同樣本之間Hu矩數(shù)字雖然有一定波動,但并不是每一個模板獨有的數(shù)據(jù)特征。使用Hu矩作為特征量進行手勢識別計算速度快,但由于手型外圍輪廓的Hu特征中不變矩數(shù)值普遍較小,對手型變化靈敏,故不利于手型模板的擴充和多用戶手勢識別。
HOG算法將圖像分割成小的連通區(qū)域即單元(cell),連通為較大的Block區(qū)間,完成對其所包含Cell梯度的歸一化處理[12]。將所有的Block內(nèi)的信息組合成圖像特征向量,用于后續(xù)模板匹配。
手型1,3,5的HOG特征曲線如圖1(d)所示,大多HOG特征向量都為0.49~0.54之間,且每一個數(shù)字都有自己的特征位。因此,只要將其相應(yīng)的特征位作為模板匹配條件,當(dāng)系統(tǒng)再次識別到用戶的手勢時,二者相比,即可完成手語的識別。
基于統(tǒng)計、模板和語法的方法是手語識別的主要方式?;谀0宓姆绞接袆討B(tài)規(guī)劃、DTW等,利用測得事件與預(yù)存模板事件打的范數(shù)大小作為識別依據(jù)[13]。本文對于一類含有標(biāo)志靜態(tài)手勢的動態(tài)手語選用有限狀態(tài)機為主要識別方式,對二類手勢軌跡表征手語含義的動態(tài)手語則選用動態(tài)時間規(guī)整來完成手語翻譯。手語識別框圖如圖2所示。
圖2 手語識別框圖
在進行一類含有標(biāo)志性手型動作的手語翻譯的過程中,雖然完成過程中手型各異,但開始和結(jié)束的手型特征基本相似,因此,加入有限狀態(tài)機的模型。以圖3中“早上好”為例,將“早上1”、“早上2”、“好”分別設(shè)定為狀態(tài)1,2,3,只有當(dāng)程序識別到狀態(tài)1時,才會進行狀態(tài)2的拾取,否則繼續(xù)狀態(tài)1的拾取。當(dāng)完成該句中的所有手語單詞的識別以后,再經(jīng)過一定語義模型的矯正,即輸出該手語句子,這在一定程度上提高了算法的可靠性。
圖3 “早上好”手型有限狀態(tài)機
對于二類由手部運動軌跡決定其語義的動態(tài)手語,主要依賴所獲得的特征關(guān)節(jié)標(biāo)準(zhǔn)化后的球坐標(biāo)數(shù)據(jù)與模板手勢特征關(guān)節(jié)數(shù)據(jù)進行對比來完成[14]。
DTW的理論依托為動態(tài)規(guī)劃,比較兩段長短不同但內(nèi)容相似序列,多次提取用戶關(guān)節(jié)特征,在模板之間匹配所得的規(guī)整路徑[15]。這里,將模板庫中的軌跡序列定義為矩陣,將用戶再次輸入的骨骼坐標(biāo)序列作為陣,根據(jù)下列公式計算出其歐式幾何距離的累加值
(4)
若獲得累加距離小于設(shè)定閾值即默認(rèn)兩模板匹配,否則認(rèn)為無模板匹配。最后將規(guī)整路徑上的骨骼關(guān)節(jié)按照累加平均的方式,獲得更新后的骨骼坐標(biāo)值。
手語標(biāo)準(zhǔn)庫主要分為靜態(tài)特征手型和動態(tài)手型軌跡。其中靜態(tài)特征手型標(biāo)準(zhǔn)庫儲存的為靜態(tài)手型經(jīng)過標(biāo)準(zhǔn)化后的深度圖像??紤]到用戶個體差異和面對Kinect角度的多樣性,在構(gòu)建標(biāo)準(zhǔn)庫時收入多用戶信息,測試多角度靜態(tài)手型,方便靜態(tài)手型識別更大范圍推廣。經(jīng)通過實驗得出,當(dāng)靜態(tài)手型特征庫的樣本圖片為圖片特征數(shù)的10倍左右時,將獲得性能良好的分類器模型。
動態(tài)手型軌跡而言,多次提取用戶關(guān)節(jié)特征,并利用DTW算法后的模板之間匹配所得的規(guī)整路徑。將規(guī)整路徑上的各關(guān)節(jié)圖像按照累加平均的方式獲得更新后的骨骼坐標(biāo)值,并作為模板存儲。
手語識別算法需測試的指標(biāo),除了識別正確率以外,算法的時間復(fù)雜度和所能支持檢測的手勢區(qū)域都是需要了解的指標(biāo)。故從以上3個方面出發(fā),對手語識別算法性能經(jīng)綜合評估。測試中定義含有標(biāo)志靜態(tài)手勢的手語為一類靜態(tài)手勢,不含標(biāo)志靜態(tài)手勢的手語為二類靜態(tài)手勢。圖4為手語識別界面。
圖4 手語識別界面
同時,本文將上述識別算法應(yīng)用到機器人領(lǐng)域,通過識別人體的13個骨骼坐標(biāo)來控制機器人的動作。
手語識別的準(zhǔn)確率是評估手語翻譯系統(tǒng)的最重要指標(biāo),故選取用戶距傳感器1.3 m,截面夾角為0°的情況作為手勢識別的標(biāo)準(zhǔn)情況,并利用四類靜態(tài)手勢的特征算子完成標(biāo)志手語識別的準(zhǔn)確率。
如圖5所示,在融合數(shù)字和標(biāo)志手型的靜態(tài)手勢識別中,HOG的拾取正確率明顯優(yōu)于前三類,故選擇HOG作為完成一類動態(tài)標(biāo)志手型識別的方式。
圖5 四種特征算子與識別率關(guān)系
如圖6(a)所示,在一類動態(tài)手勢識別之后加入有限狀態(tài)機完成手語句子翻譯,識別準(zhǔn)確率達95 %;如圖6(b)所示,二類動態(tài)手語識別采用DTW算法,識別準(zhǔn)確率達90 %。
圖6 一類、二類動態(tài)手勢識別正確率
手語識別有效區(qū)域是一項直接關(guān)系到算法適用范圍的指標(biāo),其包括用戶與傳感器的深度距離和用戶截面與傳感器截面之間夾角這兩項參數(shù)與手語識別準(zhǔn)確率對應(yīng)關(guān)系。
如圖7所示,經(jīng)過靜態(tài)圖像的標(biāo)準(zhǔn)化后,一類動態(tài)手勢受距離參數(shù)影響較小,動態(tài)手勢正確率受截面夾角的影響主要依賴于靜態(tài)手勢庫受相應(yīng)的標(biāo)志靜態(tài)手勢訓(xùn)練,利用機器學(xué)習(xí)的方式可提高手勢的正確率[16]。
圖7 手語識別有效區(qū)域測試
二類動態(tài)手勢利用人類骨骼關(guān)節(jié)歸一化骨骼坐標(biāo),當(dāng)用戶人體主要關(guān)節(jié)在Kinect數(shù)據(jù)采集范圍內(nèi),手勢識別正確率基本不受距離參數(shù)的影響。但二類手勢受截面夾角旋轉(zhuǎn)影響較大,可以看出隨著夾角的增大,手勢識別的正確率有所下降,故二類動態(tài)手勢骨骼特征參數(shù)的標(biāo)準(zhǔn)化算法仍需改進。
實驗中,使用博創(chuàng)平臺搭建機器人,經(jīng)過測試,人體可以通過姿態(tài)控制機器人實現(xiàn)前進、后退、轉(zhuǎn)向、速度控制等功能,圖8(a)為機器人運動側(cè)視圖。圖8(b)為上述算法應(yīng)用到助老機器人身上,對Kinect采集到的圖像處理,實現(xiàn)快速尋找并移動到老人面前,與老人進行交流,滿足老人的需求。
圖8 機器人運動展示
由以上實驗得到,對于四種常用的圖像特征提取算法而言,HOG特征算子相較于其它特征算子具有較高識別率及穩(wěn)定性;通過有限狀態(tài)機實現(xiàn)一類動態(tài)手勢識別,準(zhǔn)確率可達95 %,通過加入DTW算法,實現(xiàn)二類動態(tài)手勢識別,準(zhǔn)確率可達90 %以上;系統(tǒng)有效識別距離為0.9~2 m,截面夾角±45°,識別檢測時間小于1 s,具有較高的準(zhǔn)確率及穩(wěn)定性。同時,在機器人運動測試實驗中,完成了利用人體姿態(tài)控制機器人的動作。下一步工作是將該手語識別方法應(yīng)用到嵌入式系統(tǒng),例如實現(xiàn)對機器人的體感控制、設(shè)計手語翻譯產(chǎn)品等。