Kinect应用开发实战:用最自然的方式与机器对话

《Kinect应用开发实战:用最自然的方式与机器对话》

基本信息

作者:余涛

出版社:机械工业出版社

ISBN:9787111400929

上架时间:2012-11-6

出版日期:2013年1月

开本:16开

页码:1

版次:1-1

所属分类:计算机>计算机控制与仿真>系统仿真/虚拟现实

计算机>人工智能>人机交互

Kinect应用开发实战:用最自然的方式与机器对话

更多关于 》》》《Kinect应用开发实战:用最自然的方式与机器对话

内容简介

书籍

计算机书籍

《kinect应用开发实战:用最自然的方式与机器对话》由微软资深企业架构师兼kinect应用开发专家亲自执笔,既系统全面地讲解了kinect技术的工作原理,又细致深入地讲解了kinect交互设计、程序开发和企业应用展望。全书不仅包含大量实践指导意义极强的实战案例,还包含大量建议和最佳实践,是学习kinectforwindows应用开发不可多得的参考书。

《kinect应用开发实战:用最自然的方式与机器对话》分为八大部分:准备篇(引言和第1章),从科幻电影的自然人机交互技术谈起,同时针对虚拟现实、增强现实、多点触摸、语音识别、眼球跟踪、人脸识别、体感操作、脑机界面等人机交互技术的最新发展动态,结合一些生动例子进行了说明;原理篇(第2~3章),深入剖析了kinect的硬件组成,从原理上分析了kinect的工作机制,并从计算机视觉技术角度重点分析了“体感操作”背后发生的一切;基础篇(第4~5章),对kinectforwindowssdk进行了框架性的导读,并对kinect自然人机交互的设计提出了有益的归纳和建议;开发篇(第6~9章),本篇从kinect的开发环境准备谈起,内容包括了视频数据、深度数据、骨骼跟踪等开发示例,其中还包含一个用kinect测量身高的有趣示例;实例篇(第10~16章),通过介绍一些生动有趣的应用示例(《超级马里奥兄弟》、《水果忍者》等)的开发,帮助读者快速开发入门;进阶篇(第17~19章),包括姿态识别和手势识别的算法实现,kinect技术结合3d技术的应用,同时结合kinect在手术室的原型应用这一综合示例,将交互设计、骨骼跟踪、手势识别、语音识别等关键点“串烧”起来;展望篇(第20~22章),汇集kinect应用的相关创意和奇思妙想,以及kinect在医疗、教育、动作捕捉、虚拟现实、增强现实、动漫设计乃至冰川研究等诸多领域的发展前景;附录a是关于kinectsdk命名空间microsoftkinect的详细介绍;附录b是关于自然人机交互技术、计算机视觉技术的相关开源社区动态的介绍。

目录

《kinect应用开发实战:用最自然的方式与机器对话》

推荐序一

推荐序二

前  言

第一部分 准备篇

引 言 从科幻电影谈起/2

第1章 自然人机交互技术漫谈/10

1.1 自然人机交互技术的发展/10

1.1.1 第六感设备:技术的组合创新/10

1.1.2 追影技术:摄像头也疯狂/12

1.1.3 虚拟现实:真实的体验场景/13

1.1.4 增强现实:真实与虚拟的叠加/14

1.1.5 多点触摸:信息就在指尖/15

1.1.6 语音识别:从viavoice到siri/16

1.1.7 眼球跟踪:从霍金的座椅谈起/17

1.1.8 人脸识别:photodna/19

1.1.9 体感操作:达芬奇手术机器人/20

1.1.10 脑机界面:霍金座椅的升级版/20

1.2 “你就是控制器”—kinect宣言/21

1.2.1 kinect销售记录及命名来历/21

1.2.2 未来照进现实/22

第二部分 原理篇

第2章 揭开kinect的神秘面纱—硬件设备解剖/26

2.1 两款kinect传感器对比/26

2.2 kinect传感器的硬件组成/28

2.2.1 kinect的“心脏”—ps1080soc/30

2.2.2 kinect的“三只眼”—投影机和两个摄像头/32

2.2.3 kinect的“四只耳朵”—麦克风阵列/34

2.2.4 会摇摆的“相控雷达”—传动马达/35

2.2.5 姿态控制—三轴加速度计/36

2.2.6 usb接口及电源/37

2.2.7 kinect风扇控制/38

