Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
書籍転載:KINECT for Windows SDKプログラミング Kinect for Windows v2センサー対応版

書籍転載:KINECT for Windows SDKプログラミング Kinect for Windows v2センサー対応版

Kinect for Windows v2センサー対応版の書籍から、UnityとWPFの開発者に役立つコンテンツおよびKinect開発に役立つ数学に関するコンテンツを全10本の記事として転載。【完結】

中村 薫、 杉浦 司、 高田 智広、 上田 智章
  • このエントリーをはてなブックマークに追加

書籍転載について

 本コーナーは、秀和システム発行の書籍『KINECT for Windows SDKプログラミング Kinect for Windows v2センサー対応版』の中から、特にBuild Insiderの読者に有用だと考えられる項目を編集部が選び、同社の許可を得て転載したものです。

 

 『KINECT for Windows SDKプログラミング Kinect for Windows v2センサー対応版』の詳細や購入は秀和システムのサイトをご覧ください。プログラムのダウンロードも、秀和システムのサイトから行えます。

 本書は、カラー画像やDepthデータ、Bodyデータの使い方、音声データ・方向の取得方法、顔の位置・表情の検出、詳細な顔モデルの解析、3DスキャンのKinectFusion、ジェスチャーの認識方法や音声認識等について解説します。また、センサーの性能を分析し、独自処理を実装することで、Kinectを高性能化します。v2に搭載されるとアナウンスされつつ、最終的にサポート外となった心拍の取得を独自アルゴリズムで実装します。

Chapter 1 Kinect for Windows v2の概要

 1.1 Kinect for Windows v2の基礎知識

 1.2 Kinect for Windows v2のハードウェア仕様
 1.2.1 要求事項
 1.2.2 動作仕様(Kinect for Windows v1との比較)

 1.3 Kinect for Windows v2の構成
 1.3.1 Kinect for Xbox v2センサーとの違い

 1.4 Kinect for Windows SDK v2の基礎知識
 1.4.1 SDK v2で提供される機能の一覧
 1.4.2 カラー画像の取得
 1.4.3 Depthデータの取得
 1.4.4 IR(赤外線)画像の取得
 1.4.5 BodyIndexの取得(人の検出)
 1.4.6 Body(人の関節)の取得
 1.4.7 音声入力の取得/音声方向の取得
 1.4.8 NUI(非接触UI)
 1.4.9 3Dスキャン
 1.4.10 音声認識
 1.4.11 顔の位置や表情の取得
 1.4.12 Visual Gesture Builder
 1.4.13 Kinect Studio
 1.4.14 Kinect v2 Configuration Verifier

 1.5 事例
 1.5.1 仮想試着
 1.5.2 プロジェクションマッピング
 1.5.3 ロボットを操作する

Chapter 2 インストールと環境構築

 2.1 Kinect for Windows SDK v2のインストール
 2.1.1 Kinect for Windows SDK v2をダウンロードする
 2.1.2 Kinect for Windows SDK v2をインストールする
 2.1.3 サンプルプログラムを動作させる

 2.2 C++の開発環境を構築する
 2.2.1 Visual Studioのプロジェクトを作成する
 2.2.2 最初のコード
 2.2.3 OpenCVの設定を行う
 2.2.4 C++コードテンプレート

 2.3 C#(WPF)の開発環境を構築する
 2.3.1 Visual Studioのプロジェクトを作成する
 2.3.2 最初のコード

 2.4 C#(Windowsストアアプリ)の開発環境を構築する
 2.4.1 Visual Studioのプロジェクトを作成する
 2.4.2 最初のコード

