9月14日にKinectを購入し、週末が来る度にセコセコ作業して2週間かかりましたが・・・ようやく出力したbvhをPoserに読み込ませる事に成功しました。1度導入に成功するまでは「何が悪くて動かないのか」がサッパリ解らない状態でしたが、一度インストール成功すればどの辺で失敗してたかが大体わかって来ます。;

64bit WindowsマシンへのKinect導入手順として活用できるページになるよう、2011年10月時点の情報として、ある程度詳細に手順を書きました。

 

まずはKinectでキャプチャしたデータの動画

KinectでキャプチャできるデータをPoserに取り込むと以下な感じ。導入1日目のデータなんで、使い方が上手くなればもう少し良いデータが取れるかも。

キャプチャしたデータをPoserに取り込み、補正や修正処理は一切しない状態でYouTubeにアップしています。▼

Kinect+ライブアニメーションでモーションキャプチャしてbvhを出力し、Poserに取り込んだもの。

現状、精度はこれくらい。腰にひねりが加わる動作や、手足がカメラの死角に入るとダメですねぇ。十分使えると見るか、まだまだと見るか、判断の難しいラインです。

 

Kinect: Amazonリンク

Xbox 360 Kinect センサー
Xbox 360 Kinect センサー
マイクロソフト (2010-11-20)
売り上げランキング: 206

▲Kinect本体。これは良いものだ。

ZOOM for Xbox 360 (英語版/日本語説明書同梱)
▲部屋が狭い(6畳以下)でも大きな動きをキャプチャーしたい、って場合、レンズを40%広角にできるレンズアダプタ。
これから購入予定。「精度が悪くなる」って噂もあり、少々不安が残るけれど、今の部屋じゃあ「バンザイ」ポーズする時、全身が画面に入らない。 →買ってみた。モーションキャプチャ用途には向かない。。。

導入の手順

ざっくり書いておく。