2.3 kinect相关技术规格/38

2.3.1 kinect近景模式/39

2.3.2 kinect放大镜/40

2.4 本章小结/40

第3章 kinect工作原理大揭秘/41

3.1 kinectforxbox360的产品设计/42

3.2 基于“管道”的系统架构/43

3.2.1 骨骼跟踪/45

3.2.2 动作识别/46

3.2.3 人脸识别/48

3.2.4 语音识别/49

3.3 kinect眼里的三维世界/50

3.3.1 深度数据是kinect的精髓/51

3.3.2 2d视觉与3d视觉/55

3.4 深度图像成像原理/56

3.4.1 tof光学测距与结构光测量/56

3.4.2 lightcoding技术/57

3.4.3 激光散斑原理/58

3.4.4 光源标定/59

3.5 从深度图像到骨骼图/60

3.5.1 动静分离,识别人体/60

3.5.2 人体部位分类/62

3.5.3 从人体部位识别关节/63

3.5.4 会“机器学习”的“kinect大脑”/65

3.5.5 骨骼跟踪的精度和效率/68

3.6 创建你的avatar/70

3.6.1 “有骨有肉”/70

3.6.2 泊松方程噪声滤除/70

3.6.3 粗糙变平滑、缺陷自动补齐/71

3.7 本章小结/71

第三部分 基础篇

第4章 kinectforwindowssdk导读/74

4.1 什么是kinectsdk/74

4.1.1 kinectsdk的发展历程/74

4.1.2 sdkv1.5的新特性/75

4.1.3 sdkv1.5尚未提供的api/76

4.1.4 从底层进行封装/76

4.2 kinectforwindows体系架构/78

4.3 应用层api详解/80

4.3.1 kinect的核心nuiapi/80

4.3.2 kinectaudiodmo/82

4.3.3 windowsspeechsdk/83

4.4 数据流概述/84

4.4.1 彩色图像数据/84

4.4.2 用户分割数据/85

4.4.3 深度图像数据/86

4.4.4 如何获取数据流/87

4.5 骨骼跟踪/89

4.5.1 骨骼信息检索/90

4.5.2 主动跟踪和被动跟踪/90

4.5.3 骨骼跟踪对象选择/91

4.6 nui坐标转换/92

4.6.1 深度图像空间坐标/93

4.6.2 骨骼空间坐标/93

4.6.3 坐标变换/93

4.6.4 传感器阵列和倾斜补偿/95

4.6.5 地面测量/95

4.6.6 骨骼镜像/95

4.7 本章小结/96

第5章 kinect用户交互设计的若干思考/97

5.1 xbox360kinecthub界面和metro风格/97

5.1.1 什么是metro风格/97

5.1.2 kinecthub手势原型设计/98

5.1.3 “悬停选择”和“翻页控制”/99

5.2 体感游戏的优势及局限性/100

5.2.1 更多的自由度/101

5.2.2 关节点重叠的处理办法/102

5.2.3 情感因素和心理暗示/102

5.2.4 kinect体感操作的局限性及对策/103

5.3 用户交互的趋势和新特性/104

5.3.1 kinect使交互“柔软化”/105

5.3.2 用户交互设计也可能是一项专利/106

5.4 kinect“体感操作”交互设计的七条军规/106

5.4.1 控制手势集符合人类自然手势/107

5.4.2 让用户的肢体移动幅度尽可能小/107

5.4.3 操作界面的对象采用metro风格/109

5.4.4 “确认操作”保持简单、一致/109

5.4.5 手势操作尽可能在同一个平面内/110

5.4.6 从三维的视角去看交互设计/110

5.4.7 配有简单明了的手势说明/111

5.5 本章小结/112

第四部分 开发篇

第6章 开发前的准备工作/114

6.1 开发kinect应用所需的技能/114

6.2 系统要求/115

6.3 下载和安装kinectsdk/116

6.3.1 kinectforwindowssdkv1.5/118

6.3.2 developertoolkit/118

6.3.3 kinect快速开发工具箱/119

6.3.4 xna开发环境/119

6.4 加载驱动、检验及测试/120

6.5 配置开发环境/122

6.6 要点和故障排除/122

6.7 本章小结/123

第7章 hello,kinect!/124

7.1 一行代码的“hello,kinect!”/124

7.1.1 创建wpf工程/124

