KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记

  • 论文概述
    1. Kernel Point Convolution
    KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第1张图片
    KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第2张图片
    左边为2D卷积示意图,在对图像的做卷积时,kernel可以理解成一些带权重的规则分布的2D位置(网格/窗口)。推广到点云,因为点云表示是不规则的,所以作者用了一个带权重的点集(kernel points)类比2D kernel,不同的地方是输入点云要和 kernel points 里面的每一个点的权重矩阵相乘然后通过一个相关系数(correlation coefficient) 加权求和。相关系数是通过输入点和kernel point的相对距离算出来的。同时定义了一个影响距离(influence distance),超过这个距离的点不会和kernel point相乘。实际上就是利用一个带有权重的Kernel Points点集类比2D卷积中的kernel,对点进行卷积操作。然后通过作用点,kernel points,neighbor points三者之间的距离关系进行二次加权。

    2.1  Rigid or Deformable Kernel Points
    2.1.1  Rigid Kernel Points
    核点的位置对于卷积算子来说非常重要。由于KP-Con的优势之一是它的灵活性,我们需要为任一K值(核点数量的上限)寻找一个规则的(均匀的)处理。所有的kernel point都在半径限定的球体范围内。在这里,作者将Kernel Points位置如何确定的问题看作一个优化问题。首先每个Kernel Point之间存在着一个相互排斥力,而中心点又会对这些Kernel Points存在一个吸引力,让他们被束缚在球形领域内。所以,每个点的位置的确定方式大概如下:
    (1)球心作为一个kernel point的位置;
    (2)球心对其它点有一定的引力(attractive force)来吸引它们靠拢;
    (3)其它的kernel points之间有一定的斥力(repulsive force)来使它们相互远离。
    (4)这个由引力、斥力组成的系统稳定后,即可确定每个kernel point的位置。
    它们之间的约束关系可以由以下公式体现:
    吸引力:
    排斥力:
    综合:
    KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第3张图片
    2.1.2 Deformable Kernel Points
    对于一次卷积操作中涉及到的每个操作点,Rigid Kernel Points的位置选择可能不是最优的,所以在Deformable Kernel Point Convolution中,先计算出每个Kernel Point相对于原始位置的偏移量,对每个Kernel Point的位置进行修改,然后再执行Kernel Point Convolution。
    那么前面已经介绍了如何确定Kernel Points的初始位置,网络再为每一个卷积点x生成一组K的偏移△(x),这里将偏移量△(x)定义为将Din输入特征映射到3K的rigid KPConv的输出。在训练期间,网络同时学习生成位移的rigid kernel和生成输出特征的deformable kernel。
    KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第4张图片
    如上图所示,偏移量是通过一个Rigid KPConv计算出来的,只是将Rigid KPConv计算出来的feature作为偏移量来用。例如,假设有K个kernel points,则将Rigid KPConv的输出维度Dout设置为3K即可,如此一来,每个kernel point都可以分到一个3D空间的偏移量。
    但是在实验中,作者发现很遗憾,这种对图像可变形卷积的直接适应并不适合点云。 实际上,kernel point经常被拉离输入点。这种现象来自点云的稀疏性质,存在空白空间围绕点。并且,如果kernel point偏离输入点,则其偏移∆(x)的梯度为零。因此,它会被网络“丢失”。

为了解决此问题,作者提出了两个损失来进行约束:
(1)“fitting” regularization loss,该损失会损失输入相邻点之间的kernel points与其最近的相邻点之间的距离。
(2)“repulsive”regularization loss ,当所有成对的kernel points之间的影响区域重叠时,添加该损失使它们不会一起崩溃。
KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第5张图片
含义:fit:任何一个kernel point,与其最近的输入点的距离,不能太大。rep:kernel points彼此之间的距离,不能太小。
添加损失后,网络就会产生适合输入点云局部几何形状的偏移。
KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第6张图片KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第7张图片KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第8张图片


2.2  A Kernel Function Defined by Points
2.2.1 Rigid KPConv Function
Kernel Point Convolution的作用是:计算出3D空间中一个点x的feature。下面以点x的feature计算过程为例,说明KPConv的定义。

点云中的点定义为:
所有点的feature定义为:
以x为球心,r为半径,确定一个球体。落在该球体内的点,将作为点x的邻点,参与x的feature计算。x的邻点定义为:
将球体定义为:
在球体内,找K个点,作为kernel points。kernel points并不是点云中的点,而是通过特定规则计算出来的一些特殊的位置,具体位置确定过程已经在前面分析过了,K个核心点定义为:
对于每个kernel point,分别有一个权重矩阵Wk与之对应。Wk的定义为:
在前面定义的球体范围,对于落在该范围内的点xi(点云中的点),可以得到其相对于x的距离。对于任意的yi,定义核函数g为:KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第9张图片
可以直观的看出,相当于对K个权重矩阵加权求和。权重系数定义为:KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第10张图片KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第11张图片

 

