Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Kinect+Unityで軽率にBody Trackingする

Azure Kinect+Unityで軽率にBody Trackingする

第4回バーチャル学生LTにて発表した資料

にー兄さん

May 09, 2020
Tweet

More Decks by にー兄さん

Other Decks in Programming

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  5. Azure Kinect #とは

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  8. Azure Kinectについてもう少し深く
    従来のKinectよりも軽量かつ小型化された
    Azureと接続→高度な ✝AI✝ による認識性能向

    C++とC#のSDKが配布されている
    価格は47,025円(5/8現在)
    もちろんBody Trackingも使える
    だがUnity用の公式パッケージがない

    View full-size slide

  9. UnityでAzureKinect BodyTracking

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  17. 触ってみた感想

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide