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

 

    昨天晚些时候,微软发布了Kinect for Windows SDK 1.6版本,该版本距五月份发布的1.5版本已经有好几个月了。1.6版本对1.5版本进行了一些改进和更新。不过最值得一提的是,Kinect for Windows Sensor首次在中国发售,现在已经可以在京东上订购了,Kinect 逐渐成为微软硬件产品线中最重要的一员。

    下面来看看SDK 1.6的改进,翻译自发布说明,翻译的不好的话,您已可以直接到msdn上查看:

 

1. SDK 1.6 的改进

  • 支持Windows 8

           Kinect SDK1.6,可以开发Windows 8桌面应用程序

  • 支持Visual Studio 2012

           Kinect SDK1.6支持VS2012,包括最新的.NET Framework 4.5

  • 提供了加速计数据API(Accelerometer Data APIs)

           感应器的加速计数据现在可以通过API来访问,这使得我们可以探测到感应器的的方向。

  • 扩展了的深度数据

          CopyDepthImagePixelData()方法提供了4米之外的深度数据。需要注意的是数据的质量随着距离的增加而递减;除此之外,深度数据API得到了简化,使得不需要进行位运算即可获得。

  • 提供了对彩色摄像头设置的API

         彩色摄像头设置可以使得彩色影像传感器能够更好的适应使用环境,这些API可以使得我们能够微调白平衡,对比度,灰度,饱和度及其他的一些属性。在Developer Toolkit的Kinect Explorer例子中,可以来看看所有的队彩色摄像头的设置。

  • 对原始数据有更多的解码控制

         ColorImageFormat中提供了新的RawBayer分辨率,使得我们可以使用自己的拜耳(Bayer)算子在CPU或者GPU上进行RGB转换。

  • 提供了新的坐标空间转换API

          在1.6的SDK中,提供了几个新的API用来在彩色影像,深度数据,骨骼数据各个坐标空间中进行相互转化。这些API有两类:一类是单个点的转化,另一类是整个图像的转换。

  • 对德语的语音识别包

           新的SDK中增加了对麦克风阵列进行优化了的德语的语音识别包。

  • 新增红外发射控制API

          之前的API中,当Kinect处于活动状态时,红外传感器是一只处于发射状态的,这会使得当多个传感器同时探测同一场景时,(可能会由于不同的传感器的红外发射信号产生影响从而)使得深度影像数据质量下降。1.6版本的SDK中提供了新的API(KinectSensor.ForceInfraredEmitterOff) 能够手动关掉红外摄像头的探测。

  • 加入了新的示例

         Basic Interactions-WPF:展示了基本的手势识别,比如使用光标选中对象,以及一些交互体验上的一些好优化了的反馈机制。

         WPF D3D Interop: 展示了 DirectX 11 和 WPF之间的互操作,包括使用WPF和DirectX11产生的界面.

         Infrared Basics-WPF, Infrared Basics-D2D: 演示了如何使用红外数据流,以及如何将深度影像数据展现出来。

  • Kinect Studio 1.6.0

         对Kinect Studio 进行了更新以支持红外, RawBayer,扩展了的深度数据,以及传感器加速计等新的数据和特性。

  • 提供了访问红外数据流的API

        1.6版本的SDK中,红外数据流作为一种新的ColorImageFormat提供出来,使得我们可以在一些场景中使用该数据,比如:

    • 校准彩色影像和深度传感器
    • 在低光条件下捕捉灰度影像数据

         这两个例子已经添加到了tookit中,可以在KinectExplorer中查看。

          需要注意的是,传感器不能同步的步骤红外数据流和彩色数据流,但是可以同步滴获取红外和深度数据流。

  • 支持虚拟机

         Kinect可以运行在虚拟机上的Windows系统中,下面的虚拟环境已经测试可以正常工作:

    • Microsoft HyperV
    • VMWare
    • Parallels

       这大大扩展了KinectSDK的使用范围,比如可以运行在一些支持以上虚拟机的系统上,特别的,使得有些开发场景变为可能,比如在特定的自动化测试方法。在虚拟机上如何安装和配置Kinect在帮助文档中有说明。

      需要注意的是,在一个虚拟机上只能同时运行一个Kinect,并且在虚拟机上运行一些耗计算资源的计算时可能会比较慢。

 

2. 安装SDK1.6

    首先,您需要到http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx上下载最新的Kinect SDK和DevelopToolkit。然后就可以开始安装了。如果您之前安装过1或者1.5版本的SDK那么无需卸载,直接安装最新的1.6就可以了,如果您之前安装的是更早的beta版本,则需要卸载后再安装1.6版本。先安装Kinect SDK再安装DevelopToolkit,安装过程很简单,需要注意的是:

  • 安装前,需要将Kinect从电脑的USB上拔下。
  • 安装前,需要关闭杀毒软件,如360。

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

 

3. 结语

    Kinect SDK 1.6对1.5的更新主要体现在增加了更多的对原始数据访问的API,比如访问原始红外数据流的API,使得我们可以对该数据进行处理而不是直接使用之前版本的由红外数据产生的深度数据,其他第三方SDK,比如Primesense OpenNI也是提供了直接访问红外数据流的功能,所以1.6中添加的对Kinect Sensor产生的底层数据更多的访问控制,使得更好的挖掘Kinect的潜能提供了比较好的途径。

    另外,伴随Kinect SDK1.6的发布比较有意义的一点是Kinect for Windows Sensor在中国市场的开卖, Xbox都没有在中国发售啊,唯一有点遗憾的是语音识别没有提供对中文的支持,如果要在针对中国市场的话,希望这点能够改进。不过相信Kinect for Windows Sensor及其相关开发会有比较好的应用前景。

posted @ 2012-10-09 15:12 yangecnu 阅读(...) 评论(...) 编辑 收藏