7.1.2 添加kinectdiagnosticviewer控件/126

7.1.3 编写一行代码/127

7.1.4 编译运行/127

7.2 控制台界面hellokinectmatrix/128

7.2.1 创建console工程/128

7.2.2 编写代码/129

7.2.3 运行效果/130

7.3 kinectcontrib快速工程模板/130

7.4 kinectwpfviewers工具控件/131

7.5 本章小结/132

第8章 kinect开发循序渐进/133

8.1 一个简单的编程模型/133

8.1.1 初始化、启用kinect设备/134

8.1.2 彩色图像流事件处理/136

8.1.3 深度数据捕获/138

8.1.4 骨骼跟踪/141

8.1.5 关闭kinect设备/145

8.1.6 kinect设备状态管理及异常处理/145

8.2 更专业的深度图/146

8.2.1 改进转换方法/146

8.2.2 事件处理/148

8.3 控制kinect仰角/148

8.3.1 “你的塑身”游戏/149

8.3.2 垂直调整kinect仰角/150

8.4 本章小结/151

第9章 kinect深度数据测量技术及应用/152

9.1 什么是kinect视角场/152

9.2 深度值与实际距离的对比/153

9.3 深度图像的直方图/155

9.3.1 直方图统计信息的价值/156

9.3.2 深度图像直方图的意义/158

9.4 kinect深度数据测量的应用/159

9.4.1 近景模式:自动锁屏工具/159

9.4.2 kinect视角场几何推导:测量人体身高/163

9.4.3 近距离探测:制作地形电子沙盘/169

9.5 本章小结/170

第五部分 实例篇

第10章 用kinect表演“变脸”/172

10.1 在人的面部变换脸谱/172

10.2 代码实现/173

10.2.1 wpf工程、控件及初始化/173

10.2.2 骨骼跟踪/176

10.2.3 变脸及坐标变换/178

10.3 合理暂停骨骼跟踪/181

10.4 道具平滑跟随/181

10.5 调整幕布大小/183

10.6 练习作业/184

第11章 用kinect唤起“红白机”的回忆/185

11.1 用身体控制马里奥/185

11.2 代码实现/185

11.2.1 wpf工程、控件及初始化/185

11.2.2 模拟键盘输入工具类/188

11.2.3 肢体语言映射到键盘事件/192

11.3 副产品:ppt演示“空手道”/193

11.4 练习作业/195

第12章 用kinect玩pc版的《水果忍者》/197

12.1 空气鼠标设计思路/197

12.1.1 找到离kinect最近的那个人/198

12.1.2 兼容左手习惯和右手习惯/199

12.1.3 从骨骼坐标系到鼠标坐标系/199

12.1.4 模拟鼠标工具类/200

12.1.5 让“空气鼠标”移动自如/202

12.1.6 模拟鼠标左键事件/203

12.2 在pc中用kinect玩《水果忍者》/203

12.2.1 核心代码示例/203

12.2.2 如何双手挥刀/206

12.3 更多游戏:《割绳子》/206

12.4 练习作业/207

第13章 创建你的kinecthubdemo界面/208

13.1 metro风格界面设计/208

13.2 使用kinect骨骼跟踪/209

13.3 使用coding4funkinecttoolkit开发加速器/210

13.4 悬停选择/210

13.5 本章小结/213

第14章 用kinect导播天气预报/214

14.1 天气预报是这样炼成的/214

14.1.1 绘制幕布,定义前景图片/214

14.1.2 对象定义及初始化/215

14.1.3 实现“画中画”效果/216

14.2 一些优化的话题/219

14.2.1 使用using及时回收资源/219

14.2.2 使用writeablebitmap优化图片显示性能/219

14.2.3 多线程和“轮询模型”/220

14.2.4 使用中值滤波边缘去噪/220

14.3 kinect语音导播切换/221

14.3.1 引用microsoft.speech命名空间/221

14.3.2 音频数据流和语音识别引擎/221

14.3.3 语音识别事件/223

14.4 本章小结/224

第15章 基于kinect的家庭监控系统/225

15.1 通过kinect进行目标探测/225

15.2 使用计算机视觉库/226

15.2.1 opencv程序库/226

15.2.2 emgucv引用/226

15.2.3 保存快照/227

15.2.4 录制视频/227

15.3 目标人体探测和影像录制/228

15.4 扩展功能和更多应用场景/231

