はじめに
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から自由にカラー画像とデプス画像にアクセスできます。