[LiteratureReview]PointNet Deep Learning on Point Sets for 3D Classification and Segmentation

[LiteratureReview]PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

出处:2017 CVPR,(截止到2022-4-3)Google论文被引7000+次;深度学习点云处理先驱工作;

Introduction

背景:典型的卷积架构需要高度规则的输入数据格式,例如image grids或 3D voxels,以便执行权重共享和其他内核优化;由于point cloud(和meshes)的 irregular format(不规则的格式),大多数研究人员将point cloud数据转换为常规的 3D voxel grids或图像集合,然后再将它们输入深度网络架构;但是这样会使数据变得不必要的庞大,同时还引入了可能掩盖数据自然不变性的量化噪声(损失信息且引入噪声);

出发点:设计能处理3D几何数据(例如point clouds或meshes)的深度学习架构;point clouds是简单统一的结构,避免了meshes组合不规则性和复杂性,因此更容易学习; point cloud是一组点,需要排列不变性(进行某些对对称化)和刚体运动不变性;

PointNet简述:PointNet是一种直接处理point cloud的新型神经网络,直接将无序point clouds作为输入,并为整个输入输出类标签或为输入的每个点输出每个点段/部分标签;在初始阶段,每个点都被相同且独立地处理,在基本设置中,每个点仅由其三个坐标 (x, y, z) 表示,可以通过计算法线和其他局部或全局特征来添加额外的维度;PointNet关键是使用单个对称函数,即最大池化,网络有效地学习了一组优化函数/标准,这些优化函数/标准可以选择点云中有趣或信息丰富的点,并对它们的选择原因进行编码,网络的最终全连接层将这些学习到的最优值聚合到整个形状的全局描述符中,如上所述(shape classification 形状分类)或用于预测每个点的标签(shape segmentation 形状分割);

PointNet为从object classification, part segmentation, to scene semantic解析的应用提供了统一的架构;具体贡献如下:

  • 设计了一种新颖的深度网络架构,适用于在 3D 中使用unordered point set(无序点集);
  • 展示了如何训练这样的网络来执行 3D shape classification, shape part segmentation 和scene semantic parsing(解析) tasks;
  • 对该方法的稳定性和效率进行了全面的实证和理论分析;
  • 说明了网络中所选神经元计算的 3D 特征,并对其性能进行了直观的解释;

效果:PointNet网络可以逼近任何连续的集合函数,在从shape classification,part segmentation 到 scene segmentation的大量benchmark datasets上,PointNet 与基于多视图和体积表示的最先进方法进行比较,在统一架构下,PointNet 不仅速度更快,而且表现出与现有技术相当甚至更好的强大性能;

请添加图片描述

图1:Applications of PointNet;作者提出了一种新颖的深度网络架构,它使用原始点云(点集)而无需体素化或渲染。它是一个统一的架构,可以同时学习全局和局部点特征,为许多 3D 识别任务提供简单、高效和有效的方法

Related Work

Point Cloud Features:大多数现有的point cloud Features都是针对特定任务手工制作的,但是对于特定任务,找到最佳特征组合是一件很难的事情;点特征通常对点的某些统计属性进行编码,并被设计为对某些转换保持不变,这些转换通常被分类为内在的 [2, 21, 3] 或外在的 [18, 17, 13, 10, 5],它们也可以分为局部特征和全局特征;

