なるように、なる

徒然なつぶやき、備忘録です。

使えるだけ使う

R200で使える機能を動かしてみたよ。
RSSDKのサンプルコードとドキュメント見ながら実装してみました。

Face
ちゃんと認識してくれていますね。
詰まったのは、「PXCFaceConfiguration::SetTrackingMode()」がエラーになること。「FACE_MODE_COLOR_PLUS_DEPTH」か「FACE_MODE_COLOR」が設定できるはずなんだけど、どちらを指定してもエラーになる。結局スキップしてるんですが、設定しなくても認識してくれています。

f:id:Shampagne:20170601230132p:plain

長男のハルキチに協力してもらいました。

PersonTracking
こちらもばっちりでした。
ただ、残念ながら「QuerySkeletonJoints()」で取得できると思っていた関節位置は、joints num =0となってしまい、R200では取れないようでした。
関節位置は欲しいので、今後OpenPoseを使ってみようと思います。

f:id:Shampagne:20170601230152p:plain



Blob
これは妻(顔出しNG)に手を広げもらっている様子です。
まぁ輪郭は取れているんですが、RSSDKのサンプルと比べると、いまいち精度が悪い。パラメータの調整が必要なのかもしれません。

f:id:Shampagne:20170601230210p:plain


3つの機能を動かしてみましたが、いずれの機能もAPIの呼び方はほぼ一緒なので、すぐに実装できます。「ほぼ」ってところが、若干残念で、「そこ関数名合わせようよ!」みたいのもありましたが。

次は背景の除去です。

どうしようかな~~

 

R200で使える機能

次は手指、、、

参考書に沿ってR200の機能確認を進める予定でした。
次は手・指の予定でした。

ある程度予想はしていたのですが、フロントカメラで動作する機能がR200では使えないものが多くあるようです。手・指の検出機能も、PXCSenseManager::EnableHand()のあとにPXCSenseManager::Init()を実行するとエラーが発生してしまいます。

 

全部試してみる

なら、どの機能が使えるのか、EnableXxx()を全部実行してみました。
結果はこちら。

Enable3DScan() ... Success.
Enable3DSeg() ... Failed.
EnableBlob() ... Success.
EnableEnhancedVideo() ... Success.
EnableFace() ... Success.
EnableHand() ... Failed.
EnableHandCursor() ... Failed.
EnableObjectRecognition() ... Success.
EnablePersonTracking() ... Success.
EnableScenePerception() ... Success.
EnableTouchlessController() ... Failed.
EnableTracker() ... Failed.

 

さて、

ということで、参考書に沿って進める計画は頓挫。
元々の目的に立ち戻って考えると、顔認識(Face)と人物認識(PersonTracking)あたりを深堀りしていくのが良さそう。
顔・体・手を認識する、背景を除去した動画像を作る、これをさっさとやる。

R200で画像を取得

ようやく開発環境が整ったので、R200でどんなことが出来るか試していきます。
当面は参考書のサンプルコードを順次試してみます。

