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

このツールでは、画像データの取得に使用されるデバイスに想定されるレンズ歪みや、画像平面に対するデバイスの位置などのキャリブレーションデータを決定します。決定したキャリブレーションデータを使用して、画像を補正 ツールで画像を補正できます。また、カテゴリ 計測 または 位置決め のツールで直接使用することもできます。MERLIC のカメラのセットアップ方法については、 画像取得 のトピックを参照してください。

このツールは、トレーニングモードとともに使用されます。 これは、指定されたトレーニングパラメーターで最初にトレーニングが行われることを意味します。この場合、トレーニングを構成するのは、キャリブレーションデータの決定です。

ツール構造

ツールボード は、ツールバー の左側のトレーニングエリアと右側のグラフィックウィンドウに分割されます。 トレーニングエリアでは、キャリブレーションプレートの画像を選択するための処理モードと、キャリブレーションデータをトレーニングするためのトレーニングモードを切り替えることができます。グラフィックスウィンドウには、現在有効なモードの画像が表示され、青色にハイライトされます。左上のパラメーターに加えて、このツールには、右上にパラメーター キャリブレーションプレート記述子 が表示されます。

キャリブレーションプレート記述子

トレーニングエリア

グラフィックウィンドウ

トレーニングの実施方法

トレーニングを実施するには、ファイルまたはカメラデバイスからキャリブレーションプレートの画像を取得します。ツール「カメラキャリブレーション」を挿入します。画像をツール「画像」の「カメラキャリブレーション」パラメーターに接続し、トレーニング画像として選択します。トレーニングが自動的に開始されます。詳細については、トレーニングの実施方法を参照してください。

トレーニング結果のプレビュー

処理モードが有効な状態でトレーニング結果のプレビューを取得するには、パラメーター「カメラセットアップモード」を 1 に設定します。

カメラセットアップ

カメラのセットアップが必要な場合、パラメーター「カメラセットアップモード」を追加し、MERLIC アプリケーションのすべての実行サイクルでキャリブレーションを実行するために 1 に設定します。カメラのセットアップが完了したら、画像をトレーニング画像として使用し、パラメーター「カメラセットアップモード」を「0」に設定します。実行時間も短縮されます。パラメーター「カメラセットアップモード」が 1 に設定されている間、パラメーターを変更するたびにトレーニングも自動的に開始されます。

トレーニング画像の選択

ツールボード の左側で一番上の画像は、現在読み込まれている画像を表し、その下の画像はトレーニング画像を表します。

ツールを挿入すると、現在の処理画像が自動的にトレーニング画像として使用され、トレーニングが実施されます。さらに、トレーニング画像は以下のステップでも変更できます:

  1. 目的の画像が表示されるまで、グラフィックスウィンドウで、したがって、「処理」エリアでアプリケーションをシングルステップで実行します。
  2. 左側のトレーニングエリアの ボタンをクリックして、現在のトレーニング画像を「処理」エリアの画像と置き換えます。トレーニングモードは自動的に有効になり、グラフィックスウィンドウに新しいトレーニング画像が表示されます。

キャリブレーション結果

デフォルトパラメーター設定でキャリブレーションが成功した場合、トレーニング画像を読み込んだ段階で、MERLIC に検出されたキャリブレーションマークが表示され、キャリブレーション結果が出力されます。「カメラセットアップモード」が「0」に設定されている場合、ツール結果は常に前回成功したトレーニングに基づきます。

キャリブレーション後、ワールド座標系の中心位置 [0,0] が「キャリブレーション原点」になります。これは右手座標系であり、x 軸を反時計方向に 90°回転させると y 軸に重なります。

これで、キャリブレーションデータは後続のツールで 画像を補正 による画像補正ができます。さらに、このツールでは関心領域 (ROI)で画像内の既知の長さを定義して、カメラまでの一定の距離のピクセルサイズを指定できます。このツールがキャリブレートするのは、1 つの測定プレーンのみです。ROI を使用して、キャリブレーションプレートと並行であるが、レベル (高さ) の異なるオブジェクトの基準長さを定義できます。