Deep Learning on 3D Data:3D Data有很多形式;

  • V olumetric CNNs: 是将 3D CNN应用于体素化形状的先驱性的工作;但是由于数据稀疏性和 3D 卷积的计算成本,体积表示受到其分辨率的限制;
  • FPNN [12] and Vote3D [23]:提出了处理稀疏问题的特殊方法,但是该操作仍然在稀疏的体积上,处理非常大的点云对其来说是一个挑战;
  • Multiview CNNs:尝试将 3D point cloud或形状渲染为 2D 图像,然后应用 2D 卷积网络对它们进行分类;借助精心设计的图像 CNN,这一系列方法在shape classification(形状分类)和 retrieval tasks(检索任务)中取得了主导性能 ;但是将它们扩展到场景理解或其他 3D 任务(例如 point classification 点分类和 shape completion 形状补全)并非易事;
  • Spectral CNNs:在网格上使用光谱 CNN;但是这些方法目前受限于诸如有机物体之类的多种网格,并且如何将它们扩展到诸如家具之类的非等距形状并不明显;
  • Feature-based DNNs:首先将 3D Data转换为向量,通过提取传统的形状特征,然后使用全连接网络对形状进行分类;我们认为它们受到提取特征的表示能力的限制;

Deep Learning on Unordered Sets:从数据结构的角度来看,点云是一组无序的向量,深度学习中的大多数工作都集中在常规输入表示上,如序列(在语音和语言处理中)、图像和体积(视频或 3D 数据),但在点集的深度学习方面并没有做太多工作;[22] 研究了这个问题,他们使用带有注意力机制的读-写-写网络来消耗无序的输入集,并表明他们的网络具有对数字进行排序的能力,然而,由于他们的工作侧重于泛型集合和 NLP 应用,因此缺乏几何在集合中的作用;

Methods

Problem Statement

PointNet使用 unordered point sets作为输入;点云表示为一组 3D 点 {Pi| i = 1, …, n},每个点 Pi 是其 (x, y, z) 坐标的向量加上额外的特征通道,例如颜色、法向量等,为简单起见,除非另有说明,否则我们仅使用 (x, y, z) 坐标作为我们点的通道;

对于object classification任务,输入point cloud 要么直接从形状中采样,要么从场景点云中预分割;PointNet深度网络为所有 k 个候选类别输出 k 个分数;对于semantic segmentation,输入可以是用于部分区域分割的单个物体,也可以是用于物体区域分割的 3D 场景的子体积;我们的模型将为 n 个点和 m 个语义子类别中的每一个输出 n × m 分数;

PointNet Architecture

PointNet网络的架构(第 2 节)受到 Rn 中点集属性的启发(第 1 节);

1. Properties of Point Sets in Rn

PointNet输入是来自欧几里得空间的点的子集,它具有三个主要属性:

  • Unordered(无序性):与图像中的像素阵列或体积网格中的体素阵列不同,点云是一组没有特定顺序的点;换句话说,一个处理 N 个 3D 点集的网络需要对 N!数据馈送顺序中输入集的排列保持不变;
  • 点之间的相互作用:这些点来自具有距离度量的空间,这意味着点不是孤立的,相邻点形成一个有意义的子集;因此,模型需要能够从附近的点捕捉局部结构,以及局部结构之间的组合相互作用;
  • 刚体变换不变性:作为一个几何对象,点集的学习表示应该对某些变换是不变的;例如,一起旋转和平移点不应该修改全局点云类别,也不应该修改点的分割;
2. PointNet Architecture

PointNe完整网络架构如图 2 所示,其中分类网络和分割网络共享大部分结构:

请添加图片描述

图2:PointNet Architecture;分类网络将n个点作为输入,将输入通过特征变换,然后通过最大池化聚合点特征,输出是 k 个类别的分类分数;分割网络是分类网络的扩展,它连接全局和局部特征并输出每点分数; “mlp”代表多层感知器,括号中的数字是层大小; Batchnorm 用于所有带有 ReLU 的层;Dropout 层用于分类网络中的最后一个 mlp

PointNet有三个关键的模块:无序输入的对称函数(最大池化层作为一个对称函数从所有点聚合信息)、局部和全局信息聚合(局部和全局信息组合结构)、联合校准网络(对齐输入点和点特征的两个联合对齐网络);将在下面的单独段落中讨论选择这些设计的原因;

