龐 飛,周 婷
(東軟睿馳汽車技術(shù)(沈陽)有限公司,遼寧 沈陽 110179)
手勢識別由于具有簡單易學(xué)、種類多樣、動作清晰等特點(diǎn),是人機(jī)交互中非常直觀而且非常自然的一種形式,從而使之成為近年以來人機(jī)交互[1-2]形式里對用戶制約最小的識別方式。在車載、游戲等領(lǐng)域有著良好的應(yīng)用前景。駕駛員在駕車的過程中,使用手勢發(fā)出命令,不需要將視線偏離駕駛方向,使交通事故的發(fā)生率大大降低。本文主要以車載環(huán)境下的三維手勢識別研究作為重點(diǎn)。
對于基于Kinect 取得深度圖像然后進(jìn)行手勢識別目前已經(jīng)有很多課題研究。本文通過Kinect 機(jī)器獲得手的三維立體信息作為信息輸入,對相鄰手心計(jì)算其手中心坐標(biāo)變換后的角度值,將其量化成16 個可觀察狀態(tài),取得觀察手勢序列進(jìn)而設(shè)置HMM 的各項(xiàng)參數(shù),最后應(yīng)用多維隱馬爾科夫模型對輸入信息進(jìn)行識別,進(jìn)而對手勢進(jìn)行識別。實(shí)驗(yàn)結(jié)果表明,本文提出的研究方法的識別率可達(dá)到97%,而且通過Kinect 取得手部的深度圖像做手部圖像分割時只有手與Kinect 攝像頭之間的距離會對其造成影響,所以本文研究方法在背景的干擾下能達(dá)到較強(qiáng)的魯棒性和較好的實(shí)時性。
Kinect 是由微軟公司開發(fā)的一種周邊設(shè)備,主要用于Xbox360 等主機(jī)。它是一款集圖像識別,語音識別,社群互動等功能于一體的3D 體感設(shè)備[3]。Kinect 包含三個攝像頭,RGB 攝像頭位置中間,構(gòu)成3D 結(jié)構(gòu)光深度感應(yīng)器的紅外線發(fā)射器和紅外線CMOS 攝像頭則位于兩側(cè)。Kinect 不同于普通攝像頭的是它具有CMOS,它利用這個紅外傳感器在不受周圍光照的影響下感應(yīng)周圍環(huán)境并標(biāo)注目標(biāo)物的深度值。
Kinect 通過3D 結(jié)構(gòu)光深度感應(yīng)器來提取圖像的深度,整個待檢測的區(qū)域被紅外發(fā)射器發(fā)射的紅外光覆蓋,同時深度圖像由CMOS 接收反射光而取得。CMOS 取得的圖像可以理解為一個“深度場”,這個圖像中的每個像素值表示那點(diǎn)物體與攝像機(jī)之間的距離,越黑代表離攝像頭越遠(yuǎn),越白代表離攝像頭越近。Kinect 最終獲得一張深度圖像來表示感知范圍內(nèi)物體的深度信息。
在提取深度數(shù)據(jù)時需要注意的是Kinect 受限于其硬件本身。對于近場手勢的檢測,手掌如果超過了50cm 的臨界距離,則得不到有效的深度圖像。
本文采用Kinect 取得深度圖像,并對圖像深度信息進(jìn)行處理識別,不受背景光照等外部環(huán)境的影響,很大程度上提升了手勢識別的魯棒性。
有很多種方法都能在深度信息中提取手部。本文采用的方案實(shí)時性較好,即設(shè)定一個虛擬區(qū)域,此虛擬區(qū)域中認(rèn)為手部與攝像頭之間的距離最近,將深度圖像進(jìn)行二值化,將手部輪廓分離出來,然后再取均值得到手心的位置信息,從而進(jìn)行手勢跟蹤。
為了方便用戶做手勢動作,本文將Kinect 機(jī)器置于電腦屏幕正前方,在距Kinect 正前方50~70cm 深度范圍內(nèi),將本實(shí)驗(yàn)所用的17 寸(5:4)PC 機(jī)看做手勢識別感應(yīng)屏,即以PC 機(jī)屏幕的寬和高作為矩形虛擬區(qū)域,在此矩形虛擬區(qū)域內(nèi)進(jìn)行手勢動作。Kinect 將此矩形區(qū)域進(jìn)行坐標(biāo)轉(zhuǎn)換映射到RGB 彩色圖像上,然后矩形區(qū)域內(nèi)進(jìn)行圖像分割得到手部,最后基于多維HMM 進(jìn)行手勢樣本訓(xùn)練和手勢識別,并將識別結(jié)果在電腦上顯示出來。
隱馬爾科夫模型是一種用來描述隨機(jī)狀態(tài)序列的統(tǒng)計(jì)分析模型,應(yīng)用馬爾科夫鏈模擬狀態(tài)序列如何變化,由觀察序列對狀態(tài)序列變化進(jìn)行間接描述。
普通HMM 可以用λ=(S,V,A,B,π)表示,對于要檢測的樣本,在每個時間點(diǎn)上可觀測輸出都用一個數(shù)值表示。在Kinect 機(jī)器下,能夠獲取到的手勢信息多于普通攝像機(jī),因此可以采用多種可觀測輸出來刻畫手的狀態(tài),那么每個時間點(diǎn)可生成多個可觀測輸出,這些數(shù)值可以組成一個向量。普通HMM 無法解決可觀測輸出是一個向量的情況,因此訓(xùn)練識別就需要需采用多維HMM。
多維HMM 與普通HMM 相似,同樣用λ=(S,V,A,B,π)來表示,唯一與普通HMM不同的是,當(dāng)可觀測輸出維數(shù)為F時,輸出概率分布矩陣B[bij(k)]是一個N×M×F的三維矩陣。
可觀測輸出是一個可以觀察并測量的值,需要能夠刻畫出手勢運(yùn)動的軌跡,根據(jù)動作的可觀測輸出序列,可以判斷出該動作是否是手勢以及是何種手勢。用來描述手勢運(yùn)動軌跡的量包括運(yùn)動方向、位置、速度、加速度等。由于平移不變性和縮放不變性是手勢識別的特點(diǎn),可以用旋轉(zhuǎn)來區(qū)分,運(yùn)動方向是用來描述手勢運(yùn)動軌跡的最優(yōu)選擇。將整個360°的區(qū)域平均劃分為相鄰的16塊,每一塊分別對應(yīng)1~16中的一個可觀測輸出數(shù)值,當(dāng)相鄰幀的運(yùn)動方向落在某個區(qū)域時,該時刻的可觀測輸出就是該區(qū)域所對應(yīng)的可觀測輸出數(shù)值。特別的,當(dāng)相鄰幀的運(yùn)動距離過短時,可觀測輸出記為0。
為了對動態(tài)手勢進(jìn)行觀測,需要處理連續(xù)視頻的每一幀,手的位置在每幀當(dāng)中都會產(chǎn)生變化。由于每一幀的時間間隔較短,所以連續(xù)幀之間手的相對位移量不會特別大,但也會有明顯變化。因此可以取相鄰幀之間手運(yùn)動方向作為觀測值。
在Kinect機(jī)器下,可以得到在任意時間手在空間中的三維信息,與普通攝像機(jī)相比,在保留了XOY平面信息的基礎(chǔ)上,增加了XOZ平面和YOZ平面信息。因此可以取手在三個平面上的運(yùn)動方向組成具有三個元素的一維可觀測輸出向量,用來進(jìn)行訓(xùn)練和識別,在每個平面上獲取可觀測輸出的方法和普通HMM相同。
本實(shí)驗(yàn)一共設(shè)計(jì)8種手勢,包括上、下、左、右直線,順、逆時針圓形,停止不動以及左右快速搖晃。
對于多維離散HMM,維數(shù)F的確定非常重要。數(shù)目太多會導(dǎo)致計(jì)算速度下降,并且對于手勢的描述可能出現(xiàn)過擬合的情況;數(shù)目太少可能導(dǎo)致無法描述完整手勢運(yùn)動的所有信息。本文將手勢運(yùn)動分別投影到XOY面、YOZ面和ZOX面這三個平面,取得手勢在三個平面上運(yùn)動軌跡。由于三個平面是最少的能夠不丟失信息的描述手勢運(yùn)動軌跡的平面,并且這三個平面分別正交,因此設(shè)定維數(shù)為能夠在保證識別精讀的情況下,最大的提升識別性能。
本文實(shí)驗(yàn)重復(fù)做以上8個動作若干次,通過Kinect機(jī)器可以得到手在運(yùn)動過程中的三維信息。將所有這些手勢坐標(biāo)序列作為訓(xùn)練樣本訓(xùn)練出8種手勢的多維HMM,并根據(jù)8個手勢的多維HMM計(jì)算出多維HMM閾值模型。測試過程中將所有樣本都當(dāng)作新的手勢輸入進(jìn)去,各種手勢識別率如表1所示。
表1 各種手勢識別率
通過實(shí)驗(yàn)結(jié)果可以看出,根據(jù)Kinect機(jī)器得到的三維信息并運(yùn)用多維HMM基本能夠達(dá)到對手勢進(jìn)行識別的效果,對上、下、左、右直線,左右快速搖晃、順時針圓形及逆時針圓形等手勢基本都能準(zhǔn)確識別,但對于停止不動手勢的識別效果沒有其他手勢識別效果好,主要因?yàn)橛脩糇鲮o止的手勢時,由于使用者本身的無意識抖動或者Kinect機(jī)器檢測的誤差,導(dǎo)致在產(chǎn)生誤差的時間點(diǎn),運(yùn)動方向是隨機(jī)的,并無規(guī)律可循,無法進(jìn)行較好的識別,可嘗試采用其他可觀測輸出計(jì)算方法或者采用其他模型對這一手勢進(jìn)行識別。
本文研究基于體感設(shè)備Kinect取得深度信息從而進(jìn)行動態(tài)手勢識別的方法,通過OpenCV對手部進(jìn)行檢測跟蹤與分割等一系列預(yù)處理,采用多維HMM訓(xùn)練與識別手勢軌跡,對手勢運(yùn)動軌跡的提取與分類進(jìn)行改進(jìn)。實(shí)驗(yàn)結(jié)果可以看出,基于HMM的手勢識別方法更靈活,對三維動態(tài)手勢有較高的識別率。
為了保障實(shí)時性和準(zhǔn)確性,本文采用簡易的動態(tài)手勢進(jìn)行測試,從而保證實(shí)時準(zhǔn)確性。以后將生成一個完整多樣的動態(tài)手勢樣本集來對本文的方法進(jìn)行改進(jìn),,進(jìn)而提高本研究的魯棒性和推廣性。