Slide 1

Slide 1 text

Azure Kinect + Unityで 軽率にBody Trackingする 第4回バーチャル学生LT にー兄さん(@ninisan_drumath)

Slide 2

Slide 2 text

にー兄さん@ninisan_drumath 万年外出自粛系大学生 筑波大学情報科学類3年(coins18) リアルタイムCG、Humanoid制御、AR/VRとか好き 最近はもっぱらUnity開発がメイン バーチャル学生LT登壇は初めて(学生LTは4回目くらい?) 久しぶりの5分LTなので自信がない

Slide 3

Slide 3 text

スライド公開します SNSへの投稿(?)も問題ないです!

Slide 4

Slide 4 text

agenda Azure Kinect #とは UnityでAzureKinect BodyTracking 触ってみた感想

Slide 5

Slide 5 text

Azure Kinect #とは

Slide 6

Slide 6 text

Kinectとは? ❖ センサーデバイスのこと ❖ 天下のMicrosoft謹製 ❖ RGB画像、深度、人体検出などができる

Slide 7

Slide 7 text

Kinectとバージョン v1, v2 →Xbox用に作られ、後にWindowsで汎用的に開 発できるようになるが、生産終了した v3 →「Hololens」という名称で発売  現在はHololens2が出ている v4 →「Azure Kinect」という名称で発売  3月には日本での発売も 本日は☝のAzure Kinectについて話します

Slide 8

Slide 8 text

Azure Kinectについてもう少し深く 従来のKinectよりも軽量かつ小型化された Azureと接続→高度な ✝AI✝ による認識性能向 上 C++とC#のSDKが配布されている 価格は47,025円(5/8現在) もちろんBody Trackingも使える だがUnity用の公式パッケージがない

Slide 9

Slide 9 text

UnityでAzureKinect BodyTracking

Slide 10

Slide 10 text

そもそもUnityで使えるのか...? (前述のとおり)Unityの公式BodyTrakcingSDKなんてものはない しかし情報を漁ると色々出てくる →たぶんできそう(本日の軽率ポイント)

Slide 11

Slide 11 text

検証環境 Unity:2018.4.x Azure Kinect SDK:1.4.0 Azure Kinect Body Tracking SDK:1.0.0 これらのセットアップが済んでいることを想定

Slide 12

Slide 12 text

試したリポジトリ curiosity-inc/azure-kinect-dk-unity →BodyTrackingSDKのバージョン違いなのか  Unityがクラッシュしてしまった satoshi-maemoto/Azure-Kinect-Unity-Body-Tracker →ちゃんと動いた、がコードリーディングで挫折(クソザコ)  またチャレンジしたいところ microsoft/Azure-Kinect-Samples →よくみたら公式サンプルあるやんけ →普通に動いたしコードも簡単なので採用

Slide 13

Slide 13 text

実行環境の構築 READMEに書いてある通りプロジェクトをVSで開き、 コンソールからnugetパッケージをインストする 注意1:ディレクトリ階層が深すぎるとインストールに失敗する 注意2:UnityパッケージのNuGetForUnityは使えない

Slide 14

Slide 14 text

実行環境の構築 あとはバッチファイルを実行(dllの移動など)をすれば実行できる!コロンビア!

Slide 15

Slide 15 text

プロジェクト概観 main.csをいじればviewerくらい 簡単に作れそう UnityEngineとSystem.Numerics にVector3が存在するので 相互変換が必要そう Bodyも複数名前空間に存在

Slide 16

Slide 16 text

実はビルドしたサンプルは正常終了しなくて... ビルドディレクトリにcublas_64.dllとcudart_64.dllを含め ると動作する だが終了時にクラッシュする バックグラウンドプロセスを処理できているように見える →実際はプロセスが終了する前にアプリが落ちる →Azure Kinectのコネクションが残る厄介なバグ →Unityエディタでは起こらないのでもっと厄介 ビルドしたアプリがクラッシュするDaiGo

Slide 17

Slide 17 text

触ってみた感想

Slide 18

Slide 18 text

v2と比べていいと思ったところ ● コンパクトで見た目が可愛い(カラバリとかほしい)(諸説あり) ● v2のようにトラッキングが外れたときにボーンが破綻しない ● 手が体の前にあっても割と認識してくれる →精度向上は微妙、みたいな意見も聞いたことあるけど自分的には ● 前後判定ができる→鼻や目の位置が取れる ● ボーンの種類が変わった→数も増えたしchestのボーンがある

Slide 19

Slide 19 text

要望 Unity用のBodyTrackingパッケージが欲しい レコードデータをアプリに流せる機能が欲しい →v2のときにはKinect Studioで実装されている マウントホルダー的なものが欲しい(すでにある?) →小さいのでディスプレイに着けても負担が軽そう

Slide 20

Slide 20 text

ご清聴ありがとうございました