“你就是控制器。”(You are the controller.)如果你有在关注Kinect,相信已经听过这句给力的广告词了。从《Kinect Adventures!》中手脚并用堵漏水窟窿,到Zune播放界面中挥手换歌,Kinect开创了一种更加自然的娱乐交互方式。在这篇博客文章中,我将揭秘这款体感系统背后的秘密以及它如何让开发者创造Kinect体验。而Kinect团队的项目经理Arjun Dayal则将展示如何实现通过基于手势的方式来控制Xbox Dashboard和Kinect Hub。首先,让我们从指导Kinect研发的概念原理开始。

我们生活在一个模拟的世界

传统编程基于一系列的规则:原因和结果,非黑即白,非真即假。在为输入输出数目有限的简单系统建模时,这种方式工作得挺好。拿游戏《Halo》来说吧:按A键是让士官长跳,前拨左摇杆让他向前走,前拨右摇杆让他向上看。不是A,就是B。可惜的是,我们生活的真实世界并不是如此数字化,而是模拟的。

在模拟世界中,并不是只有简单的“是”和“否”,还有“也许是/否”;不仅有“对”和“错”,还有“对/错的可能性”。让我们想象一下挥手这一简单动作的所有可能性:身体运动的幅度,环境差异,衣服质地的不同,文化差异造成的动作差异等等。你可能需要研究10的23次方这么多的可能性,显然用传统编程方式来解决这类问题是不现实的。

我们从一开始就知道必须采用一种全新的,接近于人脑工作的方式来解决这一问题。当你遇到一个人的时候,你的大脑立即将注意力集中在他身上,并根据经验辨识出他的身份。这一过程并不是通过数百层的决策树来实现,人脑就是知道。婴儿很难区分出两个人的不同,但我们通过多年的学习和训练可以在几分之一秒内做到。事实上,你也许还能蛮准确地估摸出他们的年龄、性别、心情甚至个性。这也是让我们成就为人类的原因之一。

Kinect以类似的方法被创造出来。它观察身边的世界,它注意观察你的动作。即使Kinect从来没见过你挥过手,也能很快地从它学习过的TB级数据中猜测出你所做动作的含义。

Kinect传感器

Kinect骨架追踪处理流程的核心是一个无论周围环境的光照条件如何,都可以让Kinect感知世界的CMOS红外传感器。该传感器通过黑白光谱的方式来感知环境:纯黑代表无穷远,纯白代表无穷近。黑白间的灰色地带对应物体到传感器的物理距离。它收集视野范围内的每一点,并形成一幅代表周围环境的景深图像。传感器以每秒30帧的速度生成景深图像流,实时3D地再现周围环境。如果你玩过pin point impression 3D针模玩具可能更容易理解这一技术——将你的手(或者脸,如果你愿意的话)按压在这种玩具上,就可以产生你身体某一部位的简单3D模型。

寻找移动部位

Kinect需要做的下一件事是寻找图像中较可能是人体的移动物体,就像人眼下意识地聚焦在移动物体上那样。接下来,Kinect会对景深图像进行像素级评估,来辨别人体的不同部位。同时,这一过程必须以优化的预处理来缩短响应时间。

Kinect采用分割策略来将人体从背景环境中区分出来,即从噪音中提取出有用信号。Kinect可以主动追踪最多两个玩家的全身骨架,或者被动追踪最多四名玩家的形体和位置。在这一阶段,我们为每个被追踪的玩家在景深图像中创建了所谓的分割遮罩,这是一种将背景物体(比如椅子和宠物等)剔除后的景深图像。在后面的处理流程中仅仅传送分割遮罩的部分,以减轻体感计算量。

Kinect的大脑

真正的魔术在这里发生。分割化玩家图像的每一个像素都被传送进一个辨别人体部位的机器学习系统中。随后该系统将给出了某个特定像素属于哪个身体部位的可能性。比如,一个像素有80%的几率属于脚,60%的几率属于腿,40%的几率属于胸部。看起来这时候我们就可以把几率最大的可能性当作结果,但这么做未免太过武断了。我们的做法是将所有的这些可能性输入到接下来的处理流程中并且等到最后阶段再做判断。

看了上面的介绍,你也许要问我们如何教会Kinect辨识人体部位。开发这一人工智能(被称为Exemplar(模型)系统)可不是一件轻松的事情:数以TB计的数据被输入到集群系统中来教会Kinect以像素级技术来辨认手、脚以及它看到的其他身体部位。下图就是我们用来训练和测试Exemplar的数据之一。

模型匹配:生成骨架系统

处理流程的最后一步是使用之前阶段输出的结果,根据追踪到的20个关节点来生成一幅骨架系统。Kinect会评估Exemplar输出的每一个可能的像素来确定关节点。通过这种方式Kinect能够基于充分的信息最准确地评估人体实际所处位置。另外我们在模型匹配阶段还做了一些附加输出滤镜来平滑输出以及处理闭塞关节等特殊事件。

骨架追踪系统的目标之一是为处理流程的各种输出提供一种菜单式的选择界面。游戏开发者可以选择任意的系统部件组合来开发各种游戏体验。比如,你可以仅仅使用分隔映射来制造一些惊人的华丽效果(《Your Shape: Fitness Evolved》是一个好例子)。

