(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读

目录

知识补充

网络解读

概括

局部和全局特征的融合(分割任务)

联合对准网络(T网络)

总结

点云存在的问题:

详细理解:

参考内容:


知识补充

点云转换为体素的问题:数据庞大

本文设计了一种直接消耗点云的神经网络(保持了输入中心点的排列不变性)

刚性变换:指保持物体形状和大小不变的变换,包括平移、旋转、镜像和缩放等操作。(刚性变换中,距离、角度和形状等几何属性在变换前后保持不变)

放射变换:仿射映射,指几何中,对一个向量空间进行一次线性变换,并附加一个平移。

PointNet的关键是使用单个对称函数,即最大池化。(实现输入的排列不变性)

网络学习一种优化函数/标准(这些函数/标准选择点云中有意义/信息丰富的点),然后对其编码。

对称函数:函数的输出值不随输入变数的排列而改变。

例如:

PointNet网络前可添加数据预处理的步骤,例如数据规范化等。(PointNet容易应用刚性变换或放射变换)

该网络学习一组稀疏的关键点来总结输入点云(很适合毫米波雷达)--大致对应于对象的骨架。

因此该网络对输入点的小扰动、插值(异常值)和删除(数据丢失)具有较高鲁棒性。

3D数据的表示:

体积CNN--将3D卷积神经网络应用于体素化形状--(数据稀疏性和3D卷积的计算成本)

--FPNNVote3D提出了处理稀疏问题的特殊方法

 Y. Li, S. Pirk, H. Su, C. R. Qi, and L. J. Guibas. Fpnn: Field probing neural networks for 3d data. arXiv preprint arXiv:1605.06240, 2016.

D. Z. Wang and I. Posner. Voting for voting in online point cloud object detection. Proceedings of the Robotics: Science and Systems, Rome, Italy, 1317, 2015.

多图CNN--将3D点云或形状渲染为2D图像--使用2D卷积来进行分类

基于特征的DNN--将3D数据转换为向量(例如convolution),然后使用全连接网络进行分类。(集合SoftMax)--受到特征提取能力的限制

作者关注的点:点云数据形式是一种无序的向量。

--点云中的点以一组三维坐标的形式表示,通常没有特定的顺序或排列方式;

--点云中的点通常按照位置或时间顺序获取,不强制性地保持特定的顺序;

--点云数据存储通常只包括点的坐标,而没有其他附加信息或序列来指示点的特定顺序;

--点云数据没有固定的网络结构或拓扑关系,即点与点之间的连接或近邻点之间的关系并不是明确或预先定义好的。

网络解读

概括

网络具备的3个性质:

--无序性:即输入N个点的网络需要对N!种排序保持不变。

--点与点之间的相互作用:(点来自具有距离度量的空间,因此点之间不是孤立的,相邻点形成一个有意义的子集--模型需要能够捕获邻近点的局部结构,以及局部结构之间的相互作用)

--变换下的不变性:点云集被学习的关系在某些变换下应该是不变的--点云集的特征变换后应是不变的

网络的三个关键模块:最大池化层(作为对称函数来聚合所有点、局部和全局信息的组合结构)和两个联合对齐网络(对齐所有输入点和点特征--对应图中的T网络)

T-Net -- 一种用于对齐点云的小型网络(预测一个放射变换矩阵,并将其应用到输入的点云坐标上(对应文中的矩阵相乘))--T-Net的目的是使点云的表示具有一定的变换不变性,提高识别的准确性和鲁棒性。

文章的两个T-Net一个用于对齐输入点云、另一个用于对齐点的特征。

使模型对输入排列不变的三种策略:

1、将输入排序为规范顺序;(在高纬空间中实际上不存在稳定排序--在保持空间信息的同时减少维度是难以实现的)

2、将输入视为序列来训练RNN,并通过各种排序来扩充训练数据;(将点集视为序列信号,并通过随机排列序列训练RNN,实现对输入数据的鲁棒性增强--RNN对于小长度(数十个)序列的输入排序具有较好的鲁棒性,但较难扩展到数千个输入元素)

3、使用简单的对称函数来聚合每个点的信息。(对称函数以n个向量作为输入,并输出一个与输入阶数无关的新向量,例如+,×是对称的二元函数)

本文对于点云顺序的思考:对集合中的元素进行某种转换,然后应用一个对称函数来近似表示整个点集上的一般函数。

通过MLP来近似h,通过单变量函数和最大池化的组合来近似g。

最大池化输出得到一个包含全局特征的向量(对应框图中的global feature)--对该特征使用SVM或MLP训练分类器以实现分类。

局部和全局特征的融合(分割任务)

对于分割任务,需要全局和局部的特征的结合。--本文提出的高效解决方案:如框架下部分分割所示,将全局特征与每个点的特征连接起来(即每个点的特征n×64与全局特征1×1024并联-->n×(64+1024=1088))。

根据组合后的特征提取新的每个点的特征(此时每个点都知道全局特征--即全局特征与局部特征融合)

联合对准网络(T网络)

点云经过某些几何变换后(如刚性变换),需保证点云的语义标记保持不变。(期望通过点云集学习到的特征是保持不变的)

--解决方案:在特征提取前将所有输入集对齐到规范空间。(扩展--特征空间对齐--对应框图中的第二个T网络)

困难:特征空间的维度远高于空间变换矩阵(空间变换矩阵维度为3,特征空间论文中维度为64)

--解决方案:最后的在softmax训练损失中,增加正则项,将特征变换矩阵限制为正交矩阵(正交变换可以使得变换后的点之间相对关系仍被保留)。

式中,A为预测的特征对齐矩阵。

正交变换(保持向量长度和向量之间的正交性质)

映射矩阵是正交时,通过该矩阵的线性变换就是正交变换。正交变换的性质如下:

长度不变性:正交变换不改变向量的长度;

正交性质:正交矩阵的列向量彼此是正交的单位向量,当应用正交变换时,变换后的向量仍保持相互垂直;

逆和转置等价:正交矩阵的逆等于其转置。

Hausdorff 距离(Hausdorff distance):用于度量两个非空集合之间的距离或相似性的概念。它衡量的是两个集合之间的最大偏移程度,即集合中的点与另一个集合中的最近点之间的最大距离。(定义如下)

Hausdorff 距离计算了两个集合之间的最小距离的上确界(supremum)。换句话说,对于集合A中的每个点,它到集合B中最近点的最大距离,以及对于集合B中的每个点,它到集合A中最近点的最大距离,两者中的最大值即为这两个集合之间的Hausdorff距离。

作者证明,当最大池化的神经单元越多,网络的近似性能越好。(文中设置为1024

通过神经网络对连续集函数的逼近能力展示网络对小扰动不会极大地改变函数值的能力。

文章使用的数据集:ModelNet40

论文的训练:通过沿上轴随机旋转对象来动态增强点云。并通过零均值和0.02标准差的高斯噪声抖动每个点的位置。

网络整体框图

总结

点云存在的问题:

1. 无序性:点的顺序不应影响它在空间中对整体形状的表示。例如,相同的点云可以由两个完全不同的矩阵表示。

希望得到的效果如下图右边:N代表点云个数,D代表每个点的特征维度。不论点云顺序怎样,希望得到相同的特征提取结果。

2. 旋转性:相同点云在空间中经过一定的刚性变换(旋转或平移),坐标发生变换。

希望不论点云在怎样的坐标系下呈现,网络都能正确的识别出。

(对于二维,可通过STN来解决。对于三维,由于点云是不规则结构(无序、无网络),因此不需要重采样的过程)

详细理解:

传统的三维数据在处理时(例如卷积神经网络),往往需要将不规则的点云数据转换为体素(Voxels)或网格,这一过程称为重采样。重采样的目的是为了使数据符合CNN处理的格式(CNN在设计上是为了处理规则的网格数据-例如图像)

然而PointNet结构通过直接学习点云中提取的全局特征方式,避免了重采样的过程。PointNet通过对每个点单独应用一系列的全连接层(或称为MLP),然后通过一个对称函数(如最大池化)聚合所有点的特征,从而学习到整个点云的全局表示。这种设计使得PointNet能够直接处理原始的、无序的点云数据,而不需要将点云转换为某种规则的数据结构,如体素网格。

优点:保留了原始点云数据的几何特征和细节,同时避免了重采样过程中可能引入的信息损失或量化误差。此外,直接处理点云数据也提高了处理效率,因此不需要进行额外的数据转换和处理步骤

PointNet网络的两个亮点:

1、三维STN通过学习点云本身的空间信息学习一个有利于网络进行分类或分割的D×D旋转矩阵(D表示特征维度,PointNet中D采用3和64)--在原STN上进行适当改进,删除了采样器。

第一层三维STN对空间中的点进行调整,直观上可理解为进行旋转、平移等操作使点云更有利于后续处理。

第二层三维STN用于对提取的64维特征进行对齐。

2、引入对称函数(maxpooling)来解决点云输入无序性的问题,即对每个点进行一定程度特征提取后,通过maxpooling来提取整体的全局特征。

网络结构总结:前两个用于特征提取的MLP通过共享权重的实现,经过两个空间变换网络和两个MLP后,得到每个点的1024维特征,经过maxpooling提取全局特征,最后通过MLP得到分类得分。

参考内容:

farthest point sampling - FPS - 最远点采样详解-CSDN博客
点云PCL公众号第二期分享之深度学习在3D场景中的应用_哔哩哔哩_bilibili

  • 33
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
点云分类分割点云处理中的两个重要任务。点云分类是将点云中的每个点分为不同的类别,如地面、建筑、树木等。而点云分割则是将点云分为不同的部分,如建筑的墙、屋顶等。 基于深度学习点云分类分割方法主要是利用卷积神经网络(CNN)进行特征提取和分类。具体方法包括: 1. PointNet:PointNet是一种基于点集深度学习架构,能够对不同的点云进行分类分割和语义分析。它使用了局部特征和全局特征来描述点云,同时利用了多层感知机(MLP)和池化操作来提取特征。 2. PointNet++:PointNet++ 是 PointNet 的改进版,主要改进了点云的采样和聚合方法,通过自适应采样和聚合来处理不同密度的点云。这种方法能够有效地处理不同复杂度的点云任务。 3. PointCNN:PointCNN是一种基于卷积的点云分类分割方法,主要利用了点云的局部结构和全局特征来进行特征提取。它使用了基于卷积的滤波器来对点云进行卷积操作,从而提取局部特征。 4. KPConv:KPConv是一种基于卷积的点云分类分割方法,主要利用了点云的局部结构和密度信息来进行特征提取。它使用了核点卷积来对点云进行卷积操作,从而提取局部特征和密度信息。 这些方法都能够有效地处理点云分类分割任务,并且已经在许多实际应用中得到了广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨晨丶

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值