Azure Kinect DK:Body Tracking SDKの実行環境をBootCampで構築する


はじめに

BootCamp + eGPUでAzure Kinect Body Trackingを実行する環境を構築しました。
構築から実行までの方法について紹介します。

※ Appleによると、BootCampでのeGPU利用は公式では認めておらずサポートされていません。(2020/4/5現在)
構築される方は自己責任でお願いします。

背景

  • Azure Kinect Body Trackingを”まともに”利用するには、CUDAが実行可能なNVIDIA製のGPUが必要
  • 自分はMacしか持っておらず、現時点でiGPUはAMDかIntelの内臓チップしか選べない
  • Body TrackingはCPUだけでも動きますが、私の環境ではFPSが出ず使い物にならない

ということで、eGPUを使って解決する!

環境

eGPU(NVIDIA) + BootCampの環境を構築する

環境構築

準備

Macに外部機器が接続されている場合、全て外しておいてください。
何かしら接続されていると、この後の工程でクラッシュする場合があります。

eGPUを接続して、NVIDIAのドライバをインストール

  1. eGPUを接続せずに、Windowsを起動します
  2. Windows起動後、サインインしてデスクトップを表示します
  3. eGPUをMacに接続します。(MacとeGPUとの接続は、Thunderbolt3ケーブルを使用します)
  4. ドライバーインストールのダイアログが表示されるので、指示に従いドライバをインストールします
  5. ドライバインストール後、デバイスマネージャを開き、インストールしたばかりの「NVIDIA Geforce GTX1050 Ti」を無効にします(警告バッチがついている場合がありますが、気にしない...)
  6. Windows 10をシャットダウンします。

正しく認識されるか確認する

  1. eGPUと外部ディスプレイ、eGPUとMacを接続する
  2. Macの電源を入れて、Windows10を起動する
  3. デバイスマネージャを開き、「NVIDIA Geforce GTX1050 Ti」を有効にすると、外部ディスプレイにデスクトップが表示されます 無事、表示されました。

Windowsをシャットダウンする場合

eGPUは使用するときは有効に、使用しないときは無効にすると、安全な気がします。
なので、自分はデバイスマネージャの「NVIDIA Geforce GTX1050 Ti」を無効にしてから、Windowsをシャットダウンするようにしています。

Azure Kinect DKを接続して、Body Trackingの実行確認

Body Tracking SDKをインストール

  1. MSのサイトよりSDKをダウンロードします。
  2. SDKをインストールします。

Azure Kinect Body Tracking Viewerを実行

  1. Azure Kinect DKをeGPU側のUSBポートに接続
  2. Azure Kinect Body Tracking Viewerを実行します (CUDAの実行環境が正しく構成されていない場合は、Viewerは起動しません)
$ <SDK Installation Path>\tools\k4abt_simple_3d_viewer.exe


動きました!
FPSも出てますね。

気づいた点・注意点など

  • 参考にしたサイトではiGPUを無効にする必要があるとなってましたが、自分の環境では必要ありませんでした
  • 外部機器がUSB経由でMacに接続された状態でセットアップすると、クラッシュや強制再起動などが多発しました
  • 関係があるかわかりませんが、、、MacBookのThunderboltポートの場所によってはうまくいかないこともあるようです (自分は左側のポートを使っています)