SVD解决平面拟合问题

已知若干三维点坐标(x_{i},y_{i},z_{i}),拟合出平面方程ax+by+cz=d           (1)     

约束条件为a^{2}+b^{2}+c^{2}=1                                                                   (2)

使得该平面到所有点的距离之和最小。

推导过程如下:

所有点的平均坐标为(\bar{x},\bar{y},\bar{z}),则a\bar{x}+b\bar{y}+c\bar{z}=d.                               (3)

式(1)与式(3)相减,得a(x_{i}-\bar{x})+b(y_{i}-\bar{y})+c(z_{i}-\bar{z})=0          (4)

假设矩阵A=\begin{bmatrix} x_{1}-\bar{x},y_{1}-\bar{y},z_{1}-\bar{z}\\ x_{2}-\bar{x},y_{2}-\bar{y},z_{2}-\bar{z}\\ x_{3}-\bar{x},y_{3}-\bar{y},z_{3}-\bar{z}\\ ...\\ x_{n}-\bar{x},y_{n}-\bar{y},z_{n}-\bar{z} \end{bmatrix},列矩阵X = \begin{bmatrix} a\\ b\\ c \end{bmatrix},则式(4)等价与AX=0  (5)

理想情况下所有点都在平面上,式(5)成立;实际情况下有部分点在平面外,拟合的目的为平面距离所有点的距离之和尽量小,所以目标函数为min\left \| AX \right \|                                                                      (6)

约束条件为\left \| X \right \|=1                                                                                         (7)

若A可做奇异值分解:A = UDV^{T}                                                                  (8)

其中,D是对角矩阵,U和V均为酉矩阵。

\left \| AX \right \|=\left \| UDV^{T}X \right \|=\left \| DV^{T}X \right \|                                                            (9)

其中V^{T}X为列矩阵,并且\left \| V^{T}X \right \|=\left \|X \right \|=1                                              (10)

因为D的对角元素为奇异值,假设最后一个对角元素为最小奇异值,则当且仅当V^{T}X=\begin{bmatrix} 0\\ 0\\ 0\\ ...\\ 1 \end{bmatrix}                          (11)时,式(9)可以取得最小值,即式(6)成立。

此时SVD解决平面拟合问题_第1张图片                                        (12)

所以,目标函数(6)在约束条件(7)下的最优解为X=(a,b,c)=(v_{n,1},v_{n,2},v_{n,3})      (13)

 

综上:对矩阵A做奇异值分解,最小奇异值对应的特征向量就是拟合平面的系数向量。

 

你可能感兴趣的:(立体视觉,立体视觉)