PointNet阅读笔记

(PointNet是很经典的点云处理神经网络结构了,可以说是里程碑级别的,此处记录下我个人阅读原论文后的笔记和理解)

概要:介绍了一种点云处理网络PointNet,在处理过程中能考虑到点云输入的排列不变性,能应用在场景语义解析,对象分类和零件分割等方面。

Introduction

传统的缺陷:传统的卷积神经网络处理架构需要规则的输入数据格式,如网格或体素。由于点云是不规则的,因此通常需要转换为这些格式再输入到神经网络中,而这可能会破坏点云的排列不变性(输入顺序的不同可能会导致结果的不同),且由于量化的引入处理数据量会更加庞大。

输入输出:PointNet以整个点云作为输入,并输出整个输入的类标签或每一块点集的标签。

架构:初始输入为每个点的三维坐标,可以增加法线或其它局部或全局特征。整个架构的关键是一个最大池化的池化层。网络能通过一系列优化函数来提取并选择点云中的突出特征并编码,并最终通过全连接层输出整体标签或单个标签。

优势:输出不会受对输入的刚性变换或仿射变换(平移,旋转)的影响(即只要输入的大小形状相同,则输出结果相同);对于输入噪声,异常值或数据缺失造成的损坏具有高鲁棒性。

Related work

点云特征:目前(当初)的点云特征多数是针对特定任务制定的。通常是通过统计的方式提取特征并被设计为对于特定的变换具有结果不变性。特征通常被分为内征(intrinsic)和外征(extrinsic),或局部特征和外部特征。

对于三维数据的深度学习:最早是volumetric CNN,用于学习体素化形状的3D卷积神经网络。但由于计算成本的缘故导致输入数据分辨率不能太高。FPNN和Vote3D虽然提出了改进,但难以处理大规模的点云。Multiview CNN尝试将3D点云渲染成2D图像并用2D神经网络分类。这在分类和检索任务上效果较好,但难以处理场景理解等问题。Spaectral CNN用于处理网格3D结构,但仅限于处理manifold mesh(有关流形网格可以看这篇文章:基本3D图形:多边形网格浅谈 - 知乎)。Feature DNN首先提取传统形状特征,再根据特征分类,这会收到特征表示能力的限制

对于无序集的深度学习:这方面的工作很少集中在点集上,Oriol Vinyals等人的一项工作研究了这个问题,用带有注意力机制的读-处理-写网络来处理无序输入集,但这个工作通常应用在通用集上,而非点云。

Problem Statement

输入:以无序点集为输入,点云表示为一组3D点,其中每个点都是(x,y,z)坐标加上额外的特征通道向量(颜色,法线等),为了简化目前仅适用(x,y,z)坐标作为通道。

输出:可以为k个候选类输出k个分数(总体标签),也可以为n个点的m个语义子类别输出n*m个分数。

Deep Learning on Point Sets

处理输入点云所需的网络特性

1.无序性,点云不同于体素和像素阵列,它不存在特定顺序的关联。因此,一个处理3D点集的网络需要对于输入具有不变性(即输入顺序的改变不会改变结果)。

2.点并非孤立的一个个点,它们需要和相邻的点组合形成一个有意义的点集,因此处理过程需要能捕捉点云的局部结构,以及这些局部结构的组合特征。

3.变换不变性,对于点云的某些几何变换不会影响输出结果(如旋转或平移)

PointNet的架构:分类网络以n个点作为输入,通过特征变换,以最大池化的方式聚合点特征,并最终输出k个分类分数。分割网络是分类网络的一个分支,它向每个点的局部特征添加了全局特征,最终输出每个点对于每个分类的分类分数。

保证输入不变性的解决方案

文章提出了三种方式:1)对输入进行某种排序;2)采用RNN的神经网络架构(这地方理解为循环的结构在一定程度上能削减输入顺序带来的影响),且通过改变输入的排列增加训练数据,以应对不同顺序的结果。3)采用对称函数来聚合输入数据(如相加或max)

对于策略1,不存在一个稳定的排序顺序(这地方提及了点扰动问题,个人认为指的是不存在一种排序使得新添加一些噪声点时,原先点的前后顺序仍然保持不变),这使得网络难以学习输入到输出的映射。

对于策略2,其目的是希望通过随机排列序列训练RNN,使RNN对输入顺序保持不变。这无法根本解决问题(因为输入本身存在顺序),且对于较大的数据集较难训练。

策略3是文中用到的方式,整体的函数见下图(即对每个点分别处理后再用一个对称函数统一处理),其中h(分别处理的函数)可以用一个MLP近似,g则用单变量函数和最大池化函数近似。h可用于学习点云的不同性质。

 局部和整体特征的融合:分类网络的架构可以在中间过程中获得点云的全局特征,通过将全局特征和每个点的局部特征连接,获得新的点特征,此时每个点都能同时具有全局和局部特征。

