点云的基本特征和描述

参考B站up主“飞船12138”的系列视频

一、点云的基本特征

数据与特征决定了机器学习的上限,后面的模型/算法/参数只是来逼近这个上限

图像里的索引结构是栅格,点云不是。

图像里面描述物体里面的RGB信息,点云是由索引方式来决定的。

几何是我们重点关注的一个特征,很多特征都是在几何域里面。(有的可能获取不到强度)

单点特征在很大程度上会依赖局部特征,但只是依赖它局部的面元。

我们常见的特征基本上是基于特征编码的,特征编码比如说图像中有灰度值、梯度、边缘等;点云里面有几何信息、颜色、纹理,k近邻法线、方向、曲率等。可进行组合、提取。

直方图统计——为了加强表征能力。

“鲁棒的特征编码+直方图统计”是几何中常用的一种模式。

二、点云的基本特征描述

A.向量

<正交的>两个方向:(1)平面上的最大方向

                                 (2)和(1)垂直的方向

一定要记住点云里面两个:

①组织邻域

②领域上的特征

B.面元

估计法向量

研究它的一个最小包围框

(估计出面元的坐标轴,得出最优的一个平面)

三、点云的法向量估计

点云的法向量估计是指计算每个点在三维空间中的法向量,这些法向量垂直于点云表面在该点的切平面。法向量估计对于许多应用至关重要,如三维重建、计算机图形学、机器视觉、碰撞检测和物理模拟等。

(通过PCA找出椭球体的主方向)

四、点云的协方差矩阵分解

点云的协方差矩阵是一个描述点云数据在三维空间中分布特性的数学工具。它是一个3x3的矩阵,其中每个元素表示点云中坐标轴之间的协方差,即不同坐标轴上的点的变异程度和它们之间的相关性。

协方差矩阵的计算

协方差矩阵的性质

  1. 对称性:协方差矩阵是对称的,即

  2. 非负定性:协方差矩阵是半正定的,即对于任何非零向量 v,有

协方差矩阵的应用

  1. 主成分分析(PCA):通过计算协方差矩阵的特征值和特征向量,可以进行主成分分析,用于数据降维、特征提取等。

  2. 形状分析:协方差矩阵可以帮助理解点云数据的形状和分布特性。

  3. 噪声过滤:协方差矩阵可以用于识别和过滤噪声,因为噪声通常会增加数据的方差。

  4. 数据压缩:通过PCA,可以压缩数据的同时保留最重要的特征。

  5. 表面重建:在表面重建中,协方差矩阵可以帮助估计表面的法线方向。

更直观可表现为:

协方差矩阵为实对称矩阵

PCA是想让方差最大,保留最多的信息。

我们的目的是想求面元的法向量。

五、点云的PCA 

点云的PCA(主成分分析,Principal Component Analysis)是一种统计方法,用于确定一组三维点云数据中的主要变化方向。

这种方法可以用于多种应用,包括数据压缩、特征提取、噪声降低、以及在三维建模和计算机视觉中简化复杂形状的表示。

主要步骤:

  1. 数据准备:将点云数据集中的所有点转换为一个三维坐标的矩阵,每一行代表一个点的(x, y, z)坐标。

  2. (去)中心化:计算所有点的均值(中心点),然后从每个点中减去这个均值,以中心化数据。

  3. 协方差矩阵计算:计算中心化数据的协方差矩阵,该矩阵描述了数据点在不同方向上的分布情况。

  4. 特征值分解:对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。特征向量代表了数据变化的主要方向,而特征值表示了沿这些方向的变化量或方差。

  5. 选择主成分:根据特征值的大小,选择最主要的几个特征向量,这些向量定义了数据的新坐标系。通常选择的特征向量数目取决于所需的数据保留比例或方差解释率。

  6. 数据投影:将原始数据投影到选定的主成分上,得到降维后的数据表示。

  7. 重建:如果需要,可以使用选定的主成分和特征值来重建原始数据的近似表示。

六、点云的特征值特征向量

特征值(Eigenvalues)

特征值表示每个特征向量方向上的数据方差量。它们告诉我们每个主成分对数据集变化的贡献程度。较大的特征值意味着相应的特征向量方向上的数据变化较大,因此更具有区分性。

特征向量(Eigenvectors)