讲到这里,我们已经描绘出一个可用于控制游戏或娱乐的完全实时的体感系统。接下来,Arjun将介绍改进的Xbox Dashboard和Kinect Hub。他将向你展示这两个用户界面如何利用景深图像流和20关节骨架系统来创造一种基于自然手势的,访问游戏、电影、音乐和其他娱乐活动的全新方式。

Kinect:技术如何最终理解你!

如今,技术在我们的日常生活中扮演着重要角色,但直到现在,技术产品在真正理解人类意图以及适应个体风格差异方面做得仍然不好。Kinect的问世让这一切有所改变。站在Kinect前,它就能知道你是谁。不仅如此,还能将你和你的爱人区别开来。当你移动时,传感器能在瞬间追踪到你。想要互动?用声音和肢体移动就可以播放电影、玩游戏、和朋友聊天等等。不需要学习任何新的控制方式,多么神奇!

前面Kinect团队项目经理Ron已经描述了Kinect传感器让Xbox实时追踪玩家动作背后的高深技术,但我们如何最佳地运用?我们的目标是让玩家尽可能自如地控制Xbox,同时让所有用户可以容易地学习并理解各种控制手势。接下来我们会更加深入地揭秘这一体感技术,并且谈谈在Kinect Hub和Dashboard中的Kinect体验。

手势:从何说起?

听到我们要设计一种手势来上下左右移动物体的时候,你也许会想:“没难度啊,把你的手移到物体上,选中然后向你想要的方向移动,搞定!”

等下,别那么自信。问问你的朋友他们是怎么想的,你可能会惊讶地发现他们的回答和你是如此的不同。是你的方式更好吗?不一定,只是对你来说更有逻辑性。人类的独特之处在于能通过多种方法来完成某一特定任务。让我们拿驾驶来做例子。如果你让100个人来模仿如何开车,你可能会得到许多答案。有些人会将两手分别握住面前的10点钟和2点钟位置,有些人可能会只用一手握住12点钟位置,有些人可能会背靠椅子坐着;同样地,模仿脚踩油门、刹车和离合器的方式也会五花八门。所有这些方式都能让我们驾驶,而技术的工作就是要能识别所有这些方式——让技术理解你!

那么,识别一个看似简单动作有多复杂呢,拿伸手做例子。当你想伸手去拿什么东西的时候,你会认为伸手的方向应该完全垂直于身体平面。但实际上由于肩膀和手臂关节的结合方式,你不可能以直线方式伸手。因此,每个人都会以略为不同的方式做出一个伸手动作,但每个人都觉得这是一个同样的伸手动作。成功的手势识别就是要理解人类动作的微妙之处,并且让技术了解这些不同。

研发Kinect这款革命性产品的过程中,我们既要战胜上述挑战还要让产品易于使用。我们所做的每个决定都是人机互动领域史无前例的,我们的工作有可能将重新定义互动娱乐技术的未来。

手势原型: 去粕取精

我们在为屏幕导航创造控制手势时,采用了很常见的方法:记录下了所有能想到的天马行空的点子,比如用脚来选择菜单神马的。当我们意识到这样的点子实在太多了的时候,我们知道需要一种更靠谱的选择方式。

我们收集并记录下所有创意,并且一一制作出原型以检验那一种更适合普通用户。和普通用户进行原型测试非常重要,我们因此学到了许多关于人体运动的信息,并用于重新调整每次新测试。人机互动的现有规则并不总是适用于在客厅进行的10英寸距离上的体感交互。通过测试我们更好地理解用户行为,比如长时间做手势时怎样才舒服,以及我们创造的控制手势集和人类自然手势是否冲突。

在测试过程中,我们的理念是“不断失败,去粕取精”,我们不断抛弃不合适的方案,保留有效方案。工程、用户研究和设计团队都充分参与到手势集的原型制作过程中,并和普通用户一起进行测试,根据所有获取到的数据来决定最佳手势。

在数月的测试、观察和研究后,我们得到了一种简单且容易理解的控制方式——悬停选择和翻页控制。悬停选择是一种容易学习、高度可靠并且可预测的机制,而翻页控制提供了一种更有触感的方式来控制屏幕内容。

让我们通过Xbox Dashboard和Kinect Hub的实现方式来更加深入地谈论这种控制模型的细节。

Kinect Hub: Kinect体验大本营!

Kinect Hub是Xbox Dashboard中的Kinect体验中心,在这里你可以用手势来访问Kinect内容。Hub的设计简单且容易理解,你可以注意到我们采用了巨大的颜色分明的项目方块,让用户轻松地找到并选择他们所想做的事。

