Kinect for Windows SDK 1.5 的改进及新特性

http://www.cnblogs.com/yangecnu/archive/2012/05/22/New-features-in-Kinect-for-Windows-SDK1_5.html


昨天晚些时候,微软发布了Kinect for Windows SDK 1.5版本,新版本SDK对1.0版本的进行了较大的改动和更新。本文根据Microsoft Kinect for Windows SDK and Toolkit – v1.5 Release Notes 和Kinect for Windows: SDK and Runtime version 1.5 Released 这两篇文章,并结合自己的安装和体验整理而成。

 

1. SDK 1.5 的下载和安装

 

    新版本SDK和1.0版本的SDK完全兼容,如果您之前安装过1.0的,可以直接安装1.5的SDK,如果您之前的开发版本是Beta版的,则需要卸载之后再安装SDK 1.5版本。在Kinect for Windows SDK 1.0版本中,SDK和示例文件是打包一起安装的。而在SDK1.5中,为了可以分别升级,微软把这两者分开独立为Kinect for Windows SDK和Kinect for Windows Developer Toolkit这两部分,所以需要分别下载安装, Kinect for Windows SDK 1.5及开发工具包Kinect for Windows Developer Toolkit的下载地址为:http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx

安装过程很简单,需要注意的是:

  • 安装前,需要将Kinect从电脑的USB上拔下。
  • 安装前,需要关闭杀毒软件,如360,我之前没有关这个就产生了安装没有权限的错误。

对于安装还有其他问题,您可以参考我之前的一篇文章。

 

2. SDK 1.5增加的新功能

 

新版本SDK添加了很多新的功能,方便了开发者开发Kienct应用,这些新功能包括:

 

新增了Kinect Studio工具

    Kinect Studio能够帮助开发者记录和播放Kinect数据,这极大地缩短和简化了Kinect应用程序的开发周期。Kinect应用程序开发的调试是比较麻烦的,因为数据是实时读取的。现在开发者能够记录应用程序获取的Kinect数据,并能够重复播放这些数据,来进行应用程序的测试和改进。

    下图中,左上角是Kinect Studio的主界面,使用Kinect Studio时必须附加一个正在运行或者调试的Kinect应用程序,左下角是我运行示例中的面部识别程序。附加好之后,右边有三幅图,就可以显示当前应用程序接收到的Kinect数据了,右边中间那幅图是彩色影像数据,右上角那幅图是深度影像值数据,右下图是Kinect的视场角。在Kinect Studio主界面中,可以对彩色影像数据或者深度影像数据进行录制和回放。

 

Kinect for Windows SDK 1.5 的改进及新特性_第1张图片

 

 Human Interface Guidelines

    SDK1.5 Developer ToolKit中增加了近70多页的 Human Interface Guidelines(HIG,人机交互界面设计指南),能够帮助开发者为Kinect应用程序的人机交互界面设计提供一些指导。

 

Kinect for Windows SDK 1.5 的改进及新特性_第2张图片

Kinect for Windows SDK 1.5 的改进及新特性_第3张图片

 

面部识别SDK(face traking SDK)

    面部识别SDK提供了实时的3D网格化的面部特征-能够追踪带眉毛的位置,嘴的形状等。在之前的SDK中要较好的实现面部识别必须借助第三方类库如Emgu等,这在SDK入门开发进阶中有所介绍。 在本人机器上实验感觉到SDK 1.5中面部识别很流畅,在SDK 1.0中使用Emgu实现面部识别 比较卡,而且没有提供诸如网格等这么多的细节信息。

 

Kinect for Windows SDK 1.5 的改进及新特性_第4张图片

 

    从上图可以看出,在嘴,鼻子和眼睛部分网格很密集,应该是可以判断嘴的大概形状以及眼睛的位置。在Developer Toolkit中,可以看出面部SDK 1.5添加的一些功能是封装在一些dll中的,面部识别SDK封装在Microsoft.Kinect.Toolkit.FaceTracking.dll中。

 

Kinect for Windows SDK 1.5 的改进及新特性_第5张图片

 

更多的示例代码及对之前代码的改进

    有很多新的例子加入到示例代码库中来,有些例子是对1.0版本的代码进行了改进。这些例子提供了C#,C++和Visual Basic三种版本。

 

Kinect for Windows SDK 1.5 的改进及新特性_第6张图片

 

图中实例图片右上角标有new的表示SDK 1.5中新增加的示例,Update表示对SDK 1.0中的示例进行了改写。

 

