基于深度学习方法的点云配准2——PointNet

基于深度学习方法的点云配准2——PointNet


请点点赞,会持续更新!!!
基于深度学习方法的点云配准1——PointNetLK

文章目录

  • 基于深度学习方法的点云配准2——PointNet
  • 摘要
  • 一、Introduction
  • 二、Related Work
  • 三、Problem Statement
  • 四、Deep Learning on Point Sets
    • 4.1 Porperties of Point Sets
    • 4.2 PointNet Architecture
    • 4.3 Theoretical Analysis
  • 五、Experiment
    • 5.1 Applications
    • 5.2 Architecture Design Analysis
    • 5.3 Visualizing PointNet
    • 5.4 Time and Space Complexity Analysis


摘要

点云是一种重要的几何数据结构。由于其不规则的格式,大多数研究人员将这些数据转换为规则的三维体素网格或图像集合。然而,这会使数据变得不必要的庞大,并导致问题。本文设计了一种新型的直接以点云为输入的神经网络,它很好地保持了输入点的置换不变性。PointNet为对象分类、分割、场景语义分析等应用程序提供了统一的体系结构。虽然PointNet结构简单,但是非常高效的。从实验上看,它的表现相当出色,甚至优于最先进(state of the art)的水平。理论上,本文提供分析,以解释网络学到了什么,以及为什么网络在输入扰动和损坏方面是鲁棒的。
源码: PointNet源码-tenserflow
源码: PointNet源码-pytorch
源码: PointNet和PointNet++源码-pytorch
论文:PointNet论文


一、Introduction

背景
本文主要探索研究应用于3D几何数据的深度学习框架。传统的卷积神经网络需要高度规则的输入数据(例如图片像素和3D体素)来实现参数共享和其他核优化。因为点云或者网格数据是不规则的形式,所以大多数研究者将点云或网格数据转化为规则的3D体素网格或图像集合,然后再将转换后的数据喂入深度网络。这种转化使得数据变得不必要的巨大,并且带来了量化伪影(压缩过程中的量化噪声导致称作“伪影” 的特定视觉误差),模糊了数据的自然不变性。

研究对象的特征特点
本文聚焦于点云数据,提出PointNet网络。点云是简单而统一的结构,可以避免网格的组合不规则性和复杂性,因此更容易学习。 然而,PointNet仍然必须尊重这样一个事实,即点云只是一组点,因此对其成员的排列是不变的,因此需要在网络计算中进行某些对称化。还需要考虑刚体运动的不变性。 排列不变性和刚体运动不变性是点云数据的特点。启示: 我们在研究模型时需要先考虑数据的特性。

本文提出模型的简介及特点
PointNet是一种统一的体系结构,它直接将点云作为输入,网络的基本架构出人意料地简单,因为在初始阶段,每个点都是以相同和独立的方式处理的。在基本设置中,每个点仅由其三个坐标(x、y、z)表示。也可以通过计算法线和其他局部或全局特征来添加其他维度。
关键是采用了单个对称函数(single symmetricfunction)——最大池化。网络学习一组优化函数来提取点云数据中的关键或信息丰富(interesting or informative )的点,并对选择原因进行编码。最后网络的全连接层将学习到的最优值聚合到整个形状的全局描述子上(分类),或用于预测每点标签(分割)。
因为每个点的变换都是独立的,所以输入格式很容易进行刚性或仿射变换。因此,加入一个依赖于数据空间的 变换网络,在PointNet处理数据之前来规范化数据,达到改进结果的目的。

总结
对PointNet进行了理论分析和实验评估。证明了网络可以逼近任何连续的集合函数(set function)。更有趣的是,PointNet通过学习一组稀疏的关键点来总结输入点云,根据可视化,这些关键点大致对应于对象的骨架。理论分析提供了一种理解,为什么pointNet对输入点的小扰动以及通过点插入(异常值)或删除(缺失数据)造成的损坏具有高度鲁棒性。
结果: 在从形状分类、零件分割到场景分割的大量基准数据集上,实验性地将我们的点网与基于多视图和体积表示的最新方法进行了比较。在统一的体系结构下,PointNet不仅速度快得多,而且表现出与现有技术相当甚至更好的性能。

