您的位置:首页 > 其它

Kinect Interaction概念

2013-05-03 14:22 99 查看
第一次接触这新的KinectInteraction特性,有很多概念可能会遇到。理解这些概念对于知道这些新特性哪些能做哪些不能做很重要。

这KinectInteraction控制同时也设计成可以兼容鼠标键盘控制的Kinect应用。

手势跟踪

第一个概念是手势跟踪。如果你以前用过Kinect for Windows SDK, 你应该熟悉骨骼跟踪,即SDK在它视野范围内标识人体并且为他们创建骨架。虽然在KinectInteraction没有对骨骼跟踪增强,但结合深度信息和骨骼信息允许KinectInteraction 跟踪用户的手。

除了跟踪手,KinectInteraction同样可以检测和报告手和手臂的状态,允许识别自然手势比如抓取、释放和按。因此,用户现在在正常的传感器操作范围内(从近模式0.4米到正常模式3~4米)和Kinect应用交互不用接触。

Kinect传感器必须能看到手并进行跟踪。这交互特性在用户面对着传感器并且手掌对着传感器时效果最好。

物理交互区域(PhIZ)

物理交互区域是用户前方3D空间的物理世界对开发者建立的3D坐标系的映射。对于每个用户(最多两个用户)的每只手都对应一个物理交互区域。PhIZ是激活区域允许大多的交互。

什么会被跟踪

交互层可以允许同时跟踪一到两个用户的手。 其中一个用户作为主用户, 尤其是第一个与系统交互的用户。主用户可以一直控制系统直到系统发现这用户不再与应用交互。主用户中分配一个主手(用户用来控制体验),即使两个手都被跟踪。只有主手可以用来控制 体验。由于两个手都被跟踪,用户可以通过不交互当前的主手(比如,把这只手底放到一边,同时把另一只手升到PhIZ)切换主手。

应用程序也能判断跟踪的用户中哪个是主用户。

用户分配到一个从骨骼跟踪系统中得到的用户ID。

手的状态

对于每个手,一个手的状态是被维护者。 指定用户和手的归属:这个手是否是那个用户的主手,这个手是否在交互(如下),和是否手在抓取、按压或都不是。

跟踪vs.交互

被跟踪的手是KinectInteraction在观察寻找可能的交互的手。交互的手是在PhIZ中已经被跟踪用户交互的手。

用户视图

一个在Kinect交互控制中可行的设置是用户视图。 这是一个显示Kinect传感器的用户视图的小窗口。这个视图从深度数据得来,并且当Kinect区域创建的时候自动显示。

手指示器

手指示器是一个标识在PhIZ内用户手的当前位置的对象。这在应用程序中可以通过Kinect Cursor设置成可见。如果在系统中设置成可见(在C#/WPF 控制中是默认设置),这指示器在应用程序中定义的Kinect Region(s)可见,并且显示成手的形状。另外,Kinect Cursor的可视化在用户正在抓取时改变成握拳形状。

手指示器和其他控制

为了提供流畅的交互体验,一旦手指示器结合给定的Kinect交互控制在坐标系中停留一段时间,这个手指示器认为被那控制器捕获,直到用户把手从控制的边界移开。这被给定控制捕获的性质同时暴露了手指示器和捕获手指示器的控制。

交互的类型

KinectInteraction提供了多种方式和Kinect应用进行交互。提供的交互有:

抓取和释放
按压
滚动

抓取和释放
在抓取交互中,用户打开手,手掌正对着传感器(理想情况下),然后握拳。这就识别为抓取,并且绑定手的跟踪无论指定哪个控制,直到用户释放抓取。这同时可以结合Kienct的滚动视图控制,允许直接操作滚动的自然体验,和对一个大列表进行滚动。这 Control
Basics 示例展示了这种操作,这示例同时提供了页面滚动的能力。
释放交互就是打开握拳。
按压
在按压交互中,用户打开手,手掌正对着传感器(理想情况下),并且手臂不是完全伸向传感器。用户朝着传感器伸展手,表示按压。这同样可以用于滚动视图,在InteractionGallery 示例中演示。
滚动
Kinect滚动视图控制允许滚动大于一个屏幕的数据。你可以一个抓取滚动的体验,或页面滚动的体验,同样在InteractionGallery 示例中演示。
交互流
交互流提供了一个交互数据桢的流,类似于其他数据源模型的流(音频流,深度流,骨骼流等)。交互提供了用户与应用交互的交互信息,比如手的位置,手是否在按压,抓取,释放或控制用户的目标。

P.S. http://msdn.microsoft.com/en-us/library/dn188673.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: