Kinect OpenNIで EXILE っぽいなにか - TK's HP

TK's HP ホーム » スポンサー広告 » kinect » Kinect OpenNIで EXILE っぽいなにか

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Kinect OpenNIで EXILE っぽいなにか

昨日の記事で書いたようにKinect + OpenNIから得られたを情報をポイントクラウドに変換することはやったので、今日はそれを使った簡単なデモを作って見ました。

こんな感じです。
ネタなので、今回はニコニコにもアップしておきました。


youtubeの方にもアップしておきましたがは著作権の関係上音楽が流せないので、ニコニコの方が楽しいと思います。
ニコニコは時間帯によっては画質が悪いので、見られないときはyoutubeでご覧ください。
YouTube:Kinect OpenNIで EXILE っぽいなにか




以下、解説です。
(といってもやったことは単純なので、見なくても同じ物をすぐ作れると思います)


今回やったことは、一番前の人の動きに合わせて後ろでそれに追従して円軌道を描くEXILEのChooChooTrainで有名なあれです。

人間がやると大変ですが、コンピュータで自動生成する分にはアルゴリズム的には簡単で、過去のデータを参照して表示するだけです。

そのために今回行ったことが、
 ・リングバッファを作ること
 ・マルチタスクにする
の2つです。

リングバッファは過去のデータを保存する為で、今回は全てのデータを3秒間保存しています。
具体的には概算で、

 ・RGBImage   : 24bit * (640 * 480 pixel) * 30fps * 3sec        = 82.9MByte
 ・DepthData : 16bit * (640 * 480 pixel) * 30fps * 3sec = 55.3MByte
 ・UserLabel : 16bit * (640 * 480 pixel) * 30fps * 3sec = 55.3MByte
 ・BoneData : 29Byte * 15 * 30fps * 3sec = 0.04MByte
 ・PointCloud : (4Byte * 3D) * (640 * 480 pixel) * 30fps * 3sec = 331.8MByte

  合計 : = 525.3MByte

のような感じのリングバッファを使っていました。
500MByte以上のメモリ確保とか少し怖い気もしますよね。

また、マルチタスクにする理由ですが、描画処理をしているとフレームの欠落が発生する可能性がある為です。
重ね合わせるときに0.3秒前のデータを使用しているため、取りこぼしがあると正しく0.3秒前に戻ることができなかったり動きがカクカクになったりします。
これを防ぐ為にマルチタスク処理にして描画とデータ処理部を分けています。


ロボット分野だと描画と処理部を分けるのは一般的で、この2つフレームワーク自体は持っていたので、
それを使用してサクッと書きました。
(最近は主にこのOpenNIから自分たちのフレームワークに取り入れる部分を書いていた)

あとは、描画で0.5mずつずらせばOKです。



ちなみに、OpenNIの人間認識の最大人数ですが、(現在は)15人が最大です。
これは、ユーザーラベルを表すフラグのXnLabel型がXnUInt16でtypedefされており、フラグとしては0~15までの16パターン認識できますが「0」はエラーまたは全体を表しているようで、実際に使えるのが1~15までの15パターンのため、15人が最大となるようです。
関連記事
記事に間違いなどがあればすぐに訂正いたしますので、コメントしてください。
コメント
非公開コメント

面白い。アイディアの勝利。

2010-12-26 21:17 │ from URL

トラックバック

http://tclip.blog.fc2.com/tb.php/107-c08bae66

[today][思った]Dec. 24, Fri. Merry Christmas!

IT 使いもしないのにC++のtemplateを毛嫌いする全ての人に@神様なんて信じない僕らのために C/C++でしかコードを組まないので、STLなしではコードが組めません.. EffectiveC++の影響があるんだろうな.. でも配列つかいたい場合は大抵std::vectorかstd::mapを使ってしまいま

2010-12-25 00:36 │ from alt-ctrl-today

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。