意思是这个分布实质上只是由K个“狄拉克分布”支撑起来的,只有在这K个地方才有真正的值。想要获取其他地方的值就只能通过线性插值得到。线性插值的“原子”则是与之离得比较近的点所对应的矩阵Wk,离得太远则会由于ReLU函数的截断性质而不再作出贡献。采用这样的线性相关,也有利于缓解梯度反向传播
可以看出,每个权重矩阵Wk的系数,由Wk对应的kernel point到yi的相对距离来确定。相对距离越小,权重越大,最大值为1;相对距离越大,权重越小,最小值为0。 直观的解释:距离越近,相关性越大,结果越大;反之亦然。可以看作:专门针对xi计算出来一个权重矩阵。

基于以上内容,点x处的核心点卷积KPConv定义为,对每个邻点xi的特征fi,分别用矩阵变换后,累加起来,即:
KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第12张图片
总结一下核心点卷积的大概思路:

(1)以点x为球心确定一个球体;

(2)在球体内确定若干个kernel points,每个核心点带一个权重矩阵Wk;

(3)对于落在球体范围内的任意点,用核函数,计算出该点的权重矩阵,用该矩阵对这个点的feature进行变换;

(4)对于落在球体内的每个邻点,都用上一步的方法,得出一个新的feature,最后将feature累加起来,作为点x的feature。

2.2.2 Deformable KPConv Function

根据前面的介绍,Deformable KPConv和Rigid KPConv的区别就在于kernel points的位置确定上,所以Deformable KPConv Function与前面Rigid KPConv Function也大致相同,具体如下:


可以看到,卷积思路相同,只是因为kernel points的位置发生了变化增加了一个偏移量,所以核函数也随之发生了变化而已。

2.3 Kernel Point Network Layers
KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第13张图片
Subsampling to deal with varying densities针对变化的点密度进行降采样。本文使用降采样策略在每一层控制输入点的密度。为了保证采样点位置的空间一致性,使用了网格降采样。网格降采样,就是把三维空间用网格离散化,然后在每个网格里采样一个点。具体方法如下:

(1)创建网格:如中间图所示,计算点云的包围盒,然后把包围盒离散成小格子。格子的长宽高可以用户设定,也可以通过设定包围盒三个方向的格点数来求得。

(2)每个网格包含了若干个点,取离格子中心点最近的点为采样点,如右图所示。

KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第14张图片

格点采样的特点:效率非常高;采样点分布比较均匀;可以通过网格的尺寸控制点间距;不能精确控制采样点个数
Pooling layer为了使用mlp创建层状网络结构,我们需要逐步降低点的数量。由于我们已经有网格采样,和其他相关参数,这可以逐渐增加KPConv的感受野。在每一个新的位置上可以通过最大池化或者KPConv卷积提取小区域的局部特征向量。本文采用KPConv卷积提取局部特征向量,并且称之为"strided KP-Conv",类比图像中Strided Convolution(跨步卷积,即卷积时并不是简单的逐步卷积:而是跨步,比如跨两步,即如果上一步卷积了(0, 0)到(2, 2)这3x3的区域)

2.4 Kernel Point Network Architectures

KPConv: Flexible and Deformable Convolution for Point Clouds论文笔记_第15张图片

KP-CNN 是一个5层的分类卷积网络架构。每一层包含两个卷积模块,除了第一层外,第一个都是是strided。卷积块被设计为瓶颈ResNet块,用KPConv代替图像卷积,BN和弱化的ReLu激活函数。在最后一层之后,局部区域点云特征向量被一个全局平均池化聚合,并使用全连接和softmax()函数进行类别处理。对于可变卷积核的结果,我们只在最后5个KPConv卷积块使用可变卷积核(第3层的第2个块,以及第4层和第5层的两个块)。
KP-FCNN 是一个为语义分割设计的全连接的卷积神经网络。编码部分和KP-CNN相同,解码部分使用了最邻近上采样以获得最终的逐点特征。使用跳跃连接传递编码和解码的中间层之间的特征。这些特征被并联到上采样部分并被一个一元卷积处理,这等价于图像处理中的1*1的卷积或者PointNet中共享的MLP。 可以用KPConv取代最近的上采样操作,其方式与strided KPConv相同,但不会导致性能的显著改善。

你可能感兴趣的:(论文笔记,计算机视觉)