Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Ze Liu、Han Hu等专栏

ECCV 2020 | 3D点云算子并无实质进步?微软亚研重新评估,提出极简算子PosPool

前不久一篇探讨过去十年深度度量学习研究进展的研究引发热议,不公平的实验设置等因素会使人们对领域进展产生误解。那么 3D 点云算子领域的进展是真实的吗?中科大和微软亚研的研究人员进行了系统性评估,并提出了无需可学参数的新型 3D 点云算子 PosPool。

近些年涌现了很多不同的 3D 点云网络和算子,它们在常见基准评测集上的性能逐步提升,但是由于各种网络采用不同的局部算子、整体网络结构和实现细节,人们对该领域的实质进步一直缺乏准确地评估。

最近,中科大 - 微软亚洲研究院的研究员在 ECCV 2020 上发表文章,尝试进行更准确、公平地评估。他们的研究指出:

1)无需更复杂的 3D 网络,经典的深度残差网络就能在各种规模和各种场景的数据集上表现优异。结合几种典型局部算子后,它们均能在 PartNet 上超过 SOTA 7 个点以上。

2)几种典型的 3D 局部算子在相同的整体网络下的表现令人惊奇的一致,一种极简无参的位置池化算子 PosPool 即能比肩各种更复杂的 3D 局部算子。

论文作者还表示,他们的方法没有引入各种复杂的设计,希望这一基准方法可以让今后 3D 点云识别的研究受益。

  • 论文链接:https://arxiv.org/abs/2007.01294

  • 代码地址:https://github.com/zeliu98/CloserLook3D

近年来,随着 3D 扫描设备的普及,针对 3D 点云的分析和感知在诸如自动驾驶、机器人、形状匹配和识别等任务中得到了越来越广泛地关注和应用。与在网格上定义的图像和视频不同,点云数据是无序的且非网格化排列,这使得为网格化数据设计的功能强大的卷积神经网络(CNN)等深度神经网络难以得到应用。为了解决这一问题,自 PointNet++ 起,学者们提出了各种各样的网络,DGCN、Continuous Conv、DeepGCN、KPConv 等等,它们依赖于不同的网络结构和不同的 3D 局部算子。

然而,由于不同工作在整体网络架构、实现细节和局部算子上有所不同,这些 3D 网络和算子的实质进步一直缺乏准确地评估,这严重阻碍了对 3D 网络和算子的进一步理解和创新。另一方面,大部分 3D 算子仅在浅层网络中进行了应用和验证,它们在更深层的深度残差网络下的表现仍属未知。

最近,微软亚洲研究院的研究员发表在 ECCV 2020 上的工作尝试对现有的代表性 3D 网络和算子进行更公平的比较和评估。

该研究发现:尽管不同的 3D 算子设计各异,但在相同整体网络和实现细节下,所有这些算子的性能都惊人地相似,均在几个代表性的基准评测集上达到了目前最好的准确率。

基于这一发现,该研究作者重新思考了为 3D 点云处理设计各种复杂 3D 算子的必要性。为此,他们提出了一种简单的、无需可学参数的 3D 算子——「位置池化」(PosPool),并发现它与目前各种复杂的算子相比性能不差,甚至表现略优。

该算子结合最基本的深度残差网络,就可以在极具挑战性的 PartNet 数据集上超过之前的最佳方法高达 7.4 个点之多。

3D 局部算子通用数学表述和分类

该研究首先总结了不同的 3D 局部算子,并提出了一种通用数学表述,根据该通用数学表述对常见的 3D 算子做了总结和分类。

具体来说,针对每个 3D 点,点云局部算子都是将该邻域内的输入特征进行聚合的一个操作,在聚合过程中会考虑邻域点和中心点的相对位置关系:

其中,N(i) 表示邻域,△p_ij 为相对位置,f_j 为输入特征,G(·, ·) 是编码函数。根据编码函数 G(·, ·) 的不同,目前典型的 3D 局部算子大致分为三类:

基于逐点多层感知机 (Point-wise MLP) 的方法:

典型例子包括 PointNet++ 和 DGCNN 中的集合抽象 set abstract 层等。

基于伪网格特征(Pseudo Grid Feature)的方法:

一个典型例子是 KPConv。

基于自适应权重(Adaptive Weight)的方法:

典型例子包括 ContinuousConv 和 FlexConv 等。

一种简单的无参 3D 算子:位置池化(PosPool)

在总结已有 3D 算子的同时,该研究还提出了一种新型无参 3D 算子,这一新算子基于位置池化,没有需要学习的参数。在该算子中,G(·, ·) 是将相对位置和输入特征相乘的编码函数。

如图 1 所示,该算子将前 1/3 的输入特征通道与△x_ij 相乘,中间 1/3 的输入特征通道与△y_ij 相乘,后 1/3 的输入特征通道与△z_ij 相乘。