**Symmetry Function for Unordered Input:**为了使模型对输入具有排列不变性,存在三种策略:1)将输入排序为规范顺序; 2)将输入视为一个序列来训练RNN,但通过各种排列来扩充训练数据; 3)使用一个简单的对称函数来聚合来自每个点的信息;作者的想法是通过对集合中的变换元素应用对称函数来近似定义在点集上的一般函数:

PointNet_3_1

基本模块非常简单:我们通过多层感知器网络逼近 h,通过单个变量函数和最大池化函数的组合来逼近 g,通过实验发现这很有效,通过一个 h 的集合,我们可以学习许多 f 来捕捉集合的不同属性;

**Local and Global Information Aggregation:**上述部分的输出形成一个向量 [f1, . . . , fK],这是输入集的全局标签,可以轻松地在形状全局特征上训练 SVM 或多层感知器分类器进行分类;然而,点分割需要结合局部和全局知识,我们可以通过一种简单而高效的方式来实现这一点;解决方案可以在图 2(分割网络)中看到,在计算出全局点云特征向量后,通过将全局特征与每个点特征连接起来将其反馈给每个点特征。然后基于组合的点特征提取新的每点特征——这一次每点特征知道局部和全局信息;通过这种修改,网络能够预测依赖于局部几何和全局语义的每点数量;例如,可以准确地预测每个点的法线(补充图),验证网络能够从点的本地邻域总结信息;在实验过程中,、还表明我们的模型可以在形状部分分割和场景分割方面实现最先进的性能;

**Joint Alignment Network:**通过T-net预测仿射变换矩阵,并将该变换直接应用于输入点的坐标;T-net本身类似于大网络,由点无关特征提取、最大池化和全连接层等基本模块组成;

3. Theoretical Analysi

Universal approximation:首先PointNet对连续集合函数的普遍逼近能力,通过集合函数的连续性,直观地说,对输入点集的小扰动不应该大大改变函数值,例如分类或分割分数;

请添加图片描述

关键思想是:在最坏的情况下,网络可以通过将空间划分为相等大小的体素来学习将点云转换为体积表示;然而,在实践中,网络学习了一种更智能的策略来探测空间,正如在点函数可视化中看到的那样;

**Bottleneck dimension and stability:**从理论上和实验上发现PointNet的表现力受到最大池化层的维度的强烈影响,即(1)中的 K;在这里提供了一个分析,该分析还揭示了与我们模型的稳定性相关的属性;

PointNet_3_4

结合 h 的连续性,这解释了PointNet对点扰动、损坏和额外噪声点的鲁棒性;鲁棒性类似于机器学习模型中的稀疏性原理;直观地说,PointNet通过一组稀疏的关键点来学习总结一个形状;

Experiment

Experiment分为四个部分;首先展示了 PointNets 可以应用于多个 3D 识别任务(第 1 节);其次提供了详细的实验来验证我们的网络设计(第 2 节);最后,作者可视化网络学习的内容(第 5.3 节)并分析时间和空间复杂度(第 4 节)。

1.Applications

本节中将展示如何训练PointNet网络以执行 3D object classification、object part segmentation 和 semantic scene segmentation;即使作者正在研究全新的数据表示(点集),也能够实现可比较甚至在多个任务的基准测试中表现更好;

**3D Object Classification:**PointNet可以学习global point cloud feature 所以可以用于object classification;作者在 ModelNet40 [25] shape classification benchmark上评估了模型;包含40个手动分类的12311CAD模型分成2468份用于训练;先前的方法集中在volumetric 和mult-view image表示,本文是第一个直接处理原始点云的工作;

在表 1 中,作者将PointNet与之前的工作以及使用 MLP 对从点云中提取的传统特征(点密度、D2、形状轮廓等)进行baseline比较;PointNet在基于 3D 输入(体积和点云)的方法中实现了最先进的性能,只有完全连接的层和最大池化,PointNet网络在推理速度上获得了强大的领先优势,并且也可以在 CPU 中轻松并行化,PointNet和基于多视图的方法(MVCNN [20])之间仍然存在小的差距,作者认为这是由于丢失了渲染图像可以捕获的精细几何细节;