今日はChapter 4-1~4-4で、カラー画像、Depth画像、IR画像の取得と、画像フォーマット一覧の取得です。

      1. カラー画像

        f:id:Shampagne:20170519005522p:plain

        これはサンプルコードそのままでOKでした。
        ヨガの練習後に半裸のままブログを書いているので、代わりに熊くんに写ってもらいました。この子の名前は「茶豆」です。よろしくね。

      2. Depth画像

        f:id:Shampagne:20170519005542p:plain

        これはサンプルコードに手を加える必要がありました。
        サンプルでは画像サイズを640x480としているのですが、これだとInit()でエラーになりました。あとで一覧の取得結果を載せますが、R200は640x480は未対応です。上記の画像は320x240にして取得しました。

      3. IR画像

        f:id:Shampagne:20170519005556p:plain

        これもDepth画像と同じく画像サイズを320x240に変更する必要がありました。
        加えて、EnableStream()の引数はSTREAM_TYPE_LEFTもしくはSTREAM_TYPE_RIGHTに変更します。サンプルで指定しているSTREAM_TYPE_IRは、R200では使えないです。
        IR画像なので、半裸の感じがはっきり分かりますね。

      4. 画像フォーマット一覧
         Intel(R) RealSense(TM) Depth Camera Manager R200
          Intel(R) RealSense(TM) 3D Camera R200
          Color
           YUY2 1920x1080x30
           YUY2 1920x1080x15
           YUY2 640x480x60
           YUY2 640x480x30
           YUY2 640x480x15
           RGB32 1920x1080x30
           RGB32 1920x1080x15
           RGB32 640x480x60
           RGB32 640x480x30
           RGB32 640x480x15
           RGB32 1920x1080x30
           RGB32 1920x1080x15
           RGB32 1280x720x30
           RGB32 1280x720x15
           RGB32 640x480x60
           RGB32 640x480x30
            RGB32 640x480x15
            RGB32 320x240x60
            RGB32 320x240x30
            RGB32 320x240x15

          Depth
           DEPTH 628x468x90
            DEPTH 628x468x60
            DEPTH 628x468x30
            DEPTH 480x360x90
            DEPTH 480x360x60
            DEPTH 480x360x30
            DEPTH 320x240x90
            DEPTH 320x240x60
            DEPTH 320x240x30

          Left
            Y16 628x468x60
            Y16 628x468x30
            Y8 480x360x60
            Y8 480x360x30
            Y16 480x360x60
            Y16 480x360x30
            Y16 320x240x60
            Y16 320x240x30

          Right
            Y16 628x468x60
            Y16 628x468x30
            Y8 480x360x60
            Y8 480x360x30
            Y16 480x360x60
            Y16 480x360x30
            Y16 320x240x60
            Y16 320x240x30

        これは、サンプルコードをそのまま実行すると、SenseManager::Init()でエラー終了してしまいます。Init不要では?と思い、コメントアウトしたところ、無事に上記の一覧を取得できました。
      では、今日はここまで。

RealSense R200 開発環境構築メモ

2017.05.15時点における、RealSense R200開発環境構築メモです。

私は開発環境(VC++)の構築を、『Intel RealSense SDKセンサープログラミング』を参考に行いました。しかし、R200固有と思われる事象や、出版日から月日が経ているために、いろいろとハマりました。誰かの役に立つことを祈りつつ、このメモを残します。

私の環境は以下のとおりです。

  • PC
    プロセッサ:Core i7-6700HQ
    OS:Windows10 Home
  • カメラ(RealSense)
    型番:VF0830 (新R200と言われているもの)

環境構築手順は、書籍に記載されているとおりですが、以下のような流れです。

  1. ドライバ(DCM)のインストー
  2. RSSDKのインストー
  3. VisualStudioのインストー
  4. RSSDKをプロジェクトに設定

1.と2.については、こちらに分かりやすく記載されていましたので、書籍をお持ちでない方は参考にしてください。
以降は、私がハマったところを中心に記載します。

  1. ドライバ(DCM)のインストー
    Intelのサイトからドライバ(DCM:Depth Camera Manager)をダウンロードし、インストールします。ただそれだけのはずが、残念ながら、つまづきました。
    私がインストールしたのは、Intelのサイトから落とせる最新のDCM(intel_rs_dcm_r200_2.1.27.2853.exe)です。
    しかし、こちらと同じように、エラーコード「1603」で終了してしまいました。エラーは[Microsoft Visual C++ 20xx Redistributable(xNN)] の展開時に発生しているようでした。
    なので、インストール済みだったVisualStudioと再頒布可能パッケージをアンインストールしてみると、無事にDCMをインストール出来ました。

  2. RSSDKのインストー
    現時点で最新のRSSDKは2016 R3(SDK version 11.0.27.1384)ですが、こちらはR200がサポート対象外で、インストールしても、R200のサンプルなどは含まれていませんでした。
    なので、2016 R2を以下からダウンロードしてインストールしました。

    http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/9078/intel_rs_sdk_offline_package_10.0.26.0396.exe

    ここまでで、RSSDKのサンプルが動かせるようになっているはずなので、カラー画像やDepth画像が取得できるか確認するとよいです。
    Intel RealSense SDK Sample Browser」を起動し、「Raw Streams」でサクっと確認できます。
    (私はサクッといかず、難航しました)

  3. VisualStudioのインストー
    これまた最新のVS2017では、RSSDKが対応してませんでした。
    (RSSDKのプロパティファイルが、VS2015までしか対応してない)
    なので、私はVS2015 Communityをインストールしました。ただ、インストーラがなかなか見つけられません。こちらのQuote#13をもとに、辿り着くことが出来ました。

  4. RSSDKをプロジェクトファイルに設定
    さぁ、最後です。VSのプロジェクトファイルにRSSDKを設定します。RSSDKの設定はプロパティファイルにまとまっているため、それをプロパティマネージャから追加します。
    私の環境では、以下のパスにプロパティファイルがあります。
    "C:\Program Files (x86)\Intel\RSSDK\props\VS2010-15.Integration.MD.props"
    3.に記載しましたが、このプロパティファイルがVS2010-15となっているため、VS2017ではプロパティマネージャからの追加時にエラーが発生しました。

    これで、以下のサンプルがビルド・実行できるはずです。

    #include "stdafx.h"
    #include <iostream>
    #include "pxcsession.h"

    int main() {
    auto version = PXCSession_Create()->QueryVersion();
    std::cout << "Hello RealSense " << version.major << "." <<
    version.minor << std::endl;
    return 0;
    }