Chapter 3 基本ストリーム

 3.1 カラー画像を使う
 3.1.1 実行結果
 3.1.2 [解説]カラー画像の取得
 3.1.3 [解説]変数宣言と画面の作成
 3.1.4 [解説]初期化
 3.1.5 [解説]データの取得と表示
 3.1.6 [解説]終了処理

 3.2 Depthデータを使う
 3.2.1 実行結果
 3.2.2 [解説]Depthデータの取得
 3.2.3 [解説]変数宣言と画面の作成
 3.2.4 [解説]初期化
 3.2.5 [解説]データの取得と表示
 3.2.6 [解説]終了処理

 3.3 赤外線画像を使う
 3.3.1 実行結果
 3.3.2 [解説]赤外線画像の取得
 3.3.3 [解説]変数宣言と画面の作成
 3.3.4 [解説]初期化
 3.3.5 [解説]データの取得と表示
 3.3.6 [解説]終了処理

 3.4 人の検出を行う
 3.4.1 実行結果
 3.4.2 [解説]人の検出の流れ
 3.4.3 [解説]変数宣言と画面の作成
 3.4.4 [解説]初期化
 3.4.5 [解説]データの取得と表示
 3.4.6 [解説]終了処理

 3.5 体(骨格)の検出を行う
 3.5.1 実行結果
 3.5.2 [解説]Bodyデータ取得の流れ
 3.5.3 [解説]変数宣言と画面の作成
 3.5.4 [解説]初期化
 3.5.5 [解説]データの取得
 3.5.6 [解説]Bodyフレーム、データを取得する
 3.5.7 [解説]Bodyデータを表示する
 3.5.8 [解説]関節の位置を描画する
 3.5.9 [解説]終了処理

 3.6 手の状態の検出を行う
 3.6.1 実行結果
 3.6.2 解説

 3.7 座標の変換を行う
 3.7.1 実行結果
 3.7.2 [解説]座標変換の動機
 3.7.3 [解説]変数宣言
 3.7.4 [解説]初期化
 3.7.5 [解説]データの取得
 3.7.6 [解説]カラー解像度で表示する
 3.7.7 [解説]Depth解像度で表示する

 3.8 音声データを使う
 3.8.1 実行結果
 3.8.2 [解説]音声データ取得の流れ
 3.8.3 [解説]変数宣言
 3.8.4 [解説]初期化
 3.8.5 [解説]データの取得
 3.8.6 [解説]終了処理

 3.9 音声方向を使う
 3.9.1 実行結果
 3.9.2 [解説]変数宣言
 3.9.3 [解説]初期化処理
 3.9.4 [解説]音声方向の取得
 3.9.5 [解説]表示処理
 3.9.6 [解説]終了処理
 3.10 音声方向と体の関連付けを使う
 3.10.1 実行結果
 3.10.2 [解説]ビーム方向のTrackingIdをBodyIndexにマップする
 3.10.3 [解説]変数宣言
 3.10.4 [解説]初期化処理
 3.10.5 [解説]ビーム方向のTrackingIdを取得する
 3.10.6 [解説]ビーム方向のTrackingIdからBodyIndexを取得する
 3.10.7 [解説]BodyIndexのプレイヤーに色着けする
 3.10.8 [解説]終了処理

Chapter 4 応用機能

 4.1 顔情報(Face Tracking)を使う
 4.1.1 実行結果
 4.1.2 プロジェクトの追加設定
 4.1.3 解説

 4.2 詳細な顔情報(HDFace)を使う
 4.2.1 実行結果
 4.2.2 プロジェクトの設定
 4.2.3 解説

 4.3 Kinect WPF Controlsを使う【2015年11月17日公開】
 4.3.1 ハンドポインターとジェスチャー
 4.3.2 実行結果
 4.3.3 プロジェクトの設定
 4.3.4 解説

 4.4 ジェスチャー認識を使う
 4.4.1 実行結果
 4.4.2 プロジェクトの設定
 4.4.3 解説

 4.5 Kinect Fusionを使う
 4.5.1 実行結果
 4.5.2 プロジェクトの設定
 4.5.3 解説

 4.6 音声認識を使う
 4.6.1 実行結果
 4.6.2 プロジェクトの設定
 4.6.3 解説

Chapter 5 ツールの利用方法

 5.1 Kinect Studio
 5.1.1 記録
 5.1.2 再生
 5.1.3 付属ツール

 5.2 Visual Gesture Builder
 5.2.1 Visual Gesture Builderの流れ
 5.2.2 訓練データの収集
 5.2.3 機械学習による識別器の学習
 5.2.4 生成された識別器の評価
 5.2.5 Tips

 5.3 Kinect Configuration Verifier
 5.3.1 入手方法
 5.3.2 利用方法

