PCL最小二乘法进行平面拟合原理
Posted jiangxing11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCL最小二乘法进行平面拟合原理相关的知识,希望对你有一定的参考价值。
最小二乘法进行平面拟合原理
1 最小二乘原理
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小 。在图像领域,最小二乘法常用于直线、曲线拟合、平面拟合等。
首先我们来熟悉下最小二乘问题。考虑线性方程组Ax=b,其中A为mxn矩阵且m>n。这个方程一般不存在解x。因此,我们的任务是求最小化范数||A
x
ˉ
\\bar x
xˉ-b||的向量
x
ˉ
\\bar x
xˉ。当x取遍所有值时,Ax将遍历A的整个列空间。因此我们的任务是在A的列空间中寻求最接近b的那个向量。因此,A
x
ˉ
\\bar x
xˉ-b必然是与A的列空间垂直的向量。因此
A
T
(
A
x
ˉ
−
b
)
=
0
A^T(A\\bar x-b)=0
AT(Axˉ−b)=0
于是我们得到一个nxm的线性方程
(
A
T
A
)
x
ˉ
=
A
T
b
(A^TA)\\bar x=A^Tb
(ATA)xˉ=ATb
可以通过
x
ˉ
=
(
A
T
A
)
−
1
A
T
b
\\bar x=(A^TA)^-1A^Tb
xˉ=(ATA)−1ATb来求解
这个方程有多个叫法,有些称为正规方程,有些称为法线方程。这个解
x
ˉ
\\bar x
xˉ其实就是Ax=b的最小二乘解。
很多人可能觉得这个不够直观,那么可以从另外一个角度去解释,举个例子:
x
1
+
x
2
=
2
x
1
−
x
2
=
1
x
1
+
x
2
=
3
\\begincasesx_1+x_2=2\\\\x_1-x_2=1\\\\x_1+x_2=3\\endcases
⎩⎪⎨⎪⎧x1+x2=2x1−x2=1x1+x2=3
根据线性代数的知识,m个方程n个未知量m>n时通常无解,但是虽然不能求出Ax=b的解,那何不退而求其次,去寻找与解近似的向量
x
ˉ
\\bar x
xˉ。
那么如何定义与解相似,一般使用欧氏距离来进行度量,即两点间的距离,这其实很好理解,越相似,欧氏距离越近,这样求出的
x
ˉ
\\bar x
xˉ被称为最小二乘解。
将我们开始举的例子写成矩阵形式:
[
1
1
1
−
1
1
1
]
[
x
1
x
2
]
=
[
2
1
3
]
\\beginbmatrix1&1\\\\1&-1\\\\1&1\\endbmatrix\\beginbmatrixx_1\\\\x_2\\endbmatrix=\\beginbmatrix2\\\\1\\\\3\\endbmatrix
⎣⎡1111−11⎦⎤[x1x2]=⎣⎡213⎦⎤
写成等价方程为:
x
1
[
1
1
1
]
+
x
2
[
1
−
1
1
]
=
[
2
1
3
]
x_1\\beginbmatrix1\\\\1\\\\1\\endbmatrix+x_2\\beginbmatrix1\\\\-1\\\\1\\endbmatrix=\\beginbmatrix2\\\\1\\\\3\\endbmatrix
x1⎣⎡111⎦⎤+x2⎣⎡1−11⎦⎤=⎣⎡213⎦⎤
对于任意 mxn 方程组Ax=b都可以看做向量方程:
x
1
v
1
+
x
2
v
2
+
.
.
.
+
x
n
v
n
=
b
x_1v_1+x_2v_2+...+x_nv_n=b
x1v1+x2v2+...+xnvn=b
其实也就是把b 看做A的列向量的线性组合,对应的系数即为
x
i
x_i
xi ,对于举的例子来说,就是把b表示为另外两个三维向量的线性组合,由于三维空间中两个三维向量的组合生成一个平面,方程仅当b在这个平面上才有解,推广至m个方程n个未知量m>n 时也是相同的情况。如下图所示,向量A
x
ˉ
\\bar x
xˉ-b(右下图虚线部分)与A所在平面垂直,也就是该平面的法向量。
以上就是对最小二乘的直观上的解释。当然,想把最小二乘法学透彻光看这些还是不够。因为还存在非线性,带约束和不带约束等情况。
2 最小二乘拟合平面
下面来介绍下最小二乘拟合平面的原理,已知空间中的一些离散点,对其进行平面拟合。首先,平面方程的一般式如下:
a
x
+
b
y
+
c
z
+
d
=
0
ax+by+cz+d=0
ax+by+cz+d=0
我们假设
c
≠
0
c\\neq0
c=0的情况。那么
z
=
−
a
c
x
−
b
c
y
−
d
c
z=-\\frac a c x- \\frac b c y- \\frac d c
z=−cax−cby−cd
令
a
0
=
−
a
c
a_0=-\\frac ac
a0=−ca,
a
1
=
−
b
c
a_1=-\\frac bc
a1=−cb ,
a
2
=
−
d
c
a_2=-\\frac dc
a2=−cd以上是关于PCL最小二乘法进行平面拟合原理的主要内容,如果未能解决你的问题,请参考以下文章