特征向量是与特征值相关联的向量,它们定义了数据的主要变化方向。在点云分析中,特征向量可以帮助我们识别点云数据中最重要的轴。例如,第一个特征向量(与最大的特征值相关联)定义了数据变化最大的方向,第二个特征向量定义了第二大变化的方向,依此类推。

用处:

1、拟合直线

2、拟合平面

3、通过计算法向量,去做其他(例:连续曲面、SDF、重建)

连续曲面(Continuous Surface)是指在一定区域内处处连续的曲面。这意味着曲面上的每一点都有一个邻域,该邻域内的曲面是平滑的,没有尖角、断裂或空洞。连续曲面在视觉上是不间断的,可以进行光滑的渲染和阴影处理。

 性质:

连续性:曲面上的任意两点之间都可以通过一条完全位于曲面上的路径连接,且路径上的任意点的函数值(如高度或颜色)都是连续变化的。

可微性:在大多数情况下,连续曲面也是可微的,这意味着曲面在每一点都有一个明确定义的切平面或法线。这对于光线追踪、碰撞检测和物理模拟等应用非常重要。

平滑性:连续曲面通常是平滑的,没有尖锐的边缘或角落,这使得它们在视觉上更加真实和美观。

封闭性:在某些情况下,连续曲面可能是封闭的,形成一个封闭的体积,如球体或立方体的表面。

SDF是Signed Distance Function(有符号距离函数)的缩写,它是一种在计算机图形学和计算几何中常用的表示曲面和体积的方法。SDF提供了一种定义形状的方式,它指定了空间中任意一点到最近表面的距离,并带有符号信息,表明该点是在表面的内部(负值)还是外部(正值)。

■ 数学上,SDF的定义:

数学上,SDF是一个函数 F:R3→RF:R3→R,对于空间中的任意点 pp,F(p)F(p) 表示 pp 到最近表面的最短距离,并且:

  • 如果 F(p)<0F(p)<0,则 pp 在表面的内部。
  • 如果 F(p)=0F(p)=0,则 pp 恰好在表面上。
  • 如果 F(p)>0F(p)>0,则 pp 在表面的外部。

■ 特点:

连续性:SDF在整个空间中都是连续的,这使得它适合于平滑渲染和光线追踪。

方向性:SDF不仅提供了距离信息,还提供了到达最近表面的方向,这对于光线与表面的交互计算非常有用。

封闭性:SDF可以表示封闭的体积,这对于体积渲染和物理模拟等应用很重要。

灵活性:SDF可以表示各种复杂的几何形状,包括非流形(non-manifold)和分支结构。

### 使用Matlab实现点云BSC特征提取 #### 准备工作 为了在 Matlab 中实现点云 BSC 特征提取,首先需要加载并预处理点云数据。假设已经有一个表示点云的三维数组 `P` (N×3),其中 N 是点的数量。 #### 关键点检测 关键点检测是第一步,在此过程中识别出具有显著结构特性的点作为后续分析的基础[^3]: ```matlab % 假设 P 是一个 Nx3 的矩阵,代表点云中的点 K = detectHarrisFeatures(P(:,1:2)); % Harris角点检测器用于二维投影 keypoints = K.Location; ``` #### 局部坐标系建立与坐标转换 对于每一个检测到的关键点,构建局部坐标系,并将周围的点映射至该坐标系下进行格网化处理: ```matlab radius = 0.5; % 定义邻域半径大小 for i = 1:length(keypoints) idx = find(sqrt(sum((P-repmat(P(i,:), size(P,1), 1)).^2, 2)) < radius); local_points{i} = bsxfun(@minus, P(idx,:), mean(P(idx,:))); end ``` #### 加权投影特征计算及特征二值化 完成上述步骤之后,可以针对每个关键点及其对应的局部区域内的点执行加权投影操作,最终得到二进制形式的描述符: ```matlab bins = linspace(-pi, pi, 8); % 将角度划分为多个区间 descriptors = cell(size(local_points)); for i = 1:length(local_points) angles = atan2(local_points{i}(:,2), local_points{i}(:,1)); hist_counts = histcounts(angles, bins); descriptors{i} = double(hist_counts > median(hist_counts)); % 进行简单的二值化 end ``` 以上代码片段展示了如何使用 Matlab 实现基本的点云 BSC 特征提取流程。需要注意的是这只是一个简化版本的实际应用可能还需要考虑更多细节优化以及特定场景下的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值