基于嵌入式系統實時交互的手勢識別方法
2.2手勢跟蹤
對于手部跟蹤,主要是基于Camshift算法實現的,它綜合利用了手勢圖像的顏色、區域和輪廓特征。Camshift是Mean.Shift算法的推廣,是一種有效的統計迭代算法,它使目標點能夠漂移到密度函數的局部最大值點。Camshift跟蹤算法是基于顏色概率模型的跟蹤方法,在建立被跟蹤目標的顏色直方圖模型后,可以將視頻圖像轉換為顏色概率分布圖,每一幀圖像中搜索窗口的位置和尺寸將會被更新,使其能夠定位跟蹤目標的中心和大小。本文中,Camshift算法被用于位置的粗定位,即確定當前手勢區域的外包矩形Rect,如圖6所示。

Rect將被用于前一步靜態手勢識別的輸入圖像,以便減少對圖像的分割以及模糊運算的工作量。
本文在Linux系統下實現了本文提出的基于手勢輪廓缺陷圖進行手勢識別的方法,并在嵌入式之星開發板上實現了手勢識別的人機交互演示系統。系統處理器800MHz,存儲器RAM256MB,實時采集640×480的真彩色圖像。該系統分析攝像頭實時捕獲到的每一幀圖像,對圖片中的手勢進行實時識別。系統的應用程序是一個基于手勢識別的拼圖游戲,通過變換手勢來完成拼圖。可識別的靜態手勢狀態被分為五類:A為握拳、B為食指伸長、C為V型手勢、D為中間三指伸開、E為五指張開。A、E手型分別對應抓取與松開。手勢為握拳狀態時,手對應的圖片塊被選中(類似鼠標左鍵按下),此時可以拖動圖片,選定位置后可以換成手勢E,圖片將被松開(類似鼠標左鍵松開),B、C、D手勢分別表示將圖片放大、縮小和旋轉。
演示系統效果如圖7所示。

圖7演示系統效果
4實驗結果及分析
為了檢驗本文算法的準確性和實時性,本文在實驗室光照條件下,采集不帶任何特殊標記的手勢單目視頻圖像。實驗中參數設置如下:Camshift算法的最大迭代次數為10;手勢分割使用的HSV顏色空間如表1所示。
表1HSV顏色空間設置

對手勢二值圖像所做的數學形態學操作使用3×3的模板做開運算,使用5×5的模板做閉運算;噪聲手勢的域值設為0.01.手勢的跟蹤過程無人工干預。
表2給出了五種手勢的識別率與匹配成功率。匹配成功率是指在正確識別出手勢類型的情況下,按照2.2節給出的匹配方法將手勢輪廓缺陷圖的特征與手勢類型進行匹配的成功比率。
表2手勢識別匹配率

表3給出本文方法與其他方法的比較結果。與其他手勢識別方法比較,本文提出的方法有相當的識別率,還實現了手勢跟蹤的結果對識別的反饋,并在實時性方面滿足嵌入式系統的需求(20~25fps),明顯好于文獻[7](一種面向實時交互的變形手勢跟蹤方法,18fps)和目前流行的HandVu的識別效率。
表3手勢識別算法比較

魯棒性方面,由于本文采用了模糊運算,圖像模糊分割的準確率達到96.4%,對環境的變化具有很好的抗干擾性。即使背景有人的走動造成環境和光線的劇烈變化,也不會對手勢輪廓缺陷圖造成太大的影響。
5結束語
本文針對人機交互領域基于視頻手勢在嵌入式系統上的實時交互任務提出一種快速、計算量小的手勢識別方法。它結合了基于模型與基于表觀方法的特點,是建立在對目標對象-手勢的理解基礎上,通過識別靜態手勢實現了手勢的跟蹤與識別。與傳統的手勢識別系統不同,它在注重識別效果的同時還要注重算法的計算復雜度。通過使用手勢輪廓缺陷圖作為手勢識別的特征結構,不僅大大減少了計算量,由于缺陷圖是從整體結構刻畫手勢的結構,所以它還增強了手勢識別的魯棒性。實驗表明本文提出的方法可以滿足交互的實時性要求,能很好地用于手勢交互的應用系統。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)








評論