カメラ行列
カメラ行列(カメラぎょうれつ、英語: camera matrix)または(カメラ)射影行列(とうえいぎょうれつ、英語: projection matrix)はコンピュータビジョンの分野で用いられる3次元空間内の3次元点から画像内の2次元点へのピンホールカメラモデルによる投影を記述する 3 × 4 {\displaystyle 3\times 4} 行列である。
x {\displaystyle \mathbf {x} } を同次座標(4次元ベクトル)での3次元点の表現とし、 y {\displaystyle \mathbf {y} } を同次座標(3次元ベクトル)でのピンホールカメラモデルでこの点を投影したときの画像上の点の表現とすると、次の関係が成り立つ
y ∼ C x {\displaystyle \mathbf {y} \sim \mathbf {C} \,\mathbf {x} }
ここで C {\displaystyle \mathbf {C} } はカメラ行列で、記号 ∼ {\displaystyle \,\sim } は、左辺と右辺が非ゼロのスカラー倍を許容して等しいことを意味する。
カメラ行列 C {\displaystyle \mathbf {C} } は2つの射影空間の要素間の写像に関与するため、これも射影要素とみなせる。これは、スカラー倍(ゼロ以外)したカメラ行列も元と等価なカメラ行列になるため、自由度が11しかないことを意味する。
ここで C {\displaystyle \mathbf {C} } はカメラ行列で、ここでは次の式で与えられる。
C = ( 1 0 0 0 0 1 0 0 0 0 1 f 0 ) {\displaystyle \mathbf {C} ={\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&{\frac {1}{f}}&0\end{pmatrix}}} 、
そして対応するカメラ行列は次のようになる。
C = ( 1 0 0 0 0 1 0 0 0 0 1 f 0 ) ∼ ( f 0 0 0 0 f 0 0 0 0 1 0 ) {\displaystyle \mathbf {C} ={\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&{\frac {1}{f}}&0\end{pmatrix}}\sim {\begin{pmatrix}f&0&0&0\\0&f&0&0\\0&0&1&0\end{pmatrix}}}
最後のステップは、 C {\displaystyle \mathbf {C} } 自体が射影要素であることの結果である。
ここで導出されたカメラ行列は、ゼロ以外の要素がほとんど含まれていないという意味で自明に見えるかもしれない。これは、3次元点および2次元点に選ばれた特定の座標系に大きく依存する。ただし、実際には、以下に示すように他の形式のカメラ行列が一般的である。