剛体運動によってあるセットのポイントを別のセットにフィットさせる


8

この問題を明確に説明する方法がよくわからないので、ご容赦ください。私は3つの正規直交単位ベクトルと位置、コンピューターグラフィックスの標準的な4x4変換行列のベースを持っています。

また、その空間にいくつかのポイント(オフセット)があり、ワールドスペースに変換します。次に、ポイントがわずかに摂動されます。次に、摂動されたポイントを表すのに最も近い新しい基準を見つけたいと思います。

元のオフセットを尊重したいので、主成分を見つけるのとはまったく異なります。それが理にかなっている場合。新しい各ポイントからそれぞれの開始位置へのスプリングのように。答えは最小二乗問題を解決することだと思いますが、頭が痛いので調べました。

誰かが簡単に説明してくれませんか。私は閉じた形のソリューションを好みますが、反復的なソリューションも大丈夫でしょう。どうもありがとう


問題の詳細を記載する必要があります。どうやら、直交変換と平行移動で構成される厳密な変換(「3つの正規直交単位ベクトルと位置」)があるようです。おそらく、変換部分を固定したまま、直交変換を変更して、新しく摂動された点が最もよく近似されるように(元の点に調整された剛体変換を適用することによって)質問しています。詳細を説明する:変換、翻訳、ポイントに名前を付けます。最も重要なことは、どの基準(最小二乗?)が最適な適合を決定するかを述べることです。
hardmath

はい、申し訳ありません。いくつかの用語とそれを説明する最良の方法についてはわかりません。実際、私もポジションを変更したいと思います。直交基底+位置はアフィン変換ですよね?したがって、アフィン変換Aがあります。これは、少数のポイントを変換するものです。Aを見つけて、ポイントが摂動された後、変換が可能な限りポイントを「追跡」するようにします。私はそれがより明確であることを望みます。
DaleyPaley 2013

1
これは、「古典的な」名前を持つ「古典的な」問題であり、直交プロクラステス問題であり、私のお気に入りのSVD(特異値分解)アプリケーションです。
hardmath 2013

1
ええ、上手に書くことについて少し考えさせてください。
hardmath

1
私はこれが約2年では遅すぎることを知っていますが、この種の問題を解決するためにSVDを使用するコードをGithubに用意しています。多分それはあなたに役立つでしょうか?ここにリンクがあります
開発者Paul

回答:


14

IngeSöderkvist(2009)は、特異値分解(SVD)によって剛体運動問題解決する優れた記事があります。

{x1,,xn}{y1,,yn}Rdxi

i=1n||Rxi+dyi||2

xi,yiR3×3det(R)=1

x¯,y¯xi,yid

minRSO(3)||RAB||F

A=[x1x¯,,xnx¯]B=[y1y¯,,yny¯]SO(3)RF、つまり、行列エントリの平方和の平方根(ユークリッドノルムのようですが、行列エントリについて)。

A,B3×nRC=BAT

C=USVT

U,VS=diag(σ1,σ2,σ3)σ1σ2σ30

R=Udiag(1,1,±1)VTdet(R)=1det(UVT)=1

d=y¯Rx¯

R


1
素晴らしい!お時間を割いていただき、誠にありがとうございます。とても便利です。
DaleyPaley 2013

この問題の「加重」バージョンを解決する標準的な方法はありますか?そこでは、さまざまなポイントのノイズが異なる分散を持っています。
nibot 2017年

@nibot:T. Viklandの論文(2006)を見てくださいこれは、加重直交プロクラステス問題(WOPP)に関するいくつかの説明と公開された記事を示しています。 、WOPPにはいくつかの極小値がある場合があります。」
hardmath 2017年

ETHZからのSVDアプローチに関する別の同様で有用な記事があります:igl.ethz.ch/projects/ARAP/svd_rot.pdf
Linuxios
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.