激光雷达点云数据邻域特征计算理论知识学习

一、数学理论

(一)SVD奇异值分解(Singular value decomposition)

       奇异值分解是线性代数中一种重要的矩阵分解,在信号处理、统计学等领域有重要应用。奇异值分解在某些方面与对称矩阵或埃尔米特矩阵基于特征向量的对角化类似。然而这两种矩阵分解尽管有其相关性,但还是有明显的不同。对称阵特征向量分解的基础是谱分析,而奇异值分解则是谱分析理论在任意矩阵上的推广[2]。

        假设M是一个m×n阶矩阵,其中的元素全部属于域K,也就是实数域或复数域。如此则存在一个分解使得

                                                                    M=U\Sigma V^{*}

        其中Um×m阶酉矩阵(其共轭转置恰为其逆矩阵的复数方阵),Σ是m×n阶非负实数对角矩阵,而V*则为V的共轭转置,是n×n阶酉矩阵。这样的分解就称作M的奇异值分解。Σ对角线上的元素Σi,i即为M的奇异值。常见的做法是将奇异值由大而小排列,如此Σ便能由M唯一确定了(虽然UV仍然不能确定)[2]。

        奇异值分解的应用有(包括但不限于下述应用)[2]:

        1、用来计算矩阵的广义逆阵(伪逆);

        2、给出矩阵的列空间、零空间和秩的表示。对角矩阵\Sigma的非零对角元素的个数对应于矩阵M的秩。与零奇异值对应的右奇异向量生成矩阵M的零空间,与非零奇异值对应的左奇异向量则生成矩阵M的列空间。在线性代数数值计算中,奇异值分解一般用于确定矩阵的有效秩,这是因为,由于舍入误差,秩亏矩阵的零奇异值可能会表现为很接近零的非零值;

        3、在统计中的主要应用为主成分分析(PCA)。数据集的特征值(在SVD中用奇异值表征)按照重要性排列,降维的过程就是舍弃不重要的特征向量的过程,而剩下的特征向量张成空间为降维后的空间。实际上,SVD在PCA降维上只是使用了右奇异矩阵V,因为右奇异阵V是进行列压缩[3]。   

图一 2*2矩阵的奇异值分解图示(图源wikipedia)

(二)埃尔米特矩阵(Hermitian matrix)

        埃尔米特矩阵(又称厄米特矩阵、厄米矩阵及自伴随矩阵),是共轭对称的方阵,其每一个第i行第j列的元素都与第j行第i列的元素复共轭(在数学中,复数的共轭复数就是对虚部变号的运算)且主对角线元素必须为实数。埃尔米特矩阵可以理解为实对称矩阵的复数扩展,查尔斯·埃尔米特于1855年证明了埃尔米特矩阵和实对称矩阵有一个共同的性质,即总存在实特征值[4]。

        埃尔米特矩阵的应用有(包括但不限于下述应用)[4]:

        1、在信号处理中,厄米矩阵被用于傅里叶分析和信号表示等任务。厄米矩阵的特征值和特征向量在分析信号和提取有意义的信息中起着至关重要的作用;

        2、厄米矩阵在线性代数和数值分析中得到了广泛的研究,它们具有良好定义的光谱特性,许多数值算法,如Lanczos算法,利用这些特性进行高效计算。厄米矩阵也出现在奇异值分解(SVD)和特征值分解等技术中;

        3、在统计学和机器学习中,厄米矩阵用于协方差矩阵,它们表示不同变量之间的关系。厄米协方差矩阵的正定性保证了多元分布的良好定义性。

图二 埃尔米特矩阵的表现形式(图源wikipedia)

(三)实对称矩阵(Real symmetric matrix)

        在线性代数中,实对称阵指的是元素均为实数且转置矩阵和自身相等的方形矩阵。实对称矩阵的不同特征值所对应的特征向量是正交的;实对称矩阵的特征值都是实数,特征向量都是实向量;n阶实对称矩阵必可利用正交矩阵对角化[5]。

(四)协方差矩阵(Covariance matrix)

        在统计学与概率论中,协方差矩阵是一个方阵,代表着任两列随机变量间的协方差,是协方差的直接推广。协方差矩阵是很多领域里非常有力的工具,其能导出一个变换矩阵,这个矩阵能使数据完全去相关,也可以说能够找到一组最佳的基来紧凑地表达数据(瑞利商证明)。这个方法在统计学中被称为主成分分析,在图像处理中被称为K-L变换[6]。

        此处提供一个瑞利商寻求最佳基的使用例子,详见博客Fisher线性判别实践。

二、Numpy现有的计算特征向量和特征值的函数[7][8][9][10]

        在进行激光雷达点云数据的点邻域特征向量和特征值计算时,我们可以选择使用SVD方法,也可以选用实对称方阵求解法。

图三 Numpy计算特征向量与特征值函数图示(图源numpy.org)

