PointNet++论文解读

PointNet++论文解读

论文标题:PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
原文地址:PointNet++

1.Introduction

   点云是三维空间中物体的重要表示形式之一,然而由于点云的无序性以及形状、密度的不规则,使得点云处理成为一个十分具有挑战性的任务。

    PointNet是将深度学习应用到点云处理中的开创性工作,它的基本思想是学习每个点的空间表示,然后将所有点的空间表示聚合成全局点云特征,在点云的分类、分割任务上都取得了不错的效果。然而,PointNet并没有利用到点云中的局部结构信息,CNN中的经验表明,通过层级结构提取局部信息有助于提高网络的泛化能力。

   基于此,这篇文章提出了分层的PointNet++网络结构。 简单来说,就是首先对点云进行采样分组,然后对每一组的点云使用PointNet提取该组的特征,对于得到的特征再次进行分组采样并得到更高层级的特征,重复这个过程直到得到整个点云集合的特征。通过这种层级结构,可以利用多个尺度的邻域来获得局部细节信息和提升鲁棒性,实验也证明PointNet++在多个点云的数据集上都达到了SOTA的结果。

2.Problem Statement

    记 X = ( M , d ) \mathcal{X}=(M, d) X=(M,d)是一个离散度量空间,其中 M M M是点的集合, d d d是距离测度,在这个空间中, M M M的密度一般是不均匀的。我们希望学习一个函数 f f f,把 X \mathcal{X} X作为输入,输出 X \mathcal{X} X相关的语义信息。在分类任务中, f f f会对整个 X \mathcal{X} X预测出一个标签;在分割任务中, f f f会对 M M M中的每一个点分配一个标签。

3.Method

3.1 PointNet介绍

    对于给定的无序点云集合 { x 1 , x 2 , … , x n } \{x_{1}, x_{2}, \ldots, x_{n}\} {x1,x2,,xn},函数 f f f可以定义为:
f ( x 1 , x 2 , … , x n ) = γ ( MAX ⁡ i = 1 , … , n { h ( x i ) } ) f\left(x_{1}, x_{2}, \ldots, x_{n}\right)=\gamma\left(\operatorname{MAX}_{i=1, \ldots, n}\left\{h\left(x_{i}\right)\right\}\right) f(x1,x2,,xn)=γ(MAXi=1,,n{h(xi)})
   其中 γ , h \gamma,h γ,h都是多层感知机(MLP), h h h可以理解为对一个点学习得到的点的特征,在得到每一个点的特征以后,进行MAX-POOLING,再通过函数 γ \gamma γ得到最终的输出,作为整个点云集合的特征。

3.2 多层级点云特征学习

pointnet++网络结构

   如上图所示,PointNet++结构由一系列集合提取层级(set abstraction level)组合而成。对于一个set abstraction level,它的输入是一个 N × ( d + C ) N\times(d+C) N×(d+C)维的矩阵,表示有 N N N个点,每个点包含 d d d维的坐标和C维的特征,在通过采样层、分组层和PointNet层后,得到的输出是 N ’ × ( d + C ’ ) N’\times(d+C’) N×(d+C)维的矩阵,表示采样得到了 N ′ N' N个点,每个点包括 d d d维坐标和融合了邻域信息的 C ′ C' C维的新的特征。

    采样层: 对于输入的 n n n个点 { x 1 , x 2 , … , x n } \{x_{1}, x_{2}, \ldots, x_{n}\} {x1,x2,,xn},采样层会通过最远点采样法得到采样点集合 { x i 1 , x i 2 , … , x i m } \{x_{i_1}, x_{i_2}, \ldots, x_{i_m}\} {xi1,xi2,,xim}。相比于随机采样,采用最远采样法有助于覆盖整个点集。

   分组层: 在分组层中,对于采样层得到的 N ’ N’ N个点,会在原始的点集中分别选择每个点的 K K K个相邻点并将它们划分为一组,需要注意的是,每一组的 K K K可能是并不相同的,但PointNet会将它们转换成固定长度的特征向量。具体的分组方法采用球采样(Ball Query),即选取采样点某个半径范围内的所有点作为一组。

   pointnet层: 对于PointNet层,会将上一层输出的 N ’ × K × ( d + C ) N’\times K\times(d+C) N×K×(d+C)维的数据转换为 N ’ × ( d + C ’ ) N’\times(d+C’) N×(d+C)维的数据。对于每一组的K个点,都会以其中的采样点为中心计算其他点的相对坐标,然后通过PointNet得到这一组的特征表示,这样就相当于利用了周围点的信息。

