C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

Kinect; ことはじめ

ラボのRAの仕事でKinectを使ったサンプルを作る事になった。とりあえず OpenKinect/libfreenect とか云うドライバーを使うと何かと便利そうなのでexamplesで動作確認などしてみる。

開発環境はいつも通り archlinux 。ラボで支給されているPCは

  • model name: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz
  • MemTotal: 4053088 kB
  • Linux LH-LAB1 3.3.6-1-ARCH #1 SMP PREEMPT Sun May 13 10:52:32 CEST 2012 x86_64 GNU/Linux

てなSPEC。

test webcam

OpenKinectを試す前に最近のLinuxではカーネルにKinectのドライバーが組み込まれたらしくwebcamとしてふつーに扱えてしまうらしいので、Kinectを接続してCheeseを起動してみるとあっさりwebcamとして使えた。

OpenKinect/libfreenect 導入

archlinuxならAURにパッケージがあるので簡単。

# yaourt libfreenect-audio-git

但し、このパッケージはデフォルトで/usrへインストールを試みるので必要に応じてPKGBUILDを弄ると良いだろう・w・;

libfreenect/examples

AURからlibfreenect-audio-gitパッケージを導入するとデフォルトではサンプルも全て/usr/binに放り込まれる。実際に試してみたところ(ドキュメントを読んだわけではない)、

  • examples
    • glpclview // 推定したdepthに基づいて面を3次元描画するおもちゃ
    • glview // IR-cam/RGB-cam/tilt/LEDを制御するおもちゃ
    • hiview // IR-camの大きな像を確認できるおもちゃ
    • micview // 左右のマイクロフォン計4chをモニターするおもちゃ
    • regtest // (試してないから知らん・w・)
    • regview // 推定したdepthから前景を推定するおもちゃ
  • wrapper/cpp
    • cppview // glviewのC++ wrapper版

といったところだろうか。

Screen shots

cppview

f:id:USAGI-WRP:20120520093922p:plain

micview

f:id:USAGI-WRP:20120520115733p:plain

glpclview

f:id:USAGI-WRP:20120520115750p:plain

regview

f:id:USAGI-WRP:20120520121845p:plain

さて、

とりあえず cppview のソースとC++ラッパーを中心にライブラリーのソースとドキュメントの確認を進めるとしよう。