6

同じシーンの異なる画像間で 3x3 ホモグラフィを計算することにより、4 つの座標を追跡できます。これを行うと、これらの座標に他の 2D 画像を重ねることができます。OpenGLを使用する代わりに、このホモグラフィを使用して立方体をこの位置に拡張できるかどうか疑問に思っていますか? 3x3 マトリックスでは十分な情報が得られないと思いますが、カメラ キャリブレーション マトリックスがわかっている場合、これを行うためのモデル ビュー マトリックスを作成するのに十分な情報を得ることができますか?

あなたが与えることができるどんな助けにも感謝します.

4

1 に答える 1

3

カメラ キャリブレーション マトリックス (固有パラメーター) とホモグラフィがある場合、ホモグラフィ (同じ平面オブジェクトの 2 つのビューの間) は次のように定義されているためです。

H = K[R|T]

ここで、K は 3x3 キャリブレーション マトリックス、R (3x3 回転マトリックス)、T (3x1 並進ベクトル) はビュー変換 (オブジェクト座標からカメラ座標へ) です。H から R と T を計算する方法については、言いたいことがたくさんあります。1 つの方法は、直接解を計算することです。もう 1 つの方法は、非線形最小化手法を使用して R と T を計算することです。明らかに、後者の方法の方が優れています。 、より良い近似解が得られるためです。前者は、拡張現実を開始するための単なる方法です ;):

直接法を使用する場合の R と T の導出方法を見てみましょう。h1、h2、および h3 が H の列ベクトルである場合、K、R、および T に関して次のように定義します。

H = K [r1 r2 t](z=0 の点について話していることを思い出してください)

ここで、r1 は R の最初の列ベクトル、r2 は 2 番目の列ベクトル、t は平行移動ベクトルです。それで:

r1 = l1 * (K^-1) h1

r2 = l2 * (K^-1) h2

r3 = r1 x r2(r1 と r2 の間の外積)

t = l3 * (K^-1) h3

ここで、l1、l2、l3 はスケーリング係数 (実数値) です。 l1 = 1 / norm((K^-1)*h1)

l2 = 1 / norm((K^-1)*h2)

l3 = (l1+l2)/2

このソリューションは、非線形最小化法を使用して改良する必要があることに注意してください (たとえば、このソリューションを出発点として使用できます)。レンズの歪みから回復するために歪みモデルを使用することもできますが、この手順は不要です (それがなくても良い結果が得られます)。

最小化法を使用して R と T のより適切な近似を計算する場合、さまざまな方法があります。紙を読むことをお勧めします

「ビデオ画像からの高速かつグローバルに収束したポーズ推定」、Lu、Hager

これは、目的に最適なアルゴリズムの 1 つを提示します。

于 2011-07-31T12:19:42.590 に答える