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的系统架构如下:


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上。

 

                                                                   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的框架:


Fig. 3 SDK结构

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kinect开发流程分为以下几个步骤: 1. 准备工作:在开始Kinect开发之前,需要先准备好相应的硬件和软件。硬件方面,需要购买Kinect传感器,确保计算机有足够的USB端口供Kinect连接。软件方面,需要安装Kinect开发工具包(SDK)和相应的开发环境,如Visual Studio。 2. 创建项目:使用开发环境创建一个新的项目,选择合适的项目类型,如C#、C++等,以及项目的目标平台。 3. 连接Kinect:将Kinect传感器连接到计算机的USB端口,并确保传感器与计算机稳定连接。 4. 导入Kinect SDK:在项目中导入Kinect SDK,以便可以使用其中的函数和类来访问Kinect传感器的数据和功能。 5. 初始化Kinect:在代码中调用初始化函数,初始化Kinect传感器,并设置需要的功能和参数,如深度传感器、颜色摄像头、骨骼跟踪等。 6. 数据采集和处理:通过调用适当的函数和方法,获取从Kinect传感器中得到的数据,如深度图像、红外图像、彩色图像等。对这些数据进行处理、分析和加工,以满足具体的应用需求。 7. 交互设计和开发:根据应用需求,设计和开发合适的交互方式和界面,通过调用Kinect SDK中的手势识别、身体追踪等函数,实现与Kinect传感器的交互。 8. 测试和调试:编写测试代码,对开发的功能和应用进行测试和调试,修复可能存在的问题和错误。 9. 部署和发布:将开发完成的应用部署到目标平台上,确保在不同环境中的正常运行。如果需要,可以打包和发布应用程序,使其更易于安装和使用。 10. 更新和维护:根据用户反馈和需求,不断更新和改进应用,保持其在功能、性能和用户体验方面的优化。 通过以上步骤,可以完成对Kinect传感器的开发Kinect具有广泛的应用领域,如虚拟现实、游戏、医疗、教育等,开发人员可以根据自己的需求和兴趣,利用Kinect开发出各种创新的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值