NuiTrack SDK Sample Program for RealSense D400 series

What is NuiTrack?

NuiTrack

NuiTrackは3DiVi社が開発している人物の姿勢推定をするためのミドルウェアです。
大きな特徴はIntel RealSense D415/D435、ASUS Xtion2、Orbbec Astraなど多くのセンサーに対応していることです。
現在販売されているセンサーで手軽に利用できる姿勢推定ミドルウェアとして有力な選択肢になっています。

NuiTrackの主な機能は以下の通りです。

  • User (人物領域)
  • Skeleton (人物姿勢)
  • Hand (ハンドポインター)
  • Gesture (ジェスチャー認識)

License/Price

NuiTrackのライセンスはセンサーごとに必要になります。(License/Sensor)
また、ライセンスの販売形態は年間ライセンス(Annual License)29.99USDまたは永久ライセンス(Perpetual License)59.99USDがあります。

ライセンスがない場合、試用版(Trial License)として動作します。
試用版では人物の領域検出や姿勢推定などのミドルウェア依存の機能が3分まで動作します。その他の機能制限はないため、十分に検討してからライセンスを購入することができます。

NuiTrack SDK

フォームにメールアドレスと名前を登録するとSDKをダウンロードすることができます。対象環境がWindows x64の場合は以下の2つのファイルをダウンロードします。

  • NuiTrackSDK.zip
  • platforms/nuitrack-win64.zip

NuiTrackSDK.zipに開発に必要なヘッダやライブラリ、nuitrack-\<platform>.zipに実行に必要なファイルやツールが入っています。
あとはドキュメントに従ってセットアップします。OpenNI 1.xのインストールが必須なことに注意してください。

NuiTrack SDK Sample Program

Samples

NuiTrack SDKのC++で書かれたサンプルプログラムを公開します。主にRealSense D400シリーズをターゲットにしています。
このサンプルプログラムはNuiTrackの基本的な以下の機能を実装しています。

  • Color
  • Depth
  • Align
  • User
  • Skeleton
  • Hand
  • Gesture

Download

サンプルプログラムは以下のリポジトリからダウンロードしてください。

Development Environment

サンプルプログラムはNuiTrackの要求する開発環境で動作します。また、画像データを扱うためにOpenCVに依存します。
推奨環境は以下の通りです。*3

*3 I recommend using tools and libraries of latest stable release.


「NuiTrack SDK Sample Program for RealSense D400 series」への3件のフィードバック

  1. サンプル公開ありがとうございます。D435で試しまして、
    ・Skeletonで、カメラまでの距離が1m程度以内なら検出するのですが、それより遠いとほぼ検出されず、Depth自体は取れていると思うので不思議に思っています。Realsense2Module.Depth.ProcessMaxDepth を増やしても変わらず。同様な状態でしょうか。
    ・Handで、検出はされているようなのですが、検出結果の描画座標が全く違うところ(ウィンドウ枠外を彷徨っている感じ)に描画されています。Depth2ColorRegistration=trueですし、もし原因になりそうなものあればご教授いただけないでしょうか。

    1. poyyさん、

      私の環境では1mより離れても人物を検出、姿勢を推定するようです。
      サンプル(nuitrack_c11_sample.exe)の動作を確認してみてください。

      HandTrackerは画面を操作するカーソルを手で動かすようなハンドポインターを実装するための機能になります。
      そのためHandTrackerから取得できる座標は正規化された手の位置(0.0~1.0, 0.0~1.0)です。それを画面サイズ(1280, 720)に合わせて描画しています。
      Hand/nuitrack.cpp#L199-L201あたりをご覧ください。

  2. ご返信、ありがとうございます!

    以前はWin10でしたが、
    今回Ubuntuでnuitrack_gl_sampleを動かしたところ、
    ・Skeletonは1m以上離れても検出されました。
    ・HandTrackerは同じ様子です。
     http://download.3divi.com/Nuitrack/doc/structtdv_1_1nuitrack_1_1Hand.html
     hand->x, hand->y は0.0~1.0で、画面サイズを掛けるのは了解なのですが、手位置の座標になっておりますでしょうか。
     私のところでは手とは異なる座標になっていて、仮想カーソル機能とかなら理解できるのですが、これが動作的に正しいのかよくわからないのです。

    あと細かいですが、Ubuntuだとlibnuitrack.soがlibopencv_core.so.2.4をリンクしていて、OpenCV3.1などをアプリでリンクしようとすると、conflictしませんでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です