memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

Hololens2とAzure Kinectで遊ぶ休日

今年度の研究室の予算で購入しました。

Hololens2は高いですね。。。でも、タイミング的には今しかないと思いますので思い切って購入しました。

さて。こういう製品はUSBケーブルを接続すればすぐに動くというわけにはいかないので。。。セットアップ込でエクスペリエンス?になります。

来年度以降のゼミ生で使用を希望する方がいればぜひ活用していただきたいわけです。

その前に指導する側としてセットアップと開発の勘所ぐらいは抑えておかなければなりません。

あれこれ一段落したので金曜日に自宅に持ち帰ってMacbook Proで開発環境の構築とサンプル動かす程度をやろうとしていました。

Bootcamp ⇒ VirtualboxParallels

どちらもWindowsしか対応していないのでBootcampの環境を整えます。以前、FortniteのためにBootcampを入れていたのでそのまま使いました。

あまり本題とは関係ないのですが、作業ログとして残しておきたいので書きます。Bootcampでやっていたのですが、やはりMac環境もたまに参照しながら環境構築したいと思いまして、Virtualboxで環境を作り始めました。

ただ、BootcampもVirtualboxもとなると。。。Windowsイメージがあちこちにできてしまいちょっと嫌だな。。。と、調べると、BootcampのイメージをVirtualboxで利用できるという情報が!?

ryuta46.com

こりゃいいなと思い環境作ってみたのですが、どうしてもパーティションを認識してくれません。あちこちに「困った」という情報はあるのですが解決できた人はいませんでした。ということで、この記事はGoogleでトップに来ますが現時点ではたぶん無理です(Win10pro + Catailna + VB6.1)。

で、さらにググると、灯台もとくらしで以前使っていたVMWare FusionParallelsでは、標準でBootcampのイメージを利用できるモードがあるって。。。orz

ということで、ParallelsをインストールしてWin10proをいれて環境構築していきました。Parallelsは素晴らしいですね。。。USBの認識もバッチリ、選択肢があまり表立って見えないので初心者向きな気がします。Bootcampで起動することもできるし、そのイメージを利用してMacでも使えます。

ということで、Parallels上で環境構築を開始しました。

Hololens2は明日以降にやります。まず、簡単そうに感じたAzure Kinectを動かそうとしました。

Azure Kinectの環境構築

手順はこちらを参考にしました。

qiita.com

環境構築で色々と入れるものがありますが、サンプルが対応しているUnityでありVSのバージョンを入れる必要があります。記事の通りのバージョンにしましょう。

まず、UnityHubをいれておくといいですね。複数のバージョンのUnityのインストール状態を一括で管理できます。

unity3d.com

まず入れるのはUnityです。VSはUnityが対応しているバージョンをUnityが入れてくれます。Unityのバージョンは「2019.1.2」と書いていますので、以下のアーカイブのページから同じものを探していれます。入れるときにUnityHubというアイコンがありますからそこでいれるとUnityHubに自動で登録されるから便利ですね。

unity3d.com

ダウンロードとインストールで20〜30分くらいかかるかと思います。

続いて、記事に従って、microsoft/Azure-Kinect-Samplesをダウンロードします。GitHubを使ったことがない方が困りますね。。。Codeという緑のボタンを押してZIPでダウンロードします。ダウンロード後は展開して(←Windowsの場合は厄介ですね、ZIPファイルをダブクリすると展開はせず中の閲覧だけできます。面倒なことにならないように右クリして展開しておきましょう。)

github.com

UnityHubを起動し、追加を選択して、ダウンロードして展開したフォルダから以下を選択して開きます。

Azure-Kinect-Samples/body-tracking-samples/sample_unity_bodytracking/

起動したあとは、元記事に従ってください。Open C# Projectを選択して、VSを立ち上げ、NuGetを復元するとかいう操作し、次に、MoveLibraryFiles.batというバッチをダブクリするとUnityのコンソールに表示されたエラーがなくなります。

で。。。シーンを選択して実行してみたのですが、残念ながら、実行時エラーで動きませんでした。今日、ココです。

f:id:ke_takahashi:20201010180025p:plain

で、せめて何か標準アプリみたいなもので動作を確認できないものか。。。と思いまして、
Azure Kinect ビューアーっていうのがあると知りました。インストーラを探すとなかなか難しいのですが、以下にありました。

docs.microsoft.com

フツーにWindowsのインストールをして起動したのですが。。。なぜか動作しない。反応なしです。エラーもでません。もう諦めていたのですが、ParallelsではなくBootcampに切り替えてもう一度やってみると動作しました!!

f:id:ke_takahashi:20201010180038p:plain

素直にWidows環境でやればいいのですが。。。余計なハマり方をしています。はい。


◆翌日追記

日曜というのになかなか時間がとれず試行錯誤することができなかった。でも、わかったことがあったのでとりあえずメモしておきます。

1つは一番大事なことで忘れていたこと。Azure Kinectの箱を開けると横に長い薄い説明書がついています。これを読まなかった。。。ここに大事なことが書いていました。

f:id:ke_takahashi:20201011101510j:plain

Azure Kinect SDKをいれたあとに、まずファームウェアをアップデートしないといけません。これを忘れていました。SDKファームウェアってたぶん対なんですね。なので、まず手動(CMD)でインストールしましょう。

アップデートの仕方は以下に書いています。家電製品のマニュアルなんて読まないからね。。。でも基本ですね。

docs.microsoft.com



で、本題。

結論だけかくと、Azure Kinect SDK Samplesのうち、C++でのコードはMBP+Bootcamp(Windows10pro)でも、だいたい動作させることができた。Unityのバージョン的にはVS2017が自動的にインストールされるのですが、なぜか、サンプルのC++のコードはVS2019のビルド環境を要求しているようです。なので、手動でVS2019をインストールして、個別にソリューションを開けばビルド成功して実行できました。

f:id:ke_takahashi:20201011174252p:plain

ただ。。。もともとやりたかったsample_unity_bodytrackingのサンプルについては、手順通りにやればビルドはできます。これは昨日の試行からOKでした。しかし。。。実行するとエラーがでました。

例外をみるとどうやらPytorch関係でCUDAのあたりで例外が出ているようでした。仕組みを理解しているわけではなくエラーメッセージから想像するだけですが、やはり、指定のGPUが搭載されたマシンで実行しないとダメっぽい気がします。

明日、ゼミ室にGPU付きのWindowsノートマシンがあるので試してみようと思います。とりあえず、Azure KinectについてMBPでできることはここまでのようです。