PointNet++论文详解
PointNet论文在上篇已经提到了,它最大的贡献就是可以将点云直接输入至神经网络中,在PointNet一文出现以后,MaxPooling就成了点云深度学习中必然会出现的一个part。
然而!!!!
作为一个开山的网络,它肯定是有很多不足的,不然后面的人如何创新如何研究。
其中,最大的不足就是它没有很好的考虑到局部信息,于是PointNet团队也就是祁芮团队再出新作,PointNet++。
PointNet++网络架构PointNet的创新仍然是在encoder部分,我们可以很明了的从网络架构图中看到,PointNet++为了考虑局部信息,也是非常简单粗暴的将一个点云通过邻域查找分为了一个个邻域点集,然后采用PointNet结构进行了特征提取,在将第一步提取的特征继续按照相同的方法继续,最终得到一个1 *C的全局特征。
这样一操作,局部特征岂能没有?
当然这里面也有许多需要注意的地方,在最开始进行第一次中心点采样的时候,作者采用最远点采样,因为最远点采样可以尽可能的覆盖到点云整体信息,可以保证全局特征,最远点采样过程如下:
①随机选取一个点为起始点,并将该点写入中心点集之中。
②选取剩余的点计算和该点的距离,选择最远点写入中心点集。
③计算除中心点集外所有的点到中心点集里所有点的距离,将其中最短的距离记为某一点到这个点集的距离,选取距离该点集距离最远的点并入中心点集。
④重复上述步骤,直至选取N'个中心点。
和PointNet中T-net类似的,作者为了增加文章的饱满度以及解决鲁棒性问题,引入了两个模块,分别是Multi-scale grouping (MSG) 和Multi-resolution grouping (MRG)。
MSG和MRG图非常的形象,MSG就可以理解为中心点一样,采用不同的半径(R半径搜索)然后分别进行特征提取,最后concat一下。
MSG很久之前画的图,字丑图丑请见谅。
MRG和Pointnet++主干是类似的,只是用了一个级联操作。
MRG附:PointNet解释在作者主页,点云那点事~文集分类里,别找茬....