劉 敏
(湄洲灣職業技術學院,福建莆田 351254)
隨著虛擬現實技術以及神經網絡技術的不斷發展,各種智能識別及交互技術不斷涌現,手勢識別就是其中一種,該種技術屬于智能生物識別技術,在人類交流中具有廣泛用途。當前手勢識別技術仍舊處于研究階段,在眾多方面有待突破,其圖像處理以及數據處理部分為該技術運行基礎,可通過神經網絡以及虛擬現實技術進行解析并推進其應用進程。
視頻圖像處理是將收集到的圖像進行有效處理,使之成為智能系統可識別的量化數據。手勢識別主要是將收集到視頻文件進行有效識別,并將其與標準數據庫進行比對,從而得出手勢識別得到的結果,以輸入輸出進行信息的錄入和傳輸。
對手勢目標檢測是開展手勢內容分析的基礎,在實際檢測過程中需要準確提取手勢圖像,后續手勢特征提取及識別均建立在精確檢測基礎上,若檢測精度不夠則無法展開后續工作。實際檢測過程中會存在一些無法控制的干擾因素,例如捕捉裝置晃動、環境光線變化、背景色調影響等,為運動檢測帶來一定難度。因此,需要建立科學有效的捕捉算法。在本研究中通過虛擬現實技術結合笛卡爾坐標進行手勢動作的有效捕捉[1]。
圖1所示為笛卡爾三維坐標系,本研究中該坐標系在建立過程中遵循左手定則,以大拇指朝向為X軸正方向,反方向則為X軸負方向。以食指所指方向為Y軸正方向,反方向則為Y軸負方向;以中指所指方向為Z軸正方向,反方向則為Z軸負方向。建立該坐標系后便可結合實踐形成空間4D坐標系,從而可在該坐標系基礎上實現人體運動過程的動態追蹤。
在該坐標系中,手勢主要有6個自由度方向,可分別圍繞X、Y、Z三個軸進行旋轉,并可旋轉相應的角度,通過手勢自由度分析便可得到相應的坐標轉換過程。如圖2所示,設定手勢在實際運動過程中分別圍繞X、Y、Z三個軸進行旋轉的角度分別為ψ,θ,φ,則可將其旋轉角度采用空間向量矩陣形式表達出來,將4D過程表示為式(1),其中各項參數均表示虛數單位,并假設該四元數q表示手在空間結構中以其向量N為軸,旋轉α角度。則可將以上參數關系表示為式(2)[2]。

圖1 笛卡爾三維坐標系

圖2 坐標變換
(1)
q=[cos(α/2),sin(α/2)N].
(2)
通過以上分析便可建立手勢模型圍繞中心軸旋轉α角度后的關系式:
α=2arccos(w).
(3)
(4)
(5)
(6)
對其進行四維坐標變換后便可得到如下結果:
qw=cos(α/2)cos(θ/2)-sin(α/2)sin(θ/2)sin(ψ/2).
(7)
qx=cos(φ/2)sin(φ/2)sin(ψ/2)+sin(ψ/2)cos(θ/2)cos(ψ/2).
(8)
qy=cos(φ/2)sin(θ/2)sin(ψ/2)+sin(φ/2)cos(θ/2)sin(ψ/2).
(9)
qz=cos(φ/2)cos(θ/2)sin(ψ/2)-sin(φ/2)sin(θ/2)sin(ψ/2).
(10)

圖3 BP神經網絡
BP神經網絡屬于一種多目標優化問題,其主要過程見圖3。圖中分別用[X1,X2,…,Xn]以及[Y1,Y2,…,Yn]表示輸入以及輸出值,則在此基礎上分別通過w和b表示該網絡的權值以及閾值,從本質上來說BP神經網絡的主要作用就是通過人的思維方式解決問題,并在實際發展過程中通過多種方式將人的工作過程表示出來,結合專家經驗實現對各種不確定問題的有效改進,在此基礎上得到準確結果,并將所得到的結果作為后續決策的依據,制定出具有一定針對性的策略。BP神經網絡是一種可靠的計算機算法,在制作過程中存在一定自身弊端,因此在實際工作中可對該種算法進行分類處理,結合其他算法進行優化后得到效率更高、可靠性更強的系統,實現對該種系統網絡的有效提升[3]。
在構建模型過程中采用UML作為可視化建模語言。相較于其他模型在實際構建過程中的唯一性,需要結合實際情況,從多個角度對模型進行綜合性分析,建立與模型相關的算法結構。圖4所示為采用UML作為可視化建模語言的一種范例,通過多角度設計的觀察,促進該系統的不斷完善,構建具有一定實際效應的系統,并能夠及時發現問題所在,是一種高效的可視化建模語言[4]。

