第 4 章 深度センサを用いたプロジェクションマッピング
4.2 本研究におけるキャリブレーションシステムの概要
4.1節で述べたKinect・プロジェクタキャリブレーションについて、開発したキャリ ブレーションシステムの概要とそのアルゴリズムについて述べる。
本研究では図4-8のような、プロジェクタから投影した、システム上で既知のチェ ッカーパターンをKinectから認識し、デバイス間のキャリブレーションを行うシステ ムを構築した。キャリブレーションシステムの処理の手順は図4-7のようになる。
図4-7 本キャリブレーションシステムの処理手順
図4-8 設置環境(上図)、Kinectからの認識(左下図)、実際の投影(右下図)
30
キャリブレーションシステムが開始されると、チェッカーパターンがプロジェクタか ら投影され、マウス操作によりチェッカーパターンの移動が行え、キーボードのQ・P キーで投影箇所の形や大きさに合わせて大きさを変えることができる。Kinect からそ のチェッカーパターンが認識された場合、モニター上でその様子を確認し、キーボード のスペースキーを押すことで、チェッカーパターンから認識した座標を4.1.2の原理に 基づいてキャリブレーションを行う(図 4-9(左図))。チェッカーパターンが何かに 隠れてしまいKinectの認識外に置かれてしまったときにキャリブレーションを行おう とすると、正常にキャリブレーションができていない警告をモニター上に表示する(図 4-9(右図))。キャリブレーションが済むと、キーボードのCキーでテストモード(図 4-10)へ移行し、先程行ったキャリブレーションデータを用いたテストを行う。十分 な精度が取れなかった場合、再度キャリブレーションモードへ移行し、テストモードを ループすることができる。テストモードでキャリブレーションデータの精度が確認でき 次第、キーボードのSキーでそのデータをXMLファイルとして書き出し、別のプロジ ェクションマッピングアプリケーションでも使用できるようにした。図 4-11 は書き 出した際のモニター上の表示である。
図4-9 正常なキャリブレーション(左図)、エラー発生時(右図)
31
図4-10 テストモードのモニター状態
図4-11 キャリブレーション書き出し時のモニター状態
以上のシステムにより、Kinectから取得する深度情報を含めた座標Vkとプロジェク タから投影される映像上の座標Vpのペアを取得しq1~q11の値を算出していく。
32
4.2.1 OpenCVによるKinect・プロジェクタキャリブレーション
本システムで行われるキャリブレーション法は、コンピュータビジョン・画像処理のた めの関数ライブラリであるOpenCVの、Zhangのキャリブレーション手法を応用した ものである。図4-12はZhangのキャリブレーション法でキャリブレーションを行っ た様子である。
図4-12 Zhangのキャリブレーション法結果(左上図、右上図)、射影変換(下図)
Zhang のキャリブレーション手法とは、幾何学形状が既知である平面のチェッカー
パターンをカメラで数回撮影し、検出したチェッカーパターンの交点座標を求めること で、各画像の撮影した位置等の外部パラメータ、カメラの光軸位置やレンズの歪みなど の内部パラメータを推定するというコンピュータビジョン技術である。外部パラメータ、
内部パラメータが判明することで、斜めから撮影したチェッカーパターンでも、図4-
12(下図)のように真正面から見たような射影変換をかけることが可能である。本研究 では、Zhang のキャリブレーション手法で取得した交点座標に、Kinect から取得可能 な深度情報を加えることで、4.1.2で説明したような計算を実現している。
4.2.2 データテスト・XMLデータ保存
4.1.2のq1~q11は11個の未知の係数であり、連立一次方程式を解くにはVkとVpの ペアが最低で12点必要であるが、正確なキャリブレーションデータを求める場合、そ
33
れ以上のキャリブレーションが必要である。本システムでは、キャリブレーションのデ ータ取得回数は上限が無いように設定し、十分なキャリブレーションデータが取れたと 判断した場合、そのキャリブレーションデータを用いたテストモードへ移行する。
テストモードでは、図4-13 のような、Kinect から取得した RGB画像のある座標 をマウスで指定すると、その座標と対応した、プロジェクタから投影される映像上の座 標へ点を描画するものである。キャリブレーションデータが正確であると、投影される 青い点と、モニター上のKinect 画像で指定した点(赤点)が重なり、デジタル空間の 座標認識とプロジェクタから現実空間に投影される映像の座標が一致している状態で あることが分かる。
図4-13 テストモードのモニター上(上図)と実際の投影(下図)
以上の段階でKinect から取得した物体の座標とプロジェクタから投影される映像上 の座標が正確に対応付けられているかを確認し終えると、そのキャリブレーションデー タをXML形式で保存できる。openFrameworks上ではその他のデータも書き出し、読 み込みを行うことができるが、XML データに関しては専用に扱うアドオンが存在し、
処理速度が速く、非常に簡単にデータを扱うことができる。図4-14は本キャリブレー ションシステムで実際に書き出したXMLデータの中身である。4.1.2の未知の係数q1
34
~q11について計算がされ、結果が書き出されていることが分かる。
図4-14 書き出したキャリブレーションデータ