2

3つの点群があるとします。最初の点群は{x1、y1、z1}、{x2、y2、z2}、{x3、y3、z3}で、2番目の点群は{xx1、yy1と同じ点です。 zz1}、{xx2、yy2、zz2}、{xx3、yy3、zz3}...2番目の点群を最初に位置合わせすると仮定します。2番目の点にT[3x3matrix]を掛ける必要があります。

1)では、この変換行列(T)をどのように見つけるのですか?手作業で方程式を解こうとしましたが、解けませんでした。どこかに解決策はありますか?問題に遭遇したのは私が最初ではないと確信しているからです。

2)マトリックスにはスキューとせん断が含まれている可能性があると思います。自由度が7(3translation、3rotation、1scale)しかない行列を見つける方法はありますか?

4

4 に答える 4

4

単位ベクトル{1、0、0}、{0、1、0}、および{0、0、1}を{x1、y1、z1}、{x2、y2、z2}に変換する変換行列T1、 {x3、y3、z3}は単純です

     | x1 x2 x3 |
T1 = | y1 y2 y3 |
     | z1 z2 z3 |

同様に、これらの3つの単位ベクトルを2番目の点のセットに変換する変換T2は次のとおりです。

     | xx1 xx2 xx3 |
T2 = | yy1 yy1 yy3 |
     | zz1 zz2 zz3 |

したがって、最初の3つのポイントから次の3つのポイントをとる行列は、T2 *T1-1で与えられます。T1が非特異である場合、この変換は一意に決定されるため、自由度はありません。T1が特異行列の場合、解がないか、解が無限にある可能性があります。

7自由度が必要だと言うとき、これは用語の誤用です。一般的な場合、この行列は3つの回転自由度、3つのスケーリング度、および3つのせん断度で構成され、合計9になります。QR分解を実行すると、これらのパラメーターを計算できます。Qマトリックスは回転パラメーターを提供し、Rマトリックスはスケーリングパラメーター(対角線に沿った)とせん断パラメーター(対角線の上)を提供します。

于 2008-12-11T06:27:45.147 に答える
1

あなたが話している7つのパラメーター変換は、3dコンフォーマル変換、または2つの雲が類似していることを考えると、3d相似変換と呼ばれることがあります。2 つの形状が同一である場合、Adam Rosenfields ソリューションは適切です。わずかな違いがあり、最適な適合を得たい場合、最も一般的に使用されるソリューションは、最小二乗法を使用して残差を最小化するHelmert 変換です。これに関するウィキペディアとグーグルのものは、一見すると素晴らしいようには見えません。これに関する私の参照は、Ghilani & Wolf の調整計算、p345 です。これはまた、空間問題に適用される行列数学に関する優れた本であり、ライブラリへの優れた追加です。

編集: この変換の Adam の 9 パラメータ バージョンは、アフィン変換と呼ばれます。

于 2008-12-11T07:53:40.090 に答える
1

Adam Rosenfield のアプローチは正しいです。しかし、T2 * Inv (T1) としての解決策は間違っています。行列の乗算では A * B != B * A : したがって、結果は Inv(T1) * T2

于 2008-12-11T07:24:59.197 に答える
0

R の 2D アフィン変換のパラメーターの最小二乗推定値を計算する例を次に示します。

于 2008-12-29T18:53:27.937 に答える