同次座標系

0

1概要

同次座標系(homogeneous coordinates)は,射影幾何(projective geometry)に用いる、元の次元を1次元増やして座標系である.ビジョンやグラフィックスのカメラ投影モデルやアフィン変換においては,「移動中心」および「カメラ中心」を基準とした射影変換によく用いられる.

同次座標系上では射影前後の不変性が成り立つ.射影幾何では無限遠点も含めた点を全て表す必要があるが,同次座標系を導入することにより,全て有限座標による表現で済ますことができる.

同次座標系の利点として,元のベクトルの回転(rotation)・並進(translation)・拡大縮小(scaling)・透視投影(perspecive projection)による変換を,各変換を表す行列の合成変換として一括に実施できる点が挙げられる.例えば,幾何的コンピュータビジョンでは,動画におけるカメラ姿勢の連続的変化は,同次座標系においてフレーム間の回転行列/並進ベクトルによる線形変換として取り扱うことが可能である.数値計算的にも,行列とベクトルの積で線形代数のみで変換や変換同士の合成が線形表現のみで済むので都合が良い.また,その逆に,与えられた合成変換表現から固有値分解など線形代数的な処理で部分変換を推定できる意味でも,同次座標系は便利である (※ただし,回転表現のように誤差に敏感な表現もあることに気を配ることにもなる).

同次座標系はステレオ・エポポーラ幾何や,その応用としてのSfMやカメラ・物体位置姿勢推定やMultiview Stereoなどの,ビジョンの3次元幾何問題において,標準的な座標表現として用いられてきた.

以降のこの記事の構成を述べる.2節では平面上の同次座標系について,3節では,3次元空間における同次座標系について,それぞれ述べる.最後に4節でまとめを行う.

※「同次座標」で検索して,この記事に到達する方が最近多くなっていますが,学生や初心者の方で,同次座標などの画像系の基本知識全般についてきちんと学びたい方には,「ディジタル画像処理[改訂第二版]紹介記事)」をおすすめします.

2 平面上の同次座標系

2次元座標系での画像変換では,単純な線形変換で表しきれないアフィン変換や射影変換を行うために同次座標系が活用される.

3次元めの要素を追加した同次座標系の点$\tilde{\bm{p}} = (x^{\prime},y^{\prime},w) (w \neq 0)$が,非同次座標系の元の2次元空間の点$\bm{p} = (x^{\prime}/w,y^{\prime}/w)$に対応するとしよう.この時,$\tilde{\bm{p}}$を任意のスカラ値$\lambda \neq 0$で各成分を定数倍した点を$\lambda \tilde{\bm{p}}$とすると,元の2次元空間での対応する点は両方とも$(x/w,y/w)$を表すして不変であるという性質がある.

これは言い換えると,同次座標系の点は,定数倍を行なっても元の2次元座標系で対応する点が変化しないという「射影前後の不変性」を有する.射影不変性のおかげで,ある基準点を基にした矩形領域の各点の,射影前と射影後を全対応させて記述することができる,2D-2Dの平面上での同次座標系では,アフィン変換や射影変換を,線形変換により便利に表現・実行できる.

同次座標系は一般的には$w$の値は任意なのだが,平行移動(translation)を表現できる意味で,$w=1$の$\tilde{\bm{p}} = (x,y,1)$という表現を通常は用いる.追加した次元を常に$w=1$にするのは,このあと3節でも同様である.

3 3次元空間での同次座標系

3次元空間上の任意の点$\bm{p}=(X,Y,Z)$は,同次座標系だと$(X^{\prime},Y^{\prime},Z^{\prime},w)$で表される.二次元の時と同様に$(X,Y,Z) = (X^{\prime},Y^{\prime},Z^{\prime},w)$が成立する.

アフィン変換の同次座標系における例:並進と回転

3次元空間におけるアフィン変換は,対応する4次元の同次座標系においては$4 \times 4$の行列による積として表現できる.ここで,ビジョンのカメラ幾何でも使用する3D並進(translation)と3D回転(rotation)について,同次座標の参考に表しておきたい.

元の3次元空間において,任意の点$\bm{p}=(X,Y,Z)$と,並進ベクトル$\bm{t}=(t_1,t_2,t_3)$を考える.この時,同次座標系上での点$\tilde{\bm{p}}=(X,Y,Z,1)$に,並進ベクトルを行列化したものを掛けることで,並進による変換を実施することができる:

$$
\begin{pmatrix}
X+t_1 \\
Y+t_2 \\
Z+t_3 \\
1
\end{pmatrix}
=
\begin{pmatrix}
1 & 0 & 0 & t_1 \\
0 & 1 & 0 & t_2 \\
0 & 0 & 1 & t_3 \\
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
X \\
Y \\
Z \\
1
\end{pmatrix}
$$

この並進によって変換された後のベクトル$\tilde{\bm{p}}=(X,Y,Z,1)$は,元の3次元空間では点$\tilde{\bm{p}}=(X+t_1,Y+t_2,Z+t_3)$に対応する.

次に,並進に加えて回転も加わったいわゆる「剛体変換(rigid transform)」を,同次座標系で行うことを考える.これも同様に$4\times4$の行列を掛けることで剛体変換を実施することができる:

$$
\begin{pmatrix}
X+t_1 \\
Y+t_2 \\
Z+t_3 \\
1
\end{pmatrix} =
\begin{pmatrix}
r_{11} & r_{12} & r_{13} & t_1 \\
r_{21} & r_{22} & r_{23} & t_2 \\
r_{31} & r_{32} & r_{33} & t_3 \\
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
X \\
Y \\
Z \\
1
\end{pmatrix} =
\begin{pmatrix}
\bm{R} & \bm{t} \\
\bm{0}^T & 1
\end{pmatrix}
\begin{pmatrix}
X \\
Y \\
Z \\
1
\end{pmatrix}
$$

ここで$\bm{R}$は$3\times3$の回転行列,$\bm{0}^T$は要素が0の行ベクトルを示す.

透視投影モデルの例

カメラモデルで使用される,キャリブレーション済みのカメラ行列(内部パラメータと外部パラメータ)による変換を用いた,3D座標から画像座標への投影の変換式も,以下のように同次座標系で表現された変換式である

$$
\begin{pmatrix}
x \\
y \\
1
\end{pmatrix} =
\begin{pmatrix}
f & 0 & 0 \\
0 & f & 0 \\
0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
\bm{R} & \bm{t} \
\end{pmatrix}
\begin{pmatrix}
X \\
Y \\
Z \\
1
\end{pmatrix}
$$

(詳しくは「カメラモデル」の記事を参照のこと)

4.まとめ

同次座標系は,射影前後の不変性が成り立つ,射影幾何向けの座標系である.複数の変換が線形変換で表せることもあり,2D画像変換や,3Dビジョンや3Dグラフィックスのカメラモデルおいても,標準的に使用されている座標系である.

References

  • ディジタル画像処理[改訂第二版], 画像情報教育振興協会, 2020/2/26
0