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

ぐ巨炮叔叔 提交于 2020-02-13 02:22:05

本博客是点云的深度学习方法综述博客的一部分,详细解释几篇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点对应的hij=xjxih_{ij}=x_j-x_i相加或者取最大,输入到shared MLP中,得到xix_i对应的新的feature。其实这一部分与PointNet++层是有些相似的,区别在于相加或者取最大的位置不一样。

但RS-Conv中加入了,通过hijh_{ij}计算xjx_j对应的权重wijw_{ij}。然后就与2D Convolution中的一样,feature·weight然后通过summation得到新的feature,只不过还需要再通过一些MLP处理一下。

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

KP-CNN

Rigid KP-Conv

直接看结构:
在这里插入图片描述
可以看到,这个表示和2D的卷积已经非常类似了。具体的来说就是,kernel中的每一个点对应一个权重WkW_k,然后计算input中的每个点与kernel中的点的距离,通过距离的远近与kernel中的所有的WkW_k进行加权求和得到每个点最后的权重(原文公式2,3),然后用权重乘以feature(原文公式1),然后相加得到中心点的新的feature(原文公式1)。

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

Deformable KP-Conv

由于
这个还是比较好理解的,可以类比于2D Deformable Convolution,先使用 Rigid KPConv生成3K个offset,将kernel中的点的位置做偏移,相当于改变了权重域的采样的位置,但是WkW_k的数值没有改变,其实相当于改变了权重的分布。

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!