PointCNN: Convolution On X-Transformed Points 解读

1 摘要

点云具有不规则和无序性,直接在点云上使用卷积核提取特征,会导致形状信息的丢失和对点云输入顺序的敏感。
本文提出了x-transform,解决两个问题:(1)给学习到的特征赋予权重(2)将特征按某种潜在的顺序排列。

2 引言

PointCNN: Convolution On X-Transformed Points 解读_第1张图片
如果数据是按特定顺序表达的,如i所示,比如图片,CNNs就可以很好的完成任务。但是如果是点云数据,如ii、iii、iv所示,由于点云的不规则和无序性,CNNs就不能很好的发挥作用了。
对于一般的CNNs,上图ii、iii、iv可以表示成:
PointCNN: Convolution On X-Transformed Points 解读_第2张图片
作者提出了改进CNN,叫做PointCNN。作者希望网络学习到一个K * K 大小的x-transform(就是一个矩阵),这个矩阵由俩作用:给学习到的特征赋予权重;将特征按某种潜在的顺序排列。此时对于这样的卷积操作可以表示为:
PointCNN: Convolution On X-Transformed Points 解读_第3张图片
从公式我们可以看出,就是用x-transform 乘以了 特征。这个x-tranform干了两件事:给特征赋予比重;将特征排序

3 PointCNN

3.1 层次卷积

PointCNN: Convolution On X-Transformed Points 解读_第4张图片
介绍PointCNN前,先来简单的介绍下规则的CNNs。如上图上半部分所示 F 1 F_1 F1的形状是 R 1 × R 1 × C 1 R_1 \times R_1 \times C_1 R1×R1×C1, 其中 R 1 R_1 R1是空间分辨率, C 1 C_1 C1是通道数。卷积核 K K K的形状为 K × K × C 1 × C 2 K \times K \times C_1 \times C_2 K×K×C1×C2 F 1 F_1 F1应用卷积核 K K K之后,就得到了 F 2 F_2 F2。和 F 1 F_1 F1相比, F 2 F_2 F2分辨率比较低,但是有更多的通道数,并且携带了更高层次的信息。

如图下半部分所示,是PointCNN, F 1 = { ( p 1 , i , f 1 , i ) : i = 1 , 2 , 3 , . . . , N } F_1 = \{ (p_{1,i},f_{1,i}): i = 1, 2,3, ...,N\} F1={(p1,i,f1,i):i=1,2,3,...,N},其中 p 1 , i p_{1,i} p1,i是点的集合, f 1 , i f_{1,i} f1,i是点关联的特征。我们在 F 1 F_1 F1上使用x-conv,就可以得到 F 2 F_2 F2,同理 F 2 F_2 F2中有更少的点,但是通道数增加且携带更高层的信息。

3.2 x-Conv Operator

X-Conv是 F 1 F_1 F1 F 2 F_2 F2的关键操作。为了利用局部空间的相关性,和普通的CNNs类似,X-Conv也是在局部区域做卷积。
为了简单起见,我们把 F 2 F_2 F2中的点(即 { p 2 , i } \{p_{2,i}\} {p2,i}中的点)表示为 p p p,和 p p p相关的特征表示为 f f f p p p F 1 F_1 F1中的k近邻表示为 N N N。X-Conv输入的数据我们可以表示为 s = { ( p i : f i ) } s = \{ ({p_i:f_i)}\} s={(pi:fi)}.X-Conv可以表示为如下算法描述的那样:
PointCNN: Convolution On X-Transformed Points 解读_第5张图片
用公式表示为:
在这里插入图片描述
详细描述下算法的1-3行
1:首先把坐标原点设置为 p p p
2:为了解决坐标和特征不匹配的问题,把坐标拉到高维空间去提取特征
3:将得到的特征和原先的特征合并

3.3 PointCNN结构

PointCNN: Convolution On X-Transformed Points 解读_第6张图片
a,b是用于分类的结构,c是用于分割的结构。

你可能感兴趣的:(深度学习)