点群にフィットする平面を最小二乗法で求める方法
点群の最小二乗法
法線ベクトルを $\mathbf{n}$、
符号付き距離を $h$ とする
平面の方程式は、
である。
ここで $(\cdot, \cdot)$ は
標準内積を表す記号である。
また、
法線ベクトルの大きさは
$$
\tag{1}
$$
と
規格化されているものとする。
ここで $\| \cdot \| $
は
ノルムを表す記号である。
点群の位置ベクトルを
と表すと、
位置ベクトルが $\mathbf{u}_{i}$ の点と平面 $(1)$ との間の距離の二乗 $d_{i}$ は、
$$
\tag{2}
$$
である(
点と平面の距離を参考)。
したがって、全ての点からの二乗距離の総和 $s$ は、
$$
\tag{3}
$$
である。
$
s
$
を最小にする
$\mathbf{n}$ と $h$ を求めることが点群に最もフィットする平面を求めることになる。
最適な符号付き距離
$s$ が最小にする
符号付き距離 $h$ を求める。
$(2)$ は、
と表せることから分かるように、
$h$ に関する二次方程式である。
そこで、$s_{i}$ を $h$ について平方完成すると、
となるので、
二次方程式の性質から、
$s$ を最小にする $h$ は、
である。
点群の重心(平均位置) $\overline{\mathbf{u}} $ を
と表すと、
$$
\tag{4}
$$
である。
したがって、
点群にフィットする平面の符号付き距離 $h$ は、
平面の法線 $\mathbf{n}$ と点群の重心 $\overline{\mathbf{u}}$ の内積に等しい。
最適な法線ベクトル
続いて点群に最もフィットする平面の法線ベクトルを求める。
$(4)$ を $(3)$ に代入すると、
$s$ は、
と表せる。
ここで、任意の実ベクトル $\mathbf{a}, \mathbf{b} $ に対して、
が成立することを用いると
($T$ は
転置を表す記号)、
となる。
また、行列 $M$ を
$$
\tag{5}
$$
と定義すると、
$$
\tag{6}
$$
と表せる。
$M$ は
3行3列の行列であり、
転置行列の諸性質を用いると、
が成り立つので、$M$ は
実対称行列である。
したがって、$M$ は
対角化可能である。
また、
任意のベクトル $\mathbf{v}$ に対して、
が成り立つので、
半正定値行列である。
したがって、$M$ の
固有値は 0 以上である。
そこで、
$M$ の
固有値と固有ベクトルを
$$
\tag{7}
$$
と表す。
固有値の異なる固有ベクトルは互いに直交するので、
規格化された固有ベクトルには
$$
\tag{8}
$$
が成り立つ。
ここで
$\delta_{ij}$ は
クロネッカーのデルタである。
この $\mathbf{m}_{i}$ を用いて、
行列 $R$ を
と定義する。
この $R$ は
$(8)$ から
$$
\tag{9}
$$
を満たすので、
$M$ を対角化する行列である。
また、$(8)$ から $R$ には
が成り立つので、
$R$ は
直交行列である。
すなわち、
$$
\tag{10}
$$
が成立する
(証明は
直交行列は片側のみで定義可能を参考)。
$(9)$ と $(10)$
と
内積と転置行列の関係を用いると、
$(6)$ の $s$ は、
と表せる。
ここで、
$ \left\{ (R \mathbf{n})_{i}\right\}^{2}$ $(i=1,2,3)$ はベクトル
$R \mathbf{n}$ の第 $i$ 成分 $(R \mathbf{n})_{i}$ の二乗である。
$\left\{(R \mathbf{n})_{1}\right\}^{2}$ は
$(1)$ $(10)$ と
内積と転置行列の関係から
と表せる。
これと
$(7)$ より
$s$ には、
$$
\tag{11}
$$
が成り立つ。
すなわち、$s$ は必ず $\lambda_{1} $ 以上の値になる。
$(11)$ だけでは、
$s=\lambda_{1}$ となる場合が存在するかどうかは確かではないが、
$$
\tag{12}
$$
とすると、
$(6)(7)(8)$ から、
となるので、
$s$ は
$
\mathbf{n} = \mathbf{m}_{1}
$
のときに、最小値 $\lambda_{1}$ に到達する。
まとめ
以上の結果から、
点群にフィットする最適平面は、
法線ベクトル $\mathbf{n}$ が
$(5)$ によって定義される行列の最小固有値を持つ固有ベクトル $\mathbf{m}_{1}$ であり、
符号付き距離 $h$ が、
法線ベクトルと点群の重心の内積 $(4)$ になる平面である。