整流変換マップの準備
概要
この記事を読む前に、カメラキャリブレーションと世界座標についてよく理解してください。
Aurora Vision Studio でカメラのキャリブレーションを実行する場合、2 つの基本的な方法があります。 キャリブレーションエディター(プラグイン)を使用することも、フィルターを使用することもできます(パラメーターを手動で設定し、出力を対応する入力に接続します)。 どちらのアプローチでもまったく同じ結果が得られますが、後者の方法では、何らかの理由で中間ステップと出力が関連する場合にそれらを制御できます。
このガイドでは主に最初のアプローチに焦点を当て、エディターを使用してキャリブレーションを実行する方法を段階的に説明します。 画像の修正を実行するには、RectifyImageフィルターを適用する必要があります。inRectificationMap入力をクリックすると、キャリブレーション エディターが表示されます。
ご覧のとおり、エディターは 3 つのページで構成されています。
- カメラ キャリブレーション - カメラ レンズのパラメータが計算されます。
- 世界から画像への変換 - 現実世界の点を画像点に変換する遠近法と変換が計算されます。
- 修正マップ ジェネレーター - 修正された画像を取得するために高速ピクセル変換が計算されます。
それぞれのページについて個別に説明していきますが、すでに述べたようにキャリブレーションエディターの各ページは、対応するキャリブレーション フィルターを呼び出します。 一般的な概要を以下の表に示します。
ページ名 | 対応するフィルタ |
---|---|
カメラキャリブレーション |
CalibrateCamera_Pinhole CalibrateCamera_Telecentric |
World to Image Transform |
CalibrateWorldPlane_Default CalibrateWorldPlane_Labeled CalibrateWorldPlane_Manual CalibrateWorldPlane_Multigrid |
Rectification Map Generation |
CreateRectificationMap_Advanced CreateRectificationMap_PixelUnits CreateRectificationMap_WorldUnits |
カメラキャリブレーションのページ
キャリブレーション エディターの最初のページでは、赤でマークされたボタンを使用してキャリブレーション ボードの画像を提供する必要があります。
この段階の目的は、カメラの固有パラメータを推定することです。 これらはカメラとその外界との間の変換に依存しないため、このステップはカメラを目的の場所に取り付ける前に実行できます。
次に、ボードとカメラのパラメーターを指定する必要があります。 使用するパターンの種類に応じて、2 つのオプションから選択できます。
- チェス盤 - ボードの 2 つのパラメータ、幅と高さを定義する必要があります。幅と高さは、それぞれ水平方向と垂直方向のマスの数に対応します。
- 円 - 単一の円の半径としきい値を定義する必要があります。
これらを設定したら、適用されるカメラに応じてカメラ タイプを調整する必要があります。カメラ タイプはピンホール (標準透視投影を使用) またはテレセントリック (標準透視投影を使用) のいずれかになります。
いくつかの歪みモデルタイプがサポートされています。 最も単純な分割型は、ほとんどのユースケースをサポートし、キャリブレーション データがまばらな場合でも予測可能な動作を行います。
高次モデルはより正確になる可能性がありますが、高品質のキャリブレーション ポイントのはるかに大規模なデータセットが必要であり、通常は画像全体にわたって高レベルの位置精度 (0.1 ピクセル未満のオーダー) を達成するために必要です。
もちろん、レンズごとに異なるため、これは単なる経験則であり、例外もあります。
[結果と統計] タブには、キャリブレーションの結果、特に再投影誤差についての情報が表示されます。これは、下の図のプレビューで赤で示されている再投影ベクトルに対応します。
これらは、完璧なグリッドを提供するために、特定された各点に向かう方向を移動する必要があることを示します。 さらに、二乗平均平方根と最大誤差の値もあります。
このタブには、計算された各カメラとレンズの歪みパラメータの値と標準偏差も表示されます。
詳細については、上の表でこのページに対応するフィルタのグループを参照してください。
ワールドから画像への変換ページ
2 ページ目に追加されたポイントは、現実世界のポイントと画像のポイントの間の変換を見つけるために使用されます。
まず、このステップでは、キャリブレーション ボードの画像も追加する必要があります (前のステップとまったく同じボタンを使用します)。 すべての画像を異なる角度から撮影できる前のステップとは対照的に、このステップでは固定角度から撮影する必要があることに注意してください。
次のステップでは、次の 2 つの方法のいずれかでポイント ソースを指定する必要があります。
- ポイントを手動で入力する
- キャリブレーション グリッドを使用する
キャリブレーション ボード上でポイントの位置を特定したら、スプレッドシートを使用して世界平面の座標を手動で入力する必要があります。
ワールド座標が指定されていないポイントは、指定された座標のポイントに基づいて自動的に計算されます。
ワールド座標が入力されていない場合、アルゴリズムはデフォルトのワールド ポイントの位置を想定し、誤った結果が生成される可能性があります。
ワールド平面の位置、回転、間隔を一意に決定するには、少なくとも 2 つのグリッド ポイントのワールド座標が必要です。
矢印は、キャリブレーション グリッドのどの点がスプレッドシート内の対応する行に関連しているかを示します。 ご覧のとおり、各行はイメージ プレーンの座標 (pixel で指定)、ワールド プレーンの座標 (mm で指定)、および誤差 ( pixelで指定) で構成されています。これはポイントがモデルの位置からどれだけずれているかを意味します。 この場合、小さな赤い矢印でマークされた再投影ベクトルもモデルからの偏差を示します。
ポイントの色にはそれぞれ独自の意味があります。
- グリーン ポイント - 自動的に計算されるポイント
- オレンジ ポイント - 選択されたポイント
- 青いポイント - 手動で調整されるポイント
[結果と統計] タブには、画像座標とワールド座標の両方について計算された誤差に関する情報が表示されます。
出力の再投影誤差は、計算された解の実現可能性を評価するための有用なツールです。 プラグインには、イメージ (RMS) とワールド (RMS) という 2 つのエラーがあります。
1 つ目は、視点の評価がいかに不正確であるかを示しています。 後者は、グリッド 2D ワールド座標系のラベル付けの不正確さを反映しています。
これらは独立していますが、両方ともソリューションの品質に影響を与えるため、それらの値は低いままにする必要があります。
詳細については、上の表でこのページに対応するフィルタのグループを参照してください。
修正マップ生成ページ
最後のページは、修正後の画像のパラメータを設定するために使用されます。
まず、前の手順と同じ方法でキャリブレーション ボードの画像をロードする必要があります。
次に、出力画像の 3 つの基本オプションのいずれかを選択する必要があります。
- デフォルトの画像設定
- カスタム画像パラメータ
- ワールド境界ボックス
プレビュー上の緑色のフレームは、出力イメージのサイズと境界線を示します。選択したオプションに応じて、さまざまなパラメーターを設定できます。 カスタムパラメータ または ワールドバウンディング ボックス を使用すると、同じ修正マップが提供されますが、違いは、異なるドメインで作業していることです。前者の場合は、 1 つは画像座標 (ピクセル単位で指定) で操作するのに対し、もう 1 つはワールド座標 (ミリメートル単位で指定) で操作します。
完了したら、[修正マップの生成] ボタンをクリックして、プレビューに表示される修正された画像を評価できます。
詳細については、上の表でこのページに対応するフィルタのグループを参照してください。
キャリブレーション エディターとフィルターの関係
両方のアプローチの関係は、以下の図の形式で表すことができます。
これは適用できるフィルタのセットの例にすぎませんが、特定のフィルタの使用はキャリブレーション ボードやケースに関連するその他のパラメータによって異なります。