贡献:
设计了一种新的适用于三维无序点集的深网结构;
展示了如何训练这样一个网络来执行三维形状分类、形状部分分割和场景语义分析任务;
对PointNet的稳定性和效率进行了深入的实证和理论分析;
展示了由网络中选定的神经元计算的3D特征,并对其性能进行了直观的解释。


二、Related Work

Point Cloud Features 目前大多采用针对特定任务的手工提取特征方法。针对点的某些统计特性进行编码,,并设计为对某些变换保持不变,这些变换通常分为内在变换和外在变换。它们还可以分为局部特征和全局特征。对于特定的任务,找到最佳的特征组合并非易事。

Deep Learning on 3D Data 3D数据有多种流行的表示形式,因此也就有针对各种表示形式的各种学习方法。Volumetric CNNs 是将3D卷积神经网络应用于体素化形状的先驱。然而,由于数据稀疏性和三维卷积的计算成本,体积表示受到其分辨率的限制。FPNN和Vote3D提出了处理稀疏性问题的特殊方法;然而,它们的操作仍然是在稀疏的体积上进行的,对于它们来说,处理非常大的点云是一个挑战。 Multiview CNNs 尝试将3D点云或形状渲染为2D图像,然后应用2D转换网络对其进行分类。有了精心设计的图像CNN,这一系列方法在形状分类和检索任务上取得了卓越的性能。然而,将它们扩展到场景理解或其他3D任务是非常重要的。 Spectral CNNs:一些最新作品[在网格上使用光谱CNN。 然而,这些方法目前仅限于有机对象等流形网格,如何将其扩展到家具等非等轴测形状尚不清楚。 Feature-based DNNs 首先通过提取传统形状特征将3D数据转换为向量,然后使用全连接网络对形状进行分类。我们认为它们受到所提取特征的表示能力的限制。

Deep Learning on Unordered Sets 从数据结构的角度来看,点云是一组无序的向量。然而深度学习中的大多数工作侧重于常规输入表示,如序列(在语音和语言处理中)、图像和体积(视频或3D数据),但在点集的深度学习中所做的工作并不多。 Oriol Vinyals等人最近的一项工作研究了这个问题。他们使用具有注意机制的读-写网络(read-process-write network)来处理无序的输入集,并表明他们的网络具有对数字排序的能力。然而,由于他们的工作集中在泛型集合(generic sets)和NLP应用程序上,因此缺乏几何体在集合中的作用。


三、Problem Statement

点云被表示为3D点集合,其中每个点由一个向量表示,向量包含点的(x,y,z)坐标、颜色、法向量等信息。本研究中仅包含(x,y,z)坐标。
对于对象分类任务,可以直接从形状中采样输入点云,也可以从场景点云中预分割输入点云。我们提出的深度网络输出所有k个候选类的k个分数。对于语义分割,输入可以是用于零件区域分割的单个对象,也可以是用于对象区域分割的三维场景的子体积。模型将为n个点和m个语义子类别输出n×m分数。


四、Deep Learning on Point Sets

网络体系结构(第4.2节)的设计灵感来自点集的特性(第4.1节)。

4.1 Porperties of Point Sets

无序性: 不像图片中的像素和体积网格中的体素,点云是一个没有具体顺序的点的集合。换句话说,对一个网络输入一个具有N个点的3D点集,网络需要对输入集合内点的N!个排列组合保持不变。

点之间的相互作用: 这些点来自具有距离度量的空间。 这意味着点不是孤立的,相邻点形成一个有意义的子集。因此,该模型需要能够从附近的点捕获局部结构,以及局部结构之间的组合相互作用。

旋转不变性: 作为一个几何对象,点集的学习表示应该对某些变换保持不变。例如,一起旋转和平移点不应修改全局点云类别,也不应修改点的分段。

4.2 PointNet Architecture

完整网络架构如图1所示,其中分类网络和分割网络共享很大一部分结构。请阅读图1的标题。
基于深度学习方法的点云配准2——PointNet_第1张图片
图1
网络有三个关键模块:最大池化层(作为聚合所有点信息的对称函数)、局部和全局信息组合结构,以及两个对齐输入点和点特征的联合对齐网络。

Symmetry Function for Unordered Input: 为了使模型对输入置换保持不变,存在三种策略:1) 将输入按规范顺序排序;2) 将输入作为一个序列来训练RNN,但通过各种排列来增加训练数据;3) 使用简单的对称函数聚合每个点的信息。这里,对称函数将n个向量作为输入,并输出一个对输入顺序不变的新向量。
尽管排序听起来是一个简单的方案,但在高维空间中,实际上并不存在一个相对于一般意义上的点扰动稳定的排序。经过作者的简单分析,认为排序并不能解决问题。
使用RNN的想法将点集视为一个序列信号,并希望通过使用随机排列的序列训练RNN,RNN将对输入顺序保持不变。 RNN对较短的序列具有较好的鲁棒性,但是难以扩展到上千个输入元素,而上千个元素是点集常见的规模。
我们的方法是通过对点集中的变换元素使用一个对称函数来近似定义点集中的一般函数。
在这里插入图片描述
h采用多层感知机(MLP),g采用一个单变量函数和最大池化函数的组合。通过h的集合,可以学习许多f来捕获集合的不同属性。

