マシン ビジョン - カメラのキャリブレーション

1 マシン ビジョンにカメラのキャリブレーションが必要な理由

マシン ビジョンは、カメラ イメージングを使用して、3 次元シーンの測定、位置決め、再構成、およびその他のプロセスを実現します。これは、2 次元の画像を使用して 3 次元の反転を実行するプロセスです. 私たちが住んでいる世界は 3 次元ですが、画像や写真は 2 次元です. カメラは機能と見なすことができ、入力は 3 -次元のシーンで、出力は 2 次元の画像です。通常、この 3 次元から 2 次元へのプロセスは元に戻せません。
上記の 3 次元から 2 次元へのプロセスを近似する適切な数学的モデルを見つけ、この数学的モデルの逆関数を見つけることができれば、2 次元から 3 次元への逆プロセス、つまり、単純な数学的モデルを使用して、複雑なイメージング プロセスを表現し、イメージングの逆プロセスを見つけます。
ここに画像の説明を挿入
以前の記事「マシン ビジョン モデル - 射影行列」および「マシン ビジョン モデル - 歪みモデル」では、マシン ビジョンの 2 つの重要な数学的モデル -投影画像モデル歪みモデルについて説明しましたでは、これらの未知のパラメータはどのように取得されるのでしょうか? これがカメラのキャリブレーションの役割です。

2 カメラキャリブレーションの役割

前述のように、イメージング マトリックスと歪みモデルには次の未知数が含まれます。

  1. 内部参照行列: 4 つのパラメーター、f / dxf/dxf / d xf / dyf/dyf / u 0 u_0あなた0v 0 v_0v0
  2. 外部パラメーター マトリックス: 6 つのパラメーター、カメラの剛体のポーズ、移動、回転用の 3 つのパラメーター。
  3. 歪みパラメータ: 5 つのパラメータ、ラジアル歪み 3 k 1 k_1k1k 2 k_2k2k3k_3k3、接線歪み 2 p 1 p_1p1p 2 p_2p2

カメラのキャリブレーション: カメラの内部および外部パラメータと歪みパラメータを決定するプロセスです。
カメラキャリブレーションはコンピュータビジョン/マシンビジョンの基本とも言える.9(内部パラメータ+歪み)または15(内部パラメータ+歪み+外部参照)の未知パラメータを解くのが課題. カメラのキャリブレーションのほとんどは、カメラの内部パラメーターと歪みパラメーターをキャリブレーションすることです。これは、外部パラメーターがカメラのポーズに属し、カメラのポーズが作業プロセス中に絶えず変化しているためです。ただし、一部のアプリケーションでは、外部パラメーターもキャリブレーションする必要があります。同時に、つまりカメラ ポーズです。

3 カメラキャリブレーションの一般的な方法

キャリブレーション プロセスの数学的モデルによると、カメラのキャリブレーションは次のように分類できます。
(1) 線形キャリブレーション方法: 計算速度が速く、キャリブレーション精度が比較的低い
(2) 非線形最適化キャリブレーション方法: 高いキャリブレーション精度、複雑なモデル、および大量の計算;
( 3) 2 段階法: 上記の 2 つの組み合わせで、Tsai の 2 段階法、Zhang のキャリブレーション法など、2 つの長所と短所を組み合わせたものです。
以下の表は、一般的に使用されるいくつかのキャリブレーション方法の比較を示しています。

校正方法 アドバンテージ 欠点 一般的な方法
カメラのセルフキャリブレーション方法 高い柔軟性とオンライン校正 精度が低く、ロバスト性が低い クルッパ方程式に基づく階層的な段階的キャリブレーション
アクティブ ビジョン カメラのキャリブレーション方法 校正器不要、シンプルなアルゴリズム、高いロバスト性 高コストで高価な機器 アクティブなシステムがカメラを制御して特定の動きをします
校正器の校正方法 どのカメラモデルでも使用可能、高精度 キャリブレータ、複雑なアルゴリズムが必要 蔡の二段階法、張の校正法

3.1 カメラのセルフキャリブレーション方法

カメラのセルフ キャリブレーション方法では、イメージ ポイントの 3 次元座標を知る必要はありません.さまざまな撮影角度でシーン グラフ内の特定のポイントの相対的な関係を計算することによって、カメラ キャリブレーションのパラメーターを決定します。セルフ キャリブレーション方式のこの特性により、未知のカメラ パラメータのキャリブレーションを完了することができます。
カメラのセルフ キャリブレーション法は、キャリブレーション オブジェクトを使用せずに、イメージ ポイント間の対応または制約関係を使用するだけで、キャリブレーション システムの内部パラメーターと外部パラメーターを取得できるため、任意のカメラの動きや複雑な未知のシーンでのカメラ キャリブレーションが実現します。 1990 年代初頭に Luong、Faugeras、Maybank などによって最初に提案されたセルフキャリブレーションの概念から。
現在、セルフキャリブレーションの主な方法は次のとおりです。クルッパ方程式に基づくセルフキャリブレーション方法、階層化された段階的なキャリブレーション方法。これらのカメラのセルフキャリブレーション方法は、カメラシステムの外部環境を完全に無視して、カメラの内部パラメーターの制約関係を通じてパラメーターを解決するため、このキャリブレーション方法は他の方法よりも柔軟ですが、安定性は高くありません。

