- 締切済み
誤差を最小化する相似変換行列の求め方
三次元の変換行列について質問です。 空間上のある3点について、座標変換前と変換後の座標が与えられているとします。 その座標を元に、行った変換の表す行列を知りたいと考えております。 ただし変換は並進と回転のみとし、剪断変形等は行わないという条件です。 (行列は同次変換の形などで得られれば良いです) ただし、変換前と変換後では三点の相対的な位置関係は完璧には一致しておりません。 そのため得られた変換を元の3点に行った際に、変換後の3点の座標(既知)との 誤差を最小化したいという問題です。 変換が相似変換でなければ疑似逆行列により計算が可能と思いますが、 並進・回転のみなのでどうしようか聞きたいと思い質問をしました。 パラメータは「x, y, z 軸方向の並進移動量 + x, y, z 軸周りの回転量」の6つなので、 プログラムを組んで6パラメータを少しずつ変化させ、 誤差の二乗和が最小となる箇所を探すという方法は思いついております。 ですが、その他に行列計算により解析的に答えを得る方法はないでしょうか。 また、変換前後の3点を元に誤差を最小化する変換行列を得ることが可能であるなら、 座標の情報が3点でなくそれ以上の場合でも計算は可能でしょうか。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- stomachman
- ベストアンサー率57% (1014/1775)
回答No.4
- stomachman
- ベストアンサー率57% (1014/1775)
回答No.3
- stomachman
- ベストアンサー率57% (1014/1775)
回答No.2
- trytobe
- ベストアンサー率36% (3457/9591)
回答No.1
お礼
ご回答ありがとうございます。 「誤差の二乗和を評価に用いていますから、非線形最小二乗法の問題です」 とのことですが、例えば評価を誤差の絶対値の和などにすれば解けるということはあるのでしょうか。 誤差の二乗和というのは「できるだけ両者を一致させる」という目的のための 指標の一つですので、問題が解けるのであれば他のものでも問題ありません。 もしご存知でしたら、お教えいただければと思います。 ただ、三次元の回転行列は例えば ・sin(Alpha)・cos(Beta)・cos(Gamma) + cos(Alpha)・sin(Gamma) のような成分が入るので、どのみち無理なのかなと思いました。 数値計算に関してもお教えいただき、ありがとうございます。 6つもあるパラメータをどう変化させて探索するか、 全探索だと時間がかかるだろうかなどと考えていたので、 このあたりを教えていただき助かります。 ガウス・ニュートン法についても調べてみて、 まずはそれらしいプログラムを書いてみようと思います。