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

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

书籍描述

编辑推荐
《Kinect应用开发实战:用最自然的方式与机器对话》由微软资深企业架构师兼Kinect应用开发专家亲自执笔,专业社区及企业客户联袂推荐!系统讲解Kinect工作原理、Kinect for Windows应用开发、人机交互设计,以及商业价值展望,包含大量案例、技巧和最佳实践。系统讲解Kinect工作原理、Kinect 应用开发、人机交互设计,包含大量案例、技巧和最佳实践,版权输出到台湾。

作者简介
余涛,网名fishking1979,企业应用架构师(Enterprise Architect)、PMI认证项目管理师(PMP),目前就职于微软中国。热衷于Kinect技术,致力于推广Kinect体感技术在企业领域的应用。拥有12年以上的软件行业经验,有丰富的大型软件项目设计、开发、管理经验,为医疗、智能交通、能源、汽车等企业级客户提供架构及咨询服务。业余爱好旅行、山地车运动和电影。

目录
推荐序一
推荐序二
前言
第一部分准备篇
引言从科幻电影谈起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到Siri16
1.1.7眼球跟踪:从霍金的座椅谈起17
1.1.8人脸识别:Photo DNA19
1.1.9体感操作:达芬奇手术机器人20
1.1.10脑机界面:霍金座椅的升级版20
1.2“你就是控制器”—Kinect宣言21
1.2.1Kinect销售记录及命名来历21
1.2.2未来照进现实22
第二部分原理篇
第2章揭开Kinect的神秘面纱—硬件设备解剖26
2.1两款Kinect传感器对比26
2.2Kinect传感器的硬件组成28
2.2.1Kinect的“心脏”—PS1080 SoC30
2.2.2Kinect的“三只眼”—投影机和两个摄像头32
2.2.3Kinect的“四只耳朵”—麦克风阵列34
2.2.4会摇摆的“相控雷达”—传动马达35
2.2.5姿态控制—三轴加速度计36
2.2.6USB接口及电源37
2.2.7Kinect风扇控制38
2.3Kinect相关技术规格38
2.3.1Kinect近景模式39
2.3.2Kinect放大镜40
2.4本章小结40
第3章Kinect工作原理大揭秘41
3.1Kinect for Xbox 360的产品设计42
3.2基于“管道”的系统架构43
3.2.1骨骼跟踪45
3.2.2动作识别46
3.2.3人脸识别48
3.2.4语音识别49
3.3Kinect眼里的三维世界50
3.3.1深度数据是Kinect的精髓51
3.3.22D视觉与3D视觉55
3.4深度图像成像原理56
3.4.1ToF光学测距与结构光测量56
3.4.2LightCoding技术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创建你的Avatar70
3.6.1“有骨有肉”70
3.6.2泊松方程噪声滤除70
3.6.3粗糙变平滑、缺陷自动补齐71
3.7本章小结71
第三部分基础篇
第4章Kinect for Windows SDK导读74
4.1什么是Kinect SDK74
4.1.1Kinect SDK的发展历程74
4.1.2SDKv1.5的新特性75
4.1.3SDKv1.5尚未提供的API76
4.1.4从底层进行封装76
4.2Kinectfor Windows体系架构78
4.3应用层API详解80
4.3.1Kinect的核心NUIAPI80
4.3.2Kinect Audio DMO82
4.3.3Windows Speech SDK83
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.6NUI坐标转换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.1Xbox 360 Kinect Hub界面和Metro风格97
5.1.1什么是Metro风格97
5.1.2KinectHub手势原型设计98
5.1.3“悬停选择”和“翻页控制”99
5.2体感游戏的优势及局限性100
5.2.1更多的自由度101
5.2.2关节点重叠的处理办法102
5.2.3情感因素和心理暗示102
5.2.4Kinect体感操作的局限性及对策103
5.3用户交互的趋势和新特性104
5.3.1Kinect使交互“柔软化”105
5.3.2用户交互设计也可能是一项专利106
5.4Kinect“体感操作”交互设计的七条军规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下载和安装Kinect SDK116
6.3.1Kinect for Windows SDKv1.5118
6.3.2Developer Toolkit118
6.3.3Kinect快速开发工具箱119
6.3.4XNA开发环境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添加Kinect Diagnostic Viewer控件126
7.1.3编写一行代码127
7.1.4编译运行127
7.2控制台界面Hello Kinect Matrix128
7.2.1创建Console工程128
7.2.2编写代码129
7.2.3运行效果130
7.3Kinect Contrib快速工程模板130
7.4Kinect Wpf Viewers工具控件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.6Kinect设备状态管理及异常处理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.4Kinect深度数据测量的应用159
9.4.1近景模式:自动锁屏工具159
9.4.2Kinect视角场几何推导:测量人体身高163
9.4.3近距离探测:制作地形电子沙盘169
9.5本章小结170
第五部分实例篇
第10章用Kinect表演“变脸”172
10.1在人的面部变换脸谱172
10.2代码实现173
10.2.1WPF工程、控件及初始化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.1WPF工程、控件及初始化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章创建你的KinectHub Demo界面208
13.1Metro风格界面设计208
13.2使用Kinect骨骼跟踪209
13.3使用Coding4 Fun Kinect Toolkit开发加速器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使用Writeable Bitmap优化图片显示性能219
14.2.3多线程和“轮询模型”220
14.2.4使用中值滤波边缘去噪220
14.3Kinect语音导播切换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.1OpenCV程序库226
15.2.2EmguCV引用226
15.2.3保存快照227
15.2.4录制视频227
15.3目标人体探测和影像录制228
15.4扩展功能和更多应用场景231
15.5本章小结231
第16章“Kinect牌”梦境录音笔232
16.1Kinect音频采集232
16.1.1使用音频数据流232
16.1.2“波束跟踪”信心值的另类用法233
16.2音频录制233
16.2.1WAV文件233
16.2.2WAVEFORMATEX结构体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动作录制和识别Gesture Pak250
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基于Swipe Gesture Recognizer259
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调试工具Kinect Studio283
18.5本章小结284
第19章Hello,Kinect 3D World!285
19.1点、面、云285
19.1.1像素和彩色图像帧285
19.1.2深度图像帧和点云285
19.1.3多Kinect设备的接入286
19.2Kinect体感应用开发工具简介287
19.2.1软件开发平台XNA287
19.2.2游戏引擎Unity3D288
19.2.33D场景重建工具Reconstruct Me289
19.3本章小结289
第七部分展望篇
第20章奇思妙想—Kinect效应292
20.1四旋翼飞行器的“导航雷达”292
20.2宠物看护机器人292
20.3空气吉他293
20.4倒车雷达系统294
20.5Kinect购物车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.33D扫描和打印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
第八部分附录
附录AKinect SDK命名空间速查手册312
附录B推荐阅读及网络资源328
后记338
参考资料339