1) 階層的な段階的なキャリブレーション方法

階層化された段階的なキャリブレーション方法は、最初に画像シーケンスを射影的に再構築し、次に再構築に基づいてアフィンキャリブレーションとヨーロッパのキャリブレーションを実行し、非線形最適化アルゴリズムを通じてカメラの内部および外部パラメーターを取得します。初期パラメータはファジー値であるため、最適化アルゴリズムの収束は不確実です。

2) Kruppa に基づく自己校正法

Kruppa ベースのセルフ キャリブレーション手法は、二次曲線を介してカメラの内部パラメーター マトリックスに関する制約方程式を確立し、少なくとも 3 組の画像を使用してカメラをキャリブレーションします。イメージ シーケンスの長さは、キャリブレーション アルゴリズムの安定性に影響し、射影空間の無限平面は保証されません。

3.2 アクティブビジョンによるキャリブレーション方法

アクティブ ビジョンに基づくカメラ キャリブレーション方法は、カメラを制御してアクティブ システムを介して特定の動作を行い、複数の画像セットを取得し、画像情報と既知の変位変化に従ってカメラの内部および外部パラメーターを解決します。代表的な方法としては、カメラを 3 次元空間で安定して平行移動させる方法と、パラメータを固定してカメラを回転させる方法があります。アクティブ ビジョンに基づくキャリブレーション方法は、計算プロセスを簡素化し、線形の結果を得ることができます。この方法の欠点は、正確な制御プラットフォームを装備する必要があり、システムのコストが高く、モーション パラメーターが不明で制御できない場合には適用できないことです。

3.3 校正器による校正方法

アクティブビジョンキャリブレーション方式とは異なり、キャリブレーションオブジェクトに基づくカメラキャリブレーションでは、キャリブレーションオブジェクトが不可欠です。サイズと形状を決定するだけでなく、オブジェクトの表面上の特別な点の座標も決定する必要があります。原理は、数学的な方法を使用して、特定の点の空間座標と画像座標の間の対応関係を見つけ、カメラのパラメーターを取得することです。
代表的なものは、直接線形変換法 (DLT)、ツァイ 2 段階法、張正友平面校正法などです。その中で、キャリブレーション オブジェクトは、さらに 3 次元キャリブレーション オブジェクトと平面キャリブレーション オブジェクトに分けられます。三次元キャリブレーション方式は操作が簡単で、精度も信頼できます。ただし、3 次元キャリブレーション オブジェクトの製造コストは高く、処理と保守が困難です.平面キャリブレーション オブジェクトの製造は簡単であり、改良されたアルゴリズムによって必要な精度を保証することができます.したがって、いくつかのキャリブレーション近年の方法は、平面校正の開発と改良に基づいています。
キャリブレーションオブジェクトに基づくカメラキャリブレーション方法のキャリブレーション精度には、キャリブレーションオブジェクトに対する高い要件があり、一部の職場はその配置に適していないため、適用範囲も制限されます。

1) ツァイの二段階法

Tsai の 2 段階法では、最初にカメラ パラメーターを線形的に取得し、次に歪み係数を考慮して初期パラメーター値を取得し、非線形最適化によって最終的なカメラ パラメーターを取得します。Tsai の 2 段階の方法は高速ですが、半径方向の歪みのみを考慮するため、カメラの歪みが深刻な場合には適用できません。

2) 張の校正法

次のセクションを参照してください。

4 Zhang のキャリブレーション方法の紹介

「Zhang のキャリブレーション法」は、1999 年にトップの国際会議 ICCV で Zhang Zhengyou 博士によって発表された論文「 Flexible Camera Calibration By Viewing a Plane From Unknown Orientations」(記事 PDF ダウンロード)です。カメラのキャリブレーションにプレーン チェッカーボードを使用しています。方法。

4.1 原則