PointNet_2_1

表1:Classification results on ModelNet40;PointNet网络在 3D 输入的深度网络中达到了最先进的水平

3D Object Part Segmentation:

在表 2 中,作者报告了每个类别和平均 IoU (%) 分数,并观察到 2.3% 的平均 IoU 改进,并且PointNet在大多数类别中都超过了baseline方法;

请添加图片描述

表2:Segmentation results on ShapeNet part dataset;评估标准是点上的 mIoU(%),作者与两种传统方法 [24] 和 [26] 以及提出的 3D 全卷积网络baseline进行比较,PointNet 方法在 mIoU 中达到了最先进的水平

作者还对仿真的 Kinect 扫描进行了实验,以测试这些方法的稳健性;对于 ShapeNet 零件数据集中的每个 CAD 模型,使用 Blensor Kinect Simulator [7] 从六个随机视点生成不完整的点云,作者使用相同的网络架构和训练设置在完整的形状和部分扫描上训练PointNet;结果表明,PointNet只损失了 5.3% 的平均 IoU;在图 3 中给出了完整数据和部分数据的定性结果,可以看出,虽然部分数据颇具挑战性,但作者的预测是合理的;

请添加图片描述

图3:Qualitative results for part segmentation;作者可视化所有 16 个对象类别的 CAD 零件分割结果;还展示了部分模拟 Kinect 扫描(左块)和完整 ShapeNet CAD 模型(右块)的结果

**Semantic Segmentation in Scenes:**PointNet 的part
segmentation network 可以很容易地扩展到 semantic scene
segmentation,其中点标签成为语义对象类而不是对象部分标签;作者在Stanford 3D semantic parsing dataset [1]进行实验;作者将PointNet与使用手工点特征的baseline进行比较,baseline提取相同的 9-dim 局部特征和三个附加特征:局部点密度、局部曲率和法线;使用标准 MLP 作为分类器,结果如表 3 所示, PointNet 方法明显优于baseline方法;

请添加图片描述

表3:Results on semantic segmentation in scenes;指标是 13 个类别(结构和家具元素加上杂乱)的平均 IoU 和基于点计算的分类精度

在图 4 中,展示了定性的分割结果, PointNet网络能够输出平滑的预测,并且对缺失点和遮挡具有鲁棒性;

请添加图片描述

图4:Qualitative results for semantic segmentation;第一行是带颜色的输入点云,底行是在与输入相同的相机视点中显示的输出语义分割结果(在点上)

基于PointNet的语义分割输出,进一步构建了一个 3D 对象检测系统,使用连接组件进行对象提议(详见补充);作者在表 4 中与之前最先进的方法进行了比较,之前的方法基于滑动形状方法(使用 CRF 后处理),支持向量机在体素网格中的局部几何特征和全局房间上下文特征上进行训练,作者的方法在报告的家具类别上大大优于它;
PointNet_2_4

表4:Results on 3D object detection in scenes;指标是在 3D 体积中计算的阈值 IoU 0.5 的平均精度

2. Architecture Design Analysis

本节通过控制实验验证PointNet的设计选择,作者还展示了PointNet网络的超参数的影响;
Comparison with Alternative Order-invariant Methods(与其他顺序不变方法的比较):至少有三个选项可用于使用无序集输入,作者使用ModelNet40 形状分类问题作为测试平台来比较这些选项;作者比较的baseline(如图 5 所示)包括未排序和排序的点为 n×3 多层感知器,将输入点视为序列的 RNN 模型,以及基于对称函数的模型;作者实验的对称操作包括最大池化、平均池化和基于注意力的加权和;如图 5 所示,maxpooling 操作以较大的获胜幅度实现了最佳性能,这验证了作者的选择;
PointNet_5

