MRが楽しい

MRやVRについて学習したことを書き残す

k4a_mkv2imageでAzureKinectの記録ファイル(*.mkv)からカラー画像とデプス画像を出力する その1(ビルド前の環境構築)

本日はAzureKinectの調査枠です。
AzureKinectの記録ファイル(*.mkv)からカラー画像とデプス画像を出力してみます。
今回はゆるふわUnaさん(@UnaNancyOwen)が公開している以下の簡易ツールを利用しました。
github.com
f:id:bluebirdofoz:20191029224616j:plain

Windows環境でビルドを行ったところ、幾つか手順が必要だったので記事として記録します。
手探りで実施したため、最適手順でないかもしれません点はあしからず。

必要な環境

事前に以下のツールと環境のインストールが必要です。
・CMake
・AzureKinectSDK1.3.0
OpenCV(32bit版)

それぞれ以下の記事に従ってインストールを実施します。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

k4a_mkv2imageのダウンロード

以下のページからk4a_mkv2imageのソースコードを取得します。
今回は Download ZIP でソースコードを取得しました。
github.com
f:id:bluebirdofoz:20191029224607j:plain

ダウンロードした k4a_mkv2image-master.zip ファイルを展開します。
これで k4a_mkv2image のダウンロードは完了です。
f:id:bluebirdofoz:20191029224624j:plain

CMakeでのライブラリ参照を通す

今回、k4a_mkv2imageのビルドはCMakeを利用します。
この際、CMakeでOpenCV、AzureKinectSDKのK4AとK4ARecordのライブラリへの参照を通す必要があります。

OpenCVは32bit版が必要なため、以下のページを参考に32bit版のOpneCVをインストールして下さい。
bluebirdofoz.hatenablog.com
f:id:bluebirdofoz:20191029224639j:plain

CMakeでAzureKinectSDKを参照する

AzureKinectSDKをインストーラでインストールした場合には、参照用のcmakeファイルがありません。
SDKソースコードには含まれているようです)
このため、今回は手動で参照を通しました。
f:id:bluebirdofoz:20191029224646j:plain

最初に参照用の任意のディレクトリを作成します。
今回は D:\AzureKinectSDK\K4A を作成し、ここに Azure Kinect SDK v1.3.0 配下のファイルを全てコピーしました。
f:id:bluebirdofoz:20191029224654j:plain

次にCMakeが参照するcmakeファイルを作成します。
k4aConfig.cmake と k4arecordConfig.cmake ファイルを作成しました。
f:id:bluebirdofoz:20191029224710j:plain

それぞれ内容は以下の通りとしました。
こちらも32bit版を参照する必要があるため、パスをそちら側に通しています。

・k4aConfig.cmake

・k4arecordConfig.cmake

CMakeがK4A、K4ARecordの名前でcmakeファイルを参照できるように、以下の2つの環境変数を設定します。
・K4A_Dir:D:\AzureKinectSDK\K4A
f:id:bluebirdofoz:20191029224825j:plain
・K4ARECORD_Dir:D:\AzureKinectSDK\K4A
f:id:bluebirdofoz:20191029224833j:plain

CMakeの実行

これでCMakeの参照設定が完了しました。
CMakeを実行するため、展開した k4a_mkv2image-master フォルダ配下の k4a_mkv2image フォルダを開きます。
f:id:bluebirdofoz:20191029224840j:plain

この状態でCMakeを行ったところ、エラーが発生したので CMakeLists.txt の内容を一部修正しました。

52行目:target_link_libraries( k4a_mkv2image k4a::k4arecord )
↓
52行目:target_link_libraries( k4a_mkv2image k4arecord::k4arecord )

f:id:bluebirdofoz:20191029224848j:plain

この状態で k4a_mkv2image フォルダを参照する PowerShell 端末を開きます。
f:id:bluebirdofoz:20191029224857j:plain

端末上で以下のコマンドを実行します。

cmake .

f:id:bluebirdofoz:20191029224907j:plain

CMakeが成功すると、k4a_mkv2image.sln ファイルが出力されます。
f:id:bluebirdofoz:20191029224916j:plain

記事が長くなったため分けます。
次はビルドとアプリケーションの実行です。
bluebirdofoz.hatenablog.com