エピポーラ幾何を利用したシーンフロー 復元
4.3 シーンフロー復元実験
提案した手法を用いた3次元シーンフローの復元実験を行う.シミュレーションと実画 像を用いての実験を行い,提案手法の有効性を示す.
4.3.1 シミュレーションによる実験
シミュレーションでは,3次元空間中に球を定義し,その表面上の点の移動の軌跡を画 像平面に投影する.カメラは,図4.3に示すように,camera 1をx−y平面で45度の角 度で原点を見下ろす位置に配置し,camera 2とcamera 3はそれぞれcamera 1からx−z 平面で45度ずつ回転させた位置とする.球の表面上の点90×180点をx軸方向に平行移
図 4.3: シミュレーションモデルにおけるカメラ配置
動させた場合と,y軸を中心に回転させた場合の各カメラに投影した画像を入力とする.
■ 平行移動に対する復元結果
図4.4に,球モデルが平行移動した際のオプティカルフローと,その入力から復元した シーンフローを示す.図4.4(b)の右側の図は,復元されたシーンフローの一部を拡大した ものである.この図から全てのフローが一定の方向を向いていることがわかる.作成した
図 4.4: シミュレーションにより作成した2次元フローと復元されたシーンフロー(平行 移動)
球モデルの運動は平行移動であるため,このことから,復元したシーンフローは正しいこ とがわかる.またシーンフローは物体表面上のみに存在する.
■ 回転に対する復元結果
図4.5に球モデルが回転した際のオプティカルフローと,シーンフロー復元結果を示す.
復元されたシーンフローの一部の拡大から,復元されたフローは球の中心を軸に回転して
図 4.5: シミュレーションにより作成した2次元フローと復元されたシーンフロー(回転 運動)
いることがわかる.
4.3.2 実画像を用いた実験
実画像を用いた実験環境を,図4.6に示す.天井に設置した3台のカメラ間の基礎行 列は,弱校正から予め求めておく.実験に使用したカメラはPoint Gray Research 社の
Dragonfly(IEEE-1394 カメラ)であり,各カメラ間のシャッタータイミングは同期してい
る.実験映像は,人物が手を下から上へ上げているもので,撮影された映像の時刻tと
図 4.6: カメラ配置
t−1のオプティカルフローを計算し,3次元シーンフローを復元した.オプティカルプ ローの計算にはブロックマッチング法を用いた.実際に復元に用いた映像の時刻tとt−1, またそれに対し計算されたオプティカルフローを図4.7に示し,復元された3次元シーン フローを図4.8に示す.
図4.8より,腕部のフローは上方向に向いていることがわかる.また腕の先の方が長い フローが存在していることから,3次元シーンフローは正しく求められていることがわ かる.
定量的な評価として,復元された全てのフローに対する方向分布を表4.1に示す.表中 のp,q,rはProjective Grid Spaceにおける軸を,+,−はそれぞれの軸に対する正負の 方向を表している.表4.1より,カメラ3台の結果ではq軸 +方向(上方向)のフローが
表 4.1: シーンフローの方向の分布[%]
p + p − q + q − r + r − 2台 17.1 7.5 42.9 9.5 10.4 12.6 3台 13.3 4.5 62.1 0.5 12.3 7.2
最も多く求められていることがわかる.また,カメラの台数が2台の場合より,3台の方 が方向分布が小さく,より正しいフローが復元されていることがわかる.これは,カメラ の台数を増やすことにより,2次元オプティカルフロー算出のノイズ等の影響を減少させ ることができたためである.
図 4.7: 実験に用いた映像とオプティカルフロー
図 4.8: 復元された3次元シーンフロー
第 5 章
Subspace 拘束を利用した 3 次元シーンフ ローの高精度復元
前章のProjective Grid Spaceを用いた3次元シーンフローとは異なり,本章では,強校 正を行った複数のカメラを用いて,高精度に3次元シーンフローを復元する手法を示す.
ここでは,高精度に3次元シーンフローを復元するために,Subspace拘束という考えを 導入する.
5.1 3 次元シーンフローの復元
本研究では,複数のカメラ画像から得られる2次元オプティカルフローを入力とし,そ こから得られる3次元シーンフローに対し修正を行うことで,精度を向上させる.3次元 シーンフローの復元には,Vedulaらの提案する手法を用いる[20].本節では,Vedulaら の提案する3次元シーンフロー復元手法について述べる.
シーンフロー復元は,2つのステップからなる.第一のステップは,シーンフローの存 在位置の判定である.Vedulaらの手法では,3次元空間を一定間隔の格子(Voxel)に分割 し,その各点において,シーンフローが存在するか否かを判定する.シーンと画像間の幾 何的な関係から得られるオプティカルフローとシーンフローの制約を用いることで,3次 元シーンフローの存在位置を判定する.第二のステップは,シーンフロー存在位置におけ るフローの大きさと方向の復元である.以下に各ステップにおける手順を示す.
5.1.1 シーンフロー存在位置の判定
シーンとカメラ間のカメラ行列が与えられた場合,シーンフローと2次元画像上のオプ ティカルフローは次式のように表現できる.
duk
dt = ∂uk
∂x dx
dt (5.1)
duk
dt はk番目のカメラ中の点ukにおけるオプティカルフローであり,dx
dt はシーン内の点 xにおけるシーンフローである.∂uk
∂x はシーン内の点x = [Xx, Xy, Xy]T と,それをカメ
図 5.1: mk(x)の性質
ラkに投影した画像座標uk = [uk, vk]T との微分関係である.ここで式(5.1)を次式にの 様に変形する.
dx dt =
µ∂uk
∂x
¶∗ duk
dt +µrk(uk) (5.2)
µ∂uk
∂x
¶∗
: ∂uk
∂x の一般化逆行列
rk(uk) : 点ukを通る光線ベクトル µ:不定値 これにシーンフローの制約を続けると次式のようになる.
mk(x)· dx dt ≡
·µ∂uk
∂x
¶∗ duk
dt ×rk(uk)
¸
· dx
dt = 0 (5.3)
式(5.3)におけるベクトルmk(x)はシーンフローに垂直なベクトルである.もし3次元空
間中の点xにおいてシーンフローが存在する場合,図5.1に示すように,全てのカメラか ら計算されるmk(x)は同一の平面上に存在する.各カメラから得られたmk(x)が同一の 平面上に存在するかどうかの判定には次式を用いる.
M(x) =X
k
mˆkmˆTk (5.4)
ここで,mˆkはmk(x)を単位ベクトルに正規化したものである.ベクトルmk(x)が全て 同一の平面上に存在する場合,式(5.4)における行列M(x) の最小の固有値は0となる.
従って,行列M(x)の最小の固有値が0となるような点を探すことで3次元シーンフロー の存在位置を判定することが可能となる.
シーンフローの存在位置を判定するには,3次元空間中をVoxelに区切り,その各点を 順に探索する必要がある.この探索には,注目点が投影されるカメラにおいて可視か不可 視かを考える必要があるため,Seitzらが提案したVoxel Coloringアルゴリズムを用いる [19].
5.1.2 シーンフローの大きさと方向の復元
シーンフローが存在する点では,オプティカルフローとシーンフローの関係式(5.1)は,
n台のカメラに適用すると,次式のように表現できる.
∂u1
∂t
∂v1
∂t...
∂un
∂t
∂vn
∂t
=
∂u1
∂Xx
∂u1
∂Xy
∂u1
∂Xz
∂v1
∂Xx
∂v1
∂Xy
∂v1
∂Xz
...
∂un
∂Xx
∂un
∂Xy
∂un
∂Xz
∂vn
∂Xx
∂vn
∂Xy
∂vn
∂Xz
dx
dt (5.5)
シーンフローdx
dt の未知数は3であるのに対し,式(5.6)は2nの式を作ることができるた め,点xが2台以上のカメラで観測された場合,最小二乗法を用いることで,シーンフ ローの大きさと方向を復元することができる.