※64bit版Windows7 SP1向けに書いた手順です。
※2011年10月2日時点での情報です。各バージョンは日付時点の最新版です。

  1. 前準備
    まだKinectは接続しません。
    • Microsoft Visual c++ 2010 Express のインストール
      Kinectの各種ツールを作動させるために必要。
    • 最新のDirectX SDKと最新のDirectX
      ライブアニメーションに必要。(DirectX SDKは不要かも?)
    • Microsoft XNA Framework Redistributable 4.0Microsoft .NET Framework 4のインストール
      ライブアニメーションに必要
    • Windows7 64bitマシンの場合は、PC環境をテストモードにする
        管理者権限でコマンドプロンプトを実行し
        bcdedit /set TESTSIGNING ON
        を実行。(これしないと一部のドライバが正しくインストール出来ない)
    • データ入力機器系のUSB機器は全部外す。
        当方でエラーが出たUSB機器
        ・ワコムのペンタブレット
        Kinect導入後、ワコムドライバがぶっ壊れた?
        ▲こんなメッセージが出る。ペンタブレットとKinectの併用は無理。
        ・地デジチューナー MontsrX HDUS
          (9/30~10/1にKinectセットアップしたので、BS/CS番組改編にぶち当たっただけかも?)
    • 以前インストールしたKinectドライバがあるならば、全て削除しておく
    • 諦めない心
      • アチコチのサイトを読んで回ると、「何故か解らないが2度目のインストールで作動するようになった」系の記述が非常に多い。
      • 正しいドライバをインストールしても、上手く認識しない・作動しない事が多々ある感じ。
        • ドライバの削除とインストールをくり返してみるのが非常に大事。
        • 私の場合も他聞に漏れず、正しいドライバを選択した後も作動する気配無し。2度目のインストールで何故かアッサリ認識・起動した。
  2. OpenNIのインストール
    Kinectドライバやセンサーツールを作動させるためのラッパー。様々な人体センサーで利用されている。
    初めてトライする時は、32bit Stable版を選ぼう。
    • OpenNIOpenNI Modules OpenNI Binaries と進んで
      Stable版の 32bit Windows用 OpenNI Stable Build for Windows x86 (32-bit)v1.3.2.1 Development Editionをインストール。
        (Redist Edition や64bit版は上手く作動しなかった)
        (インストール先はC:\Program Files (x86)で大丈夫だった。)
  3. Kinectドライバ(avin2 /SensorKinect)のインストール
    初めてトライする時は、32bit Stable版を選ぼう。
    • github.comで配布されている avin2 / SensorKinect をインストールする。
      上記リンクの「Download」からZipファイルをダウンロード。
    • Binフォルダ内のSensorKinect-Win-OpenSource32-5.0.3.3.msiをインストール。
      • 上記リンク内のUnstable版は作動しなかった。
      • 注意! Windows版の stableバージョンは32bit用のみ。
        また、openni.orgで配布しているSensorKinectは(64bit/32bit共に)上手く作動しない。
  4. KinectをPCに接続
    • 初めてKinectを接続した場合、ドライバを認識し、作動が落ち着くまでに5分くらいかかる感じ。念のため1回PCを再起動させよう。
    • 深度センターは赤外線を使っている。直射日光に弱いので、日光の当たらない部屋で利用しよう。
    • 作動確認
      C:\Program Files (x86)\OpenNI\Samples\Bin\Release\ 内の
      NiSimpleViewer.exe を起動し、白黒の深度映像モニタが表示されたら、ドライバの導入は成功(人体認識はまだ)
      • 何も表示されない、エラーが出る場合は、ドライバとOpenNIを削除し、PCを再起動し、再チャレンジ。2回目で成功する事も良くある。
        2度目も失敗した場合はUSBポートを変更したり、不要なUSB機器を外したりしてみる。
  5. PrimeSense NITE のインストール
    骨格認識させるためのセンサーツール?(姿勢認識ライブラリ)
    初めてトライする時は、32bit Stable版を選ぼう。
    • OpenNIOpenNI Modules OpenNI Compliant Middleware Binaries と進んで、Stable版の 32bit Windows用
      PrimeSense NITE Stable Build for Windows x86 (32-bit) v1.4.0.5 Development Edition  を ダウンロード・インストール
      • ページ内にライセンスキーの表記がある。各種資料には「インストール時にキー入力を求められる」と書いてあるが、キー入力必要は無かった
      • Redist Edition や64bit版は上手く作動しなかった
      • インストール先はC:\Program Files (x86)で大丈夫だった。(2010年12月~2011年3月頃の解説サイトには「64bit Windowsの場合はインストール先をC:\Program Filesに変更」と書いてある所が多いが、全く上手く行かなかった。)
    • 作動確認1
      C:\Program Files (x86)\PrimeSense\NITE\Samples\Bin\Release 内の
      Sample-Players.exe を起動してみる。白黒画面が表示されたら、今度は人間を映してみて、人体認識されるか、「荒ぶるkinectのポーズ」が認識されるか確認してみる。
    • 作動確認2
      kinect-ultra (ウルトラセブンになりきれるヤツ)
      などをインストールしてみて、正しく作動するか確かめてみる。
      • サンプルや、ユーザーが公開しているツールが作動しない場合は、別バージョンのPrimeSense NITEを試してみる。
        「3.~4.」あたりが上手く作動していれば、ここで躓く事は少ない
  6. ライブアニメーション本体
    • PoserにBVHを読み込ませたいなら、β4.01(LiveAnimation_46.zip)以前の古いバージョンを利用する。最新のバージョンはbvh出力に変なオプションが付いていて、Poserに正しくインポートできない。
  7. ライブアニメーションのキネクトプラグン
    • kinectのドライバインストール終了、正しく認識できた後に利用する事。
    • kinect導入前にこのプラグインを使うと、HDD内にゴミが残り初期化失敗するようになる。
  8. ライブアニメーションでキネクトの初期化が失敗する時
    • ライブアニメーションのキネクトプラグンページ内の「問題が出た時」欄のデバッグ用dllファイルを利用すると、ゴミが消えるっぽい。
    • その後に通常のキネクトプラグインに戻すと、上手く作動するようになる。
  9. あとはモーションキャプチャするだけ・・・!
    • ライブアニメーションの「編集」>「Kinect」を選択すれば、モーションキャプチャが開始される。
    • どうやら60fps固定っぽい(kinectは30fps)。ちょっと遊んだだけで2000~3000フレーム突破するので気をつけよう。
      最初は500フレーム以下のBVHファイルを出力するのが無難。
      (ライブアニメーションにトリム機能があるので利用する)
      • コツ:Kinectは、腰の高さに設置する
        カメラに俯瞰や仰角のアオリが付くと、人体モデルが不自然に傾く。Kinectは水平に設置。人体の中心と同じ高さに設置。
      • 黒い服・ダボダボの服は誤認識の原因になる。
        パンツ一丁、ほぼ全裸だとかなりの精度で認識してくれる(^_^;
      • PoserにBVHをインポートする際、3000フレームを読込むには5分前後必要。読み込み後も、すごく重い。
      • ライブアニメーションβ4.01使用時ならば、BVHエキスポート/Poserでのインポート、どちらもデフォルト設定でOK(Poserインポート時、体の向きは180度反転する。)
      • その他、細かい使い方はこれから覚えるところ。

導入に2週間かかった理由・つまづいた箇所など

私の場合、導入に2週間もの時間が掛かった理由は以下。
結構沢山つまづいた。

 

ちなみに、ライブアニメーションの自体は今年の7月頃からチェックしており、その頃にBVHファイルが使える事を確認していたのはラッキーだった。(現行最新Verのライブアニメーションは、Poserで正しく読めないBVHを吐き出すので、最新Verしか知らない場合はこれまた投げ出す所だった。)

元気を貰った書籍

とりあえず、Kinectを上手く作動できなかった2週間の間は、こいつを読む事でモチベーションの低下を防ぐ事が出来た。

キネクト ハッカーズマニュアル
キネクト ハッカーズマニュアル
西林 孝 + 小野 憲史 共著
ラトルズ
売り上げランキング: 16644

▲Kinectと同時に購入した書籍。
2011年8月末発行で、情報もかなり新しいものまで含まれている。プログラミングしない人にとっては、7割以上が必要ない情報になっちゃうけど、OpenNIとKinect for Windows SDK の違いや、ネットで集められなかった細かいエピソードなどがまとめてあり、非常に良いものだった。