序言
推荐序一
人机交互的发展过程就是从人适应计算机到计算机不断地适应人的发展过程。人机交互的发展经历了早期的手工作业阶段、作业控制语言及交互命令语言阶段、图形用户界面(GUI)阶段、网络用户界面阶段、多通道与多媒体的智能人机交互阶段。伴随人机交互的发展,人机交互的输入与输出设备也在不断地发展,从鼠标、键盘、手柄到触摸屏,再到现在的体感传感器。而体感交互技术又是目前人机交互技术中最为前沿和热门的领域之一,这其中基于微软Kinect的应用开发却又最为广泛。
对于国内众多的体感开发初学者和体感爱好者而言,本书是一本非常优秀的入门读物。本书内容涵盖对自然人机交互技术应用的介绍,Kinect硬件设备构造与原理的分析,Kinect SDK for Windows开发环境的搭建, Kinect SDK for Windows的详细讲解,Kinect交互设计的一些理念,以及Kinect在视觉、声音、3D等多方面的案例开发。其中涉及Kinect多点触摸、虚拟现实、增强现实、动作捕捉、3D重建、机器人控制等多种应用场景。
本书的编写以国内广大体感开发者的需求为依据,从而使读者能够更深入地理解体感技术的应用场景。本书具有以下特点:由浅入深地引导开发者;实操性很强;创新与实战相结合;图文并茂;有很多珍贵的参考数据。因此本书不失为一本很好的Kinect体感开发工具书。祝广大读者通过对本书的学习能早日步入体感行列,开发出自己的体感应用!
王峰
Cnkinect.com创始人,体感工场(北京)科技有限公司CEO和创始人。
推荐序二
我知道余涛,是因为一起参加了微软HR组织的员工活动。我受邀分享南极经历,他分享21天从成都武侯祠骑行至拉萨的经历。当时我就在想,这个人不简单,是个有梦想、能坚持的奇人。
这次余涛寄来书稿,更加证实了我的判断:有梦想能坚持,居然写了本这么厚的编程指导书。他说,“Kinect唤回我Coding的激情”。
是的。Kinect唤回了很多人的激情。与其说这是一本编程指导书,不如说是一本用作者的创造力唤醒大家想象力的梦想指南书。作者向大家展示了Kinect带给大家的无限可能。
现在不少的编程人员,可能都是从基于Windows的Visual系列开始学起的,已经把图形界面和鼠标操作当成理所当然的。作为1985年被邓小平爷爷“学电脑要从娃娃抓起”一声号召之下就开始学电脑的我来说,深知“史前”编程和用户交互的不易。
在很早的时候,我们只能用“机器语言”和电脑交互。那个时代,是人去理解电脑,并用0和1的指令告知电脑人们希望它去完成的事情。后来虽然有所发展,有了汇编语言、C语言等,但是和电脑谈话,还只是专业人士的工作。所以你可能还记得,要穿白大褂、换鞋进入电脑机房的时代。
后来,施乐悄悄地发明了图形操作界面和鼠标。施乐并不明白这个发明有多伟大,比尔盖茨和史蒂夫乔布斯看到了,开发出了著名的Windows和Macintosh操作系统。自此以后,普通的人都可以用更加平等的方式和电脑交流了,而电脑也一下子平易近人起来。比尔“每个人的桌面上都有一台电脑”的梦想,最终得以实现。
但是,这还不够。今天,几乎和鼠标一样伟大的人机交互方式—“Kinect体感”被发明了!这非常令人激动,因为电脑从此以后就可以通过观察人的动作、聆听人的声音,来理解人的指令,更加自然地和人交流了。我们把这种操作界面称为自然用户界面(NUI)。
若干年后,我想大家会理解,Kinect会是多么伟大的一项尝试。而作者也同样尝试着在这个重要的时间点上,用自己的书点亮大家对未来的想象,帮助大家成为未来NUI的领导者。这本书里提到的例子都非常有趣。
人类对更加智慧的人机交互方式的探索永远不会停止,你同样会看到用声音、用自然语言、用眼球交互的各种尝试。但是,所有这些基础的技术创新,都需要像你们这样的梦想家,只有你们在各个领域发挥最令人惊叹的想象力,才能开发出独特的应用,改良生产,改善生活。预祝每一个认真阅读本书的人都是未来的学者、未来的成功者!
刘润
微软战略合作总监,捐献时间公益组织创始人,香港百仁基金特邀会员,福布斯中文网专栏作家,愈奇投资合伙人,《2012,买张船票去南极》的作者。
前言
为什么要写这本书
Kinect以Natal为开发代号在CES2010一亮相就光芒四射。发布会上那段视频令我印象深刻:你可以用身体自如地进行游戏,而且无需任何控制器。也许就在那一刻,全世界的很多技术爱好者都在想:“我们还可以用Kinect干点什么呢?”
我将这段视频转发给复旦大学附属中山医院的阴忆青博士。他看完后敏锐地问道:“是否可以基于Kinect开发手术室的应用?”那时Kinect还未正式发布,但这个念头着实让我兴奋不已。
我们似乎已经进入了这样一个时代:计算机已逐渐拥有与人类媲美的感知能力—它们能看到、触摸到、感觉到我们所处的地点和运动状态。科幻电影银幕中的场景,正逐步出现在我们的身边,并成为生活中的一部分。Kinect正是在这样的背景中诞生的,人机交互从二维世界扩展到三维空间,而且是非接触的交互体验(Touch-Free)。Kinect也许会成为第三次人机交互革命的原点。
2011年春天,我从美国买了一台Xbox 360 Kinect套装。“你的身体就是控制器”,Kinect for Xbox的广告词如雷贯耳。为了满足好奇心,我开始搜集Kinect技术及其原理的相关信息,网络上的讨论也逐渐升温。我阅读了New Scientist网站上的一篇博文《Inside the race to hack the Kinect 》,其中讲述了破解Kinect的全过程。这是一次有悬赏的技术竞赛,黑客们通过USB记录仪截获了Kinect与主机之间通信的所有数据,整个破解过程就是一个逆向工程。微软似乎默许了这样的黑客行为。与此同时,关于Kinect的各类创意在网络上如同雨后春笋一般涌现出来,比如用Kinect给四旋翼飞行航模配上“导航雷达”、制作宠物狗看护机器人、在空气中弹吉他、利用Kinect制作倒车雷达系统,或是用来玩经典游戏《超级马里奥兄弟》。
“向Xbox 360中增加Kinect,就像是给一艘潜水艇配备了声纳设备一样”,这是我特别喜欢的一句评论。Kinect还引发了无尽的想象和创意,让人跃跃欲试。
2011年初夏,微软顺水推舟发布了Kinect for Windows SDK beta1版本,相比开源社区的工作的确有些姗姗来迟。这期间,我试着写了几个简单的应用,除了SDK帮助文档外,开发资料乏善可陈,相关英文书籍也未出版。那个夏天,我骑车远行了一次,从成都到拉萨。路上我萌发了一个念头—写一本原创书。当年秋天,我在杭州参加QCon2011大会,席间我与好友(淘宝架构师铁轮)对写书的想法进行了深入讨论。会后我正式明确了写作方向,那时Kinect for Windows SDK beta2版本已经发布了。我阅读了Jamie Shotton和Alex Kimpman等人联合写的那篇重要论文《Real-Time Human Pose Recognition in Parts from Single Depth Images》,之后关于Kinect的实现机制豁然开朗。之后的业余时间,我都会跟踪Kinect技术的一些动态发展,并搜集整理资料。与此同时,Kinect自然人机交互技术也逐步成为我和企业用户沟通的一个有趣话题。我发现,除了医疗领域外,教育、银行、航空、广告等领域也都对这项技术表现出浓厚的兴趣。基于此,我对整个书稿原目录的构思做了调整,除了原理、SDK开发基础和实例外,将整理更多关于Kinect在企业级应用的创意,并且从人机交互技术的角度思考它的商业价值。
2012年春节前,我有幸认识了机械工业出版社华章公司的杨福川先生,期间邮件往来,讨论了本书的定位及大纲。春节过后,微软很快正式发布了Kinect SDK v1.0版本。当时我正在美国出差,顺路在Belleville的Microsoft Store里买了Kinect for Windows传感器。同时,我也正式开始了本书的编写。
本书从构思到成稿,差不多跨越了Kinect for Windows SDK beta1、beta2、v1.0到v1.5四个版本。写作主要集中在beta2到v1.5发布前的一段时间。
Kinect技术还在不断发展,本书作为一本开发入门书籍,希望能给国内Kinect技术爱好者们一些启发。如能激发出一些新的创意,那将是件极有意义的事情。
希望阅读本书能让你感到愉快并有所启发。

