ピンホールカメラモデル

ピンホールカメラモデル

カメラモデルとは、カメラ座標で表現された物体の座標をカメラ画像の座標に変換する関係式である。実際のカメラに近いカメラモデルとしてピンホールカメラモデルがよく使われる。ピンホールカメラモデルとは、下の図のように無限に小さい穴(ピンホール)を通して画像が生成されると考える近似モデルである。ピンホールを使うと光量が少なくなってしまうので、実際のカメラではピンホールカメラモデルに近い投影になるように複数のレンズを組み合わせている。

f:id:salpik:20210221204742p:plain:w400
ピンホールカメラモデル

考察

  • 焦点距離
    ピンホールと投影面の距離を f(この fのことを焦点距離と呼ぶそうだが、中学校で学んだロウソクの焦点距離と同じものではないような気がする)
  • 投影面の位置
    光は全てピンホール(カメラ座標の原点)を通ることになるので、 (X, Y, Z)の位置にある物体は、ピンホール軸から (f\frac{X}{Z}, f\frac{Y}{Z})だけずれた位置に投影される。投影面上に反転された像が生成されるがそれはカメラのソフトウェアで反転処理されるとして負号は無視する。
  • 焦点距離の次元変換
     fは距離次元なので、距離をピクセルに直して f'と表されるとする。これはカメラの画角( \theta)とピクセル数( n)がわかれば
\begin{equation}
2f\tan \frac{\theta}{2} = nf
\end{equation}

によって fから f'に変換できる。また一般には x方向と y方向で同じとは限らないので f'_{x}, f'_{y}と表現しておく。 - 光軸
ピンホール軸と投影面上での位置を (c_{x}, c_{y})とすると、投影位置はここからのオフセットとして表現される。

以上をまとめると、物体の位置 (X, Y, Z)とカメラ画像平面のピクセル位置 (u, v)の関係は

\begin{eqnarray}
\left( \begin{array}{c} u \\ v \end{array}\right) &=& \left( \begin{array}{cc} \frac{f'_{x}}{Z} & 0 & c_{x} \\ 0 & \frac{f'_{y}}{Z} & c_{y} \\ 0 & 0 & 1  \end{array}\right) \left( \begin{array}{c} X \\ Y \\ 1 \end{array}\right) \\
Z\left( \begin{array}{c} u \\ v \end{array}\right) &=& \left( \begin{array}{cc} f'_{x} & 0 & c_{x} \\ 0 & f'_{y} & c_{y} \\ 0 & 0 & 1  \end{array}\right) \left( \begin{array}{c} X \\ Y \\ 1 \end{array}\right)
\end{eqnarray}

参考

カメラ内部パラメータとは | NO MORE! 車輪の再発明

内部パラメータ(焦点距離)の単位の話 ~pixelとmmの変換~ | NO MORE! 車輪の再発明