图5:Three approaches to achieve order invariance;应用于点的多层感知器(MLP)由 5 个隐藏层组成,神经元大小为 64、64、64、128、1024,所有点共享一个 MLP 副本,靠近输出的 MLP 由大小为 512,256 的两层组成

Effectiveness of Input and Feature Transformations(输入和特征转换的有效性):在表 5 中,作者展示了输入和特征转换(用于对齐)的积极影响;值得注意的是,最基本的架构已经取得了相当合理的结果;使用输入转换可以提高 0.8% 的性能;正则化损失是高维变换工作所必需的;通过结合变换和正则化项,我们实现了最佳性能;
PointNet_2_5

表5:Effectiveness of Input and Feature Transformations;Metric 是 ModelNet40 测试集上的整体分类准确率

Robustness Test:PointNet虽然简单有效,但对各种输入噪声具有鲁棒性;作者使用与图 5 的最大池化网络相同的架构。输入点被归一化为一个单位球体;结果如图 6 所示:

请添加图片描述

图6: PointNet robustness test;该指标是 ModelNet40 测试集上的整体分类准确率;左:删除点,最远意味着以最远采样对原始 1024 个点进行采样;中:插入,异常值均匀地分散在单位球面上;右:扰动,分别向每个点添加高斯噪声;

对于缺失点,当缺失 50% 的点时,准确率仅下降 2.4% 和 3.8% w.r.t。最远和随机的输入采样;如果它在训练期间见过outlier points,PointNet 网络对outlier points也很鲁棒;作者评估了两个模型:一个在具有 (x, y, z) 坐标的点上训练;另一个在 (x, y, z) 加上点密度;即使 20% 的点是异常值,网络的准确率也超过 80%;图 6 右侧显示了网络对点扰动的鲁棒性;

3.Visualizing PointNet

如图7所示,作者可视化了一些样本形状临界点集;丢失一些非关键点不会改变全局形状标签;
请添加图片描述
图7:临界点和上界形状;然临界点共同确定给定形状的全局形状特征,但任何落在临界点集和上限形状之间的点云都会给出完全相同的特征;作者对所有图形进行颜色编码以显示深度信息;

4. Time and Space Complexity Analysis

表 6 总结了classification PointNet 的空间(网络中的参数数量)和时间(浮点运算/样本)复杂度,作者还将 PointNet 与之前作品中一组具有代表性的基于体积和多视图的架构进行了比较;

PointNet_2_6

表6:用于 3D Data classification的深度架构的时间和空间复杂度; PointNet(vanilla)是没有输入和特征转换的分类PointNet; FLOP 代表浮点运算。 “M”代表百万; Subvolume 和 MVCNN 对来自多个旋转或视图的输入数据使用池化,没有它,它们的性能要差得多

虽然 MVCNN [20] 和 Subvolume (3D CNN) [16] 实现了高性能,但 PointNet 在计算成本方面的效率更高(以 FLOP/样本衡量:效率分别提高了 141 倍和 8 倍);而且网络中的#param(参数少 17 倍)而言,PointNet 比 MVCNN 更节省空间;此外,PointNet 更具可扩展性——它的空间和时间复杂度为 O(N)——与输入点的数量呈线性关系;然而,由于卷积在计算时间中占主导地位,多视图方法的时间复杂度在图像分辨率上成正比增长,而基于体积卷积的方法随着体积大小三次增长;

速度:经验表明,PointNet 在 TensorFlow 上使用 1080X GPU 每秒能够处理超过 100 万个点用于cloud classification(around 1K objects/second)或 semantic segmentation(around 2 rooms/second),显示出巨大的实时应用潜力;

Conclusion

度:经验表明,PointNet 在 TensorFlow 上使用 1080X GPU 每秒能够处理超过 100 万个点用于cloud classification(around 1K objects/second)或 semantic segmentation(around 2 rooms/second),显示出巨大的实时应用潜力;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GRF-Sunomikp31

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值