Chapter 6 Kinect for Windows SDK v2をUnityで使う

 6.1 Unityの基礎知識【2015年10月21日公開】
 6.1.1 Unity 5のインストール
 6.1.2 Unityのプロジェクトを作成する

 6.2 Visual Studio Tools for Unity

 6.3 UnityでKinectを使う【2015年10月27日公開】
 6.3.1 カラー画像を表示する
 6.3.2 赤外線画像を表示する
 6.3.3 Depthデータを表示する
 6.3.4 Bodyを表示する
 6.3.5 Kinectの座標とUnityの座標を合わせる【2015年11月2日公開】

Chapter 7 SDK v2を使ったアプリケーション例

 7.1 PCL(Point Cloud Library)
 7.1.1 PCLのインストール
 7.1.2 PCLのプロジェクト設定を行う
 7.1.3 モデルデータを扱う
 7.1.4 フィルターを使う
 7.1.5 位置合わせを行う
 7.1.6 メッシュ化する
 7.1.7 Kinectからのデータを直接扱う

 7.2 落ちモノアプリケーションとプレイヤーの選択
 7.2.1 Rxライブラリを追加する
 7.2.2 XAMLで画面を設計する
 7.2.3 初期化処理
 7.2.4 アイテムの落下を定義する
 7.2.5 あたり判定を組み込む
 7.2.6 プレイヤーの選択

 7.3 ユニティちゃんを動かす【2015年11月10日公開】
 7.3.1 ユニティちゃんアセットについて
 7.3.2 アセットをインポートする
 7.3.3 プロジェクトを設定する
 7.3.4 ユニティちゃんを動かす

Chapter 8 Kinectで学ぶ数学

 8.1 平面上のベクトル【2015年12月2日公開】
 8.1.1 2次元ベクトル
 8.1.2 2次元ベクトルの幾何学的意味
 8.1.3 平面上の線型写像

 8.2 空間内のベクトル【2015年12月4日公開】
 8.2.1 3次元ベクトル
 8.2.2 3次元ベクトルの幾何的意味
 8.2.3 空間内の線型写像

 8.3 ベクトルの回転【2015年12月8日公開】
 8.3.1 2次元ベクトルの回転
 8.3.2 3次元ベクトルの回転
 8.3.3 線型写像による座標変換

 8.4 ロール・ピッチ・ヨー【2015年12月15日公開】

 8.5 クォータニオン【2015年12月22日公開】
 8.5.1 複素数と複素平面
 8.5.2 クォータニオンの定義
 8.5.3 クォータニオンと3次元空間
 8.5.4 クォータニオンによる回転
 8.5.5 座標変換とクォータニオン
 8.5.6 Kinect v2のクォータニオン

Chapter 9 Kinect for Windows v2の限界を突破する

 9.1 Kinectの基本性能を超える工夫
 9.1.1 デプス画像の距離測定分解能について
 9.1.2 Kinect v2のToF方式デプスカメラの動作原理
 9.1.3 なぜ値がばらつくのか?
 9.1.4 赤外線画像やデプス画像を鮮明にする長時間露光
 9.1.5 実際のコードの要点
 9.1.6 FIFOを用いた移動平均法
 9.1.7 見やすくするためのカラーマップ
 9.1.8 処理結果
 9.1.9 注意しなければならないマルチパスノイズ

 9.2 デプス・フュージョン
 9.2.1 Kinect Fusion
 9.2.2 デプス画像をこんな風な表示に変換できないか?
 9.2.3 鍵になるのは3Dグラフィックスの光源計算
 9.2.4 光源計算に必須の情報は?
 9.2.5 ソースコード
 9.2.6 3Dレリーフ表示はまだまだ改善できる余地が残されています
 9.2.7 3Dスキャンで使われるSTLフォーマットについて

 9.3 非接触バイタルセンシング(加速度、呼吸、心拍)
 9.3.1 骨格トラッキングで取得できる関節の3次元座標を利用する
 9.3.2 2次関数近似の恩恵
 9.3.3 ソースコード
 9.3.4 非接触バイタルセンシング

サイトからのお知らせ

Twitterでつぶやこう!