论文:PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space 代码:
0 引言
PointNet++ 是PointNet的改进版。 PointNet的一个很大的缺点是无法获得局部特征,在复杂任务(如分割等)上的表现并不是很好。 这个跟PointNet的结构设计有很大关系, PointNet把一个点云中的所有点当做一个整体, 直接提取了一个全局特征, 缺乏局部点之间的关联。 PointNet++非常核心的一点就是提出了多层次特征提取结构, 可以很好地提取局部特征。 PointNet++ 的思想非常类似于CNN, 通过分层的特征提取逐步扩大感受野, 可以提取不同层次的特征。
1 网络设计
要想提取局部特征, 直观的想法就是把点云进行分块, 每一块作为一个局部的整体, 用PointNet进行特征提取; 要想获得类似CNN的层次化特征, 直观的想法就是级联多层PointNet网络,对提取到的局部特征再进行分块, 继续用PointNet提取特征。 实际上, PointNet++ 也正是这么做的。 网络结构如下:
具体到PointNet++ 网络设计中, 其实还有一些细节的考虑。
1.1 分块
文章中叫做groupping, 作者采用的grouping的方法是先找到一些点, 以这些点为中心画一个球, 在一个球内的点云就被分为一组。 球的半径的选取是有一定技巧的, 最简单的是选取一个固定值, 但是由于点云分布并不均匀, 这样就会导致有的组内点很多, 有的组内点很少。 为了尽量保持均匀, 球的半径是可变的。 半径的确定可以通过一些聚类的方法如KNN等。
2 实验结果
在分类和分割任务上的精度明显优于PointNet.
|