参考资料:

[1] numpy.linalg.svd — NumPy v1.26 Manual

[2] https://en.wikipedia.org/wiki/Singular_value_decomposition

[3] SVD分解-CSDN博客

[4] https://en.wikipedia.org/wiki/Hermitian_matrix

[5] https://en.wikipedia.org/wiki/Symmetric_matrix

[6] https://en.wikipedia.org/wiki/Covariance_matrix

[7] numpy.linalg.eig — NumPy v1.26 Manual

[8] numpy.linalg.eigh — NumPy v1.26 Manual

[9] numpy.linalg.eigvals — NumPy v1.26 Manual

[10] numpy.linalg.eigvalsh — NumPy v1.26 Manual

[11] NumPy 高级索引 | 菜鸟教程

[12] Open3D 计算点云的基本特征_点云 平面的条件 特征值 lamda1-CSDN博客

[13] 工程数学.线性代数/同济大学数学系编.--6版.--北京:高等教育出版社,2014.6.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512486.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪些型号的高速主轴适合PCB分板机

在选择适合PCB分板机的高速主轴时,SycoTec品牌提供了丰富的型号选择,主要型号包括4025 HY、4033 AC(电动换刀)、4033 AC-ESD、4033 DC-T和4041 HY-ESD等。 那么如何选择合适的PCB分板机高速主轴型号呢?在选择适合PCB分…

06. Nginx进阶-Nginx代理服务

proxy代理功能 正向代理 什么是正向代理? 正向代理(forward proxy),一个位于客户端和原始服务器之间的服务器。 工作原理 为了从原始服务器获取内容,客户端向代理发送一个请求并指定目标(即原始服务器…

VS Code插件之Rainbow Fart,一边写代码妹子一边叫

1、下载Rainbow Fart 2、安装完成后打开这个插件 点击菜单中的“查看”——>命令面板 3、点击授权

数据可视化原理-腾讯-3D热力图

在做数据分析类的产品功能设计时,经常用到可视化方式,挖掘数据价值,表达数据的内在规律与特征展示给客户。 可是作为一个产品经理,(1)如果不能够掌握各类可视化图形的含义,就不知道哪类数据该用…

Ubantu 18.04 配置固定IP

1.首先在终端里输入命令,将你的网关和ip,记下来 ifconfig 2. 执行命令: sudo gedit /etc/network/interfaces 3.在弹出来的框里输入 auto后面的就是网关,address是你虚拟机的ip,gateway是你的网关ip,netmask是你的子…

TensorRT入门:trtexec开发辅助工具的使用

文章目录 一、trtexec简介二、trtexec使用1.trtexec常用参数1. 构建阶段2. 运行阶段 2.基本使用方法1. trtexec最基本的使用方法,读取onnx模型并通过trtexec测试推理性能。2. trtexec解析ONNX文件,使用优化选择构建TensorRT引擎并保存至.plan文件补充&am…

Upsert api写s3的流程源码分析

Upsert api写s3的流程 milvus版本:v2.3.2 实现:先insert再delete,并限制不能修改主键列。 整体架构: Upsert 的数据流向 upsert写入s3的流程 upsert先insert,再delete。从proxy的execute()方法可以看出。 func (it *upsertTask) Execute(ctx contex…

Spring Cloud Alibaba一一SentinelResource

SentinelResource 在定义了资源点之后,我们可以通过Dashboard控制台页面来设置限流和降级策略来对资源点进行保护。同时还能通过[**SentinelResource**](/SentinelResource)****注解来制定出现异常时的处理策略 1、属性说明 value 资源名称、必须项、因为需要通过…

基于遗传优化的协同过滤推荐算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 最后得到推荐的商品ID号: 推荐商品的ID号:ans 9838175822191114902149021235224732230712349911790154716550165501655011…

快速上手:在 Android 设备上运行 Pipy

Pipy 作为一个高性能、低资源消耗的可编程代理,通过支持多种计算架构和操作系统,Pipy 确保了它的通用性和灵活性,能够适应不同的部署环境,包括但不限于云环境、边缘计算以及物联网场景。它能够在 X86、ARM64、海光、龙芯、RISC-V …

Java中Sleep和Wait的区别

目录 1、所属类不同 2、作用不同 3、使用场景不同 4、异常处理不同 总结 在Java编程中,我们经常会遇到需要让线程暂停执行的情况。这时,我们可以使用Thread类的sleep()方法和Object类的wait()方法来实现线程的暂停。尽管它们都可以达到暂停线程的目的…

Linux——自写一个简易的shell

目录 前言 一、打印提示信息 二、分割字符串 三、替换程序 前言 之前学习了很多进程相关的知识,包括环境变量、进程的创建与退出、进程等待、进程替换。现在可以用所学的作一个小总结,手撕一个shell解释器,大致的思路是先通过环境变量获…