3.3 非均匀采样密度下的多尺度特征学习

    由于点云密度是不均匀的,在密集区域学习到的特征可能并不能应用到稀疏区域,基于此,作者提出了density adaptive的PointNet++结构来学习不同大小区域的特征并结合起来,以适应输入点云密度的变化。文章中采用了两种方法:
多尺度特征学习

    Multi-scale grouping (MSG): 如左上图所示,会对不同规模区域的点云分别学习一个特征并把它们组合起来,形成一个多尺度的特征。在训练的时候,采用random input dropout策略,即以一定的概率随机丢弃掉点云中的点,这样就可以获得不同密度和不同均匀度的训练样本。

    Multi-resolution grouping (MRG): 如右上图所示,最终的特征由两部分拼接而成,一个是当前层的特征,另一个是经过set abstraction采样后得到的层的特征,在不同密度的情况下,两个特征所占的权重也会不同,从而可以学习到不同密度下的特征表示。此外,由于避免了在低层次上进行大规模的特征提取,这种方法在计算上也更加高效。

3.4 点云分割中的特征传递

   由于set abstraction的采样过程,点的数目变得越来越少,然而分割任务需要对所有的点都预测出一个label,因此需要获得所有原始的点的特征,所采用的方法是将采样点的特征传递给原始点。

    具体来说,本文对采样点采用K近邻权重加权的插值方法获得原始点的特征(公式如下),并与来自set abstraction的相应层的特征结合起来(对应图中的skip link concatenation),之后采用全连接层和relu层进行更新,直到获得所有原始点的特征。
f ( j ) ( x ) = ∑ i = 1 k w i ( x ) f i ( j ) ∑ i = 1 k w i ( x )  where  w i ( x ) = 1 d ( x , x i ) p , j = 1 , … , C f^{(j)}(x)=\frac{\sum_{i=1}^{k} w_{i}(x) f_{i}^{(j)}}{\sum_{i=1}^{k} w_{i}(x)} \quad \text { where } \quad w_{i}(x)=\frac{1}{d\left(x, x_{i}\right)^{p}}, j=1, \ldots, C f(j)(x)=i=1kwi(x)i=1kwi(x)fi(j) where wi(x)=d(x,xi)p1,j=1,,C

4.Experiment

    文章在下面几个数据集上进行了实验,其中在前三个数据集上进行分类实验,在最后一个数据集上进行分割实验。

  • MNIST:包含60k个训练样本和10k个测试样本

  • ModelNet40:包含40个种类的CAD模型,采用9843个样本进行训练和2468个样本测试

  • SHREC15:包含50个种类共1200个样本,采用five-fold交叉验证法获得分类的准确率

  • ScanNet:共1513个室内场景,其中1201个作为训练集,312个用于测试

4.1 分类结果

    Table1-3显示了在前三个数据集上的分类结果,可以看到在分类准确率上相比于之前的方法都取得了更好的准确率。
在这里插入图片描述
在这里插入图片描述

    此外,在ModelNet40上测试的时候还随机地丢弃一些点进行实验,可以看到,PointNet++对于样本密度的变化具有更强的鲁棒性,也说明提出的MSG和MRG方法是有效的,可以学习到不同密度区域的的特征。
在这里插入图片描述

4.2 分割结果

    下图显示了在ScanNet上进行分割得到的实验结果,可以看到相比于之前的方法在分割准确率上具有不小的提升,由于多层级的特征提取方式,使得PointNet++对于场景理解和不同尺寸的物体标注取得了比较好的效果。

在这里插入图片描述

Conclusion

    在这篇文章中,作者提出了PointNet++结构,通过对点云进行采样分组和特征学习,使得能够学习到点云局部的信息;为了解决点云密度不均匀的问题,还采用层级特征提取的方式来结合不同尺度的信息。实验证明PointNet++在多个不同的点云数据集上都达到了state-of-the-art的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值