手勢識別
![]() | 此條目可參照英語維基百科相應條目來擴充。 |
在計算機科學中,手勢識別是通過數學算法來識別人類手勢的一個議題。手勢識別可以來自人的身體各部位的運動,但一般是指臉部和手的運動。目前面部表情識別及手勢識別成為研究熱點。大多數方法採用相機基於計算機視覺算法解釋手語。然而,識別人的姿勢,步態,行為也是手勢識別的一個分支。手勢識別可以認為是讓計算機理解人體肢體語言的一種手段,因此,人機交互不僅僅是文字接口或者用鼠標鍵盤控制的用戶圖像界面,會有更多豐富的途徑。
建模方法
根據輸入資料的類型,需要利用不同的方法建構手勢模型。
三維模型
三維模型是將物體表示為三維多邊形,利用大量的點和線條完整地描述物體表面。三維模型目前廣泛應用在動畫產業與電腦視覺的領域。
此方法建構出的模型精細度較高,但需要大量的計算,因此有一個簡化的方法是將人體的重點部位以簡單的物件表示,例如用圓柱體表示手臂、用球體表示頭部,如此便能用簡單的參數描述模型。
骨架模型
由於三維模型需要大量的參數,另一個簡化的版本是將實體用骨架來描述。骨架模型利用關節的角度與每個分節的長度做為參數,因此大幅減少了計算量。
骨架模型具有下列優點:
- 需要的參數量較少,因此計算較快。
- 可以和骨架的模板資料庫做比對,以辨識手勢類型。
- 由於只用關鍵的點來描述模型,因此可以抽取出手部的重要特徵點。
外觀模型
如果輸入的資料是二維的影像,則必須使用外觀模型來描述物體特徵。外觀模型可以是物體的輪廓、原始的影像,或由影像抽取出的特徵。
手部追蹤
在動態系統中,需要對手部進行追蹤。常用的一種方法是粒子濾波器,藉由在每個時間點遞迴地得到物體狀態的後驗概率,而估計出物體的位置。
手勢辨識
在得到手部模型後,要利用這些資訊辨識出手勢。常用的方法是在辨識之前,先取得大量的訓練資料,建立各種手勢的資料庫,利用機器學習,訓練出能夠辨識手勢的模型,實際運用時,再將測試資料輸入模型,便能得到辨識結果。手勢辨識常用的機器學習方法有:
- Adaboost
- 決策樹(decision tree)
- 隱馬可夫模型(hidden Markov model, HMM)
- 支持向量機(support vector machine, SVM)
- 動態時間校正(dynamic time warping, DTW)
- 人工神經網絡(artificial neural network)
參見
參考文獻
- Ivan Laptev and Tony Lindeberg, "Tracking of Multi-state Hand Models Using Particle Filtering and a Hierarchy of Multi-scale Image Features", Proceedings Scale-Space and Morphology in Computer Vision, Volume 2106 of Springer Lecture Notes in Computer Science, pages 63-74, Vancouver, BC, 1999.
- L. Bretzner, I. Laptev and T. Lindeberg, "Hand gesture recognition using multi-scale colour features, hierarchical models and particle filtering." Proceedings of Fifth IEEE International Conference on Automatic Face Gesture Recognition, Washington, DC, USA, 2002, pp. 423-428.
- B. Stenger, A. Thayananthan, P.H. Torr, R. Cipolla, "Model-based hand tracking using a hierarchical Bayesian filter." IEEE Transactions on Pattern Analysis and Machine Intelligence, 28(9):1372-84, Sep 2006.
- Gillian, Nicholas Edward, and Joseph A. Paradiso, "The gesture recognition toolkit." Journal of Machine Learning Research 15.1 (2014): 3483-3487.