Intel RealSense Depth Camera D435を動かす

2019.06.27

Intel RealSense Depth Camera D435を動かす

今回は、深度カメラのIntel RealSense Depth Camera D435をopenFrameworks(c++)から動かして行きたいと思います。

 

RealSenseとは?

まず、Intel RealSense Depth Camera D400シリーズについて簡単に説明していきます。

このカメラは、深度計測ができるステレオビジョンの深度カメラで、通常のwebカメラでも取得できるRGBの情報に加えて、物体との奥行き(つまり、深度情報)を取得することができます。

今回はRealSense Depth Camera D435を使って、RGBの情報と深度情報をopenframeworks(C++)で扱えるようにしてみます。

 

環境構築

まずは、環境構築をしていきましょう。
今回試した環境は、以下になります。

  • Windows 10 Pro
  • CPU: Intel i7 
  • Ram: 32 GB
  • GPU: NVIDEA GTX 1070

公式のドキュメントを参考に、

  1. こちらのページ GitHub*から最新のリリースをダウンロードします
  2. USBを接続し、RealSense とPCを繋ぎます
  3. ダウンロードしたら、RealSense.Viewer.Portable.exe
  4. ダブルクリックで起動します
  5. Viewerの左側のスイッチでStreoカメラとRGBカメラを起動できます


また、今回の目的はC++で動かして行く事なので、openFrameWorks v0.10.1のセットアップがお済みでない方は、こちらを参考にセットアップができると思います。

また、画像解析を用意に行う為、openCVのセットアップも行いました。
今回は、バージョンは3.4.1をイントールしました。

 

コーディング

まずは、公式のサンプルプログラムを参考にopenFrameworksでプロジェクトを作っていきます。
ProjectGeneratorからプロジェクトを生成し、IDEから起動してください。

 

SDKの読み込み

今後の取り回しをよくする為に、Intel RealSense SDK 2.0を以下のフォルダにコピーします。

 

OFプロジェクトの作成

プロジェクトジェネレータからopenFrameworksのプロジェクトを生成し、IDEから起動します。

 

リンカー設定

続いて、リンカーの設定をしていきます。
デバッグ > XXXXXX のプロパティーを選択し、以下のパスを追加していきます。先ほどSDKを置いた場所のパスを追加していきます。

 

c/c++ > 全般 > 追加ディレクトリ

 

リンカー > 全般 > 追加ライブラリディレクトリ

 

リンカー > 入力 > 追加依存ファイル

 

 

コードの作成

次に、コードを作成していきます。

まず簡単なテストの為に、画像情報の中心にある対象物の深度(get_distance)を取得し、円の大きさに反映させるプログラムを書いていきます。

以下全体のソースコードです。

ofApp.h

 

ofApp.cpp

 

まとめ

今回はIntel RealSense Depth Camera D435から深度情報を受け取るサンプルコードから動かしてみました。
こちらのコードで試した限りだだいたい0.8mから2.8m程度の範囲でオブジェクトの認識ができるという形でした。