27

OpenCVのfindHomography関数を使用して、異なる画像から2セットのポイント間のホモグラフィを推定する場合、RANSACまたはLMEDSを使用している場合でも、入力ポイント内の外れ値が原因でホモグラフィが不良になることがあります。

// opencv java example:
Mat H = Calib3d.findHomography( src_points, dst_points, Calib3d.RANSAC, 10 );

結果の3x3ホモグラフィ行列が許容できるかどうかをどのように判断できますか?

StackoverflowとGoogleでこれに対する答えを探しましたが、見つかりませんでした。

私はこの記事を見つけましたが、それは私には少し不可解です:

「ホモグラフィの幾何学的誤差」

4

1 に答える 1

25

ホモグラフィが許容できるかどうかを判断する最良の方法はです。

1- 1つの画像のポイントを取得し、計算されたホモグラフィを使用してそれらを再投影します。

//for one 3D point, this would be the projection
px' = H * px;
py' = H * py;
pz' = H * pz;

2-再投影された点と画像内の実際の点の間のユークリッド距離を計算します。

1点の再投影エラー。pは投影点、qは実点です。

ここに画像の説明を入力してください

3-再投影エラーが許容できるかどうかを決定するしきい値を確立します。

たとえば、1ピクセルを超えるエラーは、多くの追跡アプリケーションでは受け入れられません。

于 2012-08-23T07:58:59.893 に答える