《kinect应用开发实践》是基于微软的kinect v1和sdk1.5来进行开发的,当前kinect v1和v2都已停产,书有点过时,但没办法,没有找到v2的书,先用这个来了解一下基本的开发流程。
kinect结构和原理
kinect结构
kinect主要由一个Rgb摄像头,一个红外发射器、一个红外接收器、4个麦克风、一个电机组成。
各传感器规格如下 :
kinect与底座之间是用电机来连接,因此kinect可以通过抬头和低头来追踪目标,追踪范围是正负28度。
Rgb摄像头提供vga图片,大小640*480
红外接收器提供qvga图片,大小320*240 (与红外发射器配合)
Rgb摄像头和红外接收器提供图片的速度是每秒30张
kinect for windows有效追踪范围
kinect工作原理
数学坐标系中xyz三点可以确定3d空间中一个点。当我们用一个摄像头拍一张人像照片,获取只是一张平面照片,即坐标中的xy,如果我们想要人像与背景及其它物品的完美分开是,人像与背景及其它物品之间的距离信息就非常重要了,所以必须要获取坐标系中的z,即深度。
1、kinect有一个rgb摄像头,可以获取彩色图像,因此我们有了一张平面图像。
2、那么如何获取深度图像呢. kinect使用的是结构光。
kinect使用的是光斑,不是上图中的条纹,但原理是一样的,kinect用红外发射器发射一张光斑图,红外接收器就接收反射回来的光斑图,然后对比计算两图的不同,就可以得到一张深度图。
3、有了平面图和深度图,kinect还会把两张图的点一一对应,然后根据人的肤色与其他物品及背景的位置,还有与已有的人形数据库对比等等,分离出人的轮廓。
4、根据人的轮廓推测出人的各个部位。
5、根据人的部位,确定人的关节点。
6、有了人的关节点,计算人的动作就方便多了,而且,就算是人的动作被物体挡住,也可以推测出来。
kinect的结构和原理是很好理解的,没什么可说的。