标题:PAConv: Position Adaptive Convolution with Dynamic Kernel Assembling on Point Clouds
作者:Mutian Xu1 Runyu Ding1* Hengshuang Zhao2 Xiaojuan Qi1† 1The University of Hong Kong 2University of Oxford*
编译:苏云征
排版:点云PCL
来源:arxiv 2021
本文仅做学术分享,如有侵权,请联系删除。内容如有错误欢迎评论留言,未经允许请勿转载!
介绍
如何处理点云?主要可以分为两大类:
geometric information might be lost due to quantization, and voxels typically bring extra memory and computational costs
MLP系列
使用的都是shared mlp,这限制了表达不同空间信息关系的能力
they all adopt the shared MLPs to transform point features, which limits the model capabilities in capturing spatial-variant information.
卷积系列:探索局部邻域内空间关系
基于相对空间信息直接预测卷积核权重
缺陷:much higher complexity (memory and computation)
卷积的另一个方向就是使用固定的卷积点,通过计算点之间的相关度来调整卷积核的权重 limit the model flexibility
动态卷积、条件卷积。Dynamic and conditioned convolutions.
本文与Condconv较为相识,但是Condconv预测的卷积核不是根据位置来的,但是在无序点云中需要根据空间位置来确定权重
主要创新
1、通过动态地汇集权重矩阵构建一个卷积核,这些权重矩阵的参数是通过使用ScoreNet从点云的位置信息中学习到的。这样,卷积核就是通过数据驱动的方式构建的,与2dcnn相比更好处理不规则、无序的点云数据。
2、学习过程的复杂度从根据点位置信息直接估计卷积核*降低到 估计系数来联合权重矩阵。
3、以往的方法的网络架构都是高度订制的,很难清楚是module的作用还是网络结构的作用,本文将PAConv集合到MLP-based的框架中,不改变网络配置,达到了sota的效果。
具体实现
以二维为例,2d卷积可以描述为:
其中,N代表邻域(3x3),f_j代表每一点的输入特征C_in维,K代表一个权重矩阵,将C_in维特征映射为C_out维,A代表邻域特征聚合操作。假如3x3的邻域,那么就有9个C_in*C_out的映射矩阵。
但是由于点云是无序的,不规则的,在一个点的邻域内的点的位置是不确定的(图像指定一个3x3的邻域,其点的数量是固定的),因此在点云的邻域内不能得到有限个权重矩阵。
该问题的解决如下:
1、Weigh Bank
定义一个矩阵集合B,每一个矩阵是C_in*C_out的大小,该集合共有M个矩阵
最后得到的每一个邻域点的权重矩阵(C_in*C_out)就是这M个矩阵的的加权和。
2、ScoreNet
对每一个邻域点p_j,计算其与中心点p_i的相对距离,根据空间位置信息,得到一个M维的分数向量,代表M个矩阵的加权系数。
其中S_ij是M个系数的集合,代表j这个点上的M个weigh matrix的权重系数。这样就建立了一个从离散的卷积核映射到连续的三维空间的映射
3、Kernel generation
根据以上,p_j点处的卷积权重就是:
这样,p_j的卷积核权重就是根据空间信息动态获取的了,这种位置自适应的卷积对于不规则分布的点云有很高的的灵活性。
4、Weight Regularization
因为权重矩阵需要代表不同类型的信息,为了使M个权重矩阵尽可能地具有差异性,引入了一个Loss函数来惩罚他们的相识性:
这使得权重矩阵尽可能多样分布,进而保证了卷积核的多样性。
关于这个式子的理解,可以简单理解成是计算余弦相识度,参考两个向量的内积,这里就是量量计算weigh matrix的相识度,然后求和。
实验
1、分类
任务简单,没有引入L_corr函数
2、部件分割
3、场景分割
4、消融实验
在场景分割下进行
1、ScoreNet
可视化ScoreNet的输出
每一个点输出一个M维的Score
更好地表示方法:可是一个用M个点云来表示,每个点云代表对每个Weight Matrix的响应,点云的颜色越深代表这个点对该Weight Matrix的响应越大。
Score distribution in the network
代表4个encoder层中,每一层对M(16)个weight matrix的响应的平均值
因为在i的邻域内,一个邻域点j会生成一个M维度的Score向量,求他们的平均值,就得到了这个折线图
2、The Number of Weight Matrices
3、Weight Bank Regularization
4、Robustness Analysis