Intel RealSense Depth Camera D435とNuitrackを使って骨格情報検出してみる。

2019.07.16

はじめに

NuiTrackの環境設定とサンプルコードを動かしていきます。

前回の記事(RealSenseの環境構築)と同様にopenFrameworks(C++)から動かせるようにしていきます。

NuiTrackを使うためには、深度センサーを持ったカメラが必要になりますので、今回はIntel RealSenseを使っていきます。

 

Nuitrackとは?

Nuitrackは骨格情報(Full Body Skelton)などを取得することのできる有償のミドルウェアです。

その他にも「ユーザーマスク」「3Dポイントクラウド」「ジェスチャー認識」「顔検出」の情報を取得することができます。

トライアルバージョンは、3分間だけ起動しお試しする事ができます。

windows / linux / androidをサポートしており、起動時のオンラインアクティベーションとオフラインアクティベーションの料金プランが用意されているようです。

また、2019/07/16現在NUITRACK AIという新しいアルゴリズムを使ったプランも現在開発中のようです。

 

環境構築

今回使っていく環境は以下の通りです。

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

IntelRealSense D345とopenFrameworks(C++)を使っていきます。

RealSenseとopenFrameworksのインストールがお済みでない方は、前回の記事「Intel RealSense Depth Camera D435を動かす」をご覧ください。

また、最終的なプロジェクトでopenCVも使いますので、インストールをお願いします。

 

Nuitrackのインストール

公式サイトから、メールアドレスと名前・会社名(任意)を入力して、SDKとサンプルをダウンロードしていきます。

  1. 公式サイトからメールアドレスと名前を送信
  2. 起動までの手順とアクティベーションコードが送信される
  3. メールに記載されるURLからnuitrack-windows-x64.exe を実行する
  4. 任意のパスにダウンロード&インストールする

 

NuiTrackのアクティベーション

  1. PCにRealSenseを接続
  2. <任意のパス>/nuitrack/activation_tool/Nuitrack.exeを起動
  3. アクティベーションコードを入力
  4. テストボタンから起動の確認

※アクティベーションコードには、Your trial activation key:以下の license:XXXX:XXXXXXXXX を入力する。
※インタネットに接続されている必要がある。

 

プロジェクトの作成

アクティベーションが完了したら、openFrameworks(C++)プロジェクトを作成し、C++からユーザーマスクと骨格情報(スケルトン)の取得を試していきます。
 
 
 

OFプロジェクトの生成とライブラリのリンカーの設定

まず、openFrameworksからNuiTrackのSDKを使うために、「Nuitrack SDK」をof_v0.10.1_windows_release/libs/Nuitrack SDKへコピーします。

次にOFプロジェクトの生成とライブラリのリンカーの設定をしていきます。

 

OFプロジェクトの作成

OFプロジェクトをprojectGenerator.exeから新規作成し、ボタン「open IDE」からVisual Studio2017プロジェクトを開いていきます。
 
プロジェクトの名前は、「NuiTrack_test」などとしました。
 

Nuitrackリンカー設定

次に、リンカーの設定をして、NuiTrack SDKにアクセスできるようにしていきます。

デバッグ > XXXXXX のプロパティーを選択し、下記の項目のリンクを設定していきます。

 

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

 

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

 

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

OpenCVのリンカー設定

また、RealSenseからの深度情報を受け取るために、OpenCVも使うので、こちらもリンカー設定していきます。
c/c++ > 全般 > 追加ディレクトリ

 

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

 

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

サンプルコードの作成

スクリプトの方でインクルードの設定をしていきます。
 
ofApp.cpp
ofApp.cpp
 

まとめ

今回は、NuiTrackをopenFramworks(C++)とIntel RealSenseから動かしてみました。ユーザーマスクと骨格情報を取得するサンプルコードを作成しました。今回使ったWindowマシーンでは平均して25fpsくらいを確認する事ができました。