3.3 PointNet layer

目录
.0 前言
.1
.2
2.1Set (SA)
.3of
3. layer
3.
3. layer
3.4分类任务在提取特征后是怎么操作的,loss是什么
3.5分割任务中如何进行上采样, loss是什么?
3.6以解析++网络中维度和尺寸是怎么变化的 ?
3.++中的一些其它问题

如论文中++网络架构所示, ++的(, 特征学习)主要是由set 组成, set 由 , 和组成; 对于分类任务(下图中下面分支), 则是由全连接层组成;对于分割任务,部分主要由上采样(), skip link , 组成
.0 前言
不足之处
在卷积神经网络中,3D CNN和2D CNN很像,也可以通过多级学习不断进行提取,同时也具有着卷积的平移不变性 。
具体见:CNN平移不变性_啥也不是的py人的博客-CSDN博客
而在中 网络对每一个点做低维到高维的映射进行特征学习,然后把所有点映射到高维的特征通过最大池化最终表示全局特征
(因为直接抽取全局特征mlp映射到高维)从本质上来说,要么对一个点做操作,要么对所有点做操作,实际上没有局部的概念(loal )
同时也缺少local在平移不变性上也有局限性 。(世界坐标系和局部坐标系) 。对点云数据做平移操作后,所有的数据都将发生变化,导致所有的特征,全局特征都不一样了对于单个的物体还好,可以将其平移到坐标系的中心,把他的大小归一化到一个球中,但是在一个场景中有多个物体时则不好办,需要对哪个物体做归一化呢?
.1
在++中,作者利用所在空间的距离度量(L2范数)将点集划分()为有重叠的局部区域 。
在此基础上,首先在小范围中从几何结构中提取局部特征(浅层特征),然后扩大范围,在这些局部特征的基础上提取更高层次的特征,直到提取到整个点集的全局特征 。
可以发现,这个过程和CNN网络的特征提取过程类似,首先提取低级别的特征,随着感受野的增大,提取的特征level越来越高 。
++需要解决两个关键的问题:
1. 如何将点集划分为不同的区域;
2. 如何利用特征提取器获取不同区域的局部特征 。
这两个问题实际上是相关的,要想通过特征提取器来对不同的区域进行特征提取,需要每个分区具有相同的结构 。这里同样可以类比CNN来理解,在CNN中,卷积块作为基本的特征提取器,对应的区域都是(n, n)的像素区域 。而在3D点集当中,同样需要找到结构相同的子区域,和对应的区域特征提取器 。
.2
对于问题一:
如何来划分点集从而产生结构相同的区域
作者使用邻域球来定义分区,每个区域可以通过中心坐标和半径来确定 。中心坐标的选取,作者使用了最远点采样算法算法来实现( point(FPS) )
对于问题二:
作者使用了作为特征提取器
由可以看到,结构中只有一个max pool操作,并且得到了一个全局特征,没有得到局部特征,所以模型本身在三维点云场景分割的效果比较差 。所以在的第二代,参考了二维图像中CNN的做法 。CNN通过分层不断地使用卷积核扫描图像上的像素,使得越到后面的特征图感受野越大,同时每个像素包含的信息也越多 。
先对整个点云数据划分一个个范围,范围内中心点之间的距离足够远,范围内其他点作为局部的特征,然后用进行一次特征的提取 。通过了多次这样的操作后,原本的点的个数变得越来越少,每个点都是上一层通过提取出来的局部特征 。这个过程论文中称为Set (SA) 。
2.1Set (SA)
Set
一个SA层包含三个步骤:
:利用 point (最远点采样)随机采样点 。
:利用query ball point划一个R为半径的圈,将每个圈里面的点云作为一簇 。