点云特征学习–PointCNN 论文学习笔记
一,挑战
卷积能够有效提取2D图像中局部上下信息,获取局部空间相关性。但是由于点云数据不规则,无序(irregular, unordered)的特点, 卷积不适合应用于点云数据。具体原因如下:
图(i)表示2D图片的情况,此时,四个点的位置顺序是固定的。对于点云,其位置顺序有很多可能,如图(ii, iii, iv)所示。如果对图(ii, iii, iv)执行Convolution操作:
结合上图,显然可以从卷积的角度得到:
1)
f
i
i
≡
f
i
i
i
f_{ii} \equiv f_{iii}
fii≡fiii 表明,即使数据形状不同,得到的卷积结果相同;
2)
f
i
i
≠
f
i
i
i
f_{ii} \neq f_{iii}
fii=fiii 表明,即使数据顺序相同,得到的卷积结果不同;
基于此,卷积不能直接应用于不规则,无序的点云数据。
二,方法
为了解决卷积在点云数据中遇到的问题,PointRCNN提出了 χ − C o n v \chi-Conv χ−Conv
.从公示中可以看出,
χ
−
C
o
n
v
\chi-Conv
χ−Conv 是对初始特征进行处理后,再进行传统的卷积操作。这个处理是根据矩阵
χ
\chi
χ对原始特征进行顺序变换以及赋予权重,从而使得
f
i
i
≠
f
i
i
i
f_{ii} \neq f_{iii}
fii=fiii,
f
i
i
≡
f
i
i
i
f_{ii} \equiv f_{iii}
fii≡fiii。不过值得注意的是,矩阵
χ
\chi
χ是根据多层感知机训练得到的结果,所以不能够完全保证排列等价,形状等价。
χ
−
C
o
n
v
\chi-Conv
χ−Conv 具体算法如下:
用公式表示:
第一步:将所有邻域点的坐标转化为相对
p
p
p的坐标;
第二步:利用多层感知机得到邻域特征;
第三步:将点的特征与邻域特征进行拼接,得到新的特征;
第四步:从邻域点中,利用多层感知机训练
χ
\chi
χ矩阵;
第五步:利用
χ
\chi
χ矩阵对第三步得到的特征进行处理;
第六步:应用传统卷积操作。
文中给出了利用PointCNN进行分类(子图a),分割任务的结构图(子图b,c)。
三,总结:
这篇论文的核心在于 χ \chi χ矩阵。论文希望通过该矩阵来将邻居点的feature矩阵变得与邻居点的顺序无关,与形状相关。PointCNN与更早的PointNet相比,没有使用maxpooling操作解决点云的无序性,而是通过 χ \chi χ矩阵变化使得排列等价。但是 χ \chi χ矩阵也是通过深度学习训练出来的,所以不能保证排列等价,形状等价。
四,附上核心操作相关代码:
待更新