王文斌,李 琨
(1.武漢工程大學郵電與信息工程學院,湖北 武漢 430073;2.湖北大學知行學院,湖北 武漢 430011)
目前人機交互方式不斷向著人工智能化發(fā)展,如人臉識別、指紋識別、手勢識別等,其中手勢作為日常肢體語言的表達形式之一,其包含的信息量巨大,且具有形象和直觀等優(yōu)勢,簡單來說手勢識別就是通過人類肢體動作控制設備或與設備溝通的一種方式[1-2]。利用手勢識別方式可減少用戶使用設備操作步驟,無需與設備發(fā)生任何物理接觸。此技術被廣泛應用在汽車、醫(yī)療、航天等各個領域。隨著手勢識別的應用面越來越廣,研究手勢識別的專家眾多,其中以張哲等人[3]提出的多層卷積特征的手勢識別方法和田元等人[4]提出的基于Kinect的實時手勢識別方法使用范圍最為廣泛。前者利用深度學習神經網搭建識別框架,利用支持向量機算法實現手勢特征識別,由于手勢圖像特征貢獻率不同,導致淺層特征無法識別,因此識別效果不理想。后者以手勢復雜背景為出發(fā)點,使用體感設備完成手勢識別,由于體感設備移動性較差,因此該方法僅適用于無需設備移動場合。
針對上述情況,本文利用特征跟蹤可有效獲取目標靜、動態(tài)特征的優(yōu)勢,以手勢特征跟蹤為出發(fā)點,對基于特征跟蹤的人機交互多點手勢識別展開仿真。
手勢特征提取時,識別信息源是關鍵。本文將高斯曲率應用于手勢識別信息源,利用高斯曲率展示手勢識別信息源的內在多點特征[5],且不受信息外在特征影響。多點手勢特征提取流程如圖1所示。
圖1 手勢特征提取流程
2.1.1 手勢圖像預處理
由于手勢圖像在人機交互過程中受紅外光反射以及交互環(huán)境影響,存在大量噪聲,因此在提取手勢圖像多點特征之初,需對手勢圖像進行噪聲干擾去除[6],本文利用濾波去除手勢圖像噪聲,并利用歸一化方法將該手勢圖像轉換為灰度圖像和距離直方圖,在手勢距離直方圖內,手勢區(qū)域和圖像背景區(qū)域深度數值不同,因此使用深度閾值方式對手勢圖像展開濾波,手勢圖像深度數值表達公式如下
(1)
上述公式中,(i,j)表示手勢圖像深度點坐標,Depth(i,j)則表示該手勢圖像深度點坐標位置的深度數值,thr代表手勢濾波過程中所設置的閾值,本文令閾值為900。利用式(1)計算得到的數值,使用圖像積分方法實現手勢圖像濾波。
由于距離直方圖內的深度值是相對距離數據,不由實際距離表達,因此需使用世界坐標的表達方式表示距離直方圖內的深度圖像從而獲取其點云信息[7]。
令距離直方圖內深度像素點為P,深度數值由draw表示,該像素點的坐標則由(i,j)表示,該像素點的深度濾波表達公式如下
d=Depth(i,j)·tan(draw)
(2)
將距離直方圖內像素點的深度值轉換為三維空間坐標,由(x,y,z)表示,其表達公式如下
(3)
上述公式中,b表示手勢圖像的寬度,h表示手勢圖像的高度。
利用式(2)與式(3)獲取距離直方圖內手勢深度的點云信息。
2.1.2 圖像曲面擬合
使用最小二乘方法對手勢圖像展開擬合,該方法在計算手勢圖像曲率時,單項式的曲面擬合基函數若符合線性無關條件則其表達手勢信息更加全面與精準。曲面擬合表達式如下
(4)
上述式中,pi(x)、ai(x)分別表示擬合曲率的基函數和多項式系數向量,基函數所涵蓋的單項式數量由n表示,擬合次數由T表示。
設置加權擬合誤差能量表達式是計算基函數的多項式系數向量的首要條件,那么定義的加權擬合誤差能量表達式如下
(5)
上述公式中,ω表示手勢圖像利用加權擬合誤差能量函數完成曲面多點擬合后的圖像深度數值[8],本文利用高斯型加權函數,通過計算該函數駐點最低數值獲取系數向量,而手勢多點特征則為高斯曲率,高斯曲率表達公式如下
(6)
上述公式中,字母u的下角標x和y分別表示函數的一階微分算子,xx和yy分別表示函數的二階算子。通過計算手勢圖像的高斯曲率數值,利用高斯曲率絕對值描述手勢圖像內手指區(qū)域和手指彎曲情況。
由于手勢圖像的曲面構成較繁瑣,無法完全的實現總體曲面擬合,為提升擬合精準度,最大限度表達手勢圖像多點特征,本文以區(qū)域擬合的方式進行手勢圖像多點擬合,以像素點方圓4*4厘米為一個擬合區(qū)域,進行多次擬合,從而保證較好地表達手勢圖像多點特征,為降低計算步驟,本文僅擬合手勢存在區(qū)域,對于手勢圖像留白區(qū)域不展開計算[9]。
利用KLT跟蹤器跟蹤手勢圖像多特征點,對手勢目標展開跟蹤,當手勢圖像內手勢區(qū)域存在遮擋或在轉換坐標時目標失蹤,利用KLT跟蹤器追蹤手勢圖像多特征點可較好的解決此類問題。當手勢區(qū)域完全被遮擋后,使用卡爾曼濾波器預測手勢目標位置,使手勢特征跟蹤區(qū)間降低[10],避免跟蹤器引導信號中斷情況,實現手勢跟蹤。
2.2.1 手勢圖像多特征點跟蹤
KLT跟蹤器在跟蹤手勢圖像多特征點時,以手勢圖像某一幀圖像內的可信度最高的特征點作為跟蹤點,測量該跟蹤點附近每幀圖像的互相關數值,獲取下一幀圖像內該跟蹤點區(qū)域,并計算上一幀圖像與下一幀圖像之間距離。
令W表示具有紋理特征的手勢特征窗口,當時刻為t時,手勢圖像的圖像幀為I(x,y,t),當時刻為時t+τ,手勢圖像的圖像幀則為I(x,y,t+τ),由于圖像亮度、時間連續(xù)和空間均具有相同特性,則圖像幀表達公式如下
I(x,y,t)=I(x+gx,y+gy,t+τ)
(7)
上述公式中,點X(x,y)的位移變化由g=(gx,gy)表示。
令ε表示KLT跟蹤器跟蹤目標誤差,通過計算跟蹤目標誤差最小位移g,令時刻為t時的手勢圖像特征窗口由I(X)表示,時刻為t+τ時的特征窗口由J(X)表示,則KLT跟蹤器跟蹤目標誤差表達公式如下
(8)
上述公式中,A、g、ω(X)分別表示變形矩陣、平移向量、加權函數,利用微分方式獲取KLT跟蹤器跟蹤目標誤差最小數值,其簡化后的表達式如下
Zg=e
(9)
其中
(10)
利用上述公式即可獲取手勢圖像特征窗口位移數值,實現手勢目標定位。
2.2.2 手勢目標定位
利用手勢圖像多特征點在兩幀圖像內的坐標點位置,計算手勢圖像仿射變換矩陣,將手勢圖像區(qū)域內四邊頂點坐標通過仿射變換矩陣方式計算與其相對坐標點,可重新判定手勢圖像區(qū)域[11]。
令(x,y)表示二維坐標點,仿射變換后的坐標由(x’,y’)表示,則仿射變換表達公式如下
(11)
令X=[x1,x2,…,xn]和Y=[y1,y2,…,yn]分別表示手勢與其特征點集合,則特征點的仿射變換關系表達公式如下
yi=f(xi)=Nxi
(12)
上述公式中,N表示仿射變換矩陣,且i=1,2,…,n。
根據手勢目標定位信息,利用卡爾曼濾波器實現多點手勢位置識別,其依據上一幀手勢圖像位置和速度,識別下一幀手勢圖像位置[12]。令k表示圖像幀,則在該幀內手勢狀態(tài)向量可表達為Uk=(cx(t),cy(t),vx(t),vy(t)),cx(t)、cy(t)分別為手勢的橫向、縱向位置。vx(t)、vy(t)分別表示橫向、縱向速度,當圖像幀為k時,手勢狀態(tài)向量狀態(tài)表達式如下
Uk=Bk-1Uk-1+wk-1
(13)
當圖像幀為k時,手勢狀態(tài)向量觀測表達式如下
Zk=HkUk+vk
(14)
上述公式中,Uk、Hk分別表示狀態(tài)向量和觀測矩陣,k-1時刻到k時刻時的狀態(tài)轉移矩陣由Bk表示,Zk、wk-1、vk分別為觀測向量、狀態(tài)噪聲向量、觀測噪聲向量。
卡爾曼濾波器識別過程如下:
(15)
增益矩陣表達式如下
(16)
預測狀態(tài)表達式如下
(17)
預測誤差協方差矩陣表達式如下
(18)
當手勢圖像特征點被遮擋時,運行卡爾曼濾波器,依據手勢圖像兩幀區(qū)間識別當前手勢區(qū)間,利用上述步驟可實現人機交互時的多點手勢識別。
為驗證本文方法實際效用,在某電視的人機交互VR游戲內仿真使用本文手勢識別方法,仿真軟件為MATLAB2020b仿真軟件,通過仿真手勢識別完成游戲限定人機交互任務。
以手勢圖像濾波為手勢特征提取前提,以圖像濾波能力作為衡量其特征提取性能指標,測試本文方法手勢圖像特征提取性能,結果如圖2所示。
圖2 手勢圖像濾波測試結果
分析圖2可知,手勢與其圖像背景的深度值處于不同區(qū)間,使用本文方法濾波后的手勢圖像背景呈白色,手勢區(qū)域呈深灰色,其對比度明顯,手勢邊緣輪廓清晰,由此可見,本文方法圖像濾波能力強。
以游戲過程中某10組手勢坐標為實驗對象,測試本文方法手勢目標定位能力,為更加凸顯本文方法使用效果,同時使用文獻[3]方法和文獻[4]方法展開測試,測試結果如表1所示。
表1 三種方法手勢目標定位測試(cm)
分析表1可知,使用本文方法定位的手勢坐標與游戲過程中的手勢坐標完全相同,而文獻[3]方法定位的手勢坐標雖然y軸方向與仿真軟件模擬完全相同,但x軸方向坐標出現兩次錯誤,最大誤差值為2.2cm,文獻[4]方法定位的手勢坐標在x軸方向出現一次錯誤,在y軸方向存在3次錯誤,綜合而言,本文方法定位的手勢目標最準確,可見其手勢定位能力更好。
以游戲過程中存在遮擋的100組手勢圖像為實驗對象,利用協方差數值表達手勢識別能力,測試三種方法手勢識別能力,結果如圖3所示。
圖3 三種方法手勢識別協方差數值
分析圖3可知,三種方法手勢識別協方差數值保持上下波動狀態(tài),其中文獻[3]方法的協方差數值最低為0.22,最高為1.2,二者差值為0.98,表明其協方差數值波動區(qū)間較大,而文獻[4]方法和本文方法的協方差數值最高數值與最低數值之差分別為0.67和0.25。綜合來看,本文方法的協方差波動區(qū)間最小,表明該方法識別人機交互過程的手勢準確,具有較強手勢識別能力。
本文對人機交互多點手勢識別展開仿真研究,在手勢特征點跟蹤過程中,引入卡爾曼濾波器,降低手勢跟蹤區(qū)域范圍,實現手勢跟蹤。經過實驗驗證,本文方法濾波后的手勢圖對比度與手勢邊緣輪廓均清晰可見,特征提取能力好;定位的手勢坐標與游戲過程中的手勢坐標完全相同,定位能力強;手勢識別時的協方差數值最高數值與最低數值之差僅為0.25,協方差波動區(qū)間小,人機交互多點手勢識別能力優(yōu)秀。