3

I'm trying to do pose estimation (actually [Edit: 3DOF] rotation is all I need) from a planar marker with 4 corners = 4 coplanar points.
Up until today I was under the impression from everything I read that you will always compute a homography (e.g. using DLT) and decompose that matrix using the various methods available (Faugeras, Zhang, the analytic method which is also described in this post here on stackexchange) and refine it using non-linear optimization, if necessary.

First minor question: if this is an analytical method (simply taking two columns from a matrix and creating an orthonormal matrix out of these resulting in the desired rotation matrix), what is there to optimize? I've tried it in Matlab and the result jitters badly so I can clearly see the result is not perfect or even sufficient, but I also don't understand why one would want to use the rather expensive and complex SVDs used by Faugeras and Zhang if this simple method yields results already.

Then there are iterative pose estimation methods like the Ortohogonal Iteration (OI) Algorithm by Lu et al. or the Robust Pose Estimation Algorithm by Schweighofer and Pinz where there's not even a mention of the word 'homography'. All they need is an initial pose estimation which is then optimized (the reference implementation in Matlab done by Schweighofer uses the OI algorithm, for example, which itself uses some method based on SVD).

My problem is: everything I read so far was '4 points? Homography, homography, homography. Decomposition? Well, tricky, in general not unique, several methods.' Now this iterative world opens up and I just cannot connect these two worlds in my head, I don't fully understand their relation. I cannot even articulate properly what my problem is, I just hope someone understands where I am.

I'd be very thankful for a hint or two.

Edit: Is it correct to say: 4 points on a plane and their image are related by a homography, i.e. 8 parameters. Finding the parameters of the marker's pose can be done by calculating and decomposing the homography matrix using Faugeras, Zhang or a direct solution, each with their drawbacks. It can also be done using iterative methods like OI or Schweighofer's algorithm, which at no point calculate the homography matrix, but just use the corresponding points and which require an initial estimation (for which the initial guess from a homography decomposition could be used).

4

2 に答える 2

2

4つのポイントしかない場合、特に長方形が光軸にほぼ直交している場合、ソリューションは通常、それらの位置の小さなエラーに非常に敏感になります(これは、消失点が観察できないためです。これらは画像の外側にあり、測定-そしてポーズは、四角形の中心から消失点までのベクトルの外積によって与えられます)。

コーナーがサブピクセルの精度で自信を持って配置できるようなパターンですか?コーナーには「チェッカーボードタイプ」のパターンを使用することをお勧めします。これにより、優れたシンプルな反復リファインアルゴリズムを使用してサブピクセルの精度を実現できます(「反復鞍点アルゴリズム」を検索するか、OpenCVのドキュメントを検索してください)。

于 2013-02-10T17:13:51.123 に答える
0

完全な回答は提供しませんが、明確にする必要があるポイントの少なくとも 1 つは次のように思われます。

ホモグラフィは、P^2 (同次 3-ベクトル) からそれ自体への可逆マッピングであり、常に可逆 3x3 行列で表すことができます。そうは言っても、3D ポイントが同一平面上にある場合は、常にホモグラフィを使用してワールド ポイントをイメージ ポイントに関連付けることができることに注意してください。

一般に、3 次元空間内の点は、4 次元ベクトルとして同次座標で表されます。P^3 に作用する射影変換は、正則な 4x4 行列 (15 自由度、16 要素から全体的なスケールの 1 を引いたもの) で表されます。

したがって、要するに、モデルが平面の場合、ホモグラフィ (8 DOF) と適切なアルゴリズムで問題を解決できますが、一般的には 4x4 行列を推定する必要があり、別のアルゴリズムが必要になります。それ。

お役に立てれば、

アレックス

于 2013-06-11T11:18:48.507 に答える