书籍简介:
Kinect是微软公司推出的最新的基于体感交互的人机交互设备。《KINECT人机交互开发实践》(作者吴国斌、李斌、阎骥洲)分为3个部分,首先介绍了Kinect的结构和功能以及如何配置相关的开发环境,接着结合实例介绍如何使用Kinect for Windows SDK提供的API,最后通过4 个实例详细讲述了使用Kinect for Windows SDK开发项目的实现过程。
《KINECT人机交互开发实践》旨在为Kinect for Windows 开发人员提供快速入门的知识,但是要求读者有一定的编程基础。由于本书的实例代码全部由C#编写,读者最好对C#有一定的了解。
作者简介:
吴国斌
博士,PMP,微软亚洲研究院学术合作经理,负责中国高校及科研机构Kinect for Windows学术合作计划及微软精英大挑战Kinect主题项目,曾担任微软TechEd 2011 Kinect论坛讲师、微软亚洲教育高峰会Kinect分论坛主席、中国计算机学会学科前沿讲习班Kinect主题学术主任。
李斌
来自西安电子科技大学,国内首批Kinect开发者,策划执行微软Kinect for Windows Pioneer计划,开发Kinect风筝项目,曾担任微软TechEd 2011 Kinect论坛讲师、人大附中Kinect选修课讲师。
阎骥洲
来自北京航空航天大学,国内首批Kinect开发者,曾在微软Kinect for Windows Pioneer计划中凭借“虚拟演示系统”获得第一名的成绩,之后参与并指导了多个Kinect应用开发项目,有着丰富的Kinect使用及开发经验。
出版时间:
2013-1
章节目录:
第一部分 Kinect基础篇
第1章 Kinect简介 2
1.1 什么是Kinect 2
1.2 Kinect的前世今生 3
1.3 Kinect体感交互技术原理 4
1.3.1 Kinect的结构组成 4
1.3.2 Kinect for Windows SDK 简介及功能介绍 4
1.4 Kinect for Windows应用领域 5
1.5 小结 6
第2章 Kinect for Windows开发环境配置 7
2.1 开发环境需求 7
2.2 配置开发环境 8
2.3 Kinect for Windows SDK技术架构 9
2.4 小结 10
第二部分 Kinect开发篇
第3章 Kinect彩色和红外图像数据的处理 12
3.1 彩色图像的格式 12
3.2 红外数据流 13
3.3 实例1——调用API获取彩色图像数据和红外图像,并实现静态图像的抓取 13
3.4 小结 18
第4章 Kinect深度数据的处理 19
4.1 深度数据的结构 19
4.2 实例2——调用API获取深度数据,并对不同深度值着以不同颜色 19
4.3 小结 24
第5章 Kinect骨骼追踪数据的处理方法 25
5.1 骨骼追踪数据的结构 25
5.2 半身模式 26
5.3 骨骼追踪数据的获取方式 26
5.4 实例3——调用API获取骨骼数据并实时绘制 27
5.5 骨骼点旋转信息 32
5.5.1 骨骼点旋转信息存储方式 32
5.5.2 在骨骼数据回调函数中获取骨骼点旋转信息 34
5.5.3 综述 34
5.6 实例4——使用Kinect控制PPT播放 34
5.7 小结 38
第6章 音频API的使用 39
6.1 关于Kinect麦克风阵列 39
6.2 实例5——记录一段音频流,并监视音频源方向 40
6.3 实例6——调用语音API,实现语音识别小程序 43
6.4 小结 48
第7章 Kinect for Windows Developer Toolkit介绍 49
7.1 安装Kinect for Windows Developer Toolkit 49
7.2 Kinect Studio简介 51
7.2.1 打开Kinect Studio并链接应用 51
7.2.2 记录并回放Kinect数据流 52
7.2.3 保存和载入Kinect数据流 54
7.3 Face Tracking SDK简介 55
7.3.1 Face Tracking SDK主要功能 55
7.3.2 Face Tracking SDK使用方法 57
7.4 实例7——使用Face Tracking SDK识别人脸 57
7.4.1 新建项目并添加引用 57
7.4.2 初始化Kinect数据流 60
7.4.3 获取数据并传入Face Tracking 60
7.5 小结 64
第8章 Kinect常用类库介绍 65
8.1 Coding4Fun Kinect Toolkit介绍 65
8.1.1 基于图像数据的扩展方法 65
8.1.2 基于骨骼数据的扩展方法 67
8.2 Kinect Toolbox类库 67
8.2.1 Kinect Toolbox简介 67
8.2.2 人体姿态识别 68
8.2.3 手势识别 72
8.2.4 模板识别 74
8.2.5 语音识别 76
8.2.6 添加自定义姿态 76
8.3 小结 79
第三部分 Kinect实战篇
第9章 Kinect虚拟演示系统的实现 82
9.1 虚拟演示系统简介 82
9.2 技术实现概述 83
9.3 利用深度数据标签获取人物彩色图像 84
9.3.1 创建人物抠图类 84
9.3.2 利用深度数据获取人物彩色图像 84
9.3.3 修补、优化并完善抠图类 89
9.3.4 利用Kinect SDK抠图的优、缺点 91
9.4 利用骨骼数据识别人体姿态 91
9.4.1 利用Toolbox实现主体识别功能 91
9.4.2 自然交互方式设计 95
9.4.3 Kinect自然交互小结 97
9.5 演示系统简介 98
9.5.1 预备知识 98
9.5.2 Kinect状态类 99
9.5.3 Kinect轮询类 101
9.5.4 演示框架小结 104
9.6 小结 105
第10章 Kinect虚拟放风筝项目的实现 106
10.1 Kinect虚拟放风筝项目简介 106
10.2 技术实现概述 107
10.3 玩家姿势的设计和识别 107
10.3.1 玩家姿势的设计 107
10.3.2 玩家姿势识别的实现 110
10.4 自然交互按钮和光标的实现 112
10.4.1 自定义光标 113
10.4.2 自定义按钮 114
10.5 风筝动画的实现 117
10.6 项目操作流程 119
10.7 小结 123
第11章 Kinect全息显示 124
11.1 Kinect全息显示简介 124
11.2 技术实现概述 124
11.3 Kinect捕捉头部坐标 126
11.3.1 创建用于捕捉头部位置的Kinect组件类 126
11.3.2 Kinect初始化以及头部位置获取 127
11.3.3 根据Kinect和屏幕的位置关系转换坐标 129
11.4 三维图形引擎 131
11.4.1 创建可见模型绘制类 131
11.4.2 构建模型世界矩阵 131
11.4.3 绘制模型 133
11.5 根据头部位置更新绘制图像 134
11.5.1 修改视图矩阵 135
11.5.2 修改投影矩阵 136
11.6 小结 139
第12章 基于Kinect的自主移动机器人的设计与实现 140
12.1 KRobot项目简介 141
12.2 技术实现概述 141
12.3 利用深度数据进行摄像机标定 142
12.4 利用深度数据实现障碍规避 143
12.4.1 获取彩色图和深度图数据 144
12.4.2 处理深度图和深度数据 146
12.4.3 制定障碍物判定规则 148
12.4.4 制定机器人避障规则 151
12.5 利用骨架数据实现人体跟踪 152
12.6 利用麦克风进行声音定位 154
12.7 完善人机交互演示系统 156
12.8 小结 158
附录A Kinect for Windows SDK类、结构类型和枚举类型 159
封面图: