手势识别
![]() | 此条目可参照英语维基百科相应条目来扩充。 |
在计算机科学中,手势识别是通过数学算法来识别人类手势的一个议题。手势识别可以来自人的身体各部位的运动,但一般是指脸部和手的运动。目前面部表情识别及手势识别成为研究热点。大多数方法采用相机基于计算机视觉算法解释手语。然而,识别人的姿势,步态,行为也是手势识别的一个分支。手势识别可以认为是让计算机理解人体肢体语言的一种手段,因此,人机交互不仅仅是文字接口或者用鼠标键盘控制的用户图像界面,会有更多丰富的途径。
建模方法
根据输入资料的类型,需要利用不同的方法建构手势模型。
三维模型
三维模型是将物体表示为三维多边形,利用大量的点和线条完整地描述物体表面。三维模型目前广泛应用在动画产业与电脑视觉的领域。
此方法建构出的模型精细度较高,但需要大量的计算,因此有一个简化的方法是将人体的重点部位以简单的物件表示,例如用圆柱体表示手臂、用球体表示头部,如此便能用简单的参数描述模型。
骨架模型
由于三维模型需要大量的参数,另一个简化的版本是将实体用骨架来描述。骨架模型利用关节的角度与每个分节的长度做为参数,因此大幅减少了计算量。
骨架模型具有下列优点:
- 需要的参数量较少,因此计算较快。
- 可以和骨架的模板数据库做比对,以辨识手势类型。
- 由于只用关键的点来描述模型,因此可以抽取出手部的重要特征点。
外观模型
如果输入的资料是二维的影像,则必须使用外观模型来描述物体特征。外观模型可以是物体的轮廓、原始的影像,或由影像抽取出的特征。
手部追踪
在动态系统中,需要对手部进行追踪。常用的一种方法是粒子滤波器,借由在每个时间点递回地得到物体状态的后验几率,而估计出物体的位置。
手势辨识
在得到手部模型后,要利用这些资讯辨识出手势。常用的方法是在辨识之前,先取得大量的训练资料,建立各种手势的数据库,利用机器学习,训练出能够辨识手势的模型,实际运用时,再将测试资料输入模型,便能得到辨识结果。手势辨识常用的机器学习方法有:
- 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.