推薦序一
推薦序二
前 言
第一部分 準備篇
引 言 從科幻電影談起/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 人臉識彆:Photo DNA/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的“心髒”—PS1080 SoC/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 Kinect for Xbox 360的産品設計/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 Light Coding技術/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章 Kinect for Windows SDK導讀/74
4.1 什麼是Kinect SDK/74
4.1.1 Kinect SDK的發展曆程/74
4.1.2 SDK v1.5的新特性/75
4.1.3 SDK v1.5尚未提供的API/76
4.1.4 從底層進行封裝/76
4.2 Kinect for Windows體係架構/78
4.3 應用層API詳解/80
4.3.1 Kinect的核心NUI API/80
4.3.2 Kinect Audio DMO/82
4.3.3 Windows Speech SDK/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 Xbox 360 Kinect Hub界麵和Metro風格/97
5.1.1 什麼是Metro風格/97
5.1.2 Kinect Hub手勢原型設計/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 下載和安裝Kinect SDK/116
6.3.1 Kinect for Windows SDK v1.5/118
6.3.2 Developer Toolkit/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章 創建你的Kinect Hub Demo界麵/208
13.1 Metro風格界麵設計/208
13.2 使用Kinect骨骼跟蹤/209
13.3 使用Coding4Fun 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 使用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 Open CV程序庫/226
15.2.2 Emgu CV引用/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 利用SDK v1.5的新特性/280
18.4.1 近景模式下的上半身骨骼跟蹤/280
18.4.2 利用關節點朝嚮信息進行手勢識彆和三維操作/280
18.4.3 人臉識彆用於手術登錄驗證/283
18.4.4 調試工具Kinect Studio/283
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.2 Kinect體感應用開發工具簡介/287
19.2.1 軟件開發平颱XNA/287
19.2.2 遊戲引擎Unity 3D/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 Kinect SDK命名空間速查手冊 /312
附錄B 推薦閱讀及網絡資源/328
後記/338
參考資料/339
· · · · · · (
收起)