質問

3 つの点群があるとします。1 つ目は 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) のみの行列を見つける方法はありますか?

役に立ちましたか?

解決

単位ベクトル {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 マトリックスはスケーリング パラメーター (対角に沿って) とシアリング パラメーター (対角の上) を提供します。

他のヒント

アダムローゼンフィールドのアプローチは正しいです。しかし、T2 *のInv(T1)のような溶液は間違っています。行列乗算A * Bであるので=のB * A:従って結果であるInvの(T1)* T2

あなたが話している

7つのパラメータ変換する 3Dコンフォーマル変換、又は二雲が類似していることを考えると時々3D相似変換と呼ばれます。 2つの形状が同じであれば、アダムRosenfieldsソリューションは良いです。そこに小さな違いがあり、あなたが最高のフィット感を得ることを望む、最も一般的に使用されるソリューションは、ヘルマート変換である場合には残差を最小にするために、最小二乗アプローチを使用するする。この上のWikipediaとGoogleのものが一目で偉大ないないようです。この上の私の言及はGhilani&ウルフの調整計算で、P345です。空間的な問題やライブラリに良いほかに適用されるので、これはまた、行列の数学に大きな本です。

編集:この変換のAdamの9パラメータ・バージョンはアフィン変換する

のパラメータの最小二乗推定値を計算する例では、

ここでRに2次元アフィン変換の

scroll top