Azure Kinect DKが発売されたので(日本ではまだ)そろそろSDK周りも準備しておこうかなと思います。Azure Kinect DKについては以下の公式サイトをどうぞ。
Azure Kinect DKをセットアップするにはこちらを見ると簡単です。
本体は無いので、Setup Hardwareはスキップして()、SDKのダウンロードとインストールを行います。
SDKのインストール
Azure Kinect DKからLinux環境でも動作するので、環境に応じてインストールしましょう。Windows環境ならMSIインストーラー(ver1.1.0)があります。
インストール先のSDKフォルダーにヘッダやlib、それからいくつかのツールがインストールされます。
- AzureKinectFirmwareTool.exe はFirmware確認・Update用。
- k4aviewer.exe … Azure Kinect Viewer。
- k4arecorder.exe … Azure Kinect DK recorder。
ほんとは実機をつないで動作確認…と行きたいところですがとりあえずk4viewer.exe (Azure Kinect Viewer)を使ってみます。
No Available Devicesが悲しい。
公式にサンプルの保存データ (Azure Kinect Office Sample Recordings)があるのでとりあえずそちらをダウンロードして、Open Recordingからダウンロードしたmkvファイルを開いてみます。
デバイスのFirmwareのUpdate
Firmwareアップデートは専用ツールで行います。
Body Trackingについて
今のところBody Trackingは別SDKです。
どうもCUDAやcuDNNを使っているようで、Body Tracking動かそうと思うとNVIDIA GPUがホストGPUとして必要な様子。。うーむ。
SDKのビルド
SDKのソースはGitHubにあります。
ビルド方法はdocs/building.mdに書いてあるので基本的にその通りにすればOKです。
Windows上で行う場合、Visual Studio 2017(Visual Studio 2019でもいけました)とPython3があればOK。CMakeなどはVisual StudioのコンポーネントでC++デスクトップ開発などドキュメント通り追加しておけばインストールされます。
ビルドは「x64 Native Tools Command Prompt for VS 2019」を起動してソースフォルダーにbuildフォルダを作り、そこでcmake .. -GNinjaを叩きます。準備が終わったらninjaが良しなにしてくれるので、ninjaを実行してビルドします。
特に問題ないはずですがbuild\binフォルダーに一通りファイルができあがります。
これで必要に応じて最新に追従できますね。
なおLinux用のビルド環境なDockerイメージ(dockerfile)が用意されているので、buildimage.batとrunimage.batを実行してコンパイル用Dockerイメージを起動後、Visual StudioからDockerイメージに接続してビルドできます。専用環境を用意するほどでもなければこちらのほうがお手軽ですね。
という感じでぼちぼち環境準備し始めたところです。(そのうちこなれてこんな手間はかけなくても良くなるはず)
According to docs / building.md, I failed according to his method.
Start the “VS 2017 x64 Native Tools Command Prompt”, create a build folder in the source folder, and then click on cmake .. -GNinja
c:\temp\Azure-Kinect-Sensor-SDK\build>cmake .. -GNinja
— Setting build type to ‘RelWithDebInfo’ as none was specified.
— The C compiler identification is MSVC 19.16.27032.1
— The CXX compiler identification is MSVC 19.16.27032.1
— Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe
— Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe — works
— Detecting C compiler ABI info
— Detecting C compiler ABI info – done
— Detecting C compile features
— Detecting C compile features – done
— Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe
— Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe — works
— Detecting CXX compiler ABI info
— Detecting CXX compiler ABI info – done
— Detecting CXX compile features
— Detecting CXX compile features – done
CMake Error at extern/azure_c_shared/CMakeLists.txt:14 (add_subdirectory):
The source directory
C:/temp/Azure-Kinect-Sensor-SDK/extern/azure_c_shared/src
Does not contain a CMakeLists.txt file.
CMake Error at extern/azure_c_shared/CMakeLists.txt:20 (add_library):
Add_library cannot create ALIAS target “azure::aziotsharedutil” because
Target “aziotsharedutil” does not already exist.
CMake Error at extern/glfw/CMakeLists.txt:13 (add_subdirectory):
The source directory
C:/temp/Azure-Kinect-Sensor-SDK/extern/glfw/src
Does not contain a CMakeLists.txt file.
CMake Error at extern/glfw/CMakeLists.txt:18 (add_library):
Add_library cannot create ALIAS target “glfw::glfw” because target “glfw”
Does not already exist.
CMake Error at extern/googletest/CMakeLists.txt:5 (add_subdirectory):
The source directory
C:/temp/Azure-Kinect-Sensor-SDK/extern/googletest/src
Does not contain a CMakeLists.txt file.
CMake Error at extern/googletest/CMakeLists.txt:10 (add_library):
Add_library cannot create ALIAS target “gtest::gtest” because target
“gtest” does not already exist.
CMake Error at extern/googletest/CMakeLists.txt:11 (add_library):
Add_library cannot create ALIAS target “gtest::gmock” because target
“gmock” does not already exist.
CMake Error at extern/libebml/CMakeLists.txt:10 (add_subdirectory):
The source directory
C:/temp/Azure-Kinect-Sensor-SDK/extern/libebml/src
Does not contain a CMakeLists.txt file.
CMake Error at extern/libebml/CMakeLists.txt:15 (add_library):
Add_library cannot create ALIAS target “ebml::ebml” because target “ebml”
Does not already exist.
— Looking for a ASM_NASM compiler
— Looking for a ASM_NASM compiler – NOTFOUND
CMake Warning at extern/libjpeg-turbo/CMakeLists.txt:15 (message):
NASM assembler not found – libjpeg-turbo performance may suffer
CMake Error at extern/libjpeg-turbo/CMakeLists.txt:24 (add_subdirectory):
The source directory
C:/temp/Azure-Kinect-Sensor-SDK/extern/libjpeg-turbo/src
Does not contain a CMakeLists.txt file.
CMake Error at extern/libjpeg-turbo/CMakeLists.txt:27 (target_include_directories):
Cannot specify include directories for target “turbojpeg-static” which is
Not built by this project.
CMake Error at extern/libjpeg-turbo/CMakeLists.txt:34 (add_library):
Add_library cannot create ALIAS target “libjpeg-turbo::libjpeg-turbo”
Because target “turbojpeg-static” does not already exist.
CMake Error at extern/libmatroska/CMakeLists.txt:15 (add_subdirectory):
The source directory
C:/temp/Azure-Kinect-Sensor-SDK/extern/libmatroska/src
Does not contain a CMakeLists.txt file.
CMake Error at extern/libmatroska/CMakeLists.txt:20 (add_library):
Add_library cannot create ALIAS target “matroska::matroska” because target
“matroska” does not already exist.
CMake Error at extern/libsoundio/CMakeLists.txt:9 (add_subdirectory):
The source directory
C:/temp/Azure-Kinect-Sensor-SDK/extern/libsoundio/src
Does not contain a CMakeLists.txt file.
CMake Error at extern/libsoundio/CMakeLists.txt:11 (target_include_directories):
Cannot specify include directories for target “libsoundio_static” which is
Not built by this project.
CMake Error at extern/libsoundio/CMakeLists.txt:15 (target_compile_definitions):
Cannot specify compile definitions for target “libsoundio_static” which is
Not built by this project.
CMake Error at extern/libsoundio/CMakeLists.txt:18 (target_compile_definitions):
Cannot specify compile definitions for target “libsoundio_static” which is
Not built by this project.
CMake Error at extern/libsoundio/CMakeLists.txt:29 (add_library):
Add_library cannot create ALIAS target “libsoundio::libsoundio” beca