kinect for windows - 手势识别之一,kinect手势识别框架
何为手势识别,就是电脑认识人手的自然动作。自然动作包括摆手,握拳,双手合十等等。如果电脑能认识我们这些手势,将来的人机交互将会变得简单而有趣。这里手势不等同于某些规定的动作,比如按鼠标左键,则不属于手势,这个动作的结果是固定的,而手势有一定的随意性,容易被电脑误会,但是也有一定的规律可循,这些手势在现实生活中也表示一些特定的意义。
kinect在v1.7.0的开发包的工具包中,新增了手势识别的功能。手势识别的框架如下:
最底层是KinectInteraction1.7.0_*.dll,提供C++接口,可供C++开发。
在这个dll基础上,封装了Microsoft.Kinect.Toolkit.Interation.dll,供C#语言开发
而在Microsoft.Kinect.ToolKit.Interation.dll基础上,封装了了Controls控件,供WPF开发。
所以在C++层次实现手势识别比较困难,在我们提供的例子里,演示了如何用C++实现手势识别,并简单的实现了握拳和松手的两个手势的识别。
手势识别依赖骨骼跟踪和深度图,因此在实现手势识别的设备上,要打开深度图流和骨骼跟踪流。当程序收到深度图数据时,通过手势识别的接口,将深度数据送到手势识别系统去分析,当程序收到谷歌跟踪数据时,程序也将数据发送到手势识别系统去分析。手势识别系统认为数据足够并能提供手势识别的结果时,通知应用程序来获取数据,程序通过分析手势数据流,得到手势结果。