環境構築手順なのに、画像などが一切なくて、申し訳ないです。
誰かのお役にたちますように。

超環境構築

GWは環境構築

RealSenseのSDKはすでにインストールは済んでいたものの、開発環境はまだだったので、「Intel RealSense SDKセンサープログラミング」に沿って環境構築、、、のはずが、色々とはまりました。

はまりポイントを含む環境構築手順は後日あらためて整理しますが、VisualStudioやらOpenCVやらを何度もインストールし直すことになりました。

とりあえず、RealSenseからカメラ画像をキャプチャするところまでは辿り着きましたが、あっという間に時間が解けてしまいました。

 

ニコニコ超会議

まぁ、環境構築だけをやっていれば、さすがにGWを使い果たすことはなかったのですが、キャンプ、BBQ、ラン、ヨガ、ゴルフと、イベントオーバフローな感じでした。

その中でも、相撲と歌舞伎が超楽しめるということで行ってきた「ニコニコ超会議」が今年の目玉でした。

結論から言うと、歌舞伎->最高、相撲->ぼちぼち、と言った感じです。

どちらのコンテンツも日本の伝統と最新技術がコラボしていましたが、コンテンツ(伝統)の使い方、技術の使い方にかなり差があったためです。

 

超歌舞伎

歌舞伎のほうは、役者と技術者の「良いものを作る、伝える」という気持ちが強くあり、観客側もそれに応えた良い舞台でした。まさか、自分がサイリウムを欲しいと思うなんて夢にも思いませんでした。

松竹は今後、超歌舞伎を定常的に開催していきたいという話を聞きましたが、しかしそれには課題があると思います。ずばり演目のバリエーションです。年に1回のお祭りのときだけなら今回のような殺陣をモリモリしてアゲるんでも楽しめますが、例えばこれを毎月見れるかというとキツイ。なので、ぜひ次は和事をじっくり魅せて頂きたい。がんばれ初音屋!電話屋!

 

超相撲

相撲のほうは、あくまで遊びという感じです。もともと超リアル相撲を楽しみにしていたのですが、結局ガチのトーナメントのほうが面白かった。つまり、技術で相撲の良さを引き出したり、新しい未来を提案することが出来ていなかった。相撲はとても面白いものだと思うんだけど、相撲を楽しむにはコツがいると思う。それは情報技術が補えるものだと思うので、歌舞伎のようにガップリ四つで取り組んで欲しいなぁと思いました。

 

補足:

相撲・歌舞伎以外に、江添さん(マストドン)やHISASHIのライブも楽しめました。 

あと、コスプレとかアレコレも。

はじめに

自己紹介

歌舞伎と相撲が好きです。

ヨガとランニングをやっています。

最近は上半身だけ筋トレもしています。

料理も好きで、BBQを本格的に練習中です。

できるだけ毎年、フジロックに行っています。

なんだか、片づけのできない人みたいな自己紹介ですね。

 

どんなことを書くの?

RealSenseというセンサを購入したので、これを使ったソフトの

開発備忘録と、あとは気が向いたことを書きたいと思います。

とりあえずの目標はRealSenseとvvvvを使ったヨガのインタラクティブ

作品を作りたいと思っています。

作ったものを以下の2名に使ってもらうことが目標です。

中谷美紀(ヨギーニ日本代表)

・マドンナ(ヨギーニ世界代表)

 

レッツゴー!