【学习笔记】深蓝学院-三维点云处理

本文介绍了三维点云处理的关键技术,包括PCA与Kernel PCA、表面法线和滤波、最近邻问题(如KD-Tree和Octree)、聚类算法(如k-means、GMM和Spectral Clustering)以及特征检测与描述。此外,还探讨了点云配准中的ICP和NDT方法,展示了从传统算法到深度学习方法在点云处理领域的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PCA & Kernel PCA

Kernel PCA可以理解为,先通过非线性变换,将点云投影到高维空间中,然后在高维空间中做PCA。但这个非线性变换函数很难找,所以通过数学变换,改写,用核方法表示。使用常用的,多项式的核,高斯的核就可以实现Kernel PCA。

Suface Normal & Filters

Surface Normal就是PCA中中最后一维的向量,将点云做PCA,最后一个主成分就是法向量的方向,curvature也与PCA中最小的特征值有关。

降采样的方法:
grid sampling:pcl库中使用排序的方法,时间时间复杂度是O(NlogN),如果使用哈希表,其实感觉就像是桶排序,可以做到O(N)

FPS

Normal Space Sampling:在曲率大的地方多采样

DeepLearning:《learning to sample》,语义上进行降采样

Nearset NeighborProblem

KD-Tree

KD-Tree:k-dimensional tree,高维度的二叉树,每个维度切一刀
切法:
1)轮流切,xyzxyz
2)adaptive,按照点的分布切
两种速度差别并不是很大,结果是一样的。

构建速度,最快O(nlogn),使用O(n)的求中值的方法,但很复杂。有以下两个trick:
1)找中值时,不用某个区域的全部点,而是只用一部分
2)用平均值代替中值
这两个trick生成的树不是平衡树,但用起来还算可以

Octree

专门为三维数据设计的,在最近点搜索中比较高效的原因是,可以提前终止搜索。使用KD-Tree,无论如何都会返回到root。

构建八叉树的时候,要确定leaf_size和最小边长。

聚类

k-means

Tricks:

  1. 选择数据中的点作为初始化点,而不是随机选点
  2. 由于K-menas选点的初始值有关,所以跑几次K-menas,选择惩罚函数最小的一次作为结果
  3. Mini-Batch K-means
  4. Sequential K-means

欧氏距离不能用,就不能用K-menas,因为其要求平均值

加强版:为了增加对噪声的鲁棒性
k-medoids
不要求距离函数可导

GMM

K-means只给出中心点,不给出每个点的prob,还是比较粗糙的。使用GMM,每个类用一个高斯模型来拟合。

求解GMM时,也是用EM迭代优化得到GMM的参数

K-means只是GMM的一个特例:GMM中每个高斯模型的方差都趋于0

K-means的优劣:
优点:简单,快速
缺点:1)认为类别是各向同性的,2)需要预先确定K,3)易受初始化影响,4)对噪声铭感

EM

EM不是特定于针对GMM的算法,而是针对求最大似然估计的方法,最大似然估计是要求
m a x p ( θ ∣ X ) max p(\theta|X)

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值