15.5 本章小结/231

第16章 “kinect牌”梦境录音笔/232

16.1 kinect音频采集/232

16.1.1 使用音频数据流/232

16.1.2 “波束跟踪”信心值的另类用法/233

16.2 音频录制/233

16.2.1 wav文件/233

16.2.2 waveformatex结构体/234

16.2.3 梦境录音笔的实现/234

16.3 练习作业/240

第六部分 进阶篇

第17章 再谈姿态识别和手势识别/242

17.1 姿态和手势/242

17.2 动作与算法/243

17.2.1 如何设定动作集合/243

17.2.2 借鉴正则表达式和状态机/244

17.2.3 转换为几何三角问题/245

17.3 常见手势识别/245

17.3.1 挥手激活/245

17.3.2 悬停按钮/246

17.3.3 磁石悬停/247

17.3.4 划动手势/247

17.3.5 滑动解锁/248

17.3.6 推按钮/249

17.3.7 通用暂停/249

17.4 工具介绍/250

17.4.1 动作录制和识别gesturepak/250

17.4.2 手和手指的“空气多点触摸”/251

17.5 本章小结/253

第18章 kinect在手术室的应用原型/254

18.1 原型设计/254

18.2 交互设计/255

18.2.1 “悬停选择”进行功能导航/255

18.2.2 “空气鼠标”的激活和隐藏/256

18.2.3 通过“划动”手势翻阅医学影像/257

18.2.4 放大、缩小医学影像病灶部位/257

18.2.5 “垂直摆动”翻阅病历/258

18.2.6 体感操作结合语音控制/258

18.3 体感操作的实现/259

18.3.1 基于swipegesturerecognizer/259

18.3.2 基于单个部位运动序列的轨迹分析匹配/262

18.3.3 基于多个部位姿态快照的状态机匹配/266

18.4 利用sdkv1.5的新特性/280

18.4.1 近景模式下的上半身骨骼跟踪/280

18.4.2 利用关节点朝向信息进行手势识别和三维操作/280

18.4.3 人脸识别用于手术登录验证/283

18.4.4 调试工具kinectstudio/283

18.5 本章小结/284

第19章 hello,kinect3dworld!/285

19.1 点、面、云/285

19.1.1 像素和彩色图像帧/285

19.1.2 深度图像帧和点云/285

19.1.3 多kinect设备的接入/286

19.2 kinect体感应用开发工具简介/287

19.2.1 软件开发平台xna/287

19.2.2 游戏引擎unity3d/288

19.2.3 3d场景重建工具reconstructme/289

19.3 本章小结/289

第七部分 展望篇

第20章 奇思妙想—kinect效应/292

20.1 四旋翼飞行器的“导航雷达”/292

20.2 宠物看护机器人/292

20.3 空气吉他/293

20.4 倒车雷达系统/294

20.5 kinect购物车/294

20.6 魔术道具/295

20.7 本章小结/295

第21章 kinect企业级应用/296

21.1 思维导图/296

21.2 体感操作应用/297

21.2.1 手术室/297

21.2.2 体育运动竞技研究/297

21.2.3 动作捕捉、cg动画制作/298

21.2.4 虚拟试衣镜/298

21.2.5 课堂/299

21.2.6 虚拟汽车展厅/299

21.2.7 管理你的银行账户/300

21.2.8 聋哑人的同声翻译/300

21.3 深度数据应用/301

21.3.1 老年人监护/301

21.3.2 康复训练/301

21.3.3 家庭监控系统/302

21.3.4 道路交通稽查/302

21.3.5 冰川消融研究/303

21.3.6 给宇航员称体重/304

21.4 实物3d建模应用/304

21.4.1 实物3d数字化/304

21.4.2 文物3d模型“数字敦煌”计划/305

21.4.3 3d扫描和打印/306

21.5 机器人视觉与控制/306

21.5.1 地震搜救机器人/307

21.5.2 深海探测机器人/307

21.5.3 工程机械臂控制/307

21.6 本章小结/308

第22章 下一代人机交互技术/309

22.1 下一代kinect技术若干猜想/309

22.2 未来惊鸿一瞥/310

第八部分 附录

附录a kinectsdk命名空间速查手册/312

附录b 推荐阅读及网络资源/328

后记/338

参考资料/339

图书信息来源:中国互动出版

相关推荐