Edited at

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


はじめに

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


できること


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

スクリーンショット 2018-04-08 22.49.47.png


機材準備

今回使用する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

スクリーンショット 2018-04-08 22.49.47.png

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