Kinect开发之概述

    如今Kinect的应用越来越多了。好多以前不易解决的问题,随着Kinect的出现,许多新的算法被提出来解决之。最近我打算使用Kinect作一些算法上的验证,开始学习下Kinect的知识。在阅读了一些关于Kinect的材料后,将其总结在博客中,以供后来人参考。

1. Kinect简介

    Kinect是什么?Kinect是由微软开发,应用于Xbox 360和Xbox One主机的周边设备。它让玩家不需要手持或踩踏控制器,而是使用语音指令或手势来操作Xbox 360和Xbox One的系统界面。它也能捕捉玩家全身上下的动作,用身体来进行游戏,带给玩家“免控制器的游戏与娱乐体验”(FromWikiPedia)。

    Kinect怎么用?Kinect本身是随Xbox发售的,随着Kinect的广泛应用,也被应用于PC端。在PC端使用的时候,需要安装微软的官方SDK或者第三方开发的SDK(早期使用的较多)。从开发者角度来看,基于Kinect的系统架构如下:

Kinect开发之概述_第1张图片

Fig 1. Kinect应用接口

其实Kinect的应用分为硬件和软件两部分:Sensor和SDK。下面从两个方面介绍下Kinect的硬件和软件。

2. 硬件Sensor

    对于软件开发者来说,硬件的工作原理并不重要,只需要知道Sensor的输出(接口)就好了。但是这里我们还是简单介绍下Kinect Sensor的基本原理。从2010年微软开始出售Kinect以来,Kinect的sensor已经有了两代产品。第一代Sensor是以色列PrimeSense开发的,微软称为v1 Sensor,应用在XBox 360上(kinect for windows中的Sensor是在此基础上的小改进,以应用windows平台);第二代是微软撇开PrimeSense自己开发的,深度摄像头实现原理完全不同,称为v2 Sensor,应用在XBox One上。

Kinect开发之概述_第2张图片 Kinect开发之概述_第3张图片

                                                                   Fig.2   左 v1 sensor,右 v2 sensor

    v1 Sensor采用PrimeSense公司的距离图像传感器技术,该技术用红外激光向对象物照射特殊光学图案,然后根据投影在对象物上图案的失真情况等计算对象物的三维构造和距离。而v2 Sensor采用的是“TOF(Time-Of-Flight)方式”,该方式是向对象物照射光,根据反射光的到达时间来计测距离,是距离图像传感器常用的一种方式。除此之外,v2 Sensor还配备了1080p的RGB摄像头。

3. 软件SDK

    这部分是开发者着重需要了解的。在Kinect刚发布的时候,微软并未想到Kinect会掀起如此之大的风暴。因此,并未提供windows平台的API和SDK,只能在Xbox上使用Kinect。于是,一些大牛便开发了第三方的Kinect SDK。后来,微软在2011年发布了Kinect for windows beta版本,才有了官方的SDK。下面是SDK的框架:

Kinect开发之概述_第4张图片

Fig. 3 SDK结构

SDK的一些介绍可以在MSDN中查考,其官方网址戳这里。



你可能感兴趣的:(Windows学习,C++学习)