论文笔记:《FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation》
1.介绍
三维点云处理被认为比二维图像更具挑战性;由于点云样本通常位于不规则的空间结构中;而二维图像样本(像素)则依赖于图像平面上均匀分布的2D网格;这种数据格式使得传统深度学习架构难以直接应用;例如:在每个样本中;传统的卷积神经网络(CNN)通常需要相邻的输入样本在空间上和距离上保持一定的关系;以便进行有效的卷积操作;然而与之相比;点云数据一般不受此限制;此前的方法大都是基于将三维空间划分为规则体素的基础之上;并将其扩展到体素层次;然而基于体素的方法的一个主要问题是其计算复杂度随空间分辨率的提升而急剧增加
该文章主要阐述了一种命名为FoldingNet的自编码器(AE)。在自编码器中,瓶颈层输出被定义为codeword,并可作为输入点云数据的高维表示嵌入。解码器部分通过折叠操作将二维网格转换至点云表面的具体几何结构上。
该方法主要基于任何三维物体表面都可以通过切割、压缩以及拉伸等手段转换成二维平面这一前提条件。反向过程则是通过特定的折叠方式将二维点样本映射回物体表面,并将其作为初始的二维网格样本。这也是本文所进行的重建工作主要基于这一反向过程。
然后深入探讨一下折叠操作这一机制是如何实现的。观察表1可以看出这一过程主要通过两次折叠的方式,在解码器中直接引入了一个隐式的二维网格约束系统。该方法的优势在于能够有效解决点云数据高度不规则的特点,在此基础上文章进一步指出,在适当选择编码字的情况下(即适当选择合适的codeword),这种折叠操作能够灵活地构建出各种复杂的曲面形状。

第一列记录了来自ShapeNet数据集的原始点云样本。第二列描述了解码过程中需要折叠的二维网格点。第三列展示了经过一次折叠操作后得到的结果图形。第四列则呈现了经过两次折叠操作后得到的具体形态特征。这些输出结果构成了重构后的三维点云结构。
尽管重建效果显著。然而我认为折叠过程相对于解码器模块而言较为简单。后续内容将详细讲解。因此我认为前面设计特征提取网络的部分尤为出色。
总的来说,文章的贡献点就是
- 采用了基于深度学习的一种端到端自动编码器架构。
- ·设计了一种新型解码操作称为折叠(Folding),理论上证明其在点云重建任务中展现出强大的通用性,并有效提升了重构性能。
- ·通过大量实证分析显示,在主要的数据集上与现有的无监督学习方法相比,“折叠”方法显著提升了分类精度。
2.点云上的FoldingNet自动编码器
如图1所示的自动编码器结构中,该矩阵接收一个n乘3的空间位置信息.该矩阵每一行代表一个三维空间中的位置坐标(x,y,z).其输出为m×3矩阵,其中每个元素表示重建后的点坐标位置.需要注意的是,重构后的点数m与原始输入点数n不一定相同.令输入数据集为S,则生成的目标数据集记为Sb.接着,我们采用扩展Chamfer距离作为衡量Sb重建质量的标准.

这一项也较为容易理解。具体来说,在这项设计中我们规定原始空间中的任一三维点x必须能够在重建空间中找到对应的三维坐标xb。与此同时,在另一项设计中我们通过强制机制确保两个集合之间的对应关系得以维持。为了实现这一目标的最大化效果,在算法运行过程中会对各对应对之间的距离进行最大化处理,并最终使得两组数据间的距离差最小化。在这个过程中编码器的作用是通过学习过程生成每个输入数据的独特表示形式(称为codeword),而解码器则利用这些编码信息来重建原始数据的空间结构。实验阶段设定codeword的长度为512位以确保数据传输的有效性

2.1 基于图形的编码器体系结构
首先,在每个点v周围构建一个大小为3×3的局部协方差矩阵,并将其展开为1×9维向量。通过K-NNG中的v(包含自身)及其邻居点的位置信息来计算v处的局部协方差。将这些n-by-3的位置矩阵与所有对应节点处生成的所有n-by-9维局部协方差连接起来形成一个n-by-12的大矩阵,并将此大矩阵作为输入传递给由三层感知器组成的网络进行处理。这个网络可以被看作是对每个三维点进行操作的一个模块。随后,感知器输出依次传递给两个连续的应用层,在这两个层中分别对节点及其邻域进行最大值池化处理以提取特征信息。
假设K-NN图有邻接矩阵A,图层的输入矩阵为X,则输出矩阵为


