※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ピンホールカメラモデルの歪みのモデル

カメラレンズの歪みを、半径方向の歪み(radial distortion)と、円周方向の歪み(tangential distortion)として、以下の式をモデルとして使う場合が多い。
x' = x / z
y' = y / z
x'' = x' (1 + k_{1} r^2 + k_{2} r^4 + k_{3} r^6) + 2 p_{1} x' y' + p_{2} (r^2 + 2 x'^2)
y'' = y' ( 1+ k_{1} r^2 + k_{2} r^4 + k_{3} r^6) + p_{1} (r^2 + 2 y'^2) + 2 p_{2} x' y'

ここでは、
  • x,y,z カメラ座標系での対象の3次元位置
  • r^2 = x'^2 + y'^2

画像の位置は
u = f_{x} x'' + c_{x}
v = f_{y} y'' + c_{y}
ただし
  • f_{x} X方向焦点距離
  • f_{y} Y方向焦点距離
  • c_{x} X方向主点位置
  • c_{y} Y方向主点位置

カメラキャリブレーションとは

カメラキャリブレーションのプログラムでは、上述のパラメータのうち次のパラメータを複数のキャリブレーションパターンを撮影した画像から求めることとなる。
  • f_x
  • f_y
  • c_x
  • c_y
  • k_1
  • k_2
  • p_1
  • p_2

使い方

カメラの歪みモデルは、理想的な位置から歪んだ実際の画像上の位置を変換する式である。そのため、画像の特徴点の2次元位置から理想的な歪みの無い位置を直接求めることはできない。一般には次の方法を使う

画像の歪みを画像全体で一度に補正する方法

補正するための各座標点の変換値をテーブルとして保持する。
画像のサイズの全ての画素に対して、歪み位置を計算してテーブルとして保持しておき、その近傍画素の値から内挿した値を使って歪み補正画像を作成して、それを参照する。

モデル式のヤコビアンから、非線形最適化の反復により歪み座標から理想的な座標を算出する

歪みモデルの式のヤコビアンから、最適化計算を行い理想的な座標へ変換する。繰り返しは5回程度で収束する。計算する対象が少ない場合には良いが、多い場合には計算時間が問題となる場合がある。