KPConv

KPConv

参考博客:https://zhuanlan.zhihu.com/p/92244933

创新点

与以往的Pointnet等网络不同,KPConv提出了一种新型点云卷积,通过点云结合核函数的方式,从而达到更好分割效果。

模型

1. Kernel Point Convolution

假设点云中点的定义为:
在这里插入图片描述
所有点的特征定义为:
在这里插入图片描述
以x为球心,r为半径形成一个球体,从而选取x的邻近点:
在这里插入图片描述
为了使得球心居中处理,重新定义球体为:
在这里插入图片描述
然后在球体内,找K个核心点,(核心点不一定是点云中的点),定义为:
在这里插入图片描述
对于每一个核心点,分别有一个权重矩阵与之相对应:
在这里插入图片描述
因此定义核函数g为:在这里插入图片描述
可以看出其实是相当于对K个权重矩阵加权求和,其中h为权重系数,定义为:
在这里插入图片描述
可以看出当点距离中心越接近,权重系数就越大,说明这个点与中心的相关性越强。
因此最终对KPConv进行定义,对于每个邻近点x的特征f,可以计算得到新的特征:
在这里插入图片描述
算法思路: 先以点x为球心确定一个球体,并在球体内选定若干核心点,同时计算出核心点的权重矩阵,然后根据公式进行特征变换得到新的feature,最后将feature进行拼接。

2. Rigid or Deformable Kernel

根据上面的描述可以知道,论文最主要的是核心点的选取,核心点直接影响到后面的一系列效果。因此论文提出了两种方案。
(1)Rigid Kernel
首先选择通过求解一个优化问题来放置Kernel Points,其中每个点对其他点施加一个斥力。这些点被限制在具有吸引力的球面上,其中一个点被限制在中心。最终,周围的点被限制在平均半径1.5σ,确保每个Kernel Points之间的影响力有小幅度的重叠。
具体的数学推导其实是求解一个优化问题,即希望K个Kernel Points在球面上离得足够远,又离球心不要太远。目标方程的第一部分是希望Kernel Points之间彼此不要太近:
在这里插入图片描述
第二个部分是希望与中心点不要太远
在这里插入图片描述
即最后的目标方程如下:
在这里插入图片描述
因此随着超参数K的变化可以得到kernel points位置:在这里插入图片描述
(2)Deformable Kernel
前面是对不同层进行核中心的初始化,但是根据上述方法所得到的的核中心可能不是最优的。因此论文结合Deformable Convolutio的思想,引入一个偏移量,对每一个kernel point的位置进行修改,再去执行kernel point convolution。
在这里插入图片描述
而后设计了两个loss,fitting loss用来是的这些核中心与点云相似,repulsive loss使得他们之间不会靠的太近。
在这里插入图片描述

3. Kernel Point Network Layers

点云采样

作者通过采样的方式来控制每一层输入的点的密度。采用了网格采样法,即通过空间划分网格,对每个网格内采取中心点。

Pooling layer

为了使得感受野不断变大,网络需要在后面的层不断减少点的个数。文章采取了两种下采用的方法:

  • 利用maxpooling减少点的个数;
  • 采样一些点作为中心点,但最后不做max Pooling
KPConv layer

KPConv的输入是输入点云 P ∈ R N × 3 P\in R^{N\times3} PRN×3,以及它们对应的特征 F ∈ R    N × D i n F\in R^{\;N\times D^{in}} FRN×Din,同时还要计算一个邻居索引的矩阵 n    ∈    [    1    ,    N    ] N ’ × n m a x n\;\in\;\lbrack\;1\;,\;N\;\rbrack^{N^’\times n_{max}} n[1,N]N×nmax,其索引的值为1~N,N’个点各有 n m a x n_{max} nmax个邻居。如果是Deformable Kernel的话网络还会学习一个3 k的位移矩阵。
在这里插入图片描述

网络的超参数

对于网络的每一层 l a y e r j layer_j layerj,有网格的宽度 d l j dl_j dlj,核中心的影响范围 σ j ​    = ∑ × d l j \sigma_j​\;=\sum\times dl_j σj=×dlj,对于刚性的卷积核,卷积的半径为 2.5 σ j ​ 2.5\sigma_j​ 2.5σj。对于可形变的卷积核, r j    = ρ × d l j r_j\;=\rho\times dl_j rj=ρ×dlj,ρ 和 ∑ 为整个网络的比例系数。通过交叉验证作者得到了: K = 15 , Σ = 1.0和 ρ = 5.0。第一次下采样的 d l 0 dl_0 dl0取决于数据的大小,之后 d l j + 1 = 2 × d l j dl_{j+1}=2\times dl_j dlj+1=2×dlj

整体网络框架

在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值