ARToolKitのtwoView その① カメラ間の関係

|
ARToolKitのtwoViewを使ったプログラム、その①

カメラ間の関係を保持し、それを使ってマーカーを補間します。
ここでも、安定化と似たような計算を行います。


今回は動画では短すぎるので、画像のみです。

cameraRelate01.JPG   cameraRelate03.JPG

cameraRelate02.JPG   cameraRelate03.JPG



--- < 処理の概要 > ---

まず、どちらのカメラにもマーカーが映っている場合に、以下のような計算をします。

・"マーカー→カメラ1"、"マーカー→カメラ2" が分かっている。
・"マーカー→カメラ1"を反転して"カメラ1→マーカー"にする。
・"カメラ1→マーカー→カメラ2"という行列計算を行い、”カメラ1→カメラ2”を取得する。

次に、片方のカメラでマーカーが見つからなかった場合に、次のような計算で補間を行います。

カメラ1のみでマーカーが見つからなかった場合
・”カメラ1→カメラ2”、"マーカー→カメラ2" が分かっている。
・”カメラ1→カメラ2”を反転して、”カメラ2→カメラ1”にする。
・"マーカー→カメラ2→カメラ1"という行列計算を行い、"マーカー→カメラ1"を取得する。

カメラ2の場合も同様です。

これで、片方のカメラにさえマーカーが映っていれば、
マーカーが見えなくてもその位置を特定することができます。



--- < 処理の特徴 > ---

この方法を使うと安定化にも繋がりますが、そのために以下のような制限が付きます。

・一番最初に、2つのカメラに同じマーカーを映すなどして、変換行列を計算する。
・片方のカメラが動いた場合、変換行列を再計算する。
・両方のカメラでマーカーを発見できないときは、補間ができない。

等々です。
これを解決するためには、いくつか方法が考えられます。

1.カメラを絶対に動かさないようにする。
2.2つのカメラを固定して、変換行列を変えないまま移動できるようにする。
3.カメラ1に、マーカーとカメラ2が必ず映るようにして、カメラ2にもマーカーを付ける。

こんなところでしょうか。
他にも方法がありそうですね。



--- < 最後に > ---

上記のように、twoViewを使うには少し工夫をしないといけないようです。
ですが、そこから得られる機能には、いろんな使い道がありそうです。

このブログ記事について

このページは、PipeRが2008年5月11日 18:24に書いたブログ記事です。

ひとつ前のブログ記事は「ARToolKitの解析 その③ ソースの公開」です。

次のブログ記事は「ARToolKitのtwoView その② 特徴色の認識」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01a