【论文阅读】【点云处理】Point-based Continuous Convolution Networks

文章目录

  • RS-CNN
    • RS-Conv
  • KP-CNN
    • Rigid KP-Conv
    • Deformable KP-Conv

本博客是点云的深度学习方法综述博客的一部分,详细解释几篇Point-based Continuous Convolution Networks的方法。

RS-CNN

论文:Relation-Shape Convolutional Neural Network for Point Cloud Analysis
中科大出品,2019 CVPR

RS-Conv

对于PointNet++了解的读者,可以直接看其网络中一个卷积层结构如下:
【论文阅读】【点云处理】Point-based Continuous Convolution Networks_第1张图片
这张图对应着的是Pointnet++的一个SA层。如果抛去中间部分Relation-Shape Convolution中的左边learn from relation的梯形,剩下的结构就是将所有j点对应的 h i j = x j − x i h_{ij}=x_j-x_i hij=xjxi相加或者取最大,输入到shared MLP中,得到 x i x_i xi对应的新的feature。其实这一部分与PointNet++层是有些相似的,区别在于相加或者取最大的位置不一样。

但RS-Conv中加入了,通过 h i j h_{ij} hij计算 x j x_j xj对应的权重 w i j w_{ij} wij。然后就与2D Convolution中的一样,feature·weight然后通过summation得到新的feature,只不过还需要再通过一些MLP处理一下。

可以看到,weight是根据 h i j h_{ij} hij计算得到的,不同位置的点 x j x_j xj对应的weight不同,所以weight在空间内的分布是由上图 M ( h i j ) M(h_{ij}) M(hij)确定的,是覆盖了整个空间的,所以虽然本方法是属于Continuous Convolution Networks的。

KP-CNN

Rigid KP-Conv

直接看结构:
【论文阅读】【点云处理】Point-based Continuous Convolution Networks_第2张图片
可以看到,这个表示和2D的卷积已经非常类似了。具体的来说就是,kernel中的每一个点对应一个权重 W k W_k Wk,然后计算input中的每个点与kernel中的点的距离,通过距离的远近与kernel中的所有的 W k W_k Wk进行加权求和得到每个点最后的权重(原文公式2,3),然后用权重乘以feature(原文公式1),然后相加得到中心点的新的feature(原文公式1)。

kernel中的权重 W k W_k Wk是与kernel中点的位置对应的,而点事离散,为什么说权重的域是连续的呢?我觉得这个是因为,可以把kernel中的所有的 W k W_k Wk理解为权重域的一个离散采样,而作用在input中的点上的权重是根据这些离散的 W k W_k Wk再差值所得(也就是上面说的原文公式2,3对应的加权和)。这个过程可以认为是在恢复连续的权重域的过程。

Deformable KP-Conv

【论文阅读】【点云处理】Point-based Continuous Convolution Networks_第3张图片
这个还是比较好理解的,可以类比于2D Deformable Convolution,先使用 Rigid KPConv生成3K个offset,将kernel中的点的位置做偏移,相当于改变了权重域的采样的位置,但是 W k W_k Wk的数值没有改变,其实相当于改变了权重的分布。

offset也有监督,希望加上offset过后的kernel的点更靠近input中的点。

你可能感兴趣的:(论文阅读,#,点云处理)