24

カメラのキャリブレーション中は、通常、ポーズや奥行きなどを変えて多くの画像(> 10)を使用することをお勧めします。ただし、通常、使用する画像が少ないほど、再投影エラーは小さくなります。たとえば、27枚の画像の場合、cv :: calibrateCameraは0.23を返し、3枚の場合は0.11を返します。これは、キャリブレーション中に、過剰決定系の最小二乗問題を解いているためである可能性があります。

質問:

  1. キャリブレーションがどれだけ優れているかを示す絶対的な尺度として、実際に再投影誤差を使用していますか?たとえば、3つの画像でキャリブレーションして0.11を取得し、次に27の他の画像でキャリブレーションして0.23を取得した場合、「最初のキャリブレーションの方が優れている」と本当に言えますか?

  2. OpenCVは、キャリブレーションとエラーの計算の両方に同じ画像を使用します。それはある種の過剰適合ではありませんか?実際に2つの異なるセット(1つはキャリブレーションパラメーターの計算用、もう1つはエラーの計算用)を使用した場合、より正確ではないでしょうか。その場合、同じ(テスト)セットを使用して、異なる(トレーニング)セットからのすべてのキャリブレーション結果のエラーを計算します。それはもっと公平ではないでしょうか?

4

1 に答える 1

16

手遅れの場合は申し訳ありませんが、見ただけです。

エラーは、近似の再投影です。したがって、画像上の点を見つけ、実際のモデルを計算し、モデルが与えられたときにそれらの点が画像上のどこにあるかを再計算します-違いを報告します。ある意味、これは少し循環的ですが、それらのいくつかの画像に対してのみ正しいモデルがあり、非常に良いエラーを報告し、多くの画像を与えると、はるかに一般的に正しいモデルになりますが、より大きくなりますエラー、はるかに大きなスペースに収まるようにストレッチしようとしているからです。

画像を追加してもフィットが改善されず、ポイントが完全に検出されないため、ノイズが追加される可能性があります。重要なのは、同等のデータではなく、より多くのパラメータセット、より多くの角度と位置を提供することです。

同じ画像セットを使用してエラーを予測することは、実際の物理レンズパラメータに関して実際の意味を持っているため、実際には問題ではありません。同じデータでニューラルネットをトレーニング/テストするのとは異なります。

編集:opencvよりも優れたキャリブレーションルーチン(同じ概念に基づいていますが)が3D-DICに含まれています(無料ですがOSSではありません。ダウンロードリンクを取得するにはサイトに登録してください)。特にキャリブレーションマニュアルを参照してください。

于 2012-09-22T19:31:05.527 に答える