Kinect是什么

Kinect是什么?所谓Kinect就是微软在2010年6月14日对XBOX360体感周边外设正式发布的名字。Kinect为开发代号。伴随Kinect名称的正式发布,Kinect还推出了多款配套游戏,包括Lucasarts出品的《星球大战》、MTV推出的跳舞游戏、宠物游戏、运动游戏《Kinect Sports》、冒险游戏《Kinect Adventure》、赛车游戏《Joyride》等。

Kinect技术介绍

首先,Kinect这个名字是微软的一项技术代号,在E3上正式宣布。Kinect是一个拉丁名称,事实上是巴西东北部的一个城市,在拉丁语中意味“初生”(To be born)。

Kinect技术是微软公司基于高端研究得出来的一个产品。根据《大众科学》的说法,微软在依靠人工智能解决复杂问题的过程中,产生了一个副产品,这就是Kinect的来历。

说到Kinect的工作原理,摄像头起到了很大的作用,它负责捕捉人肢体的动作,然后微软的工程师就可以设计程序教它如何去识别、记忆、分析处理这些动作。因此从技术上来说,Kinect比Wii的体感高级很多。 Kinect不只是一个摄像头。虽然它一秒可以捕捉30次,但是这只是整个系统的一部分。除此之外,还有一个传感器负责探测力度和深度、四个麦克风负责采集声音。

Kinect也不只是一个控制器。虽然微软公司的宣传标语说:“你的身体就是控制器”。但是Kinect要比那复杂,他会将你所处的房间形成一个3D影像,然后分析你身体的运动,因此整个系统是着眼于你所处的全部游戏环境,并形成一个综合的控制系统。

Kinect更不是一台新的XBOX360。微软表示XBOX360的周期应该在10年左右。而Kinect就是延长XBOX360生命周期的重要手段。也就是说,不管你手中的XBOX360是什么时候买的,是哪个版本,Kinect都可以与之兼容。

Kinect工作原理

Kinect中有一个功能强大的感觉阵列,对于新手来说,它拥有一个数字视频摄像头。能从事捕捉图片到识别颜色等多项工作。而Kinect中的麦克风则可以在短时间内采集多次声音数据,以便把玩家和同处在一间房间中的其它人分开。

当然这些智能离不开软件的支持,而这方面是微软的强项。特制的软件已经把Kinect训练得能成功识别人的脸部细节变化。而在识别人体动作的时候,精度可以达到4厘米。

09年微软收购了以色列公司3DV,让人们以为Kinect的技术是源自3DV的ToF(time of flight)摄像头。3DV的感光芯片由于要测量光飞行时间,所以需要做到飞秒级的快门。据说他们在芯片中用到砷化镓,使其时钟频率提高到上百G。但这样做会使其成本升高,很难想象微软能把这样的技术做进游戏机这样的消费电子品里面。2010年1月,微软的开发人员明确表示:Kinect并不是基于ToF的原理。2010年4月,另一家以色列公司(以色列人还真厉害)PrimeSense才确认为微软提供了其三维测量技术,并应用于Project Kinect。

在PrimeSense公司的主页上提到其使用的是一种光编码(light coding)技术。不同于传统的ToF或者结构光测量技术,light coding使用的是连续的照明(而非脉冲),也不需要特制的感光芯片,而只需要普通的CMOS感光芯片,这让方案的成本大大降低。

Light coding,顾名思义就是用光源照明给需要测量的空间编上码,说到底还是结构光技术。但与传统的结构光方法不同的是,他的光源打出去的并不是一副周期性变化的二维的图像编码,而是一个具有三维纵深的“体编码”。这种光源叫做激光散斑(laser speckle),是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。

这些散斑具有高度的随机性,而且会随着距离的不同变换图案。也就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了。当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源的标定。在PrimeSense的专利上,标定的方法是这样的:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。假设Kinect规定的用户活动空间是距离电视机1米到4米的范围,每隔10cm取一个参考平面,那么标定下来我们就已经保存了30幅散斑图像。需要进行测量的时候,拍摄一副待测场景的散斑图像,将这幅图像和我们保存下来的30幅参考图像依次做互相关运算,这样我们会得到30幅相关度图像,而空间中有物体存在的位置,在相关度图像上就会显示出峰值。把这些峰值一层层叠在一起,再经过一些插值,就会得到整个场景的三维形状了。

Kinect开发API

Kinect 体感游戏在Xbox 360 上获得很好的评价,但是对于 Windows 平台上的开发却一直只能使用非官方的解决方案,例如 NKinect 配合CL NUI SDK ;但是微软终于在 2011 年 6 月推出了 Kinect for Windows SDK Beta,特别是可以使用 C# 与.NET Framework 4.0 来进行开发,这对 .NET 开发人员来说无疑是 2011 年最好的消息了。

微软研究院科学家Anoop Gupta表示:“Kinect for Windows SDK为程序开发人员开启了无限宽广的世界,让他们可以轻松在Windows上发挥Kinect的技术潜力。我们迫不及待想看到开发人员在我们的协助下创造出何种更自然、更直觉的计算机操作体验。”

微软亚洲研究院院长洪小文博士介绍说:“Kinect for Windows SDK包含众多来自微软研究院的创新技术,任何有志于藉助Kinect技术对自然用户接口进行创作性探索的人,都能够享受到它所带来的无限可能。Kinect for Windows SDK还拓展了丰富的可能性,可应用于解决如医疗与教育等领域的社会问题。”   Kinect for Windows SDK主要是针对Windows7设计,内含驱动程序、丰富的原始感测数据流程式开发接口(RawSensorStreamsAPI)、自然用户接口、安装文件以及参考数据。Kinect for Windows SDK可让使用C++、C#或VisualBasic语言搭配MicrosoftVisualStudio2010工具的程序设计师轻易开发使用。   Kinect for Windows SDK的主要特色包括:

– 原始感测数据流:开发人员能够直接取得距离传感器、彩色摄影机以及四单元麦克风数组的原始数据流。这些数据让开发人员可以利用Kinect传感器的低阶数据流为基础进行应用程序开发。

– 骨架追踪:此套SDK能够追踪Kinect视野内一位或二位用户的骨架影像,便于建立以体感操作的应用程序。

– 先进的音效功能:包括抑制噪音与回音消除功能、可透过音波形式辨识声音来源,并且能与Windows语音识别API整合。

– 简易的安装:这套SDK提供了在Windows7上的标准化安装方式,无需复杂的组态设定,安装档案大小也不到100MB。开发人员只要购买标准的Kinect传感器,就能在几分钟内立即开发。

– 完整的说明文件:SDK也随附详细的高质量技术文件。除了内建的说明档案之外,还包括了多个范例详细的逐步分解说明。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据