手势识别
此條目可参照英語維基百科相應條目来扩充。 |
在计算机科学中,手势识别是通过数学算法来识别人类手势的一个议题。手势识别可以来自人的身体各部位的运动,但一般是指脸部和手的运动。目前面部表情识别及手势识别成为研究热点。大多数方法采用相机基于计算机视觉算法解释手語。然而,识别人的姿势,步态,行为也是手势识别的一个分支。手势识别可以认为是让计算机理解人体肢体语言的一种手段,因此,人机交互不仅仅是文字接口或者用鼠标键盘控制的用户图像界面,会有更多丰富的途径。
建模方法
根據輸入資料的類型,需要利用不同的方法建構手勢模型。
三維模型
三維模型是將物體表示為三維多邊形,利用大量的點和線條完整地描述物體表面。三維模型目前廣泛應用在動畫產業與電腦視覺的領域。
此方法建構出的模型精細度較高,但需要大量的計算,因此有一個簡化的方法是將人體的重點部位以簡單的物件表示,例如用圓柱體表示手臂、用球體表示頭部,如此便能用簡單的參數描述模型。
骨架模型
由於三維模型需要大量的參數,另一個簡化的版本是將實體用骨架來描述。骨架模型利用關節的角度與每個分節的長度做為參數,因此大幅減少了計算量。
骨架模型具有下列優點:
- 需要的參數量較少,因此計算較快。
- 可以和骨架的模板資料庫做比對,以辨識手勢類型。
- 由於只用關鍵的點來描述模型,因此可以抽取出手部的重要特徵點。
外觀模型
如果輸入的資料是二維的影像,則必須使用外觀模型來描述物體特徵。外觀模型可以是物體的輪廓、原始的影像,或由影像抽取出的特徵。
手部追蹤
在動態系統中,需要對手部進行追蹤。常用的一種方法是粒子濾波器,藉由在每個時間點遞迴地得到物體狀態的後驗機率,而估計出物體的位置。
手勢辨識
在得到手部模型後,要利用這些資訊辨識出手勢。常用的方法是在辨識之前,先取得大量的訓練資料,建立各種手勢的資料庫,利用機器學習,訓練出能夠辨識手勢的模型,實際運用時,再將測試資料輸入模型,便能得到辨識結果。手勢辨識常用的機器學習方法有:
- 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.