KINECT for Windows v2はじめてのKINECT
みずほ情報総研株式会社
サイエンスソリューション部
下元 正義
1
Kinect®は、米国Microsoft Corporation及びまたはその関連会社の登録商標または商標です。その他の会社名、システム名、製品名は一般に各社の登録商標または商標です。
下元 正義(しももと まさよし)
みずほ情報総研株式会社
サイエンスソリューション部
理学系出身
C#の開発がメイン
Kinectは2年前から
K4Wによる手話認識
2
K4Wによる手話認識:利用想定シーン
本日お話しさせていただく内容
•未来のヒューマンインターフェイスデバイス
•何ができるのか
• アプリ開発の始め方
• v2の新機能 Kinect Studio + Visual Gesture Builder
3
何ができるの?
• ナチュラルユーザーインターフェイス(NUI)• ひとのしぐさを理解
• 誰でもコンピュータの恩恵を受けられる
6
http://kinectforwindows.com/http://www.tfu.ac.jp/news/20131125_01.html
動作要件
項目 V1 V2
CPU デュアルコア 2.66GHz~ Core i7 2.5GHz~
GPU n/a Direct X11
USB 2.0以上 3.0
メモリ 2GB 4GB(2GBという記述も…)
OS Windows7, 8以降エンベデッド含む
Windows8以降エンベデッド含む
開発環境 Visual Studio 2010以降.NET Framework 4
Visual Studio 2012以降.NET Framework4.5
動作確認した環境ASUS Z87 Pro : Core i7 4770K 3.4GHz Dell XPS One 27 : Core i7 4770S 3.0GHzDELL Graphic Pro XPS8700 : Core i7 3537U 2.0GHz 動作しない場合も
9
SDK(Software Development Kit)を入手
http://www.microsoft.com/en-us/kinectforwindows/
最新のSDK2014.8.20版
11
開発環境Visual Studio(2012or2013)を入手
無償のExpressでも開発可能for Windows(ストアアプリ)
for Desktop(デスクトップアプリ)2013 Update 3が最新
12
データソース
• カラー 1920 x 1080, 30 or 15(暗いとき)フレーム/秒
•赤外
•深度
• ボディインデックス
• スケルトン
• オーディオ
14
512 x 424, 30 フレーム/秒
カラー 120MB/秒, その他画像 13MB/秒, オーディオ 32KB/秒
アーキテクチャ
ネイティブアプリ .Netアプリストアアプリ
C#,VB,JavaScript,C++
ネイティブAPI .Net API WinRT API
Kinect Runtime
Kinect Drivers
Kinect Sensor
15
ストアアプリを作成
•新規プロジェクトの作成
• ストアアプリ→空のプロジェクト
• Package.Manifest→機能で“マイク”と“Webカメラ”を利用可
•参照設定→WindowsPreview.Kinectを追加
•構成マネージャーでプラットフォームをx64またはx86
16
KinectSensor
this.kinectSensor = KinectSensor.GetDefault();
this.kinectSensor.Open();
//何らかの処理
this.kinectSensor.Close();
Sensor Source Reader Frame Reference Frame
18
Source
• 1データソース• AudioSource,BodyFrameSource,BodyIndexFrameSource…
•複数• OpenMultiSourceFrameReader
this.colorFrameReader = this.kinectSensor.ColorFrameSource.OpenReader();
Sensor Source Reader Frame Reference Frame
19
Reader
• Frameへのアクセスは2通り• Events, Polling
this.colorFrameReader.FrameArrived += colorFrameReader_FrameArrived;
…
void colorFrameReader_FrameArrived(ColorFrameReader sender, ColorFrameArrivedEventArgs args)
{
…
}
Sensor Source Reader Frame Reference Frame
20
Frame Reference
• EventArgsのプロパティ
void colorFrameReader_FrameArrived(ColorFrameReader sender, ColorFrameArrivedEventArgs args)
{
using(ColorFrame colorFrame = args.FrameReference.AcquireFrame())
{
…
Sensor Source Reader Frame Reference Frame
21
Frame
• フレームデータ、メタデータを含む
• フレームを破棄しないと次のフレームを取得できない
void colorFrameReader_FrameArrived(ColorFrameReader sender, ColorFrameArrivedEventArgs args)
{
using(ColorFrame colorFrame = args.FrameReference.AcquireFrame())
{
…
Sensor Source Reader Frame Reference Frame
22
BodyFrameSource
• 0.5m~4.5m
• 25個の関節の位置と向き
• 6人まで認識
•手の状態は2人まで
Microsft Virtual AcademyProgramming Kinect for Windows v2 Jump Start
http://research.microsoft.com/apps/pubs/?id=145347
23
入力デバイスとしてKinectを利用する
• ストアアプリでKinectを入力デバイスとして利用
24
Window
Frame
Page
Window
Grid
KinectRegionKinectUser
Viewer
Page
Frame
Microsoft.Kinect.XamlControlを利用
Window.Current.Content = rootFrame;
を以下のように書き換える
KinectRegion kinectRegion = new KinectRegion();
KinectUserViewer viewer = new KinectUserViewer();
kinectRegion.Content = rootFrame;
viewer.Width = 128;
viewer.Height = 106;
Grid grid = new Grid();
grid.Children.Add(kinectRegion);
grid.Children.Add(viewer);
viewer.SetValue(Grid.VerticalAlignmentProperty, VerticalAlignment.Top);
viewer.SetValue(Grid.HorizontalAlignmentProperty, HorizontalAlignment.Center);
Window.Current.Content = grid;
25
Kinect Studio + Visual Gesture Builder
• ジェシュチャー認識の機械学習プラットフォーム
26
Kinect Studio Visual Gesture Builder
Step1:Kinect Studioで記録
• ジェシュチャーだけならNui Uncompressed Colorは不要
• データの保存場所はFILE→Settings→Rcording File Path
28
Visual Gesture Builderでタグ付け
•新規ソリューションの作成 File→New Solution
• プロジェクトの作成 右クリック→Create New Project
• プロジェクトに撮影データを追加 右クリック→AddClip
• ジェシュチャーの学習方法を指定して、タグ付けを行う
29
Shift+→でジェスチャの領域を選択
領域を選択した状態でValueにTrueを設定
Visual Gesture Builderで学習
• ソリューションは複数のジェシュチャーの集合
• プロジェクトはひとつのジェシュチャー
•右クリック→ビルドで辞書作成
30
ソリューションジェシュチャーの集合
プロジェクトひとつのジェシュチャープロジェクトひとつのジェシュチャープロジェクトひとつのジェシュチャー
.gha単一ジェシュチャー辞書
.gdb複数ジェシュチャー辞書
Build
Build
まとめ
• Kinectは未来のヒューマンインターフェイスデバイス
• Kinectセンサーの概要と事例
•開発の始め方、プログラミングモデル、入力デバイスとしてのKinect
• v2の新機能 Kinect Studio + Visual Gesture Builderのデモ
33
Kinect for Windowsの情報
•本家サイトhttp://www.microsoft.com/en-us/kinectforwindows/
• FaceBook• Kinect for Windows好きの集まり
• Tokyo Motion Control Network
34