【点云系列】FPConv:Learning Local Flattening for Point Convolution

FPConv是一种针对点云分析的新型卷积方法,旨在直接处理点云表面几何,避免3D网格或图的中间表示。通过学习非线性投影并将其展平到2D栅格,实现点云的平面化卷积操作,提高了表达能力和效率。实验表明,该方法在某些场景下表现出色,尤其是在平滑区域,但对高曲率区域的处理效果一般。

1. 概要

1.1 原文出处

题目: FPConv:Learning Local Flattening for Point Convolution, CVPR 2020
论文:https://arxiv.org/abs/2002.10701
代码:https://github.com/lyqun/FPConv

1.2 背景知识

点云分析所使用方法:
Volumetric-style 点卷积
通过体素化编程规则的网格结构,使用3D卷积来操作。
缺点:低表达性能 + 高计算量, 且不能够很好地补获均匀区域。

Graph-style点卷积
增加了点之间的关联性,比volumetric-style更有效;一般可定义在谱域。
缺点:取决于特定图结构, 且可靠的关联性并不容易建立;

Surface-style点卷积
大部分工作将形状表面投影到中间网格结构,然后在使用传统卷积进行操作。例如RGBD。
缺点:多视角的冗余表达。切线角的话取决于切线估计,不足以面对复杂场景。不能准确进行表面估计。

2. Motivation:

  • 不需要转换为3D网格或图之类的中间表达形式,而是可以直接处理点云的表面几何,是Surface-style点卷积中的一种。
  • 传统方法通常分成两步骤:映射+2D卷积,那么是否可以将投影和插值简化为单个权重图学习的过程,使得表达更加通用和隐含?答案当然是肯定的也就是这篇文章的亮点所在。

在这里插入图片描述

3. 思想

为点云分析提出了一种 平面化的卷积方法,摒弃了先映射再2D卷积的两步骤,合称为一个过程定义为FPPConv的平面卷积操作,通过学习权重矩阵来实现。简言之,就是,为每个面片(每个点及其邻居点所构成)学习非线性投影,然后展平到2D栅格内。相当于将每个点及其领域映射成了一个平面处理,类似局部点域的注意力机制

3.1 整体框架

如下图所示,输入的坐标和特征都来源于在p点随机选取一定范围内的N个随机点,及其对应特征;
在这里插入图片描述

3.2 分割框架

其中的分割框架如下:
在这里插入图片描述
FPConv块设计如下:
在这里插入图片描述
融合卷积设计如下:
在这里插入图片描述

3. 算法

3.1 局部平面化

在这里插入图片描述
p p p是点云 P \mathcal{P} P中的一个点, F ( p ) \mathcal{F(p)} F(p)为定义在点上的标量函数。在这 F ( p ) \mathcal{F(p)} F(p)能够编码来自网络中间层的像颜色、几何或特征等信号。 N ( p ) \mathcal{N(p)} N(p) p p p点为中心的一个点云块。 N ( p ) = { q i = q i − p ∣ ∣ ∣ q i − p ∣ ∣ 2 < ρ , q i ∈ P } \mathcal{N(p)=\{q_i=q_i-p | ||q_i-p||_2<\rho ,q_i \in \mathcal{P}\}} N(p)={qi=qipqip2<ρ,qiP} ,其中 ρ \rho ρ是选定的半径。

公式(1):定义了一个虚拟2D平面, π \pi π N ( p ) \mathcal{N(p)} N(p) S S S的映射;
公式(2):为定义在点 p p p的卷积,其中 c ( u ) c(u) c(u)为卷积核。

公式(3):由于 π \pi π S S S中的映射是离散点,因此需要使用差值方法来估计 S ( u ) S(u) S(u)的所有信号。
公式(4):如果将 S S S信号离散化到网格大小为 M w × M h M_w \times M_h Mw×Mh的屏幕。对于每个网格 S ( v j ) S_(v_j) S(vj)而言,其中 j ∈ { 1 , 2 , 3 , . . . , M w × M h } j \in \{1,2,3,..., M_w \times M_h\} j{1,2,3,...,Mw×Mh}可以得出此公式。
公式(5):由于 w j i = w ( v j , π ( q i ) ) w_{ji}=w(v_j, \pi(q_i)) wji=w(vj,π(qi)), 因此我们可以改写公式(2)成一个近似离散的形式,即为公式(5),其中 c j c_j cj是离散化卷积的核权值。设 L = M w × M h , W f ∈ R N × L , W f ( i , j ) = w ( v j , π ( q i ) ) , F ( p ) = ( F ( q 1 ) , . . . F ( q N ) ) T ∈ R N × C L=M_w \times M_h, W_f\in \mathbb{R}^{N \times L}, W_f(i,j)=w(v_j, \pi(q_i)), F(p)=(\mathcal{F(q_1),...\mathcal{F(q_N)})}^T\in \mathbb{R}^{N \times C} L=Mw×Mh,WfRN×L,Wf(i,j)=w(vj,π(qi)),F(p)=(F(q1),...F(qN))TRN×C,

3.2 特征密度归一化

由于网格化到平面后的特征密度可能不平衡,导致网络难以收敛,因此继而提出来两个归一化方法用来学习投影权值:

  1. 密集网格平面
    一种方式是在第一维度除以所有和,确保在每个点的密度和为1。有点类似双线性差值,但为了避免除0,我们使用softmax如公式(6)所示:
    在这里插入图片描述

  2. 稀疏网格平面
    由于点自然的稀疏性,归一化投影权值获取密集网格平面不是最优的。因此,设计了稀疏网格平面。
    分两步:
    Step 1: 归一化第二维度来平衡由局部邻居点获取的密度。
    在这里插入图片描述
    Step 2:归一化第一维度来平衡每个点位置密度。但是选取了另一种Max方式来确保连续的稀疏性。
    在这里插入图片描述

4. 实验结果

分类效果一般,其中使用了数据增强:z轴随机旋转和抖动;
在这里插入图片描述

ScanNet数据集上的效果一般,但是在S3DIS数据集上的分割效果还不错。
在这里插入图片描述
在这里插入图片描述

参数方面,使用了Switchable Normalization, SGD优化器momentum=0.98, 训练的batch_size为12,应该在调参上下了一番功夫。

5. 几点思考

  • 相对于平坦的区域表现更好,可作为体素的补充;
  • 平滑区域ok,但曲率大的就不适用了。
  • 有点类似FoldingNet思想;都是通过2D流体来模拟点云;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值