SDK文档的改进

    SDK文档中增加了1.5版本中新的函数功能及特性,同时整合到了MSDN中并实时更新。

 

3. SDK 1.5骨骼追踪功能的改进

 

新增了坐姿骨骼追踪(Seated Skeletal Tracking)

    坐姿模式追踪头部/肩膀/手臂10个关节点的骨骼信息,忽略腿部和髋关节信息。坐姿模式并不限定只有在坐立姿势下才能使用。在用户站立的时候,也能追踪到头部/肩膀/手臂信息。这使得我们能够创建一些针对用户处于坐立姿势下的应用进行优化的场景,比如用户在办公司工作,或者和3D数据进行交互。或者是在一些站立姿势下,身体的下半部分可能超出了Kinect传感器的视野,例如在和室外的广告亭进行交互或者是手术室中医生浏览核磁共振图像这样的场景。

近景模式中支持骨骼追踪

    近景模式中支持骨骼追踪,包括默认的20点模式和10点坐姿模式。这使得开发者可以开发一些近距离进行骨骼追踪的项目,比如用户坐在坐姿前面,或者一些需要近距离进行显示交互的应用。

 

4. SDK 1.5性能和数据质量的改进

 

   SDK1.5对1.0中性能和数据质量进行了增强,提高了使用RGB彩色影像和将深度影像和彩色影像进行叠加显示的性能(这使得“绿屏抠像”技术很容易实现,在SDK 1.0下实现绿屏抠像技术在Kinect开发入门五 这篇文章中最后部分有所介绍)。SDK1.5 对性能和数据质量的相关改进如下:

  • 将深度影像数据帧中的点数据投影到彩色影像数据帧中对应点的位置,KinectSensor.MapDepthFrameToColorFrame,这一函数功能的性能显著提升,较之前版本提升了5倍。MapDepthFrameToColorFrame函数是将追踪到的关节点数据转换到用户界面上必须用到和频繁使用的函数。
  • 深度影像帧数据和彩色影像帧数据能够彼此之间保持同步。Kinect for Windows 运行时会持续监控深度和彩色影像帧数据,来纠正两者之间的偏差来使其保持同步。
  • RGB 图像质量在RGB 640x480 @30fps 和 YUV 640x480 @15fps video 这两种模式下有所提升,图像质量更加锐利,在高光和低光条件下图像质量精度提高。

    在之前的文章中实现的“绿屏抠像”中,为了将人物抠出来,必须查找景深数据中没有游戏者索引位的数据,并逐点调用MapDepthToColorImagePoint函数将这些数据点映射到彩色影像中,并需要手动进行景深数据和彩色影像数据的的同步。因为SDK 1.5对这两点进行了重要改进,所以和之前的相比运行非常流畅。下图是运行Kinect Developer ToolKit中GreenScreen-WPF示例的截图,笔记本运行起来很流畅。

 

Kinect for Windows SDK 1.5 的改进及新特性_第7张图片

 

5. SDK 1.5 对人物角色在运动场景下提供的新功能

 

   新的功能使得在开发基于Kienct的应用程序来控制3D角色时更加方便,如Kinect运动大会(Kinect Sports)游戏,新添加的功能有:

  • Kinect for Windows 运行时在追踪到的骨骼信息中增加了了关节点朝向(Joint Orientation)信息。
  • 关节点朝向信息以两种形式提供:基于某一个在骨骼追踪关节点中定义的骨骼关系的层级旋转方式( A Hierarchical Rotation based on a bone relationship defined on the Skeletal Tracking joint structure),以及基于Kinect摄像头坐标系统中的绝对偏转角度信息( Absolute Orientation in Kinect camera coordinates)。

Kinect for Windows SDK 1.5 的改进及新特性_第8张图片

 

6. 增加了4种语音识别支持的语言

 

    语音识别支持种类增加了四种语言,他们是法语,西班牙语,意大利语和日语。另外还提供了新的语言包以支持不同区域语言的识别,他们是 English/Great Britain, English/Ireland, English/Australia, English/New Zealand, English/Canada, French/France, French/Canada, Italian/Italy, Japanese/Japan, Spanish/Spain, and Spanish/Mexico.

    可惜的是,仍不支持汉语的识别。

 

7. 结语

 

    本文简要介绍了Kinect for Windows SDK 1.5版本的新功能及特性,这些新功能和特性使得我们开发出更好的Kienct应用程序变得更加容易。希望以上文章对您了解新版本的SDK有所帮助!


你可能感兴趣的:(windows,Microsoft,语言,interface,程序开发,structure)