微软体感游戏外设Kinect拆解分析5 - 工作原理
0赞
发表于 4/25/2011 2:39:44 PM
阅读(8468)
在Kinect的论坛,Kinect : How You Become the Controller作者揭秘了这款体感系统背后的秘密以及它如何让开发者创造Kinect体验。(有谁看懂了举手!)
简单讲Kinect首先用数字方式学习我们生活的模拟世界,不再是用游戏手柄控制的简单前进后退跳跃,而是试图用接近人脑的方式来观察世界和游戏者的动作,它可以从学习过的TB级数据中猜测出游戏者所做动作的含义。
因此Kinect的控制核心不再是游戏手柄,而是图像传感器。核心思想是采用多点探测的方法来检测用户的每一个动作,然后对比系统内的人体模型来发出控制信号,系统会自动匹配不同人的人体骨骼模型,并将其关联到系统中,模型的关键点至少25个。据悉此系统以微软收购的3DV照相识别技术为基础,以下是专利图:

Kinect图像处理系统原理

Kinect骨架追踪处理流程的核心是一个CMOS红外传感器,这个传感器无论周围环境的光照条件如何,都可以让Kinect感知世界。该传感器通过黑白光谱的方式来感知环境:纯黑代表无穷远,纯白代表无穷近。黑白间的灰色地带对应物体到传感器的物理距离。它收集视野范围内的每一点,并形成一幅代表周围环境的景深图像。传感器以每秒30帧的速度生成景深图像流,实时3D地再现周围环境。
Kinect需要做的下一件事是寻找图像中较可能是人体的移动物体,就像人眼下意识地聚焦在移动物体上那样。接下来,Kinect会对景深图像进行像素级评估,来辨别人体的不同部位。同时,这一过程必须以优化的预处理来缩短响应时间。
Kinect采用分割策略来将人体从背景环境中区分出来,即从噪音中提取出有用信号。Kinect可以主动追踪最多两个玩家的全身骨架,或者被动追踪最多四名玩家的形体和位置。在这一阶段,我们为每个被追踪的玩家在景深图像中创建了所谓的分割遮罩,这是一种将背景物体(比如椅子和宠物等)剔除后的景深图像。在后面的处理流程中仅仅传送分割遮罩的部分,以减轻体感计算量。
Kinect图像传感处理器PS1080系统

Kinect设计采用的是以色列PrimeSensor公司的端到端解决方案,能让计算机像人类一样感知三维世界并将其转换成同步影像。该解决方案包括一个用于观察场景(用户及其周围环境)的传感器组件,以及一个用于理解环境中用户互动的感知组件——就像人类的大脑。
PrimeSensor Reference Design 是解决方案中的传感器组件。
PrimeSense 深度影像获取技术的基础是 Light Coding。Light Coding 利用近红外光对场景进行编码。IR Light Coding 对于人类肉眼是不可见的。然后该解决方案利用现成的标准 CMOS 影像传感器从场景中读取经过编码的光线。PrimeSense 的 SoC 芯片与 CMOS 影像传感器相连,并执行复杂的并行运算逻辑,对收到的光线编码进行解码,生成场景的深度影像。这套解决方案不受环境光的影响。
PrimeSensor技术简介
PrimeSensor 的核心是 PrimeSense 的 PS1080 SoC(系统级芯片)。PS1080 对红外光源进行控制,以便通过红外光编码影像放映场景。红外放映器的光源符合 IEC 60825-1 标准中的一级安全要求。一个标准 CMOS 影像传感器负责接收放出的红外光,并将红外光编码影像传给 PS1080。PS1080 负责处理红外影像,然后逐帧生成准确的场景深度影像。

PrimeSensor 含有两项选配的传感器输入功能:色彩(RGB)影像和音频(PrimeSensor 有两个麦克风和一个接口,可连接四个外部数码音频源)。
为了生成更准确的传感器信息,PrimeSensor 会执行注册过程。 经过注册,影像的像素将相互对应,即:色彩影像中的每个像素分别对应深度影像中的一个像素。
所有传感器信息(深度影像、色彩影像和音频)通过一个 USB 2.0 接口传送给主机,且时序一丝不差。
