点云分割报告整理(未完成版-每天写一点)

发布于:2024-06-12 ⋅ 阅读:(47) ⋅ 点赞:(0)

体积占用网格表示对点进行体素化,然后使用3d卷积神经网络来学习体素级语义。由于点云的稀疏性,体素化效率低,为避免较高的计算成本而忽略了细节。此外,由于同一体素内的所有点都被赋予了相同的语义标签,因此精度受到限制。为了利用传统的那些2D分割框架,尝试将3D空间从多角度映射到二维空间,然后分割完成后再投影回去,然而,重新投影回3d空间也是一个重要的问题。

非结构化点云的 3d 语义分割存在的问题:

1.大规模点云数据

2.不规则形状

3.非均匀密度

Pointnet

PointNet是第一个直接处理原始点云的方法。只有全连接层和最大池化层,PointNet网络在推理速度上具有强大的领先优势,并且可以很容易地在CPU上并行化。

困难:

由于点云不是常规数据格式,通常将此类数据转换为规则的 3D 体素网格或图像集合,然后再用神经网络进行处理。数据表示转换使生成的数据过于庞大。

应对点云的无序性有三种方案:

方案1:排序

高维空间的排序,不可稳定

方案2:假如有N个点,N!种排列训练一个RNN。

2015年《Order Matters: Sequence to sequence for sets》证明RNN网络对序列的排序还是有要求的。

方案3:设计对称函数,因为输入顺序对于对称函数没有影响。比如:加法、乘法

PointNet使用的最大池化,是对称函数。

Pointnet的解决方法:

训练一个正交矩阵,将点云对齐

使用单个对称函数 max pooling

限制:

PointNet架构有两个限制将其性能限制在更大、更复杂的点云上。一方面,只集成了点特征和池化的全局特征,无法捕获相邻点所代表的局部结构。另一方面,首先将点云细分为小体积块,每个块都是独立预测的,没有任何连接。因此,点网的整体精度在复杂场景中受到限制。

PointNet++

PointNet 没有捕捉到由现场的度量空间点引起的局部结构,限制了其识别细粒度模式和对复杂场景的泛化能力。

Pointnet可以通过一组稀疏的关键点来总结输入点云,这些关键点大致对应可视化骨架。PointNet 对输入点的小扰动以及点插入(异常值)或删除(缺失数据)损坏具有高度鲁棒性。

点集通常以不同的密度进行采样,这导致在均匀密度上训练的网络的性能大大降低,我们提出了一种新的集合学习层来自适应地组合多个尺度的特征。

为了实现这一目标,提出了密度自适应点网层,当输入采样密度发生变化时,这些点网层可以学习组合来自不同尺度区域的特征。具有密度自适应点网层的分层网络称为pointnet++

PointNet++的设计必须解决两个问题:如何生成点集的划分,以及如何通过局部特征学习器抽象点集或局部特征。

2种方案:

(a)多尺度分组(MSG);(b)多分辨率分组(MRG)

PointSIFT

PointSIFT是在pointnet++的基础上改进的,引入了尺度不变特征变换。

八叉树

八叉树(Octree)的定义:若不为空树的话,树中任一节点的子节点恰好只会有八个,或零个,也就是子节点不会有08以外的数目。

八叉树在3D空间中,可以很快地知道物体在3D场景中的位置。

八叉树算法的算法实现简单,但大数据量点云数据下,其使用比较困难的是最小粒度(叶节点)的确定。

3D-RNN

为了捕捉局部特征,使用步长为1 的金字塔池化。

方式1步长固定、窗口大小不同

方式2 窗口大小固定,不同步长

采用双向RNN,具体来说,首先将点云沿两个水平方向(xy)细分为部分重叠的块。椅子通常在桌子附近,窗户通常在墙内。