圖4 可視化建模語言使用范例
可視化建模語言在實際建模過程中還需要對圖像進行轉換,實現由2D圖像向3D圖像的轉變,在圖4中設定推向設定運動矢量為V,轉換深度為D,則可將其表達為:
(11)
設定活動窗口大小表示為W×H,M(x,y)可表示為該窗口的樣本均值,中心點設置為(x,y),表示以中心點為中心的窗口區域,則可將其高階矩陣表示為式(12),設定該圖像的任一點圖像灰度值為ρ,可得到如式(13)所示的轉換方式。

(12)
ρ=xcos(θ)+ysin(θ).
(13)

圖5 手掌部分的可視化建模示意圖
通過以上分析不難發現,在進行手勢建模過程中需要對各個部分進行綜合性分析,尤其是手掌姿勢等。通過可視化建模語言對手掌各個部分進行精細化處理,能夠有效提升建模效果,通過設置各個網絡點方式構建出較為詳細的模型結構,降低模型構建中可能出現的誤差[5]。
圖5為手掌部分的可視化建模示意圖,通過可視化建模語言建模,將手勢各個部分進行拆分,結合各個部分的實際狀況進行綜合性分析,并在此基礎上得出相應特點,從實際情況出發,在細節部分予以修正。采用網格模型結構對模型進行分析,將其與實際手勢進行比對,得出相應的結果。
通過BP神經網絡結合圖像處理算法對圖像進行智能處理。對人的手勢目標檢測主要是將運動中的研究目標的連續圖像展現出來,從圖像中檢測出所需部分,鎖定具體目標,將其從背景中分離,便于后續處理及分析、判斷。提取人體運動過程,后續運動特征提取及運動識別均建立在精確檢測的基礎上。而實際檢測過程中會存在一些無法控制的干擾因素,例如捕捉裝置晃動、環境光線變化、背景色調影響等,為運動檢測帶來一定難度。
所謂中值濾波主要是指一種非線性平滑可抑制噪聲的方法,該方法特點是操作簡單,運算過程便捷,具有一定可行性,尤其對脈沖噪聲有一定抑制作用,且對圖像邊緣具有良好保護作用,避免邊緣模糊不清。中值濾波實現方法為將處理窗原圖灰度值中值作為窗口中心處新值,下面就該過程展開分析。
一維環境下,假設a1,a2,…,an表示原始信號序列,其排列順序由大到小。則其中值可表示為:
(14)
假設原始信號為一維5點形式,序列為“70,80,200,110,120”,從分布來看中心處存在最大孤立噪聲。在對該類信號進行中值濾波處理時應該將中值“110”作為原“200”處新值。由此可見,無論孤立噪聲多大,均可通過中值濾波將噪聲有效消除。再如序列為“100,100,200,200,200”,則通過中值濾波處理后其中心位置仍舊是“200”,即不會出現邊緣模糊現象。若噪聲并非孤立,而是以序列情況出現,如序列為“100,200,200,100,100”,則利用中值濾波可將噪聲完全消除。因此,相較于其他處理方法,中值濾波處理效果更佳。在二維情況下,通過中值濾波處理時將二維窗像素灰度值中值作為窗口中心處新值,表達式為[6]:
g(m,n)=Median[f(i,j)]或g(m,n)=Median[f(m-i,n-j)].
(15)
式(15)分別表達中心坐標為(m,n)和(0,0)的情況。常用二維窗形狀見圖6。

圖6 常用二維窗形狀
進行中值濾波處理時為選擇合適處理窗,本文選用多窗口中值濾波法——MWMF(Multi-Windows Median Filter)。假設3×3處理窗中心點為O,則可表示為:

(16)
利用MWMF法進行處理,計算上述3×3十字窗像素中值:
md1=Median{b,d,f,h,O}.
(17)
計算上述3×3X形窗像素中值:
md2=Median{a,c,e,g,O}.
(18)
計算處理窗均值:
(19)
計算差值:
(20)
窗口處新值為:
(21)
在進行手勢運動分析時,往往需要增強圖像邊緣和灰度跳變部分,即將圖像銳化增強。該方法的基本原理是將對圖像進行微分處理,計算出結果,并將結果與圖像進行疊加處理。微分處理為二階,一般指拉氏算子,用于對刻畫圖像變化。從性質上來看,拉氏算子屬于線性算子,可對點、線等邊界進行有效提取,使各項具有唯一不變性,定義為:
(22)
在成像過程中常會出現擴散效應,此時可通過拉氏算子解決因擴散效應造成的圖像問題。通過擴散方程表示擴散效應:

(23)
其中,f(x,y,t)表示t時刻圖像,k表示大于0的常數,當t=τ>0時圖像受影響會變模糊,此時可對其進行泰勒級數展開:
(24)
其中,t=0,g(x,y)≈f(x,y,τ),f(x,y)≈f(x,y,τ)。在此基礎上省略高階項,得到:

