PointNet系列论文阅读之二:PointNet++进阶网络

PointNet++是PointNet的升级版,旨在解决其无法捕捉局部信息的问题。通过采样、重组和特征提取,PointNet++能处理不同密度的点云,提高鲁棒性和泛化性。文章详细解读了PointNet++的网络结构、局部区域处理策略及分割任务中的特征提取策略,展示了其在点云分析领域的优势。

PointNet++ 论文解析

文章:Charles Ruizhongtai Qi, Li Yi, Hao Su, and Leonidas J. Guibas: Pointnet++: Deep hierarchical feature learning on
point sets in a metric space. In Advances in Neural Information Processing Systems, pages 5099–5108, 2017.

作者:Charles R. Qi, Li Yi, Hao Su, Leonidas J. Guibas

链接:https://arxiv.org/abs/1706.02413

本文版权声明:copyright@phosphenesvision

本文为PointNet的第二篇网络,回顾之前的网络PointNet可以参看链接https://blog.youkuaiyun.com/phosphenesvision/article/details/106724377

PointNet++ 大致思想

一共是四个重要的点

第一个点PointNet的不足指出:不能捕捉局部信息,以至于鲁棒性和泛化性较差,借鉴CNN逐层提取特征的思想,重新改进提出了PN的升级版PointNet++。具体可参看3.1节。

第二个点是PointNet++的基本结构,①第一对点云集进行采样,生成一个又一个的小的局部区域;②第二是进行重新的组合,重新组合后的点云集就拥有了与周围点的交互信息;③第三个是特征提取层,对集合好的点集进行特征提取,输出特征。具体可参看3.2节。

第三点是对PointNet++的补充,针对于每一个局部区域内可能存在点稀疏和点稠密的情况,因此各个区域大小的选取也是不尽相同的,本文提出了MSG和MRG两种算法来解决这个问题,具体可参看3.3节。

第四点是对于分割问题,输出点云和输入点云的大小不一致,这个时候需要引入反卷积结构,并且用一个跳跃结构综合特征提取前和特征提取后的信息,具体可参看3.4节。

PointNet++ 详细阅读

以下的部分不是对于论文的简单翻译,而是在理解的基础上对论文各部分又做的局部性总结,个人认为第二部分和第三部分是重点。

0 摘要

  1. 以前的PointNet有劣势:劣势就是PointNet不能捕获局部信息,因此在识别细粒度模式时表现较差,而且泛化能力也比较差。
  2. 因此设计了PointNet++,PointNet的大致结构是一种层次神经网络,迭代的应用PointNet网络。
  3. 该网络有两个特点,第一个特点就是为了解决不能捕获局部信息的问题,方法就是应用了度量空间距离(metric space distance)。
  4. 第二个特点是针对于另外一个问题:很多点集是在不同密度上进行采样,所以如果训练集是在相同密度上进行采样的话,效果就会显著下降。解决的办法是提出了一个集合学习层(set learning layers),这个学习层可以融合不同密度规模上的特征。

1 介绍

  1. 第一段,介绍了一下点集的一些相关情况:点集是欧几里得空间上的一些点的集合,点集应该至少满足两个特性,①是对于旋转或其他操作(permutation)的不变性;②是用到距离策略,可以知道周围点的一些特性,比如密度特性。这两个特性在PointNet中都提到了,不是什么新的东西。

  2. 第二段,回顾PointNet:PN的基本的思想是直接对点云数据进行处理,通过网络学习点云中每一个点的空间特征,最后再把所有点的空间特征合起来组成全局特征。这样的做法弊端是这个网络不能捕捉局部的信息,局部信息可以理解为与周围点的交互。弊端在摘要中也说了,第一个处理细粒度的点云时效果较差,第二个是泛化能力较差。

  3. 第二段后半部分,回顾CNN中是怎么处理这个问题的:CNN是采用多种像素的层次网络来处理这个问题的,multi-resolution hierarchy。比较低级的神经元层的感受野更小,而比较高级的神经元层的感受野比较大。

  4. 第三段,介绍PN++网络的主要思想:收到了层次网络的启发,PN++也是用的层次网络,实现过程:①首先根据距离策略把整个点集的输入分成一个个局部区域,这些区域之间有重叠,且由于这些区域有重叠,所以在后面的处理过程中,权重也是共享的;②然后从这些局部区域中去提取局部特征;③再将所有的局部特征整合组成全局特征。

  5. 第四段和第五段和第六段,再细细分析PN++网络:刚才的三个步骤中第三个步骤比较好理解,但是其他两个步骤都有些问题,①如何把点集分成一个个局部区域,阐述第一个问题,如何分割一个个局部区域,这些局部区域用两个参数来表示,质心位置(centroid location)和大小(scale),质心的选取是用最远点采样的方法(furtest point sampling – FPS),这些局部区域的感受野是不一样的,它们受到输入大小和算法策略的影响,这种感受野的设置使网络更有效且更高效;关于大小的选取,不能盲目的去模仿图像数据,图像数据中的局部区域的大小其实就可以理解成滤波器的大小,一般是越小越好,而点云数据与之相反,越大越好;

    可以展开来说明一下这个相反性的问题,在图像的数据中,像素点并不涉及一个密度不同的问题,就是说所有的像素都是均匀的落在图像格子中的(grid),所以有研究证明滤波器越小,结果越精确,而在点云数据中则需要考虑这个密度的问题,有的地方点特别多,有的地方点特别少,如果采用比较小的scale的话,可能捕捉不到足够的信息,从而对后续网络的处理产生很大的困扰。

    参考论文:K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition.
    arXiv preprint arXiv:1409.1556, 2014. https://arxiv.org/abs/1409.1556

    参考图片:同一场景的RGB图和点云图 PN++-F1

    ②如何从局部区域提取局部特征,用PointNet去提取局部特征,PN在提取局部特征时具有很多优点,比如处理无序点集有效,鲁棒性较强等等。因此,PN其实是被PN++当成了网络的一个block,迭代处理所有的局部区域。

  6. 第七段,本文的主要贡献:提出了一种提取局部特征的方法,训练时用到了dropout,最后的实验表明,该网络性能较好,efficient,effective and robust,且超越了目前最好的网络。

2 问题描述

假设χ=(M,d)\chi = (M, d)χ=(M,d)是一个离散度量空间(discrete metric space),并且就把这个当成是网络的输入,其中M是普通的欧几里得空间上的点云集,包含很多个点,每个点有自己的特征向量,d是该空间的距离度量(distance metric)。

我们要做的就是通过网络学到一个函数f,这个f可以是一个分类任务的函数,对整个输入点云数据预测一个输出种类;也可以是一个分割人物的函数,对输入点集中的每一个点都预测一个输出种类。

3 方法论

PointNet++可以看成是PointNet的延申

3.1 回顾PointNet

假定输入点集为{ x1,x2,...,xn}\{ x_1, x_2, ... , x_n\}{ x1,x2,...,xn},每一个x都是欧几里得空间里的一个点,PointNet要完成的事情就是求得一个函数f,把点集{ x1,x2,...,xn}\{ x_1, x_2, ... , x_n\}{ x1,x2,...,xn}变成一行向量,也就是提取出整个点集的特征来,其中f的学习参考公式:f(x1,x2,...,xn)=γ(max⁡i=1,2,...,n{ h(xi)})f(x_1, x_2, ... , x_n) = \gamma(\max _{i=1,2,...,n} \{ h(x_i)\})f(x1,x2,...,xn)=γ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值