本博客是点云的深度学习方法综述博客的一部分,详细解释几篇Point-based Continuous Convolution Networks的方法。
RS-CNN
论文:Relation-Shape Convolutional Neural Network for Point Cloud Analysis
中科大出品,2019 CVPR
RS-Conv
对于PointNet++了解的读者,可以直接看其网络中一个卷积层结构如下:
这张图对应着的是Pointnet++的一个SA层。如果抛去中间部分Relation-Shape Convolution中的左边learn from relation的梯形,剩下的结构就是将所有j点对应的相加或者取最大,输入到shared MLP中,得到对应的新的feature。其实这一部分与PointNet++层是有些相似的,区别在于相加或者取最大的位置不一样。
但RS-Conv中加入了,通过计算对应的权重。然后就与2D Convolution中的一样,feature·weight然后通过summation得到新的feature,只不过还需要再通过一些MLP处理一下。
可以看到,weight是根据计算得到的,不同位置的点对应的weight不同,所以weight在空间内的分布是由上图确定的,是覆盖了整个空间的,所以虽然本方法是属于Continuous Convolution Networks的。
KP-CNN
Rigid KP-Conv
直接看结构:
可以看到,这个表示和2D的卷积已经非常类似了。具体的来说就是,kernel中的每一个点对应一个权重,然后计算input中的每个点与kernel中的点的距离,通过距离的远近与kernel中的所有的进行加权求和得到每个点最后的权重(原文公式2,3),然后用权重乘以feature(原文公式1),然后相加得到中心点的新的feature(原文公式1)。
kernel中的权重是与kernel中点的位置对应的,而点事离散,为什么说权重的域是连续的呢?我觉得这个是因为,可以把kernel中的所有的理解为权重域的一个离散采样,而作用在input中的点上的权重是根据这些离散的再差值所得(也就是上面说的原文公式2,3对应的加权和)。这个过程可以认为是在恢复连续的权重域的过程。
Deformable KP-Conv
这个还是比较好理解的,可以类比于2D Deformable Convolution,先使用 Rigid KPConv生成3K个offset,将kernel中的点的位置做偏移,相当于改变了权重域的采样的位置,但是的数值没有改变,其实相当于改变了权重的分布。
offset也有监督,希望加上offset过后的kernel的点更靠近input中的点。
来源:CSDN
作者:麒麒哈尔
链接:https://blog.csdn.net/wqwqqwqw1231/article/details/104212913