4. 拡張現実感技術による現場検証用映像生成
4.4. 提案手法
4.4.2. マーカ情報の補完
ARToolKitで,1台のカメラでマーカを検出し,マーカの位置や姿勢を推定してマー
カ座標系からカメラ座標系へ変換するための座標変換行列を取得する.そして,座標 変換行列によりカメラ座標系に変換し,マーカ上に3次元CGを表示させる.しかし,
マーカの一部分がカメラの視野から外れた場合やカメラに対するマーカの角度が不適 切な場合,マーカを検出することができず座標変換行列を取得することが不可能であ
カメラ付HMD
Webカメラ
拡張現実感マーカ
演技者
仮想人体モデル
仮想凶器
-61-
る.そこで複数のカメラにより検出が不可能だったマーカの座標変換行列の補完を行 う.あるカメラでは検出できなかったマーカを別の検出できたカメラによりマーカの 座標変換行列を取得し,検出できなかったマーカの座標変換行列を算出するそして,
座標変換行列を補完することでマーカ座標を取得できるようになりマーカ上に 3 次元 CGを表示できる.これによりマーカの検出範囲が広がり操作性の向上が期待できる.
ARToolKitはカメラからの入力画像からマーカを検出するために,入力画像に対して
2 値化の処理を行い,マーカ候補領域を探索する.その中から四角形を探索し見つけ 出した場合,仮想空間のマーカ位置や向きを特定するためにマーカの四角い黒枠の内 側にあるパターンを用いて画像比較法の1 つであるテンプレートマッチングにより事 前に取得しているマーカのパターン情報と比較し,最も近いと思われるパターンをマ ーカとして検出する.
検出されるとマーカ座標系をカメラ座標系に変換する行列𝑇𝑐𝑚 を推定する.図4.4.2 のようにカメラ座標系(𝑋𝑐, 𝑌𝑐, 𝑍𝑐),マーカ座標系(𝑋𝑚, 𝑌𝑚, 𝑍𝑚) とする.
(a) カメラ座標 (b) マーカ座標 図4.4.2 ARToolKitの座標系
マーカのパターンを識別するために,マーカ座標系からスクリーン座標系へ式(4-1) で変換を行う.C はキャリブレーションパラメータである.マーカの検出された四角 形の4頂点の座標値を用いることで,各Cの値を算出できる.hはスカラー値である.
式(4-2) より,マーカ座標系からカメラ座標系に変換する.r は回転移動成分を示し,
t は平行移動成分を示す.次に式(4-3) を用いることでカメラ座標系からスクリーン座 標系に変換することができ,マーカ上に仮想オブジェクトを表示することができる.
[ ℎ𝑥
1ℎ𝑦
1ℎ 1
] = [
𝐶
11𝐶
12𝐶
13𝐶
14𝐶
21𝐶
22𝐶
23𝐶
24𝐶
31𝐶
32𝑟
331
0 0 0 1
] [ 𝑋
𝑚𝑌
𝑚𝑍
𝑚1
]
(4-1)-62-
[ 𝑋
𝑐𝑌
𝑐ℎ 1
] = 𝑇
𝑐𝑚[ 𝑋
𝑚𝑌
𝑚𝑍
𝑚1
] [
𝑟
1𝑟
2𝑟
3𝑡
1𝑟
4𝑟
5𝑟
6𝑡
2𝑟
7𝑟
8𝑟
9𝑡
30 0 0 1
] [ 𝑋
𝑚𝑌
𝑚𝑍
𝑚1
]
(4-2)[ ℎ𝑥
1ℎ𝑦
1ℎ 1
] = 𝑃 [ 𝑋
𝑐𝑌
𝑐𝑍
𝑐1
] [
𝑃
11𝑃
12𝑃
130 0 𝑃
22𝑃
230
0 0 1 0
0 0 0 1
] [ 𝑋
𝑐𝑌
𝑐𝑍
𝑐1
]
(4-3)未検出マーカ情報補完のフローは図4.4.3のとおりである.カメラ1で撮影した入力 画像よりマーカを検出する.検出処理の結果,検出できた場合は ARToolKit の関数よ り座標変換行列𝑃1 を計算し,マーカ座標系を算出する.そして,マーカ座標系よりマ ーカ上に仮想物体を重畳表示する.カメラ1 でマーカを検出できなかった場合は,カ メラ2でマーカを検出し座標変換行列𝑃2 を取得する.そして,𝑃2 を利用して𝑃1 を算 出する.そして,未検出のマーカ上に仮想物体を重畳表示させる.
図4.4.3 未検出マーカ情報の補完フロー
OK
NG OK
-63-
マーカとカメラの位置関係は常に変化しているため,毎フレームごとにカメラとマ ーカの位置関係を算出し,カメラからマーカへの座標変換行列を算出する.マーカの 座標変換行列を補完するためにはカメラ2 台とも共通に検出できているマーカを探し 出し,それを利用してカメラ間の位置関係を毎フレームごとに算出する.このように して他のカメラを利用して自分のカメラからは検出できないマーカの座標変換行列の 算出を行う.
隠蔽されたマーカの情報補完の算出方法を説明する.図 4.4.4 のように,カメラ 1,
カメラ2があり2種類のマーカA,Bがあるとする.カメラ1から検出したマーカA,
Bのそれぞれの座標変換行列を𝑃1𝐴,𝑃1𝐵 とする.同様にカメラ 2に対して検出したマ ーカA,Bのそれぞれの座標変換行列を𝑃2𝐴,𝑃2𝐵 とする.そして,カメラ2を基準に カメラ1 を見たときのカメラ座標系を𝛷2→1とする.カメラ1 の視野にはマーカ A,B が検出されている.カメラ2の視野にはマーカBが検出され,マーカAは隠蔽され未 検出であると仮定する.このとき,カメラ2からマーカAが未検出なため直接,座標 変換行列𝑃2𝐴を算出することができない.そこで,マーカBに注目しカメラ2から見た マーカBは𝑃2𝐵になり,カメラ2を基準にカメラ1からマーカBを見ると𝛷2→1∙ 𝑃1𝐵と なりこの2つが等しいので式(4-4)となる.
P
2B= Φ
2→1・ P
1B (4-4)そして,マーカAに注目し,カメラ2を基準にカメラ1から見たマーカBは𝛷2→1∙ 𝑃1𝐴 となり,未検出𝑃2𝐵と等しくなる.よって式(4-5)となる.
P
2A= Φ
2→1・ P
1A (4-5)式(4-4),式(4-5)より以下の式(4-6)を得る.
P
2A= P
1B・ P
2B−1・ P
1A (4-6)𝑃1𝐴,𝑃1𝐵,𝑃2𝐵は検出できていて取得済みのため,これらを用いて𝑃2𝐴を算出すること ができる.算出された𝑃2𝐴をもとにマーカ座標系を計算し,検出できなかったカメラ2 から見たマーカA上に仮想物体を表示することができる.
-64-
図4.4.4 マーカ情報の補完
2 つのカメラで共通して検出できるマーカより,検出できなかったマーカとカメラ との位置関係を算出する.そのため,カメラ間で共通に見えるマーカが最低でも1つ は必要になる.また,全てのカメラから見えていないマーカへの座標変換行列は算出 することができない.提案システムでは複数のカメラを実現するためにネットワーク によるクライアントサーバを利用する.マーカ情報補完の流れは,クライアントは検 出できたマーカの座標変換行列をサーバへ送信する.サーバは検出できなかったマー カがある場合,クライアントからデータを受信して,マーカの情報を補完する.サー バで補完されたマーカの情報は,全てのクライアントに送信され各カメラからの完全 な映像を生成することができる.