robo8080のブログ

ロボット製作や電子工作など。

ProcessingでKinectを使ってみた。

2012年01月30日 | OpenNI

ProcessingでKinectを使ってみた。

動作環境は以下の通り。
 OS : Windows7 64bit
 OpenNI : openni-win32-1.5.2.23-dev.msi
 NITE : nite-win32-1.5.2.21-dev.msi
 SensorKinect : avin2-SensorKinect-faf4994.zip
 simple-openni : SimpleOpenNI-0.24-win32.zip
 NyARToolkit for processing : nyar4psg-1.1.7.zip

ファイルの入手先はこちら
 http://www.openni.org/Downloads/OpenNIModules.aspx
 https://github.com/avin2/SensorKinect
 http://code.google.com/p/simple-openni/
 http://sourceforge.jp/projects/nyartoolkit/releases/?package_id=8920

simple-openniでProcessingからKinectを使ってみた。

とりあえずサンプルはサクッと動いた。

 

 

・Kinect ZOOMを使ってみた。

さてこいつの威力を試させてもらおう。

 

 

左がZOOM有り。右がZOOM無し。

ZOOMを使うとカメラに映るエリアが広がっているが、穴からのぞいたように周りが黒くなってしまうのが残念。

 

NyARToolkit for processingを使ってみた。

エラーが出るが一応動いた。

”import processing.core.*”している行をコメントにしたらエラーは出なくなった。

 

 

・NyARToolkit+simple-openniの実験(1)

つぎは、NyARToolkit for processing + simple-openniでKinectカメラ画像にAR表示させてみる。

10分もかからずにサクッと出来た。簡単すぎ!!VC++でやった時のあの苦労はなんだったのか!orz

KinectのRGBカメラ画像でマーカーを検出して、Depthカメラ画像にAR表示させてみた。

画像の周りが丸く黒いのはZOOMを使っているから。

 

 

・NyARToolkit+simple-openniの実験(2)

applyMatrix(nya.getMarkerMatrix(0))しただけではダメか。

NyARToolkitとOpenNIでは座標の取り方が違うんだろうな。

 

 

・NyARToolkit+simple-openniの実験(3)

X軸周りに180度回転&X軸の向きを逆にしてapplyMatrix(nya.getMarkerMatrix(0))したらうまくいった。

キャリブレーションしてないから位置はずれてる。

”NyAR4PsgConfig.CONFIG_DEFAULT”にすればX軸の反転は不要だった。

 

 

・NyARToolkit+simple-openniの実験(4)

@nyatla さんに新しいAPI、marker2ScreenCoordSystem関数を追加していただいた。

NyARToolkit for processing1.1.7

 

 

追加していただいたAPIを使って、位置の補正もうまくいった。ほぼARマーカーの位置に重なっている。

マーカー中心位置ー>スクリーン座標ー>Depthカメラ座標、に変換して補正している。

 

 

動画はこちら。

Kinect でAR の実験

 

・ちょっと寄り道

双葉電子のサーボモータRS304MDとアルミフレーム。次はこれで...

 

 

よし出来た。双葉電子のサーボモータRS304MD+小型Wi-FiカメラCS-W07G-CY。

  

 

双葉電子のサーボモータRS304MD+小型Wi-FiカメラCS-W07G-CYで、ARマーカーのトラッキング出来た。

Kinectとは関係ないが...。

NyARToolkit for processingの”marker2ScreenCoordSystem”関数使用。

 

 

動画はこちら。

ARマーカーのトラッキング実験

 

・KinectでColor Trackingの実験。

KinectのDepth情報で背景を分離してからColor Trackingしてみた。 

 

 

動画はこちら。

kinectでColor Trackingの実験(その1)

 

KinectでColorTrackingの実験(その2)

KinectのDepth情報を使って、3次元空間でColorTrackingしてみた。

 

・3D表示をポリゴン+テクスチャーマッピングに改造してみた。

SimpleOpenNIのサンプルプログラム"AlternativeViewpoint3d"の表示を、ポリゴン+テクスチャーマッピングに改造してみた。

表示は重くなるが拡大してみるとその差歴然。 

 

つづく...?


1月29日(日)のつぶやき

2012年01月30日 | 日記
11:28 from Janetter (Re: @gingaxx
Xbee入手したので参考にさせて頂きます。 RT @gingaxx ホームページ更新 まだ完成はしていませんがMBeeDuinoとXbeeのページを追加しました。www31.atwiki.jp/gingax/pages/1…

14:29 from web  [ 4 RT ]
ブログにまとめてみました:"ProcessingでKinectを使ってみた。" blog.goo.ne.jp/roboz80/e/377a… #processing #kinect #openni

16:02 from Tweet Button  [ 3 RT ]
kinectでColor Trackingの実験。:KinectのDepth情報で背景を分離してからColor Trackingしてみた。 youtu.be/1ZkaaD902Mo #kinect #openni #processing

16:09 from ついっぷる/twipple  [ 1 RT ]
Windows版待ち遠しいですね。 RT @gingaxx: Kinect PCが出たら買うかな RT @robo8080: :"ProcessingでKinectを使ってみた。" bit.ly/ykFZyX #processing #kinect #openni

16:21 from Janetter (Re: @ji10me
照明条件にかなり影響を受けますが...光の外乱が無ければ結構いけます。 RT @ji10me @robo8080 おぉ!正確に追従するもんですね。

16:29 from Tweet Button  [ 2 RT ]
おもしろそう。 --- 【PC Watch】 ロジクール、プレゼンターとして使える超小型マウス「キューブ」 pc.watch.impress.co.jp/docs/news/2012… @pc_watchさんから

by robo8080 on Twitter

Processingで”パーティクルフィルタによるトラッキング”を試してみた。

2012年01月29日 | Processing

ここを参考にProcessingで”パーティクルフィルタによるトラッキング”を試した。

ボールのトラッキングをしてみた。

オリジナルのままだと、一度ロストするとなかなか再捕捉しないので少し改造した。

Processingで"パーティクルフィルタによるトラッキング" その1

 

表示を少し変えてみた。

Processingで"パーティクルフィルタによるトラッキング" その2

 

―以上―