キャリブレーションプレート

カメラのキャリブレーションには、キャリブレーションプレートが必要です。MERLIC 販売代理店から、さまざまなサイズおよび素材のキャリブレーションプレートを入手できます。トランスパレントキャリブレーションプレートはバックライト照明が必要な用途で利用できます。また、サブディレクトリ「calib」に保存されているものに加えて、非標準的キャリブレーション用のカスタマイズされた記述子ファイルを入手できます。

テスト目的でのみ、MERLIC のインストール先の「calib」ディレクトリ、たとえば「%PROGRAMFILES%\MVTec\MERLIC-5.7\calib\」にあるドキュメント「test_calibration_plates.pdf」に記載されている 20 mm、40 mm、80 mm、160 mm のサイズのキャリブレーションプレートを印刷できます。

印刷用のキャリブレーションプレートは精度が低く、実際のキャリブレーションプレートの代用はできません。テスト目的でプレートを印刷する場合、プリンタが「実サイズ」または「100%」に設定されており、ドキュメントに合わせて拡大縮小されないことを確認してください。

良好なキャリブレーション結果を得るために:
  • 画像の大部分を覆うことのできるキャリブレーションプレートを使用する。
  • 円形マークの最小直径は 20 ピクセルとする。
  • キャリブレーションプレートの白い部分のグレイ値は 100 以上とする。
  • キャリブレーションプレートの前景と背景のコントラスト、すなわち明部と暗部は、それぞれグレイ値が 100 を超えるものとする。
  • キャリブレーションプレートのグレイ値が一様な場合、照明を使用する。
  • 画像は、露出過度にしない。すなわち、ヒストグラムのピーク値を 255 未満とする。

パラメーター

基本パラメーター

画像:

このパラメーターは、パラメーター「カメラセットアップモード」が 1 に設定されている場合にカメラのキャリブレーションに使用される画像を表します。このパラメーターに接続された画像は、トレーニング画像として設定できます。

色画像をこのツールの入力として使用すると、最初のチャンネル (赤いチャンネル) のみが処理の対象になります。

単位:

このパラメーターを使用して、「キャリブレーションデータ」の単位をキャリブレーションプレートから (デフォルトで「mm」)、ツール結果用に選択された単位に変換します。対応するコネクターでその値を変更できます。 結果は、選択された単位によって若干異なる場合があります。「ワールドにおける距離」が指定された「基準ROI」または ROI が挿入された場合、「単位」は無視されます。

説明

nm

キャリブレーション情報を nm 単位で指定します。

μm

キャリブレーション情報を μm 単位で指定します。

mm

キャリブレーション情報を mm 単位で指定します。

cm

キャリブレーション情報を cm 単位で指定します。

m

キャリブレーション情報を m 単位で指定します。

キャリブレーション情報を 単位で指定します。

パイカ

キャリブレーション情報を パイカ 単位で指定します。

インチ

キャリブレーション情報を インチ 単位で指定します。

フィート

キャリブレーション情報を フィート 単位で指定します。

ヤード

キャリブレーション情報を ヤード 単位で指定します。

追加パラメーター

基準ROI:

このパラメーターには、基準距離 (特定の単位のスケールと対応するピクセルサイズの定義に使用できる既知の長さの距離) をグラフィカルに表現したデータがあります。このパラメーターは、ROI として示されます。

デフォルトで、「基準ROI」は定義されません。キャリブレーションに「基準ROI」を使用する場合、「基準ROI」がこのツールに送信されるよう、適切な前のツールの ROI 結果にこのパラメーターを接続するか、使用可能な ROI ボタンで新しい「基準ROI」を画像に描画します。「基準ROI」を定義したら、パラメーター「ワールドにおける距離」に既知の長さを入力してください。

