Post on 16-Jul-2015
~MVP Community Camp 2015~
続・Kinect v2を通してMicrosoft技術を考える
五十嵐祐貴(いがらしゆうき) @bonprosoft
Microsoft Student Partners Fellow,サトヤ仙台
せっかくなのでAzure を使って
つないじゃおう☆彡
~MVP Community Camp 2015~
東北と北陸を Kinect & ASP.NET & Azure で接続してみる
日本マイクロソフト株式会社
井上章
MSP Fellow, サトヤ仙台
五十嵐祐貴
Demo …
Kinect v2 + Unity + ASP.NET + Azure
Microsoft
Azure
仙台と北陸をつなぐ仕組み
多様化するデバイス
マルチデバイス (PC, Tablet, Smartphone ...)
クロスプラットフォーム
IoT (Internet of Things)
不可欠なWeb 技術
HTML, CSS, JavaScript, HTTP, REST ...
クラウド環境の普及と活用
スケーラビリティとアベイラビリティ
ビッグデータ分析
Productivity Future Vision近未来の IT, Cloud, Web ...
~MVP Community Camp 2015~
続・Kinect v2を通してMicrosoft技術を考える
五十嵐祐貴(いがらしゆうき) http://bonprosoft.com/
Microsoft Student Partners Fellow,サトヤ仙台
Kinect v2の魅力を理解する
Microsoft技術に興味を持つ
Microsoft技術を使ってみたくなる
このセッションのゴールGoal of this Session
Kinectとは
• モーションセンサーデバイス
• 全身の骨格や音声を手軽に扱える
• Kinect for Windows v2とSDK2.0
• 色センサー
• 赤外線センサー
• 指向性マイク
http://kinectforwindows.com/
骨格情報
色情報
深度情報
赤外線情報
表情
音声認識
ジェスチャー認識
etc...
取得できるデータいろいろ
v1とv2の違いKinect v1 Kinect v2 Preview
色 解像度 640x480 1920x1080
深度解像度 320x240 512x424
認識範囲 0.8m~4.0m 0.5m~4.5m
検出角度水平 57度 70度
垂直 43度 60度
マイク入力 4つのマイクアレイ 4つのマイクアレイ
チルトモーター あり なし
最大骨格検出人数 2人 6人
関節数 20点/人 25点/人
手のポーズ検出 グーパーのみ グーチョキパー
手指検出 なし 親指と指先のみ
Demo …
Kinect v2 Samples
ブラウザからリアルタイムに監視できる防犯カメラを作成
Kinectで得られた情報をクラウドへ(Kinect as IoT?)
Kinectのセンサー検知状況をSignalRでAzureへ送信
人を検知したら色情報と赤外線情報を送信
メール通知やプッシュ通知などはクラウドで処理
.NETやクラウドに近い話題
第1回サトヤ勉強会
Kinect v2でジェスチャー認識
任意のジェスチャーを学習させてアプリに組み込む
今回の内容
ポーズ (Discrete gesture)
モーション (Continuous gesture)
ワンポイント
モーションには複数のポーズ(状態)が含まれる
2種類のジェスチャー
Demo …
Kinect v2 Gesture Sample
どの部位が影響しているかを人間が考え、コードを組む方法(ヒューリスティック)
ジェスチャーを含む動画を機械に与えて学習させる方法(機械学習)
Kinect v2でジェスチャーを認識する方法
コードが複雑にならない
適切なアノテーションを付与すれば、学習データが増えるごとに精度が向上する(傾向にある)
複数の観点からデータを考慮し、素性の影響度がわかる
ヒューリスティックな手法を用いる場合にも便利
ジェスチャー認識に機械学習を用いるメリット
1. 学習対象となるジェスチャーを含むクリップの録画
2. Visual Gesture Builder(VGB)を用いたアノテーション
3. VGBを用いたモデルの評価
ジェスチャーの学習に必要な3ステップ
Kinect Studioを用いて録画
加工済みデータ(.xef)とRAWデータ(.xrf)の違い
骨格情報は機械学習により算出
将来的な算出アルゴリズムの変更による影響
RAWデータで記録し、学習時点で骨格情報を算出することで対応可能(KSConvertで検索)
RAWデータのサイズは非常に大きい
大規模なライブラリの作成などを行う場合はRAWで記録することがおすすめ
クリップの録画
ウィザード形式で学習設定を行うことが可能
学習対象となる部位、学習ジェスチャーの特徴(Symmetry,Left/Rightなど)
ポーズのアノテーション
TrueかFalseの2値分類
モーションのアノテーション 先にモーションを構成するポーズのアノテーションを行う
複数のポーズを組み合わせて、その状態を0から1の間にマッピングを行う
VGBを用いたアノテーション
学習時の素性の貢献度
どの部分が学習に影響したかを知ることができる
学習したモデルを用いて残りのクリップを自動タグ付け
結果に問題があるようであれば、クリップをアノテーションフォルダへ移動
Live Preview機能
VGBを用いたモデルの評価
Demo …
Kinect v2 Visual Gesture Builder
Kinect v2を通してMicrosoft技術を考える
Kinectとの付き合い方
• Kinectは開発者の可能性を広げるツール
• 目的を実現するための強力な手段
• 背景として機械学習をはじめとする
高度な技術が支えている
• Kinect + { Azure , Unity , ML , … }
• 開発者に更なる可能性http://kinectforwindows.com/
Microsoftは開発者を支援するための多くのツールを公開
開発者に必要な技術力の敷居を下げ、開発の可能性を高める
近年のMicrosoft技術は様々な技術と共存可能
「Microsoftの技術は本当に時代遅れですか?」
Microsoftと一緒に
Direction of Visual Studio and .NET
.NET の今後Future of .NET
Next gen JIT (“RyuJIT”)
SIMD (Data Parallelization)
ランタイム コンパイラー.NET Compiler Platform (“Roslyn”)
Languages innovation
BCL and PCL
Entity Framework
ライブラリ
Visual Studio Online
Visual Studio
.NET
全てのアプリケーション開発のために
Microsoft技術を活用してより良いコードライフを