21
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

導入

3次元空間を異なる位置のカメラから撮影したときの幾何のこと。

「カメラ $O_L$ から見ると $X_L$ に物体が写っている」ことしか分かっていない時点では、 $X, X_1, X_2, X_3$ のどこに物体があるかわからない。「カメラ $O_R$ から見て $X_R$ に同じ物体が写っている」ことも分かった場合は、 $X$ に物体があると特定できる。

  • エピポーラ線(Epiline) : 図の赤線

    • 「カメラ $O_L$ から見て $X_L$ に物体が写っている」とき、「カメラ $O_R$ から見てどこに物体が写るか」の候補
  • エピポール(Epipole) : 図の点 $e_L, e_R$

    • 一方のカメラから他方のカメラが写る位置のこと
    • 物体の位置に関係なく一定
    • どの物体のエピポーラ線もエピポールで交わる
  • エピポーラ面(Epipolar Plane) : 図の緑面 $O_L X O_R$

    • 物体の位置と2つのカメラ位置の3点で決まる平面
    • エピポーラ線・エピポールはエピポーラ面上にある

エピポーラ拘束

$P$ にある物体は、カメラ $C$ からは $\boldsymbol{p}$ 、カメラ $C'$ からは $\boldsymbol{p'}$ に写る。

  • $\boldsymbol{p} = (x_p, y_p, 1)$
    • $C$ を原点とした同次座標系( $C$ 座標系)
  • $\boldsymbol{p'} = (x_{p'}, y_{p'}, 1)$
    • $C'$ を原点とした同次座標系( $C'$ 座標系)

ここで、以下のことがいえる。

  1. 「カメラ $C$ から見て $p$ に物体が写っている」ことしか分かっていない時点では、カメラ $C'$ でその物体が写る( $\boldsymbol{p'}$ がある)位置は「エピポーラ線上のどこか」に限定される。
  2. 「カメラ $C'$ から見て $p'$ に物体が写っている」ことしか分かっていない時点では、カメラ $C$ でその物体が写る( $\boldsymbol{p}$ がある)位置は「エピポーラ線上のどこか」に限定される。

このことを**エピポーラ拘束(Epipolar Constraint)**と呼ぶ。

次に、エピポーラ拘束を数式で表すことを考える。

基本行列による表現

上記1.を基に話を進める(最終的には1.と2.が同じ数式で表される)。
上記1.は、以下のように表せる。

「 $\boldsymbol{p'} = (x_{p'}, y_{p'}, 1)$ はエピポーラ線上にある」 --- (1-1)

エピポーラ線の方程式を $ax + by + c = 0$ とし、さらに係数ベクトル $(a, b, c)$ を $\boldsymbol{l}$ とする。
すると、(1-1)は以下のように書き換えられる。

「 $\boldsymbol{p'} = (x_{p'}, y_{p'}, 1)$ は $\boldsymbol {p'} \cdot \boldsymbol{l} = a x_{p'} + b y_{p'} + c = 0$ を満たす」
$\Leftrightarrow$ 「$\boldsymbol{p'} = (x_{p'}, y_{p'}, 1)$ は $\boldsymbol{l}$ と常に垂直である」 --- (1-2)

これを満たす $\boldsymbol{l}$ を決めたい。 $\boldsymbol{p'}$ はエピポーラ面上にあるため、 $\boldsymbol{l}$ はエピポーラ面に垂直であればよい。
よって、 $\boldsymbol{l} = \boldsymbol{t} \times R \ \boldsymbol{p}$ とする(以下理由より)。

  • 理由
    • 2つのベクトルの外積はそれらのベクトルが張る平面に垂直である(外積の定義より)
    • $\boldsymbol{t}$ はエピポーラ面上のベクトルである(図より)
      • 図では始点が $C$ だが、ここでは $C'$ 座標系で取り扱っていることに注意
    • $R \ \boldsymbol{p}$ はどちらもエピポーラ面上のベクトルである
      • $C$ 座標系の $\boldsymbol{p}$ を $C'$ 座標系で取り扱うために $R$ を作用させている

これにより、(1-2)は以下のように書き換えられる。

「 $\boldsymbol{p'} = (x_{p'}, y_{p'}, 1)$ は $\boldsymbol{p'} \cdot (\boldsymbol{t} \times R \ \boldsymbol{p}) = 0$ を満たす」 --- (1-3)

さらに、ベクトル $\boldsymbol{t}$ と行列 $R$ を一括で扱うため変形する。
ベクトル $\boldsymbol{t}$ による外積と同じ作用となる行列は歪対称行列 $[\boldsymbol{t}]_{\times}$ として表せる。

これにより、(1-3)は以下のように書き換えられる。

「 $\boldsymbol{p'} = (x_{p'}, y_{p'}, 1)$ は $\boldsymbol{p'} \cdot ([\boldsymbol{t}]_{\times} R \ \boldsymbol{p}) = 0$ を満たす」 --- (1-4)

ここで、 $E = [\boldsymbol{t}]_{\times} R$ とおく。この $E$ を**基本行列(Essential Matrix)**と呼ぶ。
基本行列 $E$ を用いて(1-4)の条件式を書き換えると、以下のようになる。

$$\boldsymbol{p'}^T \ E \ \boldsymbol{p} = 0 \tag{1}$$

これが、基本行列を用いて表したエピポーラ拘束であり、上記2.における $\boldsymbol{p}$ に求められる条件でもある。

基礎行列による表現

カメラ固有のパラメータ(レンズ歪み等)を内部パラメータと呼ぶ。
ここまでは、カメラキャリブレーションにより内部パラメータが分かっており、その影響を除去したものとして考えていた。
そうでない場合、物体は $\boldsymbol{p}, \boldsymbol{p'}$ とずれた位置に写る。

カメラ $C$ の内部パラメータを $K$ 、カメラ $C'$ の内部パラメータを $K'$ とおく。
すなわち内部パラメータによって、カメラ $C$ からは $\boldsymbol{m} = K \boldsymbol{p}$ に、カメラ $C'$ からは $\boldsymbol{m'} = K' \boldsymbol{p'}$ に物体が写る。

式(1)を $\boldsymbol{m}, \boldsymbol{m'}$ を用いて書き換えると、以下のようになる。

$$\boldsymbol{m'}^T ({K'}^{-1})^T \ E \ K^{-1} \boldsymbol{m} = 0 \tag{2}$$

ここで、 $F = ({K'}^{-1})^T \ E \ K^{-1}$ とおく。この $F$ を**基礎行列(Fundamental Matrix)**と呼ぶ。
基礎行列 $F$ を用いて式(2)を書き換えると、以下のようになる。

$$\boldsymbol{m'}^T F \boldsymbol{m} = 0 \tag{3}$$

基本行列と基礎行列の違い

  • 基本行列
    • カメラキャリブレーション済であると仮定している
    • カメラ間の移動・回転関係にのみ依存している
  • 基礎行列
    • カメラキャリブレーションされていないと仮定している
    • カメラ間の移動・回転関係及び、各カメラの内部パラメータに依存している

参考

21
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?