kinect v2を通してmicrosoft技術を考える

27
Kinect v2 を通して Microsoft 技術を考える Microsoft Student Partners Fellow 五十嵐 祐貴 1

Upload: yuki-igarashi

Post on 05-Jul-2015

817 views

Category:

Engineering


0 download

DESCRIPTION

第1回サトヤ勉強会で発表した資料です。

TRANSCRIPT

Kinect v2を通してMicrosoft技術を考えるMicrosoft Student Partners Fellow

五十嵐 祐貴

1

自己紹介•五十嵐 祐貴 ( @bonprosoft )

• Microsoft Student Partners Fellow

•東北大学 工学部

•コンパイラと自然言語処理に興味があります

2

Microsoft Student Partners• Microsoftと一緒に活動したい学生のチーム

•テクニカル職はもちろんマーケティング職もあります

http://www.microsoft.com/ja-jp/education/msp.aspx

3

自己紹介

4

このセッションのゴール• Microsoft技術に興味を持つ

• Microsoft技術を使ってみたくなる

5

まずはデモ• Kinect SDKに付属しているデモをお見せします

6

Kinectとは• Microsoftから発売されているセンサーデバイス

現在はKinect for XboxとKinect for Windowsが発売されている

•人の動きや表情、音声認識などを手軽に扱える

•最近Kinect SDK 2.0が正式リリース

•今回は次世代型Kinect「Kinect for Windows v2」を扱う

7

利用できるセンサー•色情報

解像度は1920×1080

検出可能角度:70°(水平) 60°(垂直)

•赤外線情報解像度は512×424

検出可能角度は色情報と同様

検出範囲は0.5m~4.5m

•指向性マイク

8

取得できるデータ• 骨格情報

• 色情報

• 深度情報

• 赤外線情報

• 表情

• 音声認識

• ジェスチャー認識

etc...

9

v1との変更点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点/人

手のポーズ検出 グーパーのみ グーチョキパー

手指検出 なし 親指と指先のみ

10

v1との変更点

•データの発生、扱いが大幅に変更 v2では内部的にStream設計が実装されている

より見通しの良いコードが書ける

• v1と比べてフレームを細かく取得可能に使いたいデータを宣言できる

•複数のアプリケーションから同時にセンサーを扱うことが可能に

11

Kinect v2の美味しい食べ方• C#/C++はもちろんUnityなどでも使える

• Unityは公式がアセットを出している v1までは用意されていなかった為、非公式のものがあった

12

Kinect v2の調理例• Kinectを用いた作品の例をお見せします

13

Kinect v2を調理してみよう•実際にコーディングをしていきます

14

実装例:検知している人数を表示するプログラム

•センサーが人を検知した場合に、その人数を表示します

15

このプログラムが何に役立つの?•このままでは何の役にも立たない

•この技術と何かを組み合わせて、発展させる必要がある

16

何ができるかを考える• Kinectから検出している人数を取得できた

•この調子で映像も取得できそう

•赤外線映像・人数に関しては暗闇でも検知可能

•今回は防犯システムを構築してみる

17

防犯システム構築に必要なこと例:

• ネットワーク経由でリアルタイムにモニター

• 色情報/赤外線情報を保存

• メール通知

• スマホアプリを作成してプッシュ通知

これらを実現させるにはどうするか?

MS技術を組み合わせることで

簡単に実現できる

18

ネットワーク経由でのモニター• ASP.NET SignalRを使う

リアルタイム・非同期・双方向通信(プッシュや RPC)の機能をWeb アプリケーションなどに容易に実装することができるライブラリ

クライアントはC#やJavaScriptでも実装可能

•今回はこれを用いる

19

ネットワーク経由でのモニター•実装します

20

Microsoft Azure• Microsoftが提供するクラウドプラットフォーム

•数分でWebサイトを構築可能 PythonやPHP、Javaなども動作

GitやDropBoxからのデプロイも可能

•仮想マシンからMedia Service、Machine Learningまで Microsoft Azureを利用することで、非常に様々なインフラを簡単に実現

21

作成したサービスを展開する•実際にAzureへデプロイを行います

22

スマホアプリを作ってPush通知• Mobile Serviceを使うことで非常に簡単に実現

• iOS/Android向けのテンプレートもすでに用意されている

23

チーム開発も簡単に• TFSだけでなくGitも使える

• VS Community Editionを使うことで、より多くの人が恩恵を受けることができる

24

And more…•より多くの方に利用してもらえるようサービス化したい

個人の認証が必要? ASP.NET Identityを使おう

•携帯に電話をかけて通知してほしい Twilioなどを用いて電話をかける?

NuGetを使うことですぐに実装可能

Microsoft技術をうまく組み合わせることで

簡単に実現可能

25

Microsoft Openness• Microsoft技術の一部はGitHubなどで公開されている

TypeScript,SignalR,MobileService,etc…

• Pull Reqなどを投げることで貢献することも可能

26

Microsoftと一緒に• Microsoft技術は様々な技術と共存できる

独自技術ばかりではないよ!

•流行を取り入れていて日々進化している「変化を抱擁せよ」

MS技術を活用することで、より良い開発を!

27