最小二乗法による点群データへの平面あてはめ

(2015.09.18) ここで説明するのは、Kinectなどの3Dスキャナから取り込んだ3次元点群データにおいて、 点群との2乗距離の合計を最小にする平面を求める解析的方法についてである。
定式化については疑似逆行列を用いる多重回帰に類似しているが、結論はかなり異なっている。
けっこう需要がありそうな割に、なぜか検索してもあまり情報が無かったり、あっても明らかに間違いを含んでいたので、 以下のように導出を簡潔にまとめてみたのでご参考まで。


slide4.GIF
点群との二乗距離最小平面が、点群の重心を通ることを証明していないが、ここでは省略する。
slide5.GIF

当初、単なる2次関数の極値問題だろうから多重回帰と同様に疑似逆行列計算一発で答えが出るだろうとタカをくくっていたのだが、
行列の固有値問題に帰着されて解が3つ出てきてしまい、どの解を選択したら良いのか分からず混乱したが、
得られた式をよく見ると、統計学でよく目にする分散・共分散行列による主成分分析(PCA)の式と同一である。

【結論】

つまり、点群との2乗距離の合計を最小にする平面を求めるには、
  1. まず点群データの重心を計算する。
  2. 次に点群データの主成分分析(PCA)を行う。
  3. 主成分分析(PCA)で得た第3主成分ベクトルを法線ベクトルとし、かつ点群データの重心を通る平面を計算する。
    (なぜなら、点群は第一および第二主成分で張られる平面上に広がっているから)
よく考えてみれば当たり前なのだが、導出してみて初めて気が付いた。


ご意見・お問い合わせ等は以下のURLにメールアドレス等がありますので、 そちらからお願いします:
http://sysplan.nams.kyushu-u.ac.jp/gen/index.html