Abstract
•
CNN
成功的关键是卷积算子,它能够利用网格(如图像)中密集表示的数据的空间局部相关性。
•
点云是不规则、无序的,直接将核卷积到与点相关的特征上会导致形状信息的丢失和点对点排序的方差。
•
为了解决这些问题,我们建议从输入点学习
X-Translation
来同时促进两个方面:第一个是与点相关的输入特征的加权,第二个是将点排列成潜在的规范顺序。
•
典型卷积算子的元素积和运算随后应用于
x
变换特征。
Introduction
•
空间局部相关是各种类型数据的普遍特性,与数据表示无关。对于在规则域中表示的数据,卷积算子被证明在利用这种相关性作为
CNN
在各种任务中成功的关键贡献方面是有效的。
•
然而,对于以点云形式表示的不规则无序数据,卷积算子不适合利用数据中的空间局部相关性。
比如将点云用一般的卷积来进行处理,则上图中的不规则点云用如下方程表示,我们可以看到,经过卷积处理过程的𝑓𝑖𝑖 ,
是完全相同的。这就是作者所说的丢失了点云的空间结构信息。因为之前的卷积是应用于二维图像的,所以无法处理空间结构信息。
•
本文提出用多层感知器学习
k
个输入点
坐标
K*K
的
X
变换,即X=MLP
![(p_1,p_2,......,p_k)](https://i-blog.csdnimg.cn/blog_migrate/30eca9e0c6082478ffe628db874b1c27.gif)
![(p_1,p_2,......,p_k)](https://i-blog.csdnimg.cn/blog_migrate/30eca9e0c6082478ffe628db874b1c27.gif)
•
目的是利用它同时对输入特征进行加权和排序,然后对变换后的特征进行典型卷积。我们称这个过程为
X-Conv
,它是
PointCNN
的基本构建块
•
ii
、
iii
和
iv
的
X-Conv
可以表示为下述方程,其中
X
是
4×4
矩阵,如图中K
=4
。
![](https://i-blog.csdnimg.cn/blog_migrate/1bd2af91ef7cb721613dc7fe1e7c6420.png)
•
由于
和
是从不同形状的点学习的,它们可以不同,从而相应地加权输入特征,并实现
𝑓𝑖𝑖
≠
(
这里的
X
经过了
MLP
)
![{X_i_i}](https://i-blog.csdnimg.cn/blog_migrate/0578955a74f848e4a366d6ab20290dab.gif)
•
对于
和
,如果它们学会满足
=
×
∏
,其中∏是将(
c
,
a
,
b
,
d
)置换成(
a
,
b
,
c
,
d)的置换矩阵,则可以得到
=
。
![{X_i_v}](https://i-blog.csdnimg.cn/blog_migrate/0a56a3b50d3dbc1d75ccbe0da420f671.gif)
![{X_i_v}](https://i-blog.csdnimg.cn/blog_migrate/0a56a3b50d3dbc1d75ccbe0da420f671.gif)
![{f_i_v}](https://i-blog.csdnimg.cn/blog_migrate/ca59a65c2aabd80f2d9f09ae1198f9ba.gif)
HierarchicalConvolution
基于网格的CNN的输入是形状𝑅1× 𝑅1 × 𝐶1的特征映射𝐹1,其中𝑅1是空间分辨率, 𝐶1是特征通道深度。
K× 𝐶1× 𝐶2形状的核K与𝐹1中K×𝐶1形状的局部斑块卷积,得到𝑅2× 𝑅2×𝐶2形状的另一个特征映射F2
R1=4,K=2,R2=3
•
与
𝐹
1
相比,
𝐹
2
通常具有较低的分辨率(
𝑅
2
<
𝑅
1
)和较深的通道(
𝐶
2
>
𝐶
1
),并且编码较高级别的信息。
•
这个过程是递归应用的,生成空间分辨率降低的特征图(图2上部4×4→3×3→2×2),但通道更深(图上部越来越厚的点显示)。
PointCNN的输入是𝐹1={(𝑝1,𝑖,𝑓1,𝑖):𝑖=1,2,…,𝑛1}即一组点{p1,i:p1,i∈rdim},每个点都与特征{f1,i:f1,i∈rc1}相关联。
•
我们希望在f1上应用X-Conv来获得更高级别的表示F2={(p2,i,F2,i):F2,i∈RC2,i=1,2,…,N2},其中{p2,i}是{p1,i}的一组代表点,F2具有比f1更小的空间分辨率和更深的特征通道
•
当递归地应用将
f1
转换为
f2
的
x-conv
过程时,具有特征的输入点被“投影”或“聚合”为更少的点但每个点具有越来越丰富的特征。
X-Conv
•
将输入点集
P
中各点坐标迁移到以点
p
为原点的相对坐标系,得到点集合
P
′
•
通过
MLP
将
P
′
中每个点映射到高维空间
𝛿
中,得到特征矩阵
𝐹
𝛿
•
将输入点的特征集
F
和上一步得到的特征矩阵
𝐹
𝛿F_δ
直接拼接,得到新的特征矩阵
𝐹
∗
•
使用
MLP
从点集合
P
′
中学习到一个
K×K
大小的变换矩阵
𝑋
•
使用变换矩阵
𝑋
对特征矩阵
𝐹
∗
进行矩阵变换
(
加权
&
排序
),
得到特征矩阵
![{F_x}](https://i-blog.csdnimg.cn/blog_migrate/42e5be9605244ab1f8300a4d8db43421.gif)
•
对
𝐾
和
卷积,得到输出特征矩阵𝐹
p
![{F_x}](https://i-blog.csdnimg.cn/blog_migrate/42e5be9605244ab1f8300a4d8db43421.gif)
Architecture
用于分类(a和b)和分段(c)的PointCNN体系结构,其中N和C表示输出代表点编号和特征维数,K是每个代表点的相邻点编号,D是X_Conv的膨胀率。
•
(a)
中给出的网络结构采样数下降过快,导致
X-Conv
层不能被充分训练。为了改进此问题,提出了
(b)
结构,旨在控制网络深度的同时兼顾感知野的增长速度
•
作者也引入了膨胀因子
D
。具体做法是从
K×D
个近邻点中均匀采样得到最后的
K
个近邻点。这样使得在不增加近邻点数量的情况下,将感知野从
K/
增大到
(K×D)/N
•
分割网络结构在
Conv
阶段和
DeConv
采用的均是
X-Conv
结构,不同之处在于在
DeConv
处,输出比输入含有更多的点数和更少的特征数
My Inspiration
•
PointCNN
最大的贡献是寻找了一种能够直接在点上运用卷积的方法
•
PointCNN
的
X-Conv
与数据升维比较类似,我们发现在许多端对端的网络之中都有类似于数据升维的过程,通过某种操作来减少点的数量
(
超点图
)
或降低数据分辨率
(
PointCNN
)
从而使得每一个点中所含的信息量增加。