7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AzureKinectで"sample_unity_bodytracking"を動かすまでのお話

Last updated at Posted at 2021-08-30

aaa.png

この記事ではAzure Kinect(Kinect v2)を使用して公式のUnityサンプルシーンを動作させるまでを紹介します。

Azure Kinectを使用してUnityでボディトラッキングを使用する機会があったので
公式サンプルを動作させるまでの手順を記事に残そうと思います。

#####実行環境

  • Windows10 Home

  • RTX2070

  • corei7

  • Unity2019.1.2(公式サンプルが開発されたバージョン)

  • Visual Studio 2019

  • Azure Kinect SDK 1.4.0

  • Azure Kinect BodyTracking SDK 1.1.0

  • Azure Kinect DK Firmware

項目 各種
RGB camera firmware 1.6.108
Depth camera firmware 1.6.79
Depth config file 6109.7
Audio firm ware 1.6.14
Build Config Production
Certificate Type Microsoft

#目次

  • Azure Kinectのセットアップ

  • Azure Kinect SDKを準備

  • Azure Kinect BodyTrackingを準備

  • ファームウェアの更新

  • 公式のサンプルシーンを動作

  • 動かない場合の修正

  • おわりに

  • 参考になった記事

Azure Kinectのセットアップ

Azure KinectはPCのUSB3.0と電源に接続してください。
IMG_0414.jpg
認識されなければUSB3.0に挿入しているか確認しましょう。
また、type-cを延長USB等を介して接続すると認識されにくいため、type-cはPCと直結しましょう。

##Azure Kinect SDKを準備
次にAzure Kinect SDKを入手します。
筆者は v1.4.0 をおすすめします。(最終的に動いたバージョンなので...)

インストール後にAzure Kinect Viewerというアプリケーションが追加されているはずなので、起動してみましょう!
r1.png

こんな感じに映ります。
r2.png

##Azure Kinect BodyTracking SDKを準備
次にAzure Kinect BodyTracking SDKを入手しましょう。
筆者はv1.1.0を使用しました。msiをクリックするとダウンロードされます。

インストール後にAzure Kinect BodyTrackingというアプリケーションが追加されているはずなので、起動してみましょう!
r3.png

このようにボーンを認識し、クリック時にマウスを動かすことで視点を変えることができます。
r4.png

以下のサイトを参考にKinectのファームウェアを更新してください。

##公式のサンプルシーンを動作
では、いよいよ本題に入りましょう!
私自身いろいろな記事やサイトを参考にしましたが、どれも動作しなかったため原因と解法をまとめつつ紹介していきます。

まずは、GitHubからマイクロソフトが提供しているサンプルを入手します。
*筆者は.zipで入手しました。

UnityHubを起動し、[リストに追加]から
Azure-Kinect-Samples-master\body-tracking-samples\sample_unity_bodytracking
を追加します。

r6.png

Unityを起動するとエラーだらけですが正常です。
r7.png

次にvisual studioでmain.csを開きます。
r8.png

ソリューションエクスプローラーから[NuGetパッケージの復元]を選択します。
r9.png
完了後は下ウィンドウにメッセージが表示されます。
r10.png
Unityへ戻りShow in Explorerからプロジェクトのルートディレクトリへ移動し、MoveLibraryFilesパッチを実行します。
r11.png
実行すると必要なファイルを移動してくれます。
しかし、これだけではいくつか不足しているため手動で追加します。

先ほどのルートディレクトリにいずれもProgram Files\Azure Kinect Body Tracking SDK\から、

cudnn_cnn_infer64_8.dll
cudnn_ops_infer64_8.dll
cuff64_10.dll

の3つを追加してください。
r12.png

Unityへ戻り、SceneフォルダからKinect4AzureSampleSceneに飛びます。
実行して、Kinectの前に立つと赤い棒人間が出てくるはずですが、代わりに一番下のログに

catching exception for background thread result = K4A_RESULT_FAILED
UnityEngine.Debug:Log (object)

と出てきてしまいました。
r15.png

人によってはここまでで実行できるかもしれませんが、以下は私みたくここまでやって出来ないときの修正について書いていきます。

##動かない場合の修正
では、直していきましょう!
ScriptフォルダからSkeletalTrackingProvider.csの46行目の

SkeletalTrackingProvider.cs
using (Tracker tracker = Tracker.Create(deviceCalibration, new TrackerConfiguration() { ProcessingMode = TrackerProcessingMode.Gpu, SensorOrientation = SensorOrientation.Default }))

上記のコードを...

SkeletalTrackingProvider.cs
using (Tracker tracker = Tracker.Create(deviceCalibration, new TrackerConfiguration() { ProcessingMode = TrackerProcessingMode.Cpu, SensorOrientation = SensorOrientation.Default }))

Cudaがすでに導入されている場合は以下のように書くこともできます。

SkeletalTrackingProvider.cs
using (Tracker tracker = Tracker.Create(deviceCalibration, new TrackerConfiguration() { ProcessingMode = TrackerProcessingMode.Cuda, SensorOrientation = SensorOrientation.Default }))

Unityで実行してみると...

r16.png

今度はちゃんと表示されました!

ちなみに.Cudaはインストールしていれば使えます。手順はこちらのサイトでご確認ください。

#おわりに
Unityでデバイスを使用するのは初めてで解決するまでに、とても時間が掛かかりました。
サンプルを動かせたときの達成感はすごかったです。

#####解決のヒントになった記事やサイト
https://github.com/microsoft/Azure-Kinect-Sensor-SDK/issues/1600

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?