このツールがサポートしているのは、単独 ROI の使用のみです。「基準ROI」に複数の ROI がある場合、処理には、前回作成した ROI のみが適用されます。「基準ROI」を円形 ROI で表すと、円の直径が基準距離として適用されます。(近軸) 長方形を「基準ROI」として使用すると、その長軸方向の主要長さが基準距離として適用されます。

これは、キャリブレーションプレートと同じ平面上にない項目を測定する場合に有用です。

ワールドにおける距離:

このパラメーターは「基準ROI」で示される既知の指定基準距離に対応する実距離を定義します。「基準ROI」は、後続の測定に使用されるカスタム単位を定義します。

アプリケーションオブジェクトが、カメラとは異なる距離に配置されている場合、歪みとともにピクセルサイズを決定できます。キャリブレーションが成功したら、アプリケーションの測定プレーンのオブジェクト画像を取得します。線分 ROI で既知の距離をマークし、パラメーターコネクター「ワールドにおける距離」にその値を入力します。MERLIC の内部での計算にはピクセルが使用されるため、「単位」の設定はオプションです。測定結果をメートル法で表示する場合、適切な単位 (たとえば、m) を設定する必要があります。

カメラセットアップモード:

このパラメーターはカメラセットアップモードを定義します。「カメラセットアップモード」がオン (1) の場合、MERLIC の実行サイクルのたびにカメラのキャリブレーションが実行されます。ライブ画像があるアプリケーションでカメラをセットアップするときに便利な機能です。処理モートでは、トレーニング結果のプレビューも取得されます。オフのときは、実行時間を節約するため、キャリブレーションは 1 回しか実行されません。 パラメーターの設定値はデフォルトで 0 です。

トレーニングパラメーター

基本トレーニングパラメーター

キャリブレーションプレート記述子:

このトレーニングパラメーターにはトレーニングに使われるキャリブレーションプレートの記述子ファイルが含まれます。キャリブレーションプレートは形状が正確に知られたオブジェクトです。スペシャルマークヘキサゴンからなる1つから5つのファインダーパターンが含まれます。つまり1つのマークと6つの近接です。4または6個のマークが穴を含んでいます。これらのファインダーパターンはそれぞれ一意的です。キャリブレーションプレートの方向とキャリブレーションプレートでのファインダーパターンの位置を決めるのに使えます。「キャリブレーションデータ」のトレーニングのためには、これらのファインダーパターンの少なくとも1つが完全に可視的でなければなりません。

結果

基本結果

キャリブレーションデータ:

この結果には、レンズの歪みの補正と画像平面に対するカメラの位置の補正に必要な決定されたキャリブレーションデータが含まれます。

キャリブレーションエラー:

この結果は、キャリブレーションの平均逆投影エラーを表します。結果はピクセル単位で表示され、最適化が成功したかどうかという一般的な情報で提供します。「カメラセットアップモード」が 1 に設定されている場合、トレーニング画像から生成されます。その他の場合、処理画像から生成されます。

キャリブレーションエラー」が 0.1 ピクセル程度のとき、最適化が観察データによく合っていることになります。「キャリブレーションエラー」が 0.1 と大きく異なる場合、良好なキャリブレーションは行われていません。

カメラチルト角度:

この結果では、カメラの傾斜角度 (カメラとキャリブレーションプレート間の角度) が度数単位で返ります。傾きは 0° から 90° の値の範囲の実数で返ります。「カメラチルト角度」が 0° のとき、カメラはキャリブレーションプレートに垂直になります。「カメラチルト角度」が 90° のとき、カメラはキャリブレーションプレートに対して平行になります。この情報は、セットアップ時のカメラの調節に利用できます。

カメラ回転角度:

この結果では、カメラの回転 (キャリブレーションプレートのアライメントに対する回転) が度数単位で返ります。回転は -180° から 180° の値の範囲の実数で返ります。下表に、キャリブレーションプレートの回転方法を示します。

カメラ回転角度

画像例

説明

