2013年3月18日,微软Kinect for Windows团队发布了新版的Kinect for Windows SDK 1.7,这是自去年发布Kinect for Windows SDK以来最重要的一次更新。其核心内容包括:
Kinect Interactions手势识别(Push-to-Press 按钮、Grip-to-Pan 功能)、多人智能适应方式、双人交互等。这套工具基于微软数千小时的研究、开发和测试,希望能缩短开发者在手势体验方面的研发时间。
Kinect Fusion实时捕捉和构建物体的3D模型。可利用于虚拟现实、3D打印、工业设计、服饰购物体验等。Kinect Fusion整合了来自Kinect for Windows传感器的连续景深快照,以创建完整的3D模型。
通过精确的3D模型和相关的Kinect for Windows应用程序,让开发者能够专注于开发更多定制和精确3D应用程序,实现3D打印、增强现实等各种新场景,满足零售、医疗和教育等众多行业的客户需求
图:Kinect Fusion
除此以外,SDK 1.7中还包含了新的Kinect互动功能,包括支持推按、抓移的NUI控件、还有多用户互动以及手势张合识别。新的互动功能将更多的可访问性和一致性带入Kinect for Windows,让开发者和潜在的商业合作伙伴能够充分利用该产品探索并开发新的使用场景。更新的SDK版本还包括如何与OpenCV和MATLAB交互的示例。同时,所有的Kinect for Windows示例代码也都上传到Codeplex网站。
同时SDK的更新还包括了增强开发包以及丰富的开发资源:
OpenCV 和 MATLAB 范例
Kinect for Windows 代码范例开源( CodePlex)
图:微软在CodePlex中提供源代码
微软Kinect for Windows事业部全球总监Bob Heddle表示:“新的Kinect for Windows SDK 1.7版本中引入了Kinect Fusion和Kinect互动等激动人心的技术,这是我们团队与微软研究院广泛合作的又一成果。尤其是在精确3D模型创建以及基于手势的应用开发方面,SDK 1.7使得企业和开发者能够给用户提供更加一致的,直观的和自然的用户体验。”
为了帮助中国的企业和开发者更好的利用Kinect for Windows SDK 1.7版本的创新功能,微软还将在北京、上海、南京、成都、深圳等五地举办一系列的技术培训活动,让开发者们近距离体验Kinect for Windows及其最新SDK带来的技术优势,探索全新Kinect for Windows 如何将人机自然交互带到更加广泛的应用领域。
>>>点击下载Kinect for Windows SDK 1.7
针对KinectSDKv1.7的新功能有个朋友写了个介绍(重点是这个文档),期待更深入的分析。
昨晚微软如期发布了这个SDK。下面对该SDK的新功能做个简介,
带着一个问题:1.7版是否值得如此期待?
1.7版的新功能:
1. Kinect Interactions
2. Kinect Fusion
3. OpenCV和Matlab工具
下面逐个说明:
1. Kinect Interactions
纯粹从功能上来说,这块只是多了2个手势的识别:push(推)和grip(抓)。
从SDK结构上来说,因为这2个手势的引入,带来了新的一个stream,叫Interaction Stream,类似现有的Depth Stream,Video Stream, Skeleton Stream。可见,以后的手势都会在这个独立的Stream(流)里。这样对开发者来说,用起来会比较方便。
而最有价值的则是交互和用户体验的引入
- 文档可参见Human Interface Guidelines v1.7,微软在里面分享了很多用户体验方面的研究成果以及交互设计建议,非常值得一读
- 实例则在例程Interaction Gallery和Controls Basic里。相比v1.6的交互,v1.7改变非常大(可以说,这才开始真正的交互),下面简要说明:
(1). 从用户角度来说,定义了手势操作的物理区域,这就象鼠标的鼠标垫,离开鼠标垫,你无法移动鼠标。而且 稍微移动手的位置即可移动屏幕上的光标,而不需要大幅度的移动(比如人的走动)
(2). 从UI角度来说,定义了适合Kinect交互的控件:
- KinectCursor(对应鼠标的光标,这可说是Kinect体感交互时代的体感光标)
- KinectTileButton/KinectCircleButton(适合点击),
- KinectScrollViewer(适合抓取并拖动)
(3). 从交互的角度来说,提供了很多改进用户体验的测试结果和建议:
- UI应该关注用户本身:比如用户是否面对屏幕,跟屏幕的距离,多用户的时候谁可以操作,当前是否应该 吸引用户进行操作等。
- UI应该方便用户交互:比如是否要很努力地去“学习”,是否很容易导致误操作(这里有个实例就是push事件触发时机的选择,push事件是该在手推进的时候触发还是缩回的时候触发?如果中途要放弃,怎么办?答案是当用户缩手的时候才触发事件,这样当手推到底的时候,用户还有机会将手往上,左,右方移动来放弃。这里有个有趣的用户测试结果是,用户push之后会习惯性地将手垂下),是否有足够的引导或提示(比如当前是左手还是右手,当前控件是否可以用手势控制,当前手势操作的状态等。这里微软分享了一个有趣的用户测试结果:刚进入界面的时候,放一个很大的按钮,上面写几个文字提示用户可以点击,用户就会在后续的操作中很自然地现学现用)
- UI设计应该适应新的交互方式:比如控件的大小,微软在1920×1080分辨率下设计的最小按钮是220×220像素。这种控件尺寸上的限制就导致界面设计师在设计的时候不能停留于鼠标键盘时代的思维习惯。
(帮人打广告:对体感交互和用户体验感兴趣的朋友欢迎加入QQ群:119442812。主要话题是交互和体验,跟程序开发基本无关)
2. Kinect Fusion
可以输出到stl和obj文件,运行了例程,在我的电脑上大概2,3帧每秒,仅从帧率上来说,跟KinFu差不多。
因为运行太慢,没做过多尝试,欢迎补充。
3. OpenCV和Matlab工具
未试。欢迎补充。
从应用上来说,这个版本引入的新功能是挺值得期待的:
1. Kinect Fusion跟3D打印联系起来想象空间比较大。
2. Kinect Interaction在大屏交互的时候很有意义,特别是在数字看板,体感展示等场合。
3. OpenCV和Matlab工具则方便了第三方算法的开发。
美中不足之处在于,微软没有分享下一版SDK的计划,仅仅从文档中看到有加入更多的手势的迹象。这对希望开发一些算法的开发者或者初创公司很不利。相比之下,LEAP MOTION则对开发者要友好得多,会告诉开发者他们的近期计划是什么,哪些是他们暂时不会提供的。希望看到微软除了在codeplex上开源例程(不是SDK)之外,能再跟开发者多点互动,把方便公开的SDK开发计划分享一下。