ARToolKitのtwoView その① カメラ間の関係
ARToolKitのtwoViewを使ったプログラム、その①
カメラ間の関係を保持し、それを使ってマーカーを補間します。
ここでも、安定化と似たような計算を行います。
今回は動画では短すぎるので、画像のみです。


--- < 処理の概要 > ---
まず、どちらのカメラにもマーカーが映っている場合に、以下のような計算をします。
・"マーカー→カメラ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を使うには少し工夫をしないといけないようです。
ですが、そこから得られる機能には、いろんな使い道がありそうです。
カメラ間の関係を保持し、それを使ってマーカーを補間します。
ここでも、安定化と似たような計算を行います。
今回は動画では短すぎるので、画像のみです。
--- < 処理の概要 > ---
まず、どちらのカメラにもマーカーが映っている場合に、以下のような計算をします。
・"マーカー→カメラ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を使うには少し工夫をしないといけないようです。
ですが、そこから得られる機能には、いろんな使い道がありそうです。
