最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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

"幾何学的カメラ キャリブレーション""camera resectioning" とも呼ばれ、レンズおよびイメージまたはビデオ カメラのイメージ センサーのパラメーターを推定します。これらのパラメーターを使用して、レンズ歪みの修正や、オブジェクトのワールド単位でのサイズ測定、シーン内のカメラ位置の判定などを実行できます。これらのタスクはマシン ビジョンなどのアプリケーションでオブジェクトの検出と測定に使用されます。また、ロボット工学のナビゲーション システムや、3 次元シーン再構成などにも使用されます。

カメラのキャリブレーションを行うと、以下のようなことが可能になります。

カメラのパラメーターには内部パラメーター、外部パラメーターおよび歪み係数が含まれます。カメラのパラメーターを推定するには、3 次元のワールド座標の点とそれに対応する 2 次元イメージの点が必要です。こうした対応関係は、チェッカーボードのようなキャリブレーション パターンの複数のイメージを使用して取得できます。この対応関係を使用してカメラのパラメーターを求めます。カメラをキャリブレーションした後、以下の方法で、推定されたパラメーターの精度を評価できます。

  • カメラの相対位置とキャリブレーション パターンのプロット

  • 再投影誤差の計算。

  • パラメーター推定誤差の計算。

カメラ キャリブレーターを使用してカメラのキャリブレーションを実行し、推定されたパラメーターの精度を評価します。

カメラ モデル

Computer Vision System Toolbox™ のキャリブレーション アルゴリズムでは、Jean-Yves Bouguet [3] により提唱されたカメラ モデルを使用します。モデルには次が含まれます。

  • ピンホール カメラ モデル、[1]

  • レンズ歪み、[2]

ピンホール カメラ モデルは、典型的なピンホール カメラにレンズがないためレンズ歪みが考慮されません。実際のカメラを正確に表すため、アルゴリズムで使用される完全なカメラ モデルには半径方向および円周方向のレンズ歪みが含まれます。

ピンホール カメラ モデル

ピンホール カメラはレンズがなく、小さな開口部が 1 つあるシンプルなカメラです。光線が開口部を通ってカメラの反対側に反転イメージとして投影されます。シーンの正立イメージを含むバーチャル イメージ平面がカメラの前にあると想定してください。

ピンホール カメラのパラメーターは "カメラ行列" と呼ばれる 4 行 3 列の行列で表されます。この行列は 3 次元世界のシーンをイメージ平面にマッピングします。キャリブレーション アルゴリズムは、カメラの外部パラメーターと内部パラメーターを使用してカメラ行列を計算します。外部パラメーターは 3 次元シーンにおけるカメラの位置を表します。内部パラメーターはカメラの光学的中心と焦点距離を表します。

ワールド座標点は外部パラメーターを使ってカメラ座標に変換されます。カメラ座標は内部パラメーターを使ってイメージ平面にマッピングされます。

カメラのキャリブレーション パラメーター

キャリブレーション アルゴリズムは、カメラの外部パラメーターと内部パラメーターを使用してカメラ行列を計算します。外部パラメーターは、3 次元のワールド座標系から 3 次元のカメラ座標系への剛体変換を表します。内部パラメーターは、3 次元のカメラ座標から 2 次元のイメージ座標への射影変換を表します。

外部パラメーター

外部パラメーターは、回転 R と変換 t で構成されています。カメラの座標系の原点はその光学的中心にあり、x 軸と y 軸でイメージ平面が定義されます。

内部パラメーター

内部パラメーターには、焦点距離、光学的中心 ("主点" とも呼ばれます) およびせん断係数が含まれます。カメラの内部パラメーターの行列 K は次のように定義されます。

[fx00sfy0cxcy1]

ピクセルせん断は次のように定義されます。

[cxcy] — ピクセル単位の光学的中心 (主点)。
(fx,fy) — ピクセル単位の焦点距離。
fx=F/px
fy=F/py
F — ワールド単位の焦点距離。通常はミリメートル単位です。
(px,py) — ワールド単位のピクセルのサイズ。
s — せん断係数。イメージの座標軸が直交しない場合は非ゼロです。
s=fxtanα

カメラ キャリブレーションの歪み

典型的なピンホール カメラにはレンズがないため、カメラ行列ではレンズ歪みが考慮されません。実際のカメラを正確に表現するために、カメラ モデルには半径方向および円周方向のレンズ歪みが含まれています。

半径方向の歪み

半径方向の歪みは、レンズの光学的中心からエッジに向かうにつれて光線の屈折率が大きくなる現象を指しています。この歪みはレンズが小さいほど大きくなります。

半径方向の歪み係数は、このタイプの歪みをモデル化します。歪んだ点は (xdistorted, ydistorted) として次のように表されます。

xdistorted = x(1 + k1*r2 + k2*r4 + k3*r6)

ydistorted= y(1 + k1*r2 + k2*r4 + k3*r6)

  • x、y — 歪み補正後のピクセル位置。x と y は正規化されたイメージ座標内にあります。正規化されたイメージ座標は、光学的中心への変換後にピクセル単位の焦点距離で除算したピクセル座標から求められます。したがって、x と y は次元がありません。

  • k1、k2 および k3 — レンズの半径方向の歪み係数。

  • r2: x2 + y2

一般に、キャリブレーションを行うには 2 つの係数で十分です。広角レンズなどの歪みが大きい場合には、3 つの係数を選択して k3 を含めることができます。

円周方向の歪み

円周方向の歪みは、レンズとイメージ平面が平行にならない場合に生じます。円周方向の歪み係数は、このタイプの歪みをモデル化します。

歪んだ点は (xdistorted, ydistorted) として次のように表されます。

xdistorted = x + [2 * p1 * x * y + p2 * (r2 + 2 * x2)]

ydistorted = y + [p1 * (r2 + 2 *y2) + 2 * p2 * x * y]

  • x、y — 歪み補正後のピクセル位置。x と y は正規化されたイメージ座標内にあります。正規化されたイメージ座標は、光学的中心への変換後にピクセル単位の焦点距離で除算したピクセル座標から求められます。したがって、x と y は次元がありません。

  • p1 および p2 — レンズの円周方向の歪み係数。

  • r2: x2 + y2

参照

[1] Zhang, Z. “A Flexible New Technique for Camera Calibration.” IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 22, No. 11, 2000, pp. 1330–1334.

[2] Heikkila, J., and O. Silven. “A Four-step Camera Calibration Procedure with Implicit Image Correction.” IEEE International Conference on Computer Vision and Pattern Recognition.1997.

[3] Bouguet, J. Y. “Camera Calibration Toolbox for Matlab.” Computational Vision at the California Institute of Technology. Camera Calibration Toolbox for MATLAB.

[4] Bradski, G., and A. Kaehler. Learning OpenCV: Computer Vision with the OpenCV Library. Sebastopol, CA: O'Reilly, 2008.

参考

|

関連するトピック