カメラ回転角度 = 0

キャリブレーションプレートは回転しません:

  • 確定した「X 軸」(赤色に表示) は、水平に右を向きます。
  • 確定した「Y 軸」(緑色に表示) は、垂直に上を向きます。

カメラ回転角度 > 0

キャリブレーションプレートは時計方向に回転します:

  • キャリブレーションプレートの確定した「X 軸」と「Y 軸」も、時計方向に回転します。
  • カメラ回転角度」の戻り値は > 0 です。

例の画像は、時計方向に 40°回転したキャリブレーションプレートです。確定した「X 軸」(赤色) と「Y 軸」(緑色) は、キャリブレーションプレートの向きを示します。例の「カメラ回転角度」の結果は「40」です。

カメラ回転角度 < 0

キャリブレーションプレートは反時計方向に回転します:

  • キャリブレーションプレートの確定した「X 軸」と「Y 軸」も、反時計方向に回転します。
  • カメラ回転角度」の戻り値は < 0 です。

例の画像は、反時計方向に 40°回転したキャリブレーションプレートです。確定した「X 軸」(赤色) と「Y 軸」(緑色) は、キャリブレーションプレートの向きを示します。「カメラ回転角度」は「-40」になります。

カメラ回転角度」が 180° または -180° の場合、結果が -180° と 180° の間でジャンプすることがあります。「カメラ回転角度」の情報は、セットアップ時のカメラの調節に利用できます。

ツール状態:

ツール状態」はツール状態の情報を返します。したがって、エラー処理に使うことができます。さまざまなツールの状態結果の詳細については、 ツール状態 結果 のトピックを参照してください。

追加結果

キャリブレーション原点:

この結果では、使用したキャリブレーションプレートの原点 (座標系の中心) が返ります。 結果は点 ROI として返ります。

最大ローカルエラー:

この結果は、各マークとその逆投影間の最大誤差を返します。これで、対応する逆投影マークまでの距離が決まります。最大偏差は、実数のピクセル単位で返ります。

最大グローバルエラー:

この結果では、最大グローバル誤差が返ります。これで、左上角のマークと右下角のマーク間の距離が決まり、逆投影における対応する距離との比較が行われます。最大偏差は、実数のピクセル単位で返ります。

マーク:

この結果には、処理画像から抽出されたキャリブレーションマークの輪郭が含まれます。「マーク」は、パラメーター「カメラセットアップモード」の設定に応じて、異なる結果を提供します。

カメラセットアップモード」が 1 に設定されている場合、「マーク」は、処理画像から抽出されたキャリブレーションマークを返します。これは、キャリブレーションデータを比較する際に有用です。処理画像にキャリブレーションプレートが表示されない場合、キャリブレーションマークを抽出できないため、「マーク」は空になります。

カメラセットアップモード」が「0」に設定されている場合、処理画像ではキャリブレーションが実施されないため、「マーク」は空です。

X 軸:

この結果は、確定した x 軸を表します。 結果は輪郭として返り、赤色で表示されます。

Y 軸:

この結果は、確定した y 軸を表します。 結果は輪郭として返り、緑色で表示されます。

処理時間:

この結果は、ツールの直近の実行の持続時間をミリ秒単位で返します。結果は、追加結果として提供されます。したがって、デフォルトでは非表示になっていますが、ツール結果の横にある ボタンを使用して表示できます。詳細については、ツールリファレンス概要の処理時間の節を参照してください。

トレーニング結果

基本トレーニング結果

マークトレーニング:

この結果には、見つかったキャリブレーションマークの輪郭が含まれます。

キャリブレーションエラートレーニング:

この結果では、ピクセル単位のキャリブレーション誤差が返ります。

アプリケーションの例

このツール、以下の MERLIC Vision App 例で使用します:

  • calibrate_for_ruler_changed_distance.mvapp
  • calibrate_for_ruler_distorted.mvapp
  • calibrate_for_ruler_simple.mvapp