MacBook Pro Retina で Kinect for Windows v2 を認識させる

開発環境

開発マシン
センサーデバイス
  • Kinect for Windows v2 センサー本体(今回はXBOX ONE同梱のものを使用)
  • PC用アダプター(Microsoftストアで売ってます)

事前準備

C++コンパイルできる環境を準備しておく(その他開発に必要なものもインストール)

インストール

OpenKinect/libfreenect2 · GitHub

READMEにある通りに依存パッケージをインストール。

brew update
brew tap homebrew/science
brew install opencv git nasm wget

git clone した後、いくつかファイルを修正する。

./depends/install_mac.sh

ディレクトリ名がおかしいので修正する。

開発環境準備#1

./examples/protonect/

includeを修正

include 修正

ここまででコンパイルまでは通るはず

sh ./depends/install_mac.sh

cd ./examples/protonect/
cmake CMakeLists.txt
make && make install

 実行してみる

./bin/Protonect

RGB画像は取得できるが、IRとDepth(深度)画像は真っ黒。。。

OpenGLDepthPacketProcessor not working on Intel GPUs (Mac/OS X) · Issue #31 · OpenKinect/libfreenect2 · GitHub

Intel Iris でOpenGLDepthPacketProcessorがうまく動いていない様子・・

CPUかOpenCLであれば認識できるようなので、そちらを試してみる。

DepthPacketProcessorの変更

OpenGLDepthPacketProcessor から CpuDepthPacketProcessor または OpenCLDepthPacketProcessor に変更する(packet_pipeline.h)

ついでに処理の重いFilterを切っておく ({opencl,cpu}_depth_packet_processor.cpp)

DepthPacketProcessorの変更

再び実行する

CPUだと15Hzくらい@フル回転

OpenCLの場合は95Hz〜@CPU使用率50%超くらい

f:id:hcresc:20141207191536p:plain

OpenCLであれば他の処理もできそうかな、という感じ