首页 > 代码库 > Kinect 开发 —— 硬件设备解剖
Kinect 开发 —— 硬件设备解剖
Kinect for Xbox: 360 不支持“近景模式”
三只眼睛 —— 红外投影机,RGB摄像头,红外深度投影头 —— 色彩影像中的每个像素分别与深度影像中的一个像素对应
四只耳朵 —— L形布局的麦克风阵列 —— 过滤背景噪声,定位声源 —— 根据麦克风阵列接听声音的时间差来判断声源方向
Moving Touch 传动马达电动机 —— 用于仰角控制
PS 1080 Soc 芯片 —— 深度图像获取能力
Xbox 360 (有效视距 1.2 ~~ 3.5) 最近距离 —— 2.26米
for Windows (默认模式 (0.8-4.0),近景模式 (0.4-3.5))
近景模式将仅支持 Center Hip Joint 部位的骨骼跟踪,不是完整的 20 关节骨骼跟踪
Kinect 工作原理
三大类原始数据信息 : 深度数据流 ,彩色视频流,原始音频数据
同时对应骨骼跟踪 (Skeletal Tracking),身份识别(Identify),语音识别(Speech Pipeline)三个处理过程
骨骼跟踪 : 将深度数据中出现的玩家与背景图像分割,发现玩家;通过机器学习的结果,快速对人体部位进行分类,识别关节点,建模
身份识别 (动作识别和人脸识别):将面部器官分解为几个关键性的面部标志,通过彩色视频信息的特征进行人脸匹配
语音识别 : 波束形成机制 —— 声源定位,噪声抑制机制 —— 自动过滤环境噪声 ,语音命令识别
骨骼跟踪
压缩感知 骨骼关节 (Kinect 深度图像采样频率并不是产生延迟进而使空间精度下降的主因 —— 而是芯片处理速度和软件是被处理速度不够)
动作识别
动作可抽象为骨骼关节点的状态或动作序列
静止的姿态
运动的动作 —— 命令词识别,自然语义理
人脸识别
RGB 摄像头 —— 640*480分辨率有限 ,采用了抽取人脸中层结构特征的折中方式
可以访问 face.com 提供开发的API接口
语音识别
语音命令,声音特征识别,语种识别,分词,语气语调情感探测
Xbox , Let’s play Xbox 就相当于命令提示符
Kinect 探测与温度无关!
基本上呈“大”字形的物体,且接近人体的比例大小,kinect 都会识别成人体
Kinect 与开不开灯无关
不透明的物体Kinect都可以看清其“深度”。但,本身发光的物体会对探测带来影响
Kinect 深度图像绘制原理 —— 彩色等高线原理,距离由远而近的渐变效果使图像更有层次感
深度图像成像原理
红外摄像头分类 (基于飞行时间 ToF ,结构光测量基于光编码)
结构光扫描法的原理 —— 首先将结构光投射至物体表面,再使用摄像机接受该物体表面反射的结构光图案,由于接受图案必会因物体的立体形状而发生变形,故可以试图童工该图案在摄像机上的位置和形变程度来计算物体表面的空间信息
Light Coding 技术 —— 激光散斑,激光照射到粗糙物体或穿透毛玻璃后随机形成的衍射斑点。这些散斑具有高度的随机性,而且会随着距离的不同而变换图案 —— 空间中任意两处的散斑图案都不是相同的。这样整个空间都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置上。 —— 不是通过空间几何关系求解,测量精度只和标定时取的参考面的密度有关
光源标定 —— 每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来 —— 用于物体的三维重建(还要进行插值计算)
从深度图像到骨骼图
你身后的沙发等物体都会都提取骨架产生干扰 —— 一个从噪声中提炼有用信息的过程
“大”字形的物体 —— 判断属于人体的哪些部位 (计算机视觉的一系列操作)—— 目标特征点的提取 —— 将玩家从背景图像中剥离出来
人体部位分类 —— 机器学习 (32个不同部位)
Kinect 是先识别人体部位进而在推断出关节点 ,这是一个近似概率匹配,评估的过程 —— 逐个像素扫描,先局部在总体
传长期的骨骼推测 —— 通过相邻的关节点以及机器学习的结果
Kinect 大脑 —— 机器学习出的巨大的树状结构 —— 决策树
Kinect 硬件采集,芯片处理不是延迟的主因,软件处理是主要考验的环节