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"の表示を、ポリゴン+テクスチャーマッピングに改造してみた。
表示は重くなるが拡大してみるとその差歴然。
つづく...?