Local and Global Information Aggregation: 上述函数的输出是一个K维向量 [ f 1 , f 2 , . . . f K ] [f_1,f_2,...f_K] [f1,f2,...fK],表示了输入的全局信号。然后可以在这个全局特征上很容易的训练一个SVM或者MLP来完成分类任务。然而,点云分割需要集合局部和全局信息。可以通过简单而高效的方式实现这一目标。
如图2所示,计算得到全局点云特征向量后,通过将全局特征与每个点特征连接起来,将其反馈给每个点特征。然后,我们基于组合点特征提取新的每点特征,此时,每点特征同时了解局部和全局信息。

基于深度学习方法的点云配准2——PointNet_第2张图片
图2

通过这种修改,网络能够预测依赖于局部几何和全局语义的每点数量。 例如,可以准确预测每个点的法线,验证网络是否能够从点的局部邻域汇总信息。实验表明,模型可以在形状部分分割(shape part segmentation)和场景分割(scene segmentation)方面取得最先进(STOA)的性能。

Joint Alignment Network 当点云经历某些几何变换(如刚性变换),点云的语义标记必须保持不变。因此,期望学习得到的点的表征对这些变换也是不变的。
自然的解决方案是在特征提取之前将所有输入集对齐到规范空间。Jaderberg等人引入了空间变换的概念,通过采样和插值来对齐2D图像。
本文的点云输入形式允许以比更简单的方式实现这一目标。不需要发明任何新的层,也不需要像图像那样引入别名。通过一个迷你网络(图3中的T-net)预测仿射变换矩阵(affine transformation matrix),并将此变换直接应用于输入点的坐标。微型网络本身类似于大型网络,由与点无关的特征提取、最大池化和完全连接层等基本模块组成。
基于深度学习方法的点云配准2——PointNet_第3张图片
图3

该思想还可以进一步扩展到特征空间的对齐。可以在点特征上插入另一个对齐网络,并预测特征变换矩阵以对齐来自不同输入点云的特征。然而,特征空间中的变换矩阵比空间变换矩阵的维数要高得多,这大大增加了优化的难度。因此,在softmax训练损失中添加了一个正则化项。将特征变换矩阵约束为接近正交矩阵:
在这里插入图片描述

