手势识别

在计算机科学中，手势识别是通过数学算法来识别人类手势的一个议题。手势识别可以来自人的身体各部位的运动，但一般是指脸部和手的运动。目前面部表情识别及手势识别成为研究热点。大多数方法采用相机基于计算机视觉算法解释手語。然而，识别人的姿势，步态，行为也是手势识别的一个分支。手势识别可以认为是让计算机理解人体肢体语言的一种手段，因此，人机交互不仅仅是文字接口或者用鼠标键盘控制的用户图像界面，会有更多丰富的途径。

 建模方法 
根據輸入資料的類型，需要利用不同的方法建構手勢模型。

 三維模型 
三維模型是將物體表示為三維多邊形，利用大量的點和線條完整地描述物體表面。三維模型目前廣泛應用在動畫產業與電腦視覺的領域。

此方法建構出的模型精細度較高，但需要大量的計算，因此有一個簡化的方法是將人體的重點部位以簡單的物件表示，例如用圓柱體表示手臂、用球體表示頭部，如此便能用簡單的參數描述模型。

 骨架模型 
由於三維模型需要大量的參數，另一個簡化的版本是將實體用骨架來描述。骨架模型利用關節的角度與每個分節的長度做為參數，因此大幅減少了計算量。

骨架模型具有下列優點：
 需要的參數量較少，因此計算較快。
 可以和骨架的模板資料庫做比對，以辨識手勢類型。
 由於只用關鍵的點來描述模型，因此可以抽取出手部的重要特徵點。

 外觀模型 
如果輸入的資料是二維的影像，則必須使用外觀模型來描述物體特徵。外觀模型可以是物體的輪廓、原始的影像，或由影像抽取出的特徵。

 手部追蹤 
在動態系統中，需要對手部進行追蹤。常用的一種方法是粒子濾波器，藉由在每個時間點遞迴地得到物體狀態的後驗機率，而估計出物體的位置。

 手勢辨識 
在得到手部模型後，要利用這些資訊辨識出手勢。常用的方法是在辨識之前，先取得大量的訓練資料，建立各種手勢的資料庫，利用機器學習，訓練出能夠辨識手勢的模型，實際運用時，再將測試資料輸入模型，便能得到辨識結果。手勢辨識常用的機器學習方法有：
 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.
分类:虚拟现实