

之前的工作

时空复杂度很高


直接用点云
端到端的学习



输入是无序的,模型需要对
N
!
N!
N!个排列结果保持不变

解决置换不变性的方法:对称函数。
因为对称函数跟排列是没有关系的

在神经网络中如何应用对称函数

对每一维取最大值,但是这样丢失了很多特征。
可以先将数据升维,由于信息冗余,使得
m
a
x
max
max操作可以保留更多的点云数据。

一个原始的PointNet结构

理论证明,PointNet可以逼近任意连续函数


使用Transformer Network对其输入



PointNet对数据丢失是鲁棒的

解释了为什么对点的丢失非常鲁棒,因为学习到了关键点

要么是对一个点做操作,要么是对全局的点做操作,它没有局部的操作。

因为没有局部特征的学习,所以在分割精细的点上存在问题,在平移不变性上也有所缺陷。

核心思想:在局部区域重复地迭代性地使用PointNet

用一个具体例子来理解多级点云特征学习

假设找到红点周围的小区域

因为不想受整体平移的影响,先把小区域的点转化到局部坐标系

对小区域使用PointNet提取局部特征

提取完特征得到一个新的点

这个点不仅有X,Y坐标,还有代表小区域几何形状的特征向量
重复这个过程,得到一组新的点

这组点往往在数量上少于原先的点,但每个点代表了它周围几何区域的点。这组操作叫作点集提取。
经过两层点集提取,再经过pooling,得到全局特征,然后做分类。

将全局特征再传递给原来的点上就可以实现分割。

如何选择局部小区域的大小?
类比卷积神经网络,在CNN中,小的kernel比较流行。

点云中常见的问题是采样不均匀,近的点非常密,远的点非常疏。一个极端的情况,小区域中只有一个点,那么学习到的特征会非常不稳定。


通过对比实验,得到结论:在点云中,kernel太小的话会被采样率的不均匀所影响。
针对这个问题,提出MSG和MRG。
动机是,希望在密的地方相信这个特征;在疏的地方不相信这个特征,而是看更大的区域。