其中A是由微型网络预测的特征对齐矩阵。正交变换不会丢失输入中的信息,因此是需要的。通过添加正则化项,优化变得更加稳定,模型获得了更好的性能。

4.3 Theoretical Analysis

链接: 参考
此部分建议详细阅读原文
Universal approximation 我们首先展示了我们的神经网络对连续集函数的普遍逼近能力。通过集函数的连续性,直观地说,对输入点集的一个小的扰动不应该极大地改变函数值,例如分类或分割分数。
基于深度学习方法的点云配准2——PointNet_第4张图片
定理1证明了PointNet的网络结构能够拟合任意的连续集合函数。其作用类似证明神经网络能够拟合任意连续函数一样。关键思想是,在最坏的情况下,网络可以通过将空间划分为大小相等的体素,学会将点云转换为体积表示。然而,在实践中,正如我们将在点函数可视化中看到的那样,网络学会了一种更聪明的策略来探测空间。

Bottleneck dimension and stability 从理论上和实验上,我们发现网络的表现力受到最大池化层的维数(K)的强烈影响。在这里,我们提供了一个分析,这也揭示了与我们的模型稳定性相关的属性。
基于深度学习方法的点云配准2——PointNet_第5张图片
定理2(a)说明对于任何输入数据集S,都存在一个最小集Cs和一个最大集Ns,使得对Cs和Ns之间的任何集合T,其网络输出都和S一样。这也就是说,模型对输入数据在有噪声(引入额外的数据点,趋于Ns)和有数据损坏(缺少数据点,趋于Cs)的情况都是鲁棒的。定理2(b)说明了最小集Cs的数据多少由maxpooling操作输出数据的维度K给出上界。换个角度来讲,PointNet能够总结出表示某类物体形状的关键点,基于这些关键点PointNet能够判别物体的类别。这样的能力决定了PointNet对噪声和数据缺失的鲁棒性。


五、Experiment

实验分为四个部分:
首先,展示了点网可以应用于多个3D识别任务(第5.1节)。
其次,提供了详细的实验来验证我们的网络设计(第5.2节)。
然后,将网络学习的内容可视化(第5.3节)。
最后,分析时间和空间复杂性(第5.4节)。

5.1 Applications

3D Object Classification 在ModelNet40数据集上开展。均匀采样1024个点,并通过旋转和加入高斯噪声来进行数据增强。
基于深度学习方法的点云配准2——PointNet_第6张图片

3D Object Part Segmentation 在ShapeNet part 数据集上开展。还对模拟Kinect扫描进行了实验,以测试这些方法的鲁棒性。
基于深度学习方法的点云配准2——PointNet_第7张图片
Semantic Segmentation in Scenes 在Stanford 3D semantic parsing (S3DIS Dataset )数据集上开展。
基于深度学习方法的点云配准2——PointNet_第8张图片

5.2 Architecture Design Analysis

在本节中,通过对照实验验证模型的设计选择。还展示了网络超参数的影响。

Comparison with Alternative Order-invariant Methods 在ModelNet40数据集上开展。
基于深度学习方法的点云配准2——PointNet_第9张图片
Effectiveness of Input and Feature Transformations
基于深度学习方法的点云配准2——PointNet_第10张图片
Robustness Test
基于深度学习方法的点云配准2——PointNet_第11张图片

5.3 Visualizing PointNet

基于深度学习方法的点云配准2——PointNet_第12张图片
C S C_S CS在第二行, N S N_S NS在第三行。 C S C_S CS是对最大池化层后的特征有贡献的点, N S N_S NS通过从一个2*2的立方体中挑选经过网络模型计算后得到的特性向量不大于全局特性描述子的点。

5.4 Time and Space Complexity Analysis

基于深度学习方法的点云配准2——PointNet_第13张图片


你可能感兴趣的:(基于深度学习方法的点云配准,深度学习,计算机视觉,人工智能,3d)