文摘
版权页:

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

插图:

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

3.2.3人脸识别
人脸识别是整个身份识别中最重要的一个组成部分,你的身份证、驾照或是毕业证上无一不记录了你的脸部照片。作为传奇人物,拿破仑在指挥作战中,不仅能准确地记住他的各个部队的具体战斗位置,而且能记住许多士兵的姓名和面容。
Kinect也将拥有如此博闻强识的本领,它能区分不同玩家、快速识别玩家的身份,从而提供更为个性化的体验,比如记住你上次听过的歌曲,或者最近玩过的游戏。通过人脸识别实现的个性化体验已经成为游戏体验的一部分,神奇之处恰恰在于你并没有做任何事情,你只是站在那里,Kinect通过人脸识别就知道你是谁,如图3—11所示。
“人脸识别”与“骨骼跟踪”类似,第一步首先定位人脸的存在,其次基于人的脸部特征,对输入的人脸图像或者视频流进行进一步的分析,包括脸的位置、大小和各个主要面部器官的位置信息,并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人的身份。
由于Kinect摄像头分辨率仅为640×480,在1.8m及以上距离的情况下,摄像头所能提供的面部的像素数据十分有限,并不适用于进行高维计算。另外,房间内光线会变,玩家时而接近时而远离Kinect,而且当玩家投入游戏时他们的面部表情也会改变,这些都会给人脸识别带来影响。还有,由于环境光照、色温和人表情的这种差异,会给人脸识别带来噪声。
目前,Kinect for Xbox的人脸识别采用了抽取人脸中层结构特征的折中方式,但这种方法无法提供100%的准确识别率(大约为85%)。前面我们提到过,这种纯二维的图片识别算法也被应用在Windows Live Photo Gallery中。同时,人脸识别还综合了着装的色彩以及玩家身高的分析,以帮助提高识别准确率。
抽象脸部特征作为Kinect的人脸识别的关键步骤。如果说Kinect骨骼跟踪是给每个玩家穿上动作捕捉“Marker”点,那么人脸识别中的脸部特征分解这一环节,恰恰就类似好莱坞电影面部捕捉的做法,如图3—12所示。
人脸识别另外一个需要攻克的难点在于同一个人的变化。人的面部在不同照明、表情或姿势等因素的影响下产生的差异有时让对同一个人的识别产生不同的结果。
为了识别不同表情、不同光照条件下的人脸,联想推测模型的第一步是构建一个“通用”的人脸数据库。

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

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多