其中K代表特征映射矩阵,在后续的一个公式中使用的局部最大池操作max k∈N(I),本质上是基于图结构计算出一种局部签名。这种签名能够反映本地节点及其邻接节点(聚合)的拓扑关系。通过连接一系列基于图论的最大池层节点,在网络中实现了对拓扑信息范围逐渐扩大传播的效果。随后,在经过两个连续的全连接层处理后(即所谓的两层编码器),最终生成了一个长度为512维的编码向量。
2.2 基于折叠的解码器结构
解码器通过两个连续的三层感知器将固定二维网格形态转换为输入点云结构。输入的codeword源自图形编码器输出。为了使解码过程更高效,在解码前需对codeword进行处理:将其重复m次后与一个由m个网格点构成的特定坐标系相关联。这种关联方式使得信息能够被系统地组织起来,并逐步构建出完整的三维特征图谱。经过级联处理后得到一个大小为m乘514的结果矩阵。该矩阵由三层感知器依次处理每一行数据,并在此基础上生成一个大小为m乘3的结果矩阵。随后将复制后的码字与该结果矩阵合并,并将其作为三层感知器的新输入。这个最终输出即代表了重建后的三维点云结构,在实验中设定参数n=2048时(如文中所述),选择最接近平方数(例如取值范围内的最大平方数),从而实现对大规模三维数据集的有效重建
折叠操作实现了从二维到三维的通用映射关系。具体而言,在处理过程中我们采用矩阵U来表示输入的空间坐标信息。其中,矩阵U中的每一行代表一个二维网格点坐标,并将其标记为UI(i=1,2,...,m)。编码器生成的目标码字θ用于参数化后续的操作步骤。在此框架下,在级联计算过程中多层感知机(MLP)将对每个输入向量Xi=[UI, θ]进行非线性变换处理,并输出对应的编码结果Yi=f(Xi),其中f函数由MLP的具体结构决定。这种函数关系实际上构成了一个参数化的几何变换模型,在保证计算效率的同时能够灵活适应复杂的折叠需求。特别地,在这种设计下高维码字θ不仅能够存储丰富的几何变换信息而且还能通过其参数化特性指导整体折叠操作的方向选择与形态控制。基于多层感知机的强大非线性拟合能力这一方法能够在二维空间中实现精细而灵活的空间变换效果。
文章中的解码器执行了两个连续进行的折叠操作,在此过程中将二维网格转换为三维结构,并进一步展开至三维空间内部形成复杂的几何形态。
如您所见于表1所示的数据集里,
通过查看表1中的C和D列的数据,
可以看到每个步骤本身较为简单,
而两步结合能够生成较为复杂的曲面结构。
值得注意的是,在第一次步骤中完成的操作相对更为简洁,
然而这些步骤共同产生了非同寻常的结果。
若希望获得更加细致且精确的表面结构,
则可以考虑增加更多的步骤进行处理。
3.理论分析
这一部分主要是给出了一个关于基于折叠的译码器的普适性定理.
它表明存在一种基于折叠机制的解码器,在适当调整编码参数θ值的变化范围或取值空间的情况下,“点云”可以被映射到任何可能的几何形状中。“进一步指出存在一个两层的人工神经网络模型(perceptron),该模型能够利用折叠操作从二维网格中重构任意点云。” 其核心方法在于构建了一个仅包含两个计算层的人工神经网络模型(perceptron),其关键在于证明这种折叠操作的有效性
从而说明了文章中提出的解码器是通用的,这样做是可行的。
4.实验
4.1 训练过程的可视化
这一实验旨在展示由初始随机二维流形通过逐步折叠的方式形成具有意义的点云结构。

4.2 点云插值
一种常见的方法是考察自动编码器是否能在数据集中的两个输入之间存在有意义的新插值。
这实际上就是在考察这一过程所涉及的关键特征效果如何。
如表3所示,在类别之间的以及类别内部的不同插值情况

