「论文阅读」PointNet++:Deep Hierarchical Feature Learning on Point Sets in a Metric Space

目录

点集的分层特征学习

采样层(Sampling layer):

分组层(Grouping layer):

PointNet层(PointNet layer):

非均匀采样密度下的鲁棒特征学习


「论文阅读」PointNet++:Deep Hierarchical Feature Learning on Point Sets in a Metric Space_第1张图片

上图显示了单尺度点分组。

点集的分层特征学习

PointNet++分层处理点,沿着层次结构逐步抽象出越来越大的局部区域。

点集抽象层(set abstraction level),主要由:

采样层(Sampling layer)

采样出关键点,最远点采样,关键点代表了局部区域的质心。输出的是N’*(d+C)这么一个矩阵。提供给下面的分组层,因为分组层grouping需要关键点集(N’)和总的点集(N)。

分组层(Grouping layer)

搜索关键点周围的邻居点,构造局部区域集。这一层的输入是N*(d+C)和N’*d(我可以理解诶为关键点只需要坐标就行了,通过坐标去找周围的点)。输出为N’*K*(d+C)(N’个关键点集,他的每个元素K*(d+C)表示了这个区域的详细特征堆,K表示他的邻域点的个数,注意,在不同地方K的达标不一定一样,因为点云不同区域密度不一样),虽然这N’个K*(d+C)的局部区域特征看起来并不等大小(因为K不一样),但是后面的Pointnet层能将这个K*(d+C)处理成固定长度的特征向量。还要说一下的是,分组层没有采用KNN,而是采用球查询,就是找到固定距离的圆形范围内的点(导致K的大小不同),作者认为球查询的局部邻域保证了固定的区域尺度,从而使局部区域特征在空间上具有更广的泛化性,在需要局部模式识别的任务(如语义点标注)中更受青睐。

PointNet层(PointNet layer)

将局部区域模式编码为特征向量。在这一层中,输入为分组层的输出,即N’*K*(d+C),PointNet将每个K*(d+C)编码之后的输出为N’*(d+C’)。Pointnet++使用Pointnet作为点云局部特征学习的基本构造块,通过使用相对坐标和点特征,可以在局部区域捕获点对点的关系。

点集抽象层(set abstraction level)的输入是N*(d+C),N是点数量,d是一个点的坐标信息,C是一个点的特征。输出是N’*(d+C’),N’是上面N的一个点集的子集,C’是聚合了局部邻居点的特征向量。

非均匀采样密度下的鲁棒特征学习

因为不同的点云密度可能不一样,在密集数据中学习到的特征可能不能推广到稀疏采样的区域,因为在稀疏密度点区域通过球查询提取到的邻居点可能不足,为了提高非均匀密度的点云特征学习的鲁棒性,作者提出了密度自适应Pointnet层(density adaptive PointNet layers),如下图所示:

「论文阅读」PointNet++:Deep Hierarchical Feature Learning on Point Sets in a Metric Space_第2张图片

(a),(b)分别为多尺度分组MSG和多分辨率分组MRG
当输入采样密度发生变化时,它可以学习结合来自不同尺度区域的特征。
将具有密度自适应点网络层的分层网络称为PointNet++。

多尺度分组MSG:
在分组层(Grouping layer)中使用多个不同尺度的分组层(通过不同的球查询半径实现),然后根据PointNets提取每个尺度的特征。将不同尺度的特征串联起来形成多尺度特征。这种方法的缺点是计算开销大,特别是在前面几个层上,中心点数量比较多,计算量随着尺度数量的增加而成倍增加。

多分辨率分组MRG:
        这种方式,首先从较低层中处理中心点的局部邻域获取每个子区域的特征得到左边这个特征向量;再通过直接处理本地区域的原始点云获得右边这个特征向量,这样两个特征向量做cat。
当局部区域密度较低的时候,第一个向量可能不包含啥有效信息(因为中心点可能一个邻居都木有),在这种情况下,第二个向量的权重应该更高。(有一个文章《基于多信息深度学习的3D点云语义分割_刘友群》说是根据点的密度对两边的两个向量给予不同的权重。)

剩下就是插值和特征传播部分了,没有看太懂,原文插值公式如下:

「论文阅读」PointNet++:Deep Hierarchical Feature Learning on Point Sets in a Metric Space_第3张图片

 Feature Propagation layers即特征传递模块,网上的文章说:
采用反距离加权插值(把距离的倒数作为weight)。这种插值输入(N, D),输出(N', D),保证输入的特征维度不变。
白色代表输入,绿色代表输出。
 

「论文阅读」PointNet++:Deep Hierarchical Feature Learning on Point Sets in a Metric Space_第4张图片

你可能感兴趣的:(深度学习点云处理,深度学习,计算机视觉,人工智能)