Kinect 是微軟公司推出的以體感互動為基礎的人機互動裝置。
Kinect 最初作為Xbox 360 的外接裝置發佈,利用即時動態骨骼追蹤、影像識別、麥克風輸入、語音辨識等功能讓玩家擺脫傳統遊戲搖桿的束縛,透過自己的肢體動作來控制遊戲。到2011 年3 月,Kinect 已經售出了1000多萬台,創造了新的銷售記錄,同時也表明了Kinect 全新的體感互動體驗征服了許多玩家的心。微軟公司並沒有將這一先進技術侷限在遊戲產業,而是緊接著將Kinect 技術推廣到Windows 平台,開放了本書要介紹的Kinect for Windows SDK,旨在鼓勵許多開發者設計以Kinect 體感互動技術為基礎的應用,越來越多的技術愛好者投身於探索Kinect 帶來的無限可能中。進一步在各個產業領域裡改變人們工作、生活和娛樂的方式。
Kinect 蘊藏的無限潛力,正等待著讀者們去發掘和創造。這是一本Kinect開發入門教學書,透過對基礎篇和開發篇的學習,讀者可以了解Kinect 技術的相關知識,並熟練Kinect 相關API 的使用方法。非常值得Kinect 初學者參考。
本書為Kinect for Windows 開發人員提供快速入門的知識,但是要求讀者有一定的程式設計基礎。由於本書的實例程式全部由C# 撰寫,讀者最好對C# 有一定的了解。
本書內容
本書分為3 個部分,其主要內容如下。
Kinect 基礎篇:介紹Kinect 的結構和功能以及如何設定開發環境,主要包含
2 章內容。
◎第1 章:簡介Kinect 的概念、歷史、結構組成及其應用領域。
◎第2 章:將一步步帶領讀者進行Kinect for Windows 開發環境的設定。
Kinect 開發篇:結合實例介紹如何使用Kinect for Windows SDK 提供的
API,主要包含6 章內容。
◎第3 章:介紹Kinect 取得的彩色圖像資料和紅外圖像資料,並結合實例
介紹如何呼叫Kinect for Windows SDK 提供的API 取得這兩種圖像資料。
◎第4 章:介紹Kinect 取得的深度圖像資料,並結合實例介紹如何處理深
度圖像資料。
◎第5 章:介紹骨骼追蹤資料,包含其結構、半身模式以及新加的骨骼點旋
轉資訊,透過實例3 講解骨骼資料API 的呼叫方法,透過實例4 介紹如
何利用骨骼追蹤資料實現對應的功能。
◎第6 章:介紹Kinect for Windows SDK 中音訊API的使用方法,實例5
和實例6分別講解了如何記錄Kinect 捕捉到的音訊流以及如何進行語音辨識。
◎第7 章:介紹Kinect for Windows Developer Toolkit,包含如何對其
進行安裝, 如何利用其中的Kinect Studio 進行便捷開發, 以及Face
Tracking SDK, 並透過實例7 詳細講解如何使用Face Tracking SDK 識別
人臉。
◎第8 章:說明Kinect常用的兩個類別函數庫:Coding4Fun Kinect
Toolkit 和Kinect Toolbox。
Kinect 實戰篇:透過4 個實例詳細說明使用Kinect for Windows SDK開發專案的實現過程。
◎第9 章:講解Kinect 虛擬展示系統的實現過程,該專案結合Kinect 提供一種新穎的演講方式。
◎第10 章:講解Kinect 虛擬風箏專案,將微軟最新的Kinect姿勢識別技術與風箏文化結合,提供一種新的虛擬放風箏體驗。
◎第11 章:介紹虛擬博物館的實現。該專案利用Kinect SDK 提供的骨骼點追蹤功能,結合普通的顯示幕或投影機實現了全息顯示的效果。
◎第12 章:說明以Kinect 基礎的自主移動機器人專案。本專案將Kinect 作為機器人的視覺感測器,指導機器人移動。
目錄
Kinect 基礎篇
第01章 Kinect 簡介
1.1 什麼是Kinect
1.2 Kinect 的前世今生
1.3 Kinect 體感互動技術原理
1.3.1 Kinect 的結構組成
1.3.2 Kinect for Windows SDK 簡介及功能介紹
1.4 Kinect for Windows 應用領域
1.5 小結
Kinect 開發篇
第02章 Kinect for Windows 開發環境設定
2.1 開發環境需求
2.2 設定開發環境
2.3 Kinect for Windows SDK 技術架構
2.4 小結
第03章 Kinect 彩色和紅外圖像資料的處理
3.1 彩色影像的格式
3.2 紅外資料流程
3.3 實例1 — 呼叫API 取得彩色圖像資料和紅外影像,並實現靜態影像的抓取
3.4 小結
第04章 Kinect 深度資料的處理
4.1 深度資料的結構
4.2 實例2—呼叫API 取得深度資料,並對不同深度值著以不同顏色
4.3 小結
第05章 Kinect 骨骼追蹤資料的處理方法
5.1 骨骼追蹤資料的結構
5.2 半身模式
5.3 骨骼追蹤資料的取得方式
5.4 實例3—呼叫API 取得骨骼資料並即時繪製
5.5 骨骼點旋轉資訊
5.5.1 骨骼點旋轉資訊儲存方式
5.5.2 在骨骼資料回呼函數中取得骨骼點旋轉資訊
5.5.3 綜述
5.6 實例4—使用Kinect 控制PPT 播放
5.7 小結
第06章 音訊API 的使用
6.1 關於Kinect 麥克風陣列
6.2 實例5—記錄一段音訊流,並監視音訊來源方向
6.3 實例6—呼叫語音API,實現語音辨識小程式
6.4 小結
第07章 Kinect for Windows Developer Toolkit 介紹
7.1 安裝Kinect for Windows Developer Toolkit
7.2 Kinect Studio 簡介
7.2.1 開啟Kinect Studio 並連結應用
7.2.2 記錄並重播Kinect 資料流程
7.2.3 儲存和載入Kinect 資料流程
7.3 Face Tracking SDK 簡介
7.3.1 Face Tracking SDK 主要功能
7.3.2 Face Tracking SDK 使用方法
7.4 實例7—使用Face Tracking SDK 識別人臉
7.4.1 新增專案並增加參考
7.4.2 初始化Kinect 資料流程
7.4.3 取得資料並傳入Face Tracking
7.5 小結
第08章 Kinect 常用類別函數庫介紹
8.1 Coding4Fun Kinect Toolkit 介紹
8.1.1 以圖型資料為基礎的擴充方法
8.1.2 以骨骼資料為基礎的擴充方法
8.2 Kinect Toolbox 類別函數庫
8.2.1 Kinect Toolbox 簡介
8.2.2 人體姿態識別
8.2.3 手勢識別
8.2.4 模版識別
8.2.5 語音辨識
8.2.6 增加自訂姿態
8.3 小結
Kinect 時戰篇
第09章 Kinect 虛擬展示系統的實現
9.1 虛擬展示系統簡介
9.2 技術實現概述
9.3 利用深度資料標籤取得人物彩色影像
9.3.1 建立人物擷圖類別
9.3.2 利用深度資料取得人物彩色影像
9.3.3 修補、最佳化並增強擷圖類別
9.3.4 利用Kinect SDK 擷圖的優、缺點
9.4 利用骨骼資料識別人體姿態
9.4.1 利用Toolbox 實現主體識別功能
9.4.2 自然對話模式設計
9.4.3 Kinect 自然互動小結
9.5 展示系統簡介
9.5.1 預備知識
9.5.2 Kinect 狀態類別
9.5.3 Kinect 輪詢類別
9.5.4 展示框架小結
9.6 小結
第10章 Kinect 虛擬放風箏專案的實現
10.1 Kinect 虛擬放風箏專案簡介
10.2 技術實現概述
10.3 玩家姿勢的設計和識別
10.3.1 玩家姿勢的設計
10.3.2 玩家姿勢識別的實現
10.4 自然互動按鈕和游標的實現
10.4.1 自訂游標
10.4.2 自訂按鈕
10.5 風箏動畫的實現
10.6 專案操作流程
10.7 小結
第11章 Kinect 全息顯示
11.1 Kinect 全息顯示簡介
11.2 技術實現概述
11.3 Kinect 捕捉頁首座標
11.3.1 建立用於捕捉頁首位置的Kinect 元件類別
11.3.2 Kinect 初始化以及頁首位置取得
11.3.3 根據Kinect 和螢幕的位置關係轉換座標
11.4 3D 圖形引擎
11.4.1 建立可見模型繪製類別
11.4.2 建構模型世界矩陣
11.4.3 繪製模型
11.5 根據頁首位置更新繪製影像
11.5.1 修改視圖矩陣
11.5.2 修改投影矩陣
11.6 小結
第12章 以Kinect 為基礎的自主移動機器人的設計與實現
12.1 KRobot 專案簡介
12.2 技術實現概述
12.3 利用深度資料進行攝影機標定
12.4 利用深度資料實現障礙規避
12.4.1 取得彩色圖和深度圖資料
12.4.2 處理深度圖和深度資料
12.4.3 制定障礙物判斷規則
12.4.4 制定機器人避障規則
12.5 利用骨架資料實現人體追蹤
12.6 利用麥克風進行聲音定位
12.7 增強人機互動展示系統
12.8 小結
附錄A Kinect for Windows SDK 類別、結構型態和列舉型態
Kinect 基礎篇
第01章 Kinect 簡介
1.1 什麼是Kinect
1.2 Kinect 的前世今生
1.3 Kinect 體感互動技術原理
1.3.1 Kinect 的結構組成
1.3.2 Kinect for Windows SDK 簡介及功能介紹
1.4 Kinect for Windows 應用領域
1.5 小結
Kinect 開發篇
第02章 Kinect for Windows 開發環境設定
2.1 開發環境需求
2.2 設定開發環境
2.3 Kinect for Windows SDK 技術架構
2.4 小結
第03章 Kinect 彩色和紅外圖像資料的處理
3.1 彩色影像的格式
3.2 紅外資料流程
3.3 實例1 — 呼叫API 取得彩色圖像資料和紅...