联合对齐网络(Joint Allignment Network):为了满足点云的语义标记在一定的几何变换后输入仍保持不变的要求而提出。一个解决方案是在特征提取前将输入集对齐映射到一个规范空间(即无论经过什么变换对齐到该空间获得的结果是相同的)。PointNet通过迷你网络T-net来实现这一点。该网络被用于预测一个仿射变换矩阵,并将该矩阵应用到输入点的坐标上。T-net本身架构类似于大网络,由独立的点特征提取,最大池化,全连接层组成。这个T-net同样可以被用于对齐来自不同输入点云的特征(这大概是为了后面max-pooling的不变性)。但特征空间的变换矩阵的维度要比欧几里得空间的大得多(3*3对比64*64),为了加快优化速度,在损失函数中添加了一项,通过使其尽可能的接近一个正交矩阵(这可能是因为刚性逆变换实质上是一个正交矩阵?)的方式加快训练速度。其中I就是单位矩阵,A就是T-net预测出的变换矩阵。

理论支撑部分(简略,原文论证过程太长了,而且每一步都比较关键,所以这个地方简要说明下每一部分证明的结果)

第一部分首先证明了当两个点云相似(即存在点位置扰动)的情况下,以各自为输入得到的输出结果不会有太大变化。

第二部分证明了输入集中的微小损害或额外的噪声点(点的缺失或增加)不太可能改变PointNet的输出。同时,网络的稳定性会受到max-pooling的维度影响。max-Pooling后的向量K的维度应大于一个阈值Cs(被称为临界点集)。

直观地,PointNet学会了通过一组稀疏的关键点来总结一个形状。(有些像抽稀,就是说PointNet是通过学习抽稀的方式来提取点云特征?)

Experiment

应用

3D物体分类:该网络通过学习点云全局特征来进行分类。分类的数据集是ModelNet40,它包含12311个CAD模型。每个模型采样1024个点,并通过高斯噪声来进行点位置的扰动。和其他方法相比,文章的方法在速度上具有较大优势,且精准度上也整体上超越其它方法(和MVNN的结果持平)。

3D物体分割:目标是给点云的每个部件分配标签。文章评估使用的是ShapeNet零件数据集。文章将分割问题定义为逐点分类问题。文章先是计算了各个图中各个部件的IoU,然后取平均获得某一类部件的mIoU。通过与传统的两种分类方法比较,发现该方法在多数类别的分类结果都较优;同时单视角获得不完整的点云下,分类结果并没变差很多。

语义场景分割:在Stanford 3D segmantic parsing dataset上进行了实验,数据集包含来自Matterport扫描仪的6个区域的3D扫描,包括271个房间。扫描中的每个点都用13个类别中的一个语义标签进行注释。训练时每个块随机采样4096个点来训练;测试时则是全部点都参与。测试结果表明PointNet的预测结果具有平滑性(可能指的是过渡比较自然?),并对缺失点和遮挡具有鲁棒性。通过与先进方法的比较,发现效果远超过了它们。

结构设计分析

消融实验1:与其它解决点不变性方法的比较:将本文采用的max-pooling方法与不采用任何方法,前文提到的RNN方法,排序点方法,以及采用了average-pooling和基于注意力机制的pooling的方法比较。最后发现max-pooling的效果最好。

消融实验2:转换效果的比较:比较了不采用任何转换/仅对输入转换/仅对特征转换/进行了特征转换和正则化操作/采用了上述全部方案的结果,实验证明,采用了全部方案的操作所达成的精准度最高。

输入损坏情况下的鲁棒性测试:实验证明了点云缺失情况下和存在异常值情况下的鲁棒性:存在50%的点云缺失时,误差最大仅下降2.4%和3.8%。当20%的点存在异常值时,网络也有80%以上的准确率。

PointNet的视觉化:这一部分主要证明了在丢失一些效果重复的非关键点(存在一个上限)的情况下,结果不会受到影响。max-pooling这一步的操作实质上就是提取全局形状特征的关键点。

时间空间复杂度:比较结果如下图。虽然另外两个的运算效率更高,但PointNet所占空间较少,且时间和空间的复杂度增长是O(n)的。此外,PointNet有更强的可扩展性(?)。

总结:这篇文章提出了一种简洁而美妙的方式来处理点云结构,其中有两个关键点:一个是通过max-pooling解决了排列不变性的特征提取问题,另一个是通过T-net解决了点云仿射不变性的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值