图 1:位置池化(PosPool)算子示意图

该研究还提出了一种位置池化的变体,在有些场景下可实现更优秀的性能。这一变体首先将 3 维的相对位置嵌入到和输入特征具备同样维度的向量中:


编码函数 G(·, ·) 是嵌入向量 ε 与输入特征 f_ij 的逐通道相乘:

该变体保持了无参的性质,并在某些情况下有着比前述基本位置池化方法更好的性能。

公平测试条件

统一的深度残差网络 

该研究指出,已有的 3D 点云网络往往各不相同,而且大部分采用比较浅的网络,因此很难弄清各种 3D 算子在更深的网络中表现如何,以及它们在同样的整体网络结构中表现如何。

为了公平比较不同的 3D 算子,该研究提出使用统一的深度残差网络进行测试,如图 2 所示。类似于图像识别中的 ResNet,该研究采用了一个 5 阶段的深度残差网络,且每个阶段由多个瓶颈残差块(bottleneck residual block)叠加而成,每个瓶颈块依次由一个 1x1 变换层、一个 3D 算子和另一个 1x1 变换层组成。

针对形状分类和语义分割任务,该研究分别设计了基于 4 个全连接层以及类似 U-Net 解码器的两个头部网络。通过改变每个阶段瓶颈块的个数、通道数,以及瓶颈比例(bottleneck ratio),控制网络整体的复杂度。


图 2:该研究采用的深度残差网络

评测数据集 

该研究选取了 3 种典型的数据集来进行评测,以覆盖不同的场景、不同的任务以及不同的数据量,包括:ModelNet40(CAD 模型、分类、小规模),S3DIS(实际场景、分割、中等规模),PartNet(CAD 模型、分割、中大规模)。

两个基线 3D 算子 

为了检验局部算子的作用,该研究还在测试中引入了两个不考虑空间位置的基线算子:
     



其中前者是恒等函数,不编码邻域点;后者是一个平均 / 最大池化层,不考虑邻域点的相对位置。

实验结果及结论

表 1 展示了在上述一致的实验设置下,对于基准算子、各类典型 3D 算子(选取合适的设计)以及该研究提出的 PosPool 算子的公平比较,得出如下结论:

1. 在更大规模和更具挑战性的数据集(例如 PartNet)上,更深的深度残差网络可以带来显著的性能提升。在 ModelNet40 这样规模较小的数据集上,更深的深度残差网络也不会对性能造成损害。这说明,对于 3D 点云处理,经典的深度残差网络就是一个很好的选择,并无必要像之前的工作那样为不同的 3D 局部算子专门设计各种特殊的或深或浅的整体网络结构。

2. 三类典型的 3D 算子和该研究提出的 PosPool 算子都相较基准算子有较大提升。这表明,编码邻域信息的 3D 局部算子对于点云处理来说是很重要的。

3. 几种典型的 3D 算子和该研究提出的 PosPool 算子在 3 个具有代表性的数据集上均达到了最先进的性能,特别是在更具挑战性的 PartNet 上,相比以前最好的方法提升了超过 7 个点。考虑到该研究提出的方法并无多少特殊的设计,这表明该方法很适合作为将来 3D 点云识别研究的基准方法。

4. 最令人惊奇的是,这 3 类典型 3D 算子与 PosPool 算子的性能是极其接近的,简单且无参的 PosPool 在某些情况下甚至表现更好。这一结果表明,对于 3D 算子而言,我们也许不需要复杂或繁重的局部算子。这也为理解和设计 3D 算子提供了新的思路。

表 1:不同 3D 局部算子在基准数据集中的表现(其中 S 表示小一些的模型,PosPool * 表示前述变体)。
理论点云3D
相关数据
池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

多层感知机技术

感知机(Perceptron)一般只有一个输入层与一个输出层,导致了学习能力有限而只能解决线性可分问题。多层感知机(Multilayer Perceptron)是一类前馈(人工)神经网络及感知机的延伸,它至少由三层功能神经元(functional neuron)组成(输入层,隐层,输出层),每层神经元与下一层神经元全互连,神经元之间不存在同层连接或跨层连接,其中隐层或隐含层(hidden layer)介于输入层与输出层之间的,主要通过非线性的函数复合对信号进行逐步加工,特征提取以及表示学习。多层感知机的强大学习能力在于,虽然训练数据没有指明每层的功能,但网络的层数、每层的神经元的个数、神经元的激活函数均为可调且由模型选择预先决定,学习算法只需通过模型训练决定网络参数(连接权重与阈值),即可最好地实现对于目标函数的近似,故也被称为函数的泛逼近器(universal function approximator)。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

最大池化技术

最大池化(max-pooling)即取局部接受域中值最大的点。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~