矩阵:采用奇异值分解(SVD)对n个点进行平面拟合

这篇具有很好参考价值的文章主要介绍了矩阵:采用奇异值分解(SVD)对n个点进行平面拟合。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


奇异值分解(SVD)

奇异值分解(Singular Value Decomposition, SVD),是线性代数中一种重要的矩阵分解,在信号处理、统计学等领域有重要应用。奇异值分解在某些方面与对称矩阵或厄米矩阵基于特征向量的对角化类似。对称矩阵特征向量分解的基础是谱分析,而奇异值分解则是谱分析理论在任意矩阵上的推广 1


3D平面拟合

已知三维空间中 n ( n > 2 ) n (n>2) n(n>2) 个点 { p 1 ( x 1 , y 1 , z 1 ) ,   p 2 ( x 2 , y 2 , z 2 ) ,   ⋅ ⋅ ⋅   , p n ( x n , y n , z n ) } \{p_1(x_1,y_1,z_1),\ p_2(x_2,y_2,z_2),\ \cdot\cdot\cdot \ , p_n(x_n,y_n,z_n)\} {p1(x1,y1,z1), p2(x2,y2,z2),  ,pn(xn,yn,zn)},拟合出一个3D平面 Π \Pi Π
a x + b y + c z + d = 0 , n = [ a    b    c ] T ax+by+cz+d=0, \quad \boldsymbol n = [a\ \ b\ \ c]^T ax+by+cz+d=0,n=[a  b  c]T
具体如下:

点集的中心 p 0 p_0 p0 为:
p 0 = ( x 0 , y 0 , z 0 ) = ( 1 n ∑ i = 1 n x i ,   1 n ∑ i = 1 n y i ,   1 n ∑ i = 1 n z i ) p_0 = (x_0,y_0,z_0)=(\frac{1}{n} \sum_{i=1}^n x_i,\ \frac{1}{n} \sum_{i=1}^n y_i,\ \frac{1}{n} \sum_{i=1}^n z_i ) p0=(x0,y0,z0)=(n1i=1nxi, n1i=1nyi, n1i=1nzi)
设面 Π \Pi Π 过点 p 0 p_0 p0 ,则 p 0 p_0 p0 到其他 n n n 个点形成的向量与 Π \Pi Π 的法向量 n n n 正交,即:
p 0 p i ⋅ n = 0 , ∀ i ∈ { 1 , 2 , . . . , n } \boldsymbol{p_0p_i} \cdot \boldsymbol{n} = 0,\quad \forall i \in \{1,2, ..., n\} p0pin=0,i{1,2,...,n}
将向量 p 0 p i \boldsymbol{p_0p_i} p0pi 表示为一个 n n n 3 3 3 列的矩阵 A \boldsymbol A A
A = [ p 1 − p 0 p 2 − p 0 ⋮ p n − p 0 ] \boldsymbol A = \left[ \begin{matrix} \boldsymbol{p_1-p_0} \\ \boldsymbol{p_2-p_0} \\ \vdots \\ \boldsymbol{p_n-p_0} \\ \end{matrix} \right] \\ A= p1p0p2p0pnp0

则:
A n = 0 \boldsymbol {A n}=0 An=0
线性方程求解就可以得到法向量 n n n 。显然采用SVD对矩阵 A \boldsymbol {A} A 进行奇异值分解是最高效的方法。
A = U Σ V T \boldsymbol {A} = \boldsymbol {U\Sigma V}^T A=UΣVT
其中, V = [ v 0 , v 1 , v 2 ] \boldsymbol{V}=[\boldsymbol{v}_0,\boldsymbol{v}_1,\boldsymbol{v}_2] V=[v0,v1,v2] v 3 \boldsymbol{v}_3 v3 是最小奇异值对应的右奇异向量,则:
n = v 3 d = − n ⋅ p 0 \boldsymbol{n}=\boldsymbol{v}_3\\ d=-\boldsymbol{n}\cdot\boldsymbol{p}_0 n=v3d=np0
有了法向量 n \boldsymbol{n} n 和 原点到 Π \Pi Π 的距离 d d d,就得到了面的一般方程:
a x + b y + c z + d = 0 ax+by+cz+d=0 ax+by+cz+d=0

总结

本文主要记录 已知至少3个点,采用SVD进行平面拟合的方法,感谢您的观看,如有不对,欢迎指正!

参考文献


  1. https://en.wikipedia.org/wiki/Singular_value_decomposition ↩︎文章来源地址https://www.toymoban.com/news/detail-402583.html

