文/李松江 李俊俊 楊華民 王鵬
動態手勢識別是以靜態技術為基礎所形成的,簡而言之,就是在視頻流下可以識別手部的一些動作,這種技術相對靜態手勢識別技術來說,更加復雜,并且難度更大,可是這種技術的實用性更高。手勢識別技術已經獲得一定的成效,可是這些技術及方式均未解決假若光照條件嚴重改變,或是人體膚色出現極大的不同時,就會產生嚴重的系統失靈問題,而這常常就要對各項參數再一次進行調整,如此才能夠使得系統恢復工作,這就使得系統的穩定性大打折扣。而這種不穩定形成的主要原因就是基于人手的顏色來展開圖像分析的過程中,會存在光照、遮擋等各個方面的影響,這就會使得后續手勢辨識出現嚴重的干擾問題。鑒于此,增強手在攝像頭下的辨識精度就變成了研究的焦點。
以往手勢識別大部分是在視覺圖像信息的基礎上進行的,并且大部分是靜態手勢識別技術,并且基本上是運用傳統的攝像頭所得到的彩色圖像展開研究。因為輸入的數據及信息存在差異性,因此識別的方式同樣存在差異。很多方法直接通過攝像頭提供的彩色圖像信息,基于手勢形狀進行識別研究。而今,手勢識別技術的研究已經相對成熟,機器學習技術也漸漸普及,因此通常是運用機器學習的方式處理動態手勢的辨識。
(1)人機交互手勢的界定。借助在手指上套上兩種顏色不一,并且色彩非常鮮明的指環,并且設定控制方向的四種特定手勢,分別是向上、向下、向左、向右,并且進行點擊、縮小、放大等手勢操作。
(2)在OpenCV平臺上,在CamShift算法的基礎上,得到多個動態手勢點的具體位置。
(3)把多個位置點的視頻流數據借助機器學習中的線性回歸方式,并且運用梯度下降算法,獲得相對應的手勢操作數據及結果。
(4)在手勢操作所得到的數據及結果的基礎上,借助無線互聯網完成數據信息的傳達,進而對鼠標的移動進行有效控制,憑借紅外數據對電視機電臺切換與音量有效掌控,換而言之,就是發揮現有遙控器的作用及功能。
Camshift算法其實就是在MeanShift算法的基礎上優化,也就是連續自適應的MeanShift算法,主要構成包括下面這三個部分:
(1)計算色彩投影圖:把圖像由RGB顏色空間轉化到HSV顏色空間,運用直方圖的形式有效統計H分量,把圖像中所有像素的值都借助其顏色產生的具體概率完成替換操作,并且獲得相應的顏色概率分布圖。
(2)MeanShift尋優算法:借助不斷迭代運算,可以獲得最佳的搜索窗口,并且明確其大小與位置。
(3)CamShift跟蹤算法:在視頻序列的所有幀中均采取meanShift,還可以把上一幀的MeanShift數據當成是下一幀的初始值,并且不斷反復,就能夠完成跟蹤目標的實際操作。
在手指上套上兩種顏色不一,并且色彩非常鮮明的指環,并且人機交互手勢的界定如下:
(1)移動操作。兩個手勢點的間距始終保持在固定值,兩個點都向上/下/左/右進行移動;
(2)點擊操作。兩個手勢點的間距始終保持在固定值,兩個點進行上下移動兩次,并且移動的距離相對較短;
(3)縮放操作。兩手勢點的間距可以改變,隨意增大或是減小。

track_ window中所存儲的是上一幀矩形框結構體,camshift算法返回的數據是在track_ comp中的cvRect矩形框結構體中完成存儲操作。
針對若干個目標點來實現Camshift算法跟蹤,進而確定實際目標點的具體位置。
將視頻流中動態手勢點的特殊性訊息提取出來,并且在機器學習的基礎上,實現決策分類,然后就能夠得到各種手勢的操作。借助API函數GetCursorPosSetCursorPos mouse_event對鼠標的操作進行控制,分別包括鼠標的移動、點擊、滾輪。
經過機器學習算法之后,所提取的手勢點坐標結果顯示,鼠標左移及鼠標下移的測試成功率相對較高,分別是90%、92%,而鼠標右移和鼠標上移同樣成功率相對不錯,分別達到了78%、86%,而鼠標點擊的成功率只有60%。要分析原因的話,還得從算法進行分析,本文提出在Camshift算法的基礎上,聯系機器學習分類算法,完成手勢多點跟蹤與簡單鼠標控制的操作。但是因為Camshift算法對顏色的要求相對嚴格,在實施過程中,對顏色的要求非常高。并且在實驗時要戴上專用的指環套,旨在提升鼠標控制的精確性,而手勢類別并沒有多元化,此外還應該提升算法的精確性。
虛擬現實現今已經在一些領域中得到廣泛運用,而人機交互也在漸漸朝向自然用戶界面(NUI)的不斷優化、發展。自然用戶界面系指用戶能夠用更加自然的方法和計算機之間完成交互的操作,比如語音、觸控與手勢等。而手勢系指人機在實際交互中非常有效的一種方式,而以機器學習為基礎的動態體感手勢識別系統就能夠為人機交互提供一種全新的交互方式,進而有效推動手勢識別在各個領域中的運用與普及。