论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》

Introduction:

本篇论文,介绍了一个通过深度网格变形的点云自编码器(AE)。
提出了新的端到端graph-based编码器和folding-based解码器。

因为点云结构是不规则的,一般由稀疏的三维点表示,很难应用到传统的深度学习的框架中(比如CNN中,每个样本点的相邻样本点需要在固定的一个地方以便于卷积,但是点云中的样本点做不到这样),一种解决方法是将点云体素化来模拟图像,但是这种方法存在很多缺陷,代价比较大。作者在本文提出的操作,就是用来解决点云不规则结构带来的问题,且比之前的方法效果要好。

Contributions:

  1. 训练了一个端到端的深度自编码器,来直接作用在无序点云上;
  2. 提出了一个新的解码操作folding,为重构的点云排序;
  3. 做实验,可知,相比其他无监督的方法,folding分类的精确度更高;
    ——————————————————————————————————————

Figures and Tables

Table 1:通过folding操作将2D样本点粘回了物体表面
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第1张图片
第一列输入的是从ShapeNet数据集里的原始点云样本,
第二列,在解码过程中2D网格点被折叠了,
第三、四列分别是第一、二次进行folding操作后的结果,输出是重构后的点云表面。
第一次折叠是将2D网格折成了3D空间,第二次折的是3D空间的内部。
经过两次折叠,折出来的表面形状很精致。
(如果需要更好的结果,那么可以多做几次折叠。)

——————————————————————————————————————————————————
Figure 1:
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第2张图片
这是FoldingNet的架构。
包括graph-based编码器和Folding-based解码器。
编码过程:输入一个有n个点的图像,计算每个点的33的局部协方差矩阵,并把它向量化成19大小,然后将这个得到的n9的矩阵和n3的矩阵相连接成n*12的矩阵,输入到三层感知器中。通过一个3层感知器,将感知器的输出输入到两个连续的图像层中,其中每层图像对每个节点的邻居作maxpooling降维(在下面评估的2中有具体说明),再到2层感知器,得到codeword。
将得到的codeword向量叠加m层,再加上一个二维网格点来进行折叠操作。

解码过程:解码器包含了两次folding操作。这种设计减少了参数个数。
最后定义距离函数来评价差异大小。
——————————————————————————————————————————————————
提及的公式:
1、输入点集与重构点集之间的loss:
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第3张图片
其中,S代表输入点集,S^代表重构点集。
x是输入点集中的某一个点,x^是重构点集中的某一个点

第一项表示对于输入点云中的每一个点,找到重构点云中的一点与其对应,然后求它们之间的最小值,对于S中的每个点都进行上面的过程。
第二项与第一项相反,主要原因是,输入点和重构点的数目一般是不一样的。

2、假设K-NNG图有邻接矩阵A,graph layer的输入矩阵为X,输入矩阵是Y。
编码过程图像层的输出
其中,K是特征映射矩阵(feature mapping matrix),矩阵Amax(X)的第i行第j列的输入是上面那个式子中的一项
local maxpooling操作基本上基于图结构估算局部特征。

——————————————————————————————————————————————————

接下来是实验的结果:

——————————————————————————————————————————————————
4.1 可视化训练过程:

Table 2:FoldingNet还可将非规整的网格映射到三维点云上。
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第4张图片
这是训练过程。随机二维流形逐渐转化成点云的表面。
当原始表面过于复杂时,会有失真现象。
比如说,上图中第二行飞机丢了翅膀,最后一行的椅背丢了小孔。
解决:需要更多的输入点样本;更复杂的编码解码网络。
(这部分是用shapenet部分训练集训练的foldingnet自编码网络)

————————————————————————————————————————————————————————————————
4.2 point cloud interpolation 点云插值
Table 3:
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第5张图片
输入对像和目标对像已经给出,利用提出的架构,可以实现这种类内或不同类间的物体表面的重构。

——————————————————————————————————————————————————

4.3 illustration of point cloud clustering
Figure 2:
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第6张图片
the embedding result。图中可看出,多数的类可以区别开,除了—{table(yellow)v.s.desk(red)}和{dresser(violet)v.s.night_stand(pink)}。

Table 4:
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第7张图片
列出了在ModelNet10数据集中分类时最常见的错误。

————————————————————————————————————————————————
4.4 transfer classification accuracy:
Table 5: 用codeword在MN数据集上训练一个线性SVM分类器
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第8张图片
表格中显示了FoldingNet与其他的无监督方法对于分类精确度上的比较。
使用MN40数据集时,FoldingNet的效果最好,使用MN10数据集时,Latent-GAN的效果比FoldingNet的稍微要好一些。
——————————————————————————————————————————————————

Figure 3:
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第9张图片
这幅图是用来展示在训练中reconstruction loss是怎样减少的、线性SVM分类器的精度是怎样增加的。

——————————————————————————————————————————————
4.5 semi-supervised learning:

有个想法是:标签数据比未标签数据少很多,会发生什么结果呢?
看下图:

Figure 4:
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第10张图片
这是为了证明一个想法而做的实验:
使用ShapeNet数据集来训练FoldingNet自编码器。
使用ModelNet数据集中总训练数据的a%来训练线性SVM(线性SVM的测试数据始终是ModelNet数据集测试数据区中的所有数据)。
——可以看到:即使只有1%的标记训练数据,分类精度仍然大于55%。
(比table 5中的大多数方法都好)

——————————————————————————————————————————————
4.6.Effectiveness of the Folding-Based Decorder
Figure 5:
论文笔记:《FoldingNet:Point Cloud Auto-encoder via Deep Grid Deformation》_第11张图片
从图中可知,folding解码器的精度很高、重构损失很小。与fully-connected decorder相比,我们提出的这个解码器操作起来更自然、所用的参数更少。

你可能感兴趣的:(三维人体重构)