Kinect硬件设备上一共有3个摄像头,中间一个是RGB摄像头,用于获取彩色图像,分辨率为640*480,每秒最多30帧图像;两边是两个深度传感器,右边是红外线接收器,左边是红外线发射器,两者协同作用,完成对玩家相对位置的检测。Kinect的两侧有一组四元素麦克风阵列,用于声波定位和语音识别;摄像头下方有一个内置的带有电动马达的底座,可以在设备连接完好、程序开始运行并调用到Kinect设备的时候自动调整摄像头的俯仰角,使得摄像头可以保持一个水平的视角。
2。1。2 Kinect for windows应用领域
当前,国外的开发人员已经开发出了很多基于Kinect的精彩应用,例如,Kinect试衣镜、Air Presenter演讲软件、Kinect光剑、Kinect街头霸王等。在MSDN频道9的Coding4fun网络栏目中可以看到很多创意。在国内,自从Kinect for Windows SDK Bate的发布,微软就开启了关于Kinect的开发计划,微软的学生技术俱乐部,在全国范围内搜集同学们的新创意,并且向优秀的创意团队提供Kinect设备和技术支持。在计划启动之后,有很多优秀的创意团队提交了Kinect的创意项目,其中包括模拟变脸的手势变脸3D脸谱虚拟平台、Kinect的教学助手、基于Kinect的网上试衣间等。目前,Kinect在中国大学生中得到了很好的推广[4]。
2。1。3 Kinect SDK主要功能
Kinect for Windows SDK主要功能包括以下几个:
骨骼追踪:KinectV1。0可以对在其摄像头能够接收到的范围内,对一个或者最多两个用户,进行骨骼关键节点信息追踪,可以最多追踪到人体20个骨骼节点信息。也就是站在Kinect摄像头前的用户,最多可以被抓取到20个骨骼节点信息。此外,Kinect还可以支持精确的人脸识别,但需要额外的代码支持。
深度摄像头:通过深度数据挖掘,Kinect可以分析出像素信息的位置距离,这是因为Kinect使用了“光编码”技术。利用红外发射器发射出去的红外线,进行空间编码,因此测量的结果不会受到环境光线的影响,而且红外线为不可见光,不会对用户产生干扰。通过这样的深度数据挖掘,就实现了对摄像范围内环境信息的三维化、数字化。用户骨骼节点的三维信息就是这样被分析出来的。
2。1。4 Kinect的骨骼跟踪
骨骼跟踪,是Kinect体感操作的基础,也是体感应用的精髓所在。当用户面对着Kinect摄像头时,Kinect会为用户创建一个数字化的骨架(Avatar),如图2-1所示,为两名用户站在Kinect设备前,系统为其创建的数字骨架。
当Kinect配合Xbox使用的时候,用户站在Kinect摄像头前,系统会创建一个与用户肢体匹配的数字骨架,无论用户做出什么样的动作,数字骨架都会保持一致,就像照镜子一样。Kinect的骨骼追踪具有非常重大的意义,从使用者的角度来看,传统的游戏控制器都是预先设定好的,比如键盘、鼠标还有摇杆等。骨骼追踪的设计目标就是数字化一个,与玩家运动保持一致的虚拟化数字骨架,无论玩家做出什么样的动作,Kinect for Windows都可以进行识别。玩家使用肢体进行输入的方式可以将玩家带入全新的世界中,消除传统设备的输入方式对用户的限制,让用户有更加身临其境的感觉[5]。
骨骼跟踪要求程序系统在允许的范围内,快速构建玩家的躯干、肢体、头部。目前v1。0的Kinect设备有其自身限制,比如设备上摄像机的拍摄范围有限,无法识别手指。其中的识别算法涉及以下三大关键点:
压缩感知:在识别人体信息的时候,将采集到视频信息中的背景信息忽略,把人体的骨骼信息提取出来,这是一个关键的工作,如果不能将需要的信息进行筛选,就会给系统带来很大的运算压力。识别算法需要逐像素进行识别,系统会通过机器学习和模式识别来完成压缩感知。