(CVPR 18) FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation

在这里插入图片描述
FoldingNet[1]提出了一种点云自编码器结构,属于自监督学习的范畴,可以将输入点云投影(即特征降维)至具有丰富语义信息的高维空间中,形成高维特征向量(文中用“codeword”指代),即编码过程。接着通过解码网络将高维特征向量恢复得到高维度的输入点云。
如下图所示,对于input输入点云,首先经过特征编码形成codeword(不是图中的2D grid),接着进行两次folding操作,恢复得到与输入点云相似的输出点云:
在这里插入图片描述

What is Folding Operation?

作者在文中指出,从直觉上来说,任何三维空间表面结构都可以通过“裁剪”,“挤压”,“屈伸”等操作转换成二维平面表示,因此以上操作的逆过程就是将二维平面数据进行粘贴等操作,恢复得到之前的三维空间表面结构,而这个逆过程作者称之为folding operation.
如上图所示,图中将开始的2D grid与重建得到的3D surface对应点用相同的颜色标出。从一个固定大小的二维平面(2D grid)开始,在具有丰富语义信息的codeword引导下,经过两次folding操作即可恢复得到输入的三维空间表面结构。

Work Flow

在这里插入图片描述
如上图所示,FoldingNet[1]的输入为点云,输出为重建得到的点云,整体pipeline简单来说可以描述为:
input point cloud -> encoder -> codeword -> decoder -> reconstructed_point_cloud

Encoder(input point cloud -> codeword)

编码部分基本采用的就是PointNet[2]式的结构,输入点云(例如Nx3),经过层级式MLP,再通过max pooling得到最终的高维codeword(1x512).
对点云中的每一点 v v v,利用KNN(neighbors=16)构造图结构,计算每个点的协方差矩阵covariance matrix(3x3),向量化为1x9,与点 v v v的三维坐标进行拼接concatenation得到1x12的向量表示,即上图左上方所描述的操作。nx12的矩阵经过3层MLP得到nx64的feature map.
除了以上基础的PointNet[2]结构,作者还提出了一种Graph Layer:

Graph Layer

Graph Layer基于点云输入时利用KNN构造的图结构,对每个点在相应图结构中,进行特征维度上的max-pooling,通俗来讲就是对每个点,在其16个邻域中,对特征作max-pooling.

接着再进行MLP+pooling+MLP得到1x512的高维向量codeword表示。

Decoder(codeword+2D grid -> reconstructed point cloud)

解码部分比较简单,具体操作看图即可理解,这里比较有意思的点是2D grid是固定(fixed)的,在codeword的引导下经过两步folding操作恢复成输入点云。

Loss

FoldingNet[1]整体属于自监督网络,目的是使输入点云与输出点云尽可能一致,因此采用点云重建中使用的比较多的Chamfer Distance作为loss,直接衡量输入与输出点云的一致程度:
在这里插入图片描述
S为输入点云集合,S_hat为输出点云集合

Experiment

代码采用开源代码,此代码中有几处与原文不一致的地方:

  1. Encoder部分相差比较大,第一是没有计算协方差矩阵与自身拼接,第二是没有实现graph layer,第三是在使用MLP进行特征升维的操作中也有一些不一致之处,具体见代码
  2. loss没有对点云数目做平均,即在距离加和后没有乘以 1/S 与 1/S_hat 这两项,这里尚不清楚为何这样计算

利用在shapenet上训练得到的权重,一些可视化重建效果如下:
在这里插入图片描述
左列为输入点云,右列为重建点云

Reference

[1] Yang Y, Feng C, Shen Y, et al. Foldingnet: Point cloud auto-encoder via deep grid deformation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 206-215.
[2] Qi C R, Su H, Mo K, et al. Pointnet: Deep learning on point sets for 3d classification and segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 652-660.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值