到了这里,关于矩阵:采用奇异值分解(SVD)对n个点进行平面拟合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【线性代数/机器学习】矩阵的奇异值与奇异值分解(SVD)

    我们知道,对于一个 n × n ntimes n n × n 的矩阵 A A A ,如果 A A A 有 n n n 个线性无关的特征向量,则 A A A 可以相似对角化,即存在可逆矩阵 P P P 使得 A = P Λ P − 1 A=PLambda P^{-1} A = P Λ P − 1 ,其中 Λ Lambda Λ 是 A A A 的特征值组成的对角阵。 P P P 的列实际上就是 A A A 的特征向

    2024年02月10日
    浏览(39)
  • 3D点云处理:用SVD分解法和最小二乘法拟合平面点云,求解平面方程

    本文主要介如何用SVD分解法和最小二乘法拟合平面点云,包含原理推导和代码 将空间中的离散点拟合为一个平面,就是使离散点到某个平面距离和最小的问题,可以将求解过程看作最优化的过程。 一个先验知识为拟合平面一定经过离散点的质心(离散点坐标的平均值)。平

    2024年02月03日
    浏览(160)
  • (01)ORB-SLAM2源码无死角解析-(18) SVD奇异值分解→求解Homography,Fundamental矩阵,了解矩阵自由度

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的(01)ORB-SLAM2源码无死角解析链接如下: (01)ORB-SLAM2源码无死角解析-(00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/123092196   文末正下方中心提供了本人 联系方式, 点击本人照片即可

    2024年02月02日
    浏览(87)
  • 奇异值分解(SVD)和图像压缩

    在本文中,我将尝试解释 SVD 背后的数学及其几何意义,还有它在数据科学中的最常见的用法,图像压缩。 奇异值分解是一种常见的线性代数技术,可以将任意形状的矩阵分解成三个部分的乘积:U、S、V。原矩阵A可以表示为: 具体来说,A矩阵中的奇异值就是Sigma矩阵中的对

    2023年04月10日
    浏览(44)
  • 奇异值分解(SVD)和np.linalg.svd()函数用法

            奇异值分解是一种十分重要但又难以理解的矩阵处理技术,在机器学习中是最重要的分解没有之一的存在。那么,奇异值分解到底是在干什么呢?         矩阵 A 表示的是高维数据,通常情况下高维数据分布并不是雨露均沾的,而往往是厚此薄彼,集中分布

    2023年04月08日
    浏览(81)
  • 数值线性代数:奇异值分解SVD

    本文记录计算矩阵奇异值分解SVD的原理与流程。 注1:限于研究水平,分析难免不当,欢迎批评指正。 设列满秩矩阵,若的特征值为,则称为矩阵的奇异值。 设,则存在正交矩阵与,使得 其中,,,即为矩阵的奇异值。 考虑下述两种情形: 情形1: 其中, 由此可以看出,

    2024年02月15日
    浏览(51)
  • 机器学习——奇异值分解二(特征分解+SVD纯理解,头疼系列)

    特征值和特征向量的定义 抄来的:奇异值分解 困惑1:特征值和特征向量,和原矩阵是怎样的关系,需要一个栗子进行更具象的认识 困惑2:为什么多个特征向量组合成的矩阵,可以构成矩阵A的特征分解?需要推导 困惑3:为什么要特征向量标准化? 困惑4:标准正交基是什么

    2024年02月07日
    浏览(60)
  • 奇异值分解SVD(singular value decomposition)

    SVD是一个很有用的矩阵因子化方法。 SVD提出的目的:任何一个 m × n mtimes n m × n 的矩阵都可以当作一个超椭圆(高维空间的椭圆),可以把它们当作单位球体S的像。 一个超椭圆可以通过将单位球型在正交方向 u 1 , u 2 , . . . , u m mathbf{u_1},mathbf{u_2},...,mathbf{u_m} u 1 ​ , u 2 ​

    2024年02月03日
    浏览(38)
  • SVD,奇异值分解的计算步骤以及实例讲解

           奇异值分解 (singular value decomposition,SVD),已经成为矩阵计算中最有用和最有效的工具之一,并且在最小二乘问题、最优化、统计分析、信号与图像处理、系统理论与控制等领域得到广泛应用。         首先我们都知道方阵是可以特征值分解的,那么问题来了,如果矩

    2024年02月04日
    浏览(38)
  • 时序分解 | MATLAB实现基于SVD奇异值分解的信号分解分量可视化

    效果一览 基本介绍 SVD分解重构算法,MATLAB程序,奇异值分解 (Singular Value Decomposition)是一种常见的矩阵分解方法,用于将矩阵分解成三个矩阵的乘积。在信号处理中,SVD 可以用于特征提取、信号降维、图像压缩等方面。SVD 的一个重要应用是主成分分析 (PCA),可以用于提取数

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包