kinect v1原理_微软官方博客揭秘Kinect工作原理相关推荐

  1. 微软官方博客揭秘Kinect工作原理

    How You Become the Controller 原文由Ron Forbes和Arjun Dayal于2010年12月29日发表于http://www.xbox.com/en-US/Live ...

  2. mybatis工作原理_万字好文!MyBatis 的工作原理,你了解过吗?

    回复 1024 有特别礼包 作者:江南入直 | 来源:cnblogs.com/scuury/p/10371246.html 上一篇:微信支付的架构到底有多牛? 近来想写一个mybatis的分页插件,但 ...

  3. chroma负载机恒压工作原理_一款恒压/恒流充电器工作原理分析

    该充电器工作原理介绍如下,电路见附图所示. 1 .主电路 采用220V电网直接供电,经 KZ1 - KZ4 全控桥式整流,再经极性切换开关输出接负载 ( 蓄电池 ) .当蓄电池在充电工作方式时,切换开 ...

  4. 数字调制系统工作原理_水暖BA系统组成及各部工作原理

    原标题:水暖BA系统组成及各部工作原理 来源:机电人脉 如有侵权,请联系删除 01 暖通空调系统 系统监控功能: 智能中的空调系统是指空调机组.新风机组,变风量机组,风机盘管等设备.其控制主要是指温. ...

  5. 红外测距模块工作原理_共享单车里的通讯模块,工作原理是啥呢?

    现在我们所看到了共享单车除了小黄车(OFO)没有配备GPS智能锁外,其他品牌的共享单车都有安装,那么这么高科技的东西具体是怎么工作的呢?下面由我给大家讲解下其中的奥秘. 其实这个东西也谈不上太多高科技 ...

  6. rl滤波器原理_入门篇,层层讲解滤波电路工作原理

    在整流电路输出的电压是单向脉动性电压,不能直接给电子电路使用.所以要对输出的电压进行滤波, 消除电压中的交流成分,成为直流电后给电子电路使用.在滤波电路中,主要使用对交流电有特殊阻抗特性的器件,如:电 ...

  7. bmp180气压传感器工作原理_【科普】40种传感器工作原理

    传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输.处理.存储.显示.记 ...

  8. 蔬菜大棚原理_温室大棚是什么以及温室大棚的工作原理

    原标题:温室大棚是什么以及温室大棚的工作原理 什么是智能温室大棚? 智能温室大棚是一种现代化集数据进行采集,再通过计算和设备可以自动控制为一体的现代化种植环境.基于农业物联网温室环境监控的高科技智能温 ...

  9. 燃气灶电气线路图及原理_家用燃气灶解析之 热电偶的工作原理

    在家用燃气灶的炉头上通常配有点火针和热电偶熄火保护针.热电偶是燃气灶中很重要的一个组成部分,热电偶的好坏关系到燃气灶的点火反应时间和点火成功率.热电偶实际上是一种感温元件,它直接测量温度,并把温度信号 ...

  10. 模板引擎工作原理_广州seo了解下搜索引擎的工作原理是什么

    一.搜索引擎工作的基本原理 搜索引擎是根据以下原则计算的:首先,我们知道在web浏览器.百度浏览器.google浏览器.360浏览器中都配置了不同的搜索引擎.它们都有一个共同点,一开始捕获一个模块,然 ...

最新文章

  1. 额外DC的安装、卸载方法以及注意事项。
  2. BZOJ.4552.[HEOI2016/TJOI2016]排序(线段树合并/二分 线段树)
  3. Educational Codeforces Round 9 A. Grandma Laura and Apples 水题
  4. python 判断列表为空_Python 判断列表为空
  5. ios 上传图片失败 小程序_微信小程序ios端 使用ajaxSubmit上传图片失败,android没问题...
  6. Python爬虫之puppeteer之遇到的bug及解决方法
  7. 【嵌入式Linux】嵌入式Linux应用开发基础知识之串口应用编程
  8. JZOJ 1035. 【SCOI2009】粉刷匠
  9. 第一百八十四节,jQuery-UI,验证注册表单
  10. ASP.NET Core 2.1 源码学习之 Options[2]:IOptions 【转】
  11. document.getElementsByName , document.getElementsByTagName ,document.createElement
  12. IDA for Linux/Mac/Windows
  13. 软件技术架构:通过限流与熔断,打造一个“靠谱”的系统
  14. 小班计算机游戏教案,小班游戏简单教案(通用11篇)
  15. C语言获取USB设备协议版本,用CBI协议的USB软驱读取绣花机花版文件
  16. Hadoop学习心得一
  17. 2021年“泰迪杯”数据分析技能B题-肥料登记数据分析赛题
  18. 遗传算法matlab_遗传算法简单介绍与MATLAB实现
  19. Android 查看是否支持指定解码器(H265)
  20. flutter ScrollController attached to multiple scroll views

热门文章

  1. 梦幻之旅:盘点一生必去的50…
  2. aws基础架构学习笔记
  3. 浏览器被hao360,hao123,2345,搜狗,www.xie116.xyz/ 劫持的方法
  4. MySQL查询point类型类型的坐标,返回经度纬度
  5. 级联样式单与CSS选择器
  6. oracle左连接查询去重,左连接去重(objec)
  7. Cox模型中的时间依存协变量和时间依存系数(R语言)第二部分
  8. ppt流程图箭头分叉_PPT实用模版大全(最全箭头、流程图).ppt
  9. websphere修改协议为TLS1.2
  10. cc2530dma控制器功能_dma控制器是什么_dma控制器工作方式