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"の表示を、ポリゴン+テクスチャーマッピングに改造してみた。

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

 

つづく...?


KinectのDepthをmqoファイルフォーマットで出力する”DepthCapture”。

2011年02月27日 | OpenNI

Kinect + OpenNIの実験。KinectのDepthをmqoファイルフォーマットで出力して、Metasequoiaに読み込ませるプログラムを作ってみました。

"DepthCapture"の画面はこんな感じ。

 

出力したファイルを読み込んだMetasequoiaの画面はこんな感じ。 動画はこちら

 

まだ開発途中なので不具合があるかもしれませんが、それでもかまわないという方はバイナリを置いておきます。動かなかったらごめんなさい。

現在わかっている不具合:mqoファイル名に日本語は使えません。   Ver. 0.02で対策しました。

こちらで動作確認したOSは、Windows7 64bit版のみです。

また、OpenNIがインストール済みで、OpenNIのサンプルプログラムが動いていることが必要です。

使い方は添付"readme.txt"を参照してください。

DepthCap002.zip

現在開発途中のため、ソースは汚くて公開できる状態ではないので整理してからいずれ...

-----------------------------------------------

@kirurobo(SaM)さんの"OpenNI で取得した深度をポリゴンメッシュで表示"を参考にさせていただきました。

ありがとうございます。

―以上―

 


2月20日(日)のつぶやき

2011年02月21日 | OpenNI
15:06 from web
Kinect + OpenNI実験。Kinectのカメラ画像をBMPファイルに落とすところはできた。さて、次は...
15:57 from Twitpic
Kinect + OpenNI実験。KinectのDepthをmqoファイルフォーマットで出力して、Metasequoiaに読み込ませてみた。今度はKinectカメラ画像をテクスチャとして貼り付るようにした。 #OpenNI


by robo8080 on Twitter

2月19日(土)のつぶやき

2011年02月20日 | OpenNI
11:32 from Twitpic
Kinect + OpenNI実験。KinectのDepthをmqoファイルフォーマットで出力して、Metasequoiaに読み込ませてみた。


15:48 from ついっぷる/twipple
Kinect + OpenNI実験。Kinect Depthのmqoファイルフォーマットは出力できた。つぎはこれにKinectカメラ画像をテクスチャとして貼り付けたいな。
16:08 from Twitpic
Kinect + OpenNI実験。KinectのDepthをmqoファイルフォーマットで出力して、Metasequoiaに読み込ませてみた、その2。ちょっと不気味だ。


by robo8080 on Twitter