点云定义
点云是一种三维数据表示方法,它通过大量的三维坐标点来描述物体或场景的表面。这些点通常通过对实际物体或场景表面进行离散采样获得,因此,点云可以被视为场景表面在给定坐标系下的离散表示。
点云组成
点云可以看作是某个坐标系下,点的数据集。其由三维坐标点(X, Y, Z)和附加信息组成。分别描述了点的空间位置和诸如颜色信息(RGB)、激光反射强度(Intensity)等其他属性。
一般来说,采集到的点云都是无序的,在存储中相邻的点不一定在实际上物理相邻。
点云属性
点云可以表达物体的空间轮廓和具体位置,受空间分辨率、点位精度和表面法向量影响。
点云本身和视角的选取无关,只要在同一坐标系下,不同的点云可以融合。
点云特点
优点:保留了三维空间中原始的几何信息,不进行离散化
缺点:高维数据,计算复杂,没有固定的排列格式
这也导致了三个问题:
- 如何从稀疏点云找到高精度信息表示
- 如何构建一个满足资源限制的网络
- 如何以较低的时间和计算资源消耗来处理大量数据
点云获取
一般使用三维成像传感器获得。
- 激光雷达(LiDAR):通过发送激光脉冲并测量其返回时间来计算距离,适用于自动驾驶、地形测绘等领域。
- 立体视觉(Stereo Vision):使用两个或多个相机从不同角度捕捉场景,然后通过匹配相应的图像点来重建三维结构。
- 结构光(Structured Light):投射一系列已知模式的光线到场景中,然后通过观察这些模式如何变形来重建三维结构。
点云表示
三维点云的表示有几种思路,比如将无序的空间点转变为规则的数据排列,或者将其看做图数据处理(增加连接关系)。
原始点集
- 无序点集表示法:每个点只包含其三维坐标(X, Y, Z),点之间没有特定的顺序。
- 有序点集表示法:点按照特定的顺序排列,例如按照扫描的顺序。
多边形网格
- 三角网格:通过连接点云中的点形成三角形,这种表示方法可以用于渲染和几何分析。
- 多边形网格:使用多边形表示,常用于CAD和3D建模。
体素栅格
- 将空间划分为小立方体(体素),每个体素记录其是否被点云占据。这种表示方法适用于空间划分和体积计算。
参数化曲面
- 隐式曲面:使用数学方程来定义点云所代表的曲面,如球面、圆柱面等。
- 显式曲面:使用参数方程来描述曲面,如贝塞尔曲面、NURBS(非均匀有理B样条)曲面等。
深度图像
- 将点云投影到二维平面上,每个像素值表示该点到相机的距离。这种表示方法常用于深度感知和3D重建。
八叉树
- 一种树形数据结构,用于将三维空间递归划分为八个子空间。每个节点代表一个空间区域,可以用来有效地表示和管理稀疏点云。
K-D Tree
- 一种多维空间的数据结构,用于组织点云数据,以便进行快速搜索和邻域查询。
- 更多介绍可以参考笔者的另一篇博客:简单介绍一下KDT/K-D Tree-CSDN博客
数据增强
- Discriminative Methods
- 传统的方法包括局部表面拟合、邻域平均和猜测底层噪声模型。
- PointCleanNet提出了一种基于数据驱动的方法去消除错误点减少噪声
- PCPNet首先对异常值进行分类并丢弃它们,然后估计一个将噪声投影到原始表面的修正投影
- Total Denoising,在不需要额外数据的情况下实现了非监督降噪对点云数据
- 临界点层(CPL)在保留重要点的同时学会减少点的数量。这一层是确定性的,不确定顺序的,并且通过避免邻接搜索也很有效。
- 通过将采样后的点近似为原始点的混合来逼近点采样的可微松弛
- Generative Methods
- 通过生成假样本,帮助定位网络的潜在缺陷。
- point perturbation and point generation:
- 扰动是通过对已有的点进行可忽略的移动来实现的,
- 生成是通过添加一些独立分散的点或少量具有预定义形状的点簇来实现的。
- 除了对抗性生成(GAN),生成模型也用于点云上采样。向上采样点云通常有两种动机。一是减少数据的稀疏性和不规则性,二是恢复遮挡造成的缺失点
点云分类
通常称为三维形状分类。通常是先通过聚合编码器生成全局嵌入,然后将嵌入通过几个完全连通的层来获得最终结果。
- 基于投影的方法
- 基于投影的方法将非结构化的三维点云投影到特定的预设模态中(例如体素、柱状体),并从目标格式中提取特征,从而在相应方向上受益于之前的研究成果。
- Multi-view representation
- MVCNN:
- GVCNN
- Volumetric representation
- VoxNet
- 3D ShapeNet
- OctNet
- OCNN
- Basis point set
- BPS
- 基于点的方法:
- 与基于投影的方法从空间邻域中聚合点相比,基于点的方法尝试从单个点中学习特征。
- MLP networks
- Convolutional networks
- Graph networks
- 图网络将点云视为图,将图的顶点视为点,并根据每个点的邻居生成边。特征将在空间或光谱领域学习。
点云分割
3D分割的目的是对每个点进行标记,这需要模型在每个点上收集全局上下文和详细的局部信息。在三维图像分割中,主要有两个任务:语义分割和实例分割。
- 语义分割
- Projection-based methods
- Point-based methods
- Proposal-free methods
- 同时解决语义分割和实例分割
- 先解决语义分割,根据语义分割的结果在某些标签点上运行实例分割
- 先解决实例分割,直接分配带有实例标签的语义标签
目标检测
- multi-view method
- projection-based method
- point-based method