Azure Kinect SDK を (まだ開発中のライブラリを使って)C# で使う

まだ開発中みたいですが、一応C#用のラッパーなプロジェクトができてます。

ビルドの仕方

  1. GitHubのfeature/csharpブランチをとってきます。
  2. Azure Kinect SDKのwindows-desktop用バイナリがあるパスを K4aBinaryDirectory 環境変数に設定します。
    image
  3. src\csharp フォルダーにあるk4a.propsファイルの中身からImport Project要素だけ残してバッサリ消します。(※そのままだとK4aBinaryDirectoryにファイルをコピーしようとするので。SDKからビルドするような人であれば環境変数のパスをそっちに合わせておけばアクセス拒否なエラーとかはないでしょうけど)
  4. ソリューションを開いてビルドします。WPFならMicrosoft.Azure.Kinect.Sensor.Examples.WPFViewerをビルドすればだいたいいける。ただ出力パスが変になってるかもしれないのでプロジェクトのプロパティを開いて適宜修正しましょう。

だいたいこんな感じでとりあえずビルドできます。なおSDKがx64用のアセンブリになってるはずなのでビルド時はx64にしましょう。

とりあえずEXEが出来上がるので動作確認したかったけど実機がないので試せません。(mkvファイル使ったPlaybackが簡単だったらいいんだけどエミュレーションしてくれるわけじゃないので面倒くさい)
なおC#用のラッパーなSDKはnetstandard2.0みたいなので.NET Coreでもいけるんじゃないかな。まだ試してないけど。

Kinect v2 Driver 2.2.1608.2000

中村さんに教えてもらったのですが新しいドライバーが降ってきたようです。(※ただしこちらのレジストリの設定をしてる場合のみ=まだPreviewな感じ?適用等は自己責任で。)

image

というわけで2.2.1608.2000になりました。v2.2系で何ができるかというと、こちらのBlogの通りUWP内でRGBカメラとして利用できます(Windows 10 Anniversary Updateだけかも)。例えばCognitive Serviceを使ったUWPのサンプルアプリ内でカメラソースとして利用できます。Windows Helloでも利用できます。

image

あと通常のWebカメラとしても使えるので、Skypeなどのアプリケーションからも利用できます。

image

これでいくつもカメラぶら下げなくて良くなりそうです!
あとはKinect SDKがアップデートされるのと、UWP内でIRなどのカメラソースも利用できると嬉しいですねぇ。

Kinect for Windows SDK v1.5

でてますよ!

リリースノート / 公式Blogはこちら

いろいろドキュメントもあるので参考に。

ざっくり更新内容としては

  • Nearモードでスケルトントラッキングが可能に
  • 上半身のみのスケルトントラッキング(Seatedモード)
  • Face Tracking
  • Speech各国語対応
  • Kinect Studio
  • 関節(Joint)の角度取得

サンプルもいろいろ追加されたりしてます。

参考:「Kinect for Windows SDK v1.5」がリリースされています – かおるんダイアリー

プロ生@大阪でしゃべってきました

というわけでしゃべってきました。

4/21 プログラミング生放送勉強会 第15回@大阪 [Windows 8, JavaScript, Azure, Kinect 他] #pronama

当日はいろいろ楽しかったです。おいらは凄くざっくり適当なWindows AzureとKinectの概要と連携するようなデモしました。

デモネタ的には

  • Kinect for Windows SDKのサンプル紹介
  • Kinectで地球まわす → Kinect for Windows SDK で動かす KinectEarthMove をV1.0に対応してみました を参照
  • Kinectで取得したスケルトンの情報をCloud9IDEで作ったNode.js+WebSocketなアプリでみんなで共有
  • MikuMikuCaptureでクラウディアさんを表示させてKinectでモーションキャプチャしてWebカメラとして出力したものをExpression Encoder 4 SP2の入力ソースにしてWindows Azure上のLive Smooth Streamingでライブ配信

Kinectのスケルトン情報をWebSocketで共有するCloud9IDEのソースは AzureFan さんのチャットアプリを勝手に流用させて頂きました。ありがとうございます。仕組み的には単純で各ジョイントの位置情報をJSONにしてWebSocketでサーバー側に送信して受け取った内容をクライアントにPushしてCanvasに描画、というものです。本当はWindows Azure連携という感じにしたかったのですが、Cloud9IDEからWindows Azureにデプロイできず…(たぶんWindows Azure側の管理証明書の数が多すぎてエラーになった?)

ちょっとHTML5で描画させるコードが適当すぎて重い感じでしたが…

あとLive Smooth StreamingのデモもPCスペックのせいか回線のせいか、事前にやったときはうまく行ったんですが上手くライブ配信できず…エラーにはならないけど実際にSilverlightなクライアントで参照することはできませんでした。。無念。

あと時間が余ったのでKinectの深度情報を表示するアプリをライブコーディングで1からやったり。

セッションのスタンスがあくまで概要、かつ検索すればわかるような部分はスルーしました。正直KinectはかおるんさんのBlog見て頂いたほうが詳しいですはい。

一応PPTもあげておきます。生ものなのとだいぶ端折ってるので、資料としての価値はあまりないなぁ…と反省しつつ。

まぁ楽しんで頂けて且つ少しでもWindows AzureとKinectのことを知っていただけたら幸いです。

プロ生@大阪 & Windows Developer Days

今週末および来週以下のイベントで登壇します。

4/21 プログラミング生放送勉強会 第15回@大阪 [Windows 8, JavaScript, Azure, Kinect 他] #pronama

プロ生はWindows AzureとKinectです。すごく浅いところを喋ります。ネタ思案中。

 

Windows Developer Days

こちらは4月24日~25日にあるMicrosoftのイベントです。2日目(25日)の SP-011 Windows 8 と Azure で更に広がる VOCALOID の世界 というブレイクアウトセッションで、ボーカロイドの父、劔持さんと一緒に登壇します。Day 2のキーノートが先にあるので、そちらも是非!