(25)
當圖像因為散射而造成圖像模糊時,模糊圖像在其基礎上減去拉氏運算結果的α倍便可得到清晰圖像,α表示控制銳化程度的影子。實際檢測過程中,散射并非導致圖像模糊的唯一因素,對其他因素造成圖像模糊的情況,利用圖像與其拉氏運算結果之差也可加強邊界銳化程度。進行數字圖像處理時選取α為常數,拉氏算子四鄰域、對角鄰域、八鄰域矩陣圖見圖7。

(a)四領域 (b)對角領域 (c)八領域矩陣圖
將收集到的手勢視頻圖像進行深入處理,消除圖片中的噪聲,將其轉變為系統可識別的量化數據,并與標準數據庫進行對比,從而對手勢進行翻譯,得出其具體含義,并以人性化方式將其展示在終端界面。
基于BP神經網絡以及虛擬現實基礎構建智能手勢識別系統,通過智能捕捉硬件設備捕捉手勢動作,并將收集到的視頻文件輸入到系統中進行處理得出相應結果。

圖8 手勢智能識別系統框架圖
構建智能手勢識別系統,根據虛擬現實技術構建其數據庫標準對比樣本系統,并結合BP神經網絡進行數據處理,將收集到的視頻文件進行二值化處理,與所建立的標準數據庫系統進行對比。本研究構建的系統結構如圖8所示。
本研究構建的手勢智能識別系統主要包括登入系統、數據傳入系統、數據處理系統、數據庫系統、數據傳出系統、終端顯示系統。其中,登入系統:用戶注冊身份,進入系統的入口,設定器用戶名及密碼;數據傳入系統:通過客戶端系統進行手勢的錄入,并將視頻文件傳輸至系統;數據處理系統:主要采用神經網絡算法構建出系統數據處理系統,將視頻文件處理為系統可識別的量化數據,對數據進行有效分析,將系統處理得到的數據與標準數據庫進行對比,判斷出手勢代表的意思。之后便可通過數據傳輸系統將結果傳輸至顯示終端。

圖9 智能手勢識別系統數據庫
本系統數據庫系統需要將收集到的手勢含義進行解釋,構建大量的標準手勢數據庫,建立專屬數據庫結構。建立分布式數據庫結構,輸入全套手語。圖9為智能手勢識別系統數據庫,存儲大量手語標準解釋。在實際應用中只要輸入相應的手勢便可將其翻譯成相應的語言,從實質上說,該系統屬于一種一對多的系統結構。
對于重復率比較高的待識別手勢,在處理過程中可先使用預翻譯功能進行預翻譯,運用翻譯記憶體和數據庫中儲存的標準解釋,自動替換待處理手勢,進行自動匹配。對于非完全匹配的部分,會以最相似的注釋方式進行匹配,再使用精細化方式進行調整。
為研究系統對手勢的識別效果,構建如表1所示的配置構建系統進行測試。

表1 系統配置
基于表1數據構建系統結構,通過神經網絡以及虛擬現實技術構建系統軟件結構,將標準手勢庫存儲于其硬盤中。通過Kinect 2.0進行手勢視頻收集。在測試中,通過手勢表現出0~9的數字,并由系統進行測試。為保證測試的準確性,將0~9數字添加在對話中,并設置每個數字測試100次,在測試過程中運用數字混亂出現的方式,通過快速手勢和慢速手勢將測試結果表示出來(表2)。

表2 數字手勢測試結果
如表2所示,在慢速手勢測試中,系統可實現100%的數字手勢識別,快速手勢識別率超過90%。造成誤差的原因主要是CPU版本較低,以及CPU影響到系統實時處理數據的效率低,導致一些數據在處理過程中出現誤差,從而影響到其識別效果。從以上測試來看,本研究構建的系統具有一定實用效果。
綜上所述,將神經網絡以及虛擬現實技術作為系統運行的基礎,構建智能手勢識別系統。該系統將Kinect 2.0作為視頻收集裝備進行手勢圖像收集,經過圖像過濾處理以及圖像量化處理使識別對象成為系統可識別的數據類型,構建出對應系統,并對系統進行測試。研究表明,該系統具備一定實用性,在進行配置優化后可推廣應用。
[參考文獻]
[1]賈維闖,宮進,吳雄華.基于加速度的BP神經網絡手勢識別設計[J].電子技術與軟件工程,2016(21):94.
[2]金小湘.虛擬現實結合互聯網的應用研究[J].科學家,2016(15):109-110.
[3]操小文,薄華.基于卷積神經網絡的手勢識別研究[J].微型機與應用,2016(9):55-57.
[4]卓少偉,柳培忠,黃德天,等.基于CW-RNNs網絡的手勢識別算法[J].海峽科學,2016(7):51-56.
[5]蔡娟,蔡堅勇,廖曉東,等.基于卷積神經網絡的手勢識別初探[J].計算機系統應用,2015(4):113-117.
[6]馬巖.基于BP神經網絡的Kinect手勢識別方法[J].軟件導刊,2016(3):6-8.