Mac + Python で Intel RealSense D415 を使用する


はじめに

kinectが販売終了になってからしばらく経ちましたが、代替手段として何か良い機材がないかと思っていたところ、Intel RealSense Depth Camera というデバイスが登場したので触ってみました。

できること

  • Intel RealSense Depth Camera D415 のColor画像、Depth画像をpython上で配列取得する。

機材準備

今回使用するRealSenseのモデルはD415とD435が存在し、共にスイッチサイエンスさんから購入可能です。
https://www.switch-science.com/catalog/3632/

D435はD415よりも広角かつグローバルシャッター(カメラや被写体が高速に移動しても歪まない)搭載モデルとなっています。ですが、広角なのはDepthカメラのみで、RGBカメラは同じ画角になっているようです。カラー画像とデプス画像の領域が同じになるようにしたかったので、今回はD415を使用します。

環境

  • MacBook Pro (2.7 GHz Intel Core i5,16 GB 1867 MHz DDR3)
  • macOS Sierra

手順

ここでは、brewでインストールしたpythonを使用します。
(試したところ、macにデフォルトで入っているpythonだと、cmakeの時に正常にpython モジュールが吐かれないことが分かっています)

環境構築

$brew install python
$brew install libusb pkg-config
$brew install homebrew/core/glfw3
$brew install cmake

ソースコードをcloneしましょう。

$git clone https://github.com/IntelRealSense/librealsense.git

まずは、チュートリアルの通りにサンプルプログラムをビルドしてみましょう。

$mkdir build && cd build
$cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false -G Xcode

自分の環境ではcmake時に以下のようなエラーが出ました。

G Xcode
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:4 (project):
  No CMAKE_C_COMPILER could be found.
CMake Error at CMakeLists.txt:4 (project):
  No CMAKE_CXX_COMPILER could be found.
-- Configuring incomplete, errors occurred!

コンパイラの設定が正しくない様子。

$sudo xcode-select --reset

こちらでxcodeのパスをリセットしたら上手く行きました。

pythonモジュールを生成する

pythonモジュールをコンパイルするために、cmake時に以下のようにフラグを立てて実行します。

$cmake ../ -DBUILD_PYTHON_BINDINGS=bool:true                                                               

26 月 1:20:30 
-- Info: REALSENSE_VERSION_STRING=2.10.1
CMake Warning at CMakeLists.txt:561 (message):
  Using libuvc!


-- pybind11 v2.2.1
CMake Error at wrappers/pcl/CMakeLists.txt:20 (find_package):
  By not providing "FindPCL.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "PCL", but
  CMake did not find one.

  Could not find a package configuration file provided by "PCL" with any of
  the following names:

    PCLConfig.cmake
    pcl-config.cmake

  Add the installation prefix of "PCL" to CMAKE_PREFIX_PATH or set "PCL_DIR"
  to a directory containing one of the above files.  If "PCL" provides a
  separate development package or SDK, be sure it has been installed.

ここでエラー
PCL(Point cloud library)が入っていないので入れます。

$ brew install cmake
$ brew install boost
$ brew install eigen
$ brew install flann
$ brew install vtk5 –with-qt
$ git clone https://github.com/PointCloudLibrary/pcl
$ cd pcl
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

このあと、次のようなオプションで無事にコンパイルすることができました。

cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false -DBUILD_PYTHON_BINDINGS=true -DPYTHON_EXECUTABLE:FILEPATH=/usr/local/bin/python  -G "Unix Makefiles"
make
sudo make install

サンプルプログラムは/wrappers/python/examplesに入っています。

$cd librealsense/wrappers/python/examples
$python opencv_viewer_example.py

これでpythonから自由にカラー画像とデプス画像にアクセスできます。