4.3 点云聚类
基于FoldingNet框架下的codeword生成机制用于实现3D点云数据的聚类。该聚类方法基于T-SNE算法设计。通过图2可以看出,在梳妆台(紫罗兰色)与床头柜(粉红色)之间以及书桌(红色)与桌子(黄色)之间存在明显的区分度之外的所有其他类别都能较为清晰地区分出来。研究者进一步通过视觉检查这两个对比类别发现即使对于人类观察者也仍存在较大的识别难度然而在表4中我们详细列出了在对ModelNet 10数据集进行分类任务中的常见错误类型及其出现频率


4.4传递分类精度
此部分突显了FoldingNet在三维点云表示学习与特征提取过程中的效率。特别地,在ModelNet数据集上利用自编码器获取潜在表示(codeword)并用于线性支持向量机分类器的构建,并独立地从ShapeNet数据集中对自编码器进行优化。其中自编码器与支持向量机均基于各自独立的数据集分别进行参数优化工作。实验结果表明FoldingNet具有良好的传输鲁棒性特性。详细结果体现在表5中,并且附图3展示了重建损失随迭代次数逐步下降的趋势以及线性支持向量机分类精度随时间推移显著提升的情况


4.5.半监督学习:当标记数据很少时会发生什么?
旨在评估FoldingNet在标记样本数量较小时性能下降的原因。
本研究继续采用ShapeNet作为生成模型的基础。
随后仅基于ModelNet的数据集进行a比例(取值为1%至20%)的小样本线性支持向量机构建。
如果自动编码器输出的空间码已达到线性可分状态,则所需标注样本数量将大幅减少。
实验结果如图4所示。
研究发现即使仅采用98个标注样本(每类约1至3个标注实例)即可实现超过55%的整体分类准确率。
当标注比例提升至20%时,
分类精度已接近85%,显著优于表5中多数现有方法。

4.6 折叠解码器的有效性
这一部分主要与[1]P. Achlioptas, O. Diamanti, I. Mitliagkas, and L. Guibas. 《Representation learning and adversarial generation of 3d point clouds》中关于全连接解码器的部分进行了比较。尽管我对这一篇文章的具体内容未做深入阅读,在相关领域的工作中提及过该论文的研究成果。在编码过程中,默认情况下该方法采用了字典顺序对三维点进行排序,并在此基础上应用了一维CNN处理这些点序列。而在解码阶段,则采用了三层完全连接的网络结构来恢复原始空间信息。值得注意的是,在从ShapeNet数据集到ModelNet数据集的分类精度测试中,在特征提取方面该简单结构的表现超过了现有无监督学习方法的研究成果。
在训练过程中的具体设置采用ModelNet40数据集来训练两个不同的自动编码器。其中第一个自动编码模型采用了文章所述的一种折叠解码技术;而第二个自动编码模型则采用了文献[1]中所介绍的一种完全连接的三层感知机作为其核心组件。针对全连接型解码模块,在设计过程中我们设置了三个连续的数据传递环节:其输入与输出通道数分别为512至1024、1024至2048以及2048至617×3(即3× )的空间坐标信息矩阵;其中每个空间位置对应的三维坐标信息会被精确记录下来并储存在相应的计算节点上。同时这两个自适应网络模型在构建过程中都采用了第 个基础图形架构作为其核心组件结构

观察图5可知,在训练过程中,重建损失(以Chamfer距离测量)持续降低,并非偶然现象。实际上,在这一过程中我们看到的是一个逐步优化的过程:重建出的点云与原始点云愈发趋近于一致。与此同时在码字空间上构建的线性支持向量机模型表现出持续提升的分类能力这表明通过码字表示能够更清晰地捕捉到数据间的内在联系
折叠编码器通常表现出较高的精度和较低程度的重构损失。相较于基于非自然"一维顺序"构建的整体连接编码器,在本研究中所提出的编码方案基于三维空间中点云对应的二维流形进行构建,并采用了一种更为自然的方式进行处理。此外,在参数规模方面对比发现,在保持性能优势的同时本方案所采用编码架构所需的参数量仅为现有整体连接型编码方案的大约十分之一
