Advertisement

【点云系列】FoldingNet:Point Cloud Auto encoder via Deep Grid Deformation

阅读量:

文章目录

  • 1. 概要

  • 2. 动机

  • 3. 思想

    • 整体框架:主设计解码器
    • 基于图的编码器Encoder
    • 基于Folding的解码器Decoder
  • 4. 实验结果

  • 6. 参考

清库存系列

1. 概要

题目:FoldingNet: Point Cloud Auto encoder via Deep Grid Deformation (CVPR’18 spotlight)
论文:https://openaccess.thecvf.com/content_cvpr_2018/papers/Yang_FoldingNet_Point_Cloud_CVPR_2018_paper.pdf
补充材料:https://openaccess.thecvf.com/content_cvpr_2018/Supplemental/1129-supp.pdf
代码:https://www.merl.com/research/license#FoldingNet
简述: 基于2D纸折叠的思想产生3D物体

后续延伸:

  1. FoldingNet++
  2. Real-time Soft Robot 3D Proprioception via Deep Vision based Sensing

类似工作:
AtlasNet, 其是使用multiple grid块来初始化2D grid。

2. 动机

神经网络能否学习纸的折叠呢?
3D点云数据大部分来源于物体表面小区域可以看成是2D流体,可以通过2D经过一系列变换获取得到。
在这里插入图片描述

3. 思想

整体框架:主设计解码器

主要是设计了解码器,Encoder直接使用PointNet部分和简单图思想。
在这里插入图片描述
简单来讲,就是把隐码复制了N份,然后与2D的网格进行拼接,形成Nx(D+K)维度的隐码,通过学习获得有位置信息的点云。

其实可以简单理解成为几何当中的一个定义:自然界里的高维数据可以表示为低维非线性的流形。这里就运用这个思想将三维点云认为是二维的流形,那么二维里面就用一个简单的网格来模拟。所以其受限在只可以模拟3D中没有环出现的情况,有环的出现时就不行了。所以才有了后面FoldingNet++的出现用来解决有环出现的情况。
在这里插入图片描述

基于图的编码器Encoder

在这里插入图片描述

编码器 = 多层感知器 + 基于图的最大池化层,两者拼接在一起形成编码器;

图的构成 :16-KNN, 对于每个点,计算器的局部协方差矩阵,使用3\times3核计算,然后将其向量化为1\times9,所以输入n\times3–>n\times9。两者拼接起来就是n\times 12.

假设KNN图的邻接矩阵是A ,输入是X 。则输出矩阵为公式(2),其中K 是特征映射矩阵,每一个输入则是公式(3)。公式(3)计算局部特征表达,一定的拓扑性。
在这里插入图片描述在这里插入图片描述

基于Folding的解码器Decoder

在这里插入图片描述
在这里插入图片描述
解码器 :使用2个连续的3层感知器+ 2D grid。
输入 : 复制了m份的特征,每份特征512维度来自编码器 + 复制了m份的2D grid,每份2维特征 = m \times 514.
这里的grid使用正方形,m=2025,输入点数n=2048。

那么什么叫做Folding操作呢?
就是整个解码器的这样的操作。也就是,复制了码字与2D grid的拼接经过一个基于点的多层感知器就叫做Folding操作。

使用两个三层感知器的作用?

  1. 第一个是从2D grid 到3D 空间的Folding操作;
  2. 第二个是在3D空间仅Folding操作,产生最终的surface。

理论分析:
假定2Dgrid输入是矩阵U,由编码器输出的码字为\theta,矩阵每一行为u_i
通过拼接与MLP后,可以看成是f([u_i, \theta]),该公式可以看成是通过码字\theta对高维函数的重参数化,由于MLP可以接近于非线性,自然可以进行folding操作。

4. 实验结果

训练的可视化结果
在这里插入图片描述
形状插值在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 参考

全部评论 (0)

还没有任何评论哟~