论文阅读笔记(14)--- PointNet++

参考PointNet论文和代码详解
原作者的视频报告

PointNet的局限性

与传统的3DCNN分层提取特征相比,PointNet属于全局特征学习,只对单个点或者所有点进行操作,没有局部信息,对精细的特征难以学习,例如分割的时候会有所缺陷,此外在平移不变性上也会有所缺陷
论文阅读笔记(14)--- PointNet++_第1张图片

PointNet++的改进

因此,在原PointNet的基础上进行分层级的迭代学习,保留了置换不变性和几何不变性
论文阅读笔记(14)--- PointNet++_第2张图片
具体讲解一下这个过程,对于一组点云,首先圈出一组局部点云,根据这组点云数据利用PointNet生成一个高维点,因此根据所有输入点云可以得到一个简化的特征点云。这个操作称为set abstraction
论文阅读笔记(14)--- PointNet++_第3张图片
重复这个set abstraction就可以得到一个层级的迭代学习,特征所包含的区域也会越来越大。

Introduction

在Introduction部分,作者首先指出PointNet的思想是对每个单独的点进行空间编码然后将所有单个的点特征聚集成为一个全局点云特征。因此点云并没有捕获局部特征的能力。而CNN在层级结构中,低层感受野较小而高层感受野较大,就可以有效捕获局部特征。

因此,作者引入了分层的神经网络PointNet++,它的思想很简单,首先根据度量方式将原始点云划分成重叠的局部区域,然后在小区域里面捕捉局部特征,然后将这些精细的局部特征组合起来,形成新的特征点云,继续之前的划分和提取操作,这样就形成的层级的特征提取

在这之中我们会注意到两个问题,首先是怎么去得到点云分区,其次怎么提取局部特征。

提取局部特征使用的是PointNet,因为他可以处理置换不变性和几何不变性的问题,从而让PointNet++仍然具有这两个性质。

点云分区其实就是需要找到每个分区球的质心和尺度,质心的选择使用的是FPS算法。为了选择合适的尺度,作者考虑到特征尺度的纠缠性和输入点集的不均匀性,这个问题会比较困难,传统CNN认为卷积核越小效果越好,但是在点云中恰好相反,因为尺度太小在采样缺乏的区域,包含的点数会很少,从而导致鲁棒性较差

PointNet++利用多尺度上利用邻域能够实现鲁棒性和细节捕获的效果,同时在训练的时候利用dropout来增强鲁棒性

Method

PointNet回顾

PointNet

点云的层级特征学习

与点云只对整个点云集使用单一的max pooling操作相比,我们的新结构通过层级的操作逐步提取出越来越大的局部区域。

层级结构通过一组set abstraction操作实现,每一个set abstraction都是由三个基本操作组成的:Sampling layer从输入点中选出一系列的点组成局部区域的质心;Grouping layer 确定尺度,找到质心的相邻点,构建局部区域;PointNet layer对每个局部区域提取特征。

  • Sampling layer:利用FPS算法从所有输入点云中找到最不相似的一组点云作为质心,与CNN相比,这是一种数据依赖的产生感受野的采样方式。
  • Grouping layer:输入数据的大小是 N × ( d + C ) N×(d+C) N×(d+C),产生的质心大小是 N ′ × d N'×d N×d,组合以后的输出点云尺寸是 N ′ × K × ( d + C ) N'×K×(d+C) N×K×(d+C)。group的操作是以每个key point为中心。找到其固定规模(规模为K)的邻点,共同组成一个局部区域。KNN的方式是找到K个坐标空间中最近的点,而ball query是划定一个半径,找到在该半球内的点作为邻点ball query的优势在于保证了固定的区域尺度,尺度固定使得局部区域的特征在空间上更具有泛化性,更适合局部/细节识别的应用
  • PointNet layer:首先把一个局部区域里的点的坐标转化为相对于质心的坐标,然后利用PointNet提取特征,通过相对坐标捕获局部区域里面的点对点关系

不均匀采样密度下鲁棒特征学习

问题:实际场景中的不均匀采样很常见,但是如果为稠密区域提取的特征可能由于稀疏区域采样数目不够而遭到破坏,而为稀疏区域训练的模型可能无法提取稠密区域的细节特征。

因此提出了一种自适应的PointNet,能够根据采样密度的改变,学习组合来自不同尺度区域的特征,称为PointNet++。

与之前所说的单个尺度的分组和特征提取有所区别,PointNet++中,每个abstraction层会提取局部的多个尺度,然后根据局部点云的密度将他们智能组合。根据局部区域分组和不同尺度特征的组合,提出了两种密度自适应层:

  • Multi-scale grouping(MSG):直接利用不同尺度的特征提取模块,然后将提取到的不同尺度的特征组合起来,在训练中使用了random input sropout减少过拟合。
  • Multi-resolution group[ing(MRG):上述方式是比较贵的,在底层的时候中心点个数较多,并且区域包含的点数也多,这个时间消耗是很大的。因此提出一种避免这种昂贵的计算,并且还能实现根据分布自适应聚合信息的方法。也就是根据层级的结构聚合特征,将较低级别提取的特征和较高级别提取的特征连接起来。
    当局部区域的密度较低时,第一个向量的子区域包含的店较为稀疏,可能受到采样不足的影响,因此第二个向量的权重应该更高。当局部区域的密度较高时,第一个向量提供更多精细和细节的信息。
    论文阅读笔记(14)--- PointNet++_第4张图片

分割任务的点特征传播

对于分割任务,希望达到的其实时对于所有原始点的特征,但是在set abstraction中,输入点云都是经过子采样的。有一个方法是在set abstraction中始终将原始点云作为输入,但是这样消耗很大。另一个方法就是将特征从子采样点传播到原始点

论文阅读笔记(14)--- PointNet++_第5张图片

你可能感兴趣的:(图像处理论文,python)