Zhang のキャリブレーション方法の基本原理: キャリブレーションに 2 次元の正方形で構成されるキャリブレーション ボードを使用し、キャリブレーション ボードのさまざまなポーズの写真を収集し、写真のコーナー ポイントのピクセル座標を抽出し、その初期値を計算します。ホモグラフィ行列によるカメラの内部および外部パラメータ.歪み係数は非線形最小二乗法によって推定され,最終的にパラメータは最尤推定法によって最適化される.
この方法は、写真キャリブレーション方法と自己キャリブレーション方法の間にあり、写真キャリブレーション方法で必要とされる高精度の 3 次元キャリブレーション オブジェクトの欠点を克服するだけでなく、自己キャリブレーションのロバスト性が低いという問題も解決します。校正方法。キャリブレーションプロセスは、印刷されたチェッカーボードを使用し、異なる方向からいくつかのグループの写真を撮るだけで済みます.誰でも自分でキャリブレーションパターンを作成できます.柔軟で使いやすいだけでなく、高精度と優れた堅牢性も備えています. したがって、それはすぐに世界中で広く採用され、実験室から現実世界への 3D コンピュータ ビジョンのプロセスを大幅に促進しました。
ここに画像の説明を挿入ここに画像の説明を挿入

4.2 キャリブレーションボード

Zhang のキャリブレーション方法の重要な部分はキャリブレーション ボードです. キャリブレーション ボードにはトポロジ構造が印刷されており, チェッカーボードとドット グリッドが広く使用されています. なぜチェッカーボードまたは原点グリッドが一般的に使用されるのですか? これは、チェッカーボードまたは起点格子のトポロジー構造が明確で均一であり、そのトポロジー構造を検出するための画像処理アルゴリズムが単純で効果的であるためです。
ここに画像の説明を挿入
これらの一般的に使用される 2 つのパターンに加えて、多くのキャリブレーション ボード フォーマットがあり、各キャリブレーション ソフトウェアには対応するキャリブレーション ボード フォーマットがありますが、キャリブレーション ボードのスタイルに関係なく、基本的な機能は類似しています。

  1. オブジェクト ポイントとイメージ ポイント間の対応を決定します。
  2. キャリブレーション ボード座標系でのキャリブレーション ボードの各コーナー ポイントの位置が決定され、既知であるため、キャリブレーション ボードのコーナー ポイントをカメラ座標系の座標に変換します。

5 カメラのキャリブレーションを完了する方法

以上でカメラのキャリブレーションの基本的な知識について説明しましたが、実際にキャリブレーションを行いたい場合はどうすればよいでしょうか。次の方法が一般的に使用されます。

5.1 成形ツールの使用

多くの商用ソフトウェアまたはツールには、次の 2 つの典型的なソフトウェアなど、カメラのキャリブレーション機能が組み込まれています。

5.1.1 ファルコン

Halcon ソフトウェアのキャリブレーション アシスタントは、カメラのキャリブレーションを完了することができます。下の図に示すように、Halcon キャリブレーション ボードのフォーマットです。
ここに画像の説明を挿入ここに画像の説明を挿入
Halcon キャリブレーション アシスタントを使用して、手順を完了した後、図に示すように、カメラの内部および外部パラメーターのキャリブレーション結果を取得できます。
ここに画像の説明を挿入

5.1.2 マトラブ

カメラ キャリブレーション ツールも Matlab に統合されており、
ここに画像の説明を挿入
そのうち Camera Calibrator は単眼カメラのキャリブレーションに使用され、Stereo Camera Calibrator は双眼カメラのキャリブレーションに使用されます。
ここに画像の説明を挿入
校正結果は次のとおりです。
ここに画像の説明を挿入

5.2 プログラミングの実装

5.2.1 Opencvプログラミングによる実装

OpenCV は、チェッカーボード コーナー検出、ホモグラフィ マトリックス、内部および外部パラメーター計算などの関連機能を統合しており、独自のカメラ キャリブレーション ツールを構築するために使用できます。

findChessboardCorners();//棋盘格角点检测
drawChessboardCorners();//棋盘格角点绘制
find4QuadCornerSubpix();//粗提取角点精确化
findHomography();//获取单应矩阵
cornerSubPix();//亚像素检测
calibratCamera();//求解相机内外参
initUndistortRectifyMap();//计算畸变参数

5.2.2 完全に自己プログラムされた実装

上記のツールとプログラミングインターフェースにはそれぞれ長所と短所があり、実際には、各方法のキャリブレーション結果には多かれ少なかれ偏差があり、精度は同じではありません。
したがって、カメラキャリブレーションの原理を理解していれば、必要に応じて自分でプログラムすることもできます. もちろん、この方法は最も難しい方法でもあり、カメラキャリブレーションの結果 (精度、速度など) は完全に実装に依存します.原則とプログラム. パフォーマンスですが、この方法は、独自のニーズに応じて最適化および調整でき、適応性が優れています.

参考

実際の戦闘 | カメラのキャリブレーション
http://www.imrobotic.com/news/detail/5302

おすすめ

転載: blog.csdn.net/hangl_ciom/article/details/106981186