在每一层,一组点集被处理和抽象,以生成元素更少的新集合。集合抽象层由三个关键层组成:采样层、分组层和PointNet层。 采样层:从输入点中选择点集,点集中的点定义了局部区域的质心。 分组层:通过寻找质心周围的“邻域”点构建局部区域集。 PointNet层:使用一个微型PointNet编码局部区域模式为特征向量。 集合抽象层次...
3.FP(上采样层):上采样层基于采集的点云特征进行物体的分割. 下面详细结合代码进行不同结构的说明: 首先是Set Abstraction(SAmodules),这其中一共包含三个子部分.(Sampling layer, Grouping layer and Pointnet layer) Sampling layer: 主要是针对输入点进行采样,在这些点中选出若干个中心点(采集方法代码中采用的...
为了实现这一目标,我们提出了密度自适应PointNet层(图3),当输入采样密度发生变化时,它学习组合来自不同尺度区域的特征。我们将具有密度自适应PointNet层的分层网络称为PointNet++。 之前在第3.2节中,每个抽象层次都包含单个尺度的分组和特征提取。在PointNet++中,每个抽象层次提取多个尺度的局部模式,并根据局部点密度进行...
PointNet++的核⼼操作是SA层和FP层,这⾥就来梳理⼀下SA层和FP层都⼲了什么。 SA层 参数:降采样点的数量(npoints),邻域半径(radii),邻域内点的数量(nsample),MLP 输⼊:xyz,features 计算过程如下: new_xyz_idx = FPS(xyz, npoints) #使⽤FPS选出降采样点的下标,记作new_xyz_idx new_xyz =...
解决的问题:点集划分和局部特征学习。划分需结构相同,类似CNN中卷积块,每个区域大小及点数一致。网络结构:包含SAmodules、FC、FP。SAmodules进行迭代采样,FC进行分类,FP进行分割。代码中详细解析了SAmodules的三个子部分。SAmodules结构:1. Sampling layer:通过FPS方法选择中心点,手动设置个数。2. ...
我们将在下一节中介绍一个分层的特征学习框架来解决这一局限性。 3.2层次点集特征学习 当PointNet使用单个最大池操作来聚集整个点集时,我们的新体系结构构建一个点的分层分组,并沿着分层逐步抽象越来越大的局部区域。 我们的层次结构由多个集合抽象层组成(图2)。在每个层次上,处理和抽象一组点以产生具有较少元素的...
pointnet++网络的建筑物室内点云分割方法,包括如下步骤,输入三维建筑物室内点云数据,采用统计异常值移除去除噪点;将滤波后的三维建筑物室内点云数据进行编码;采用反距离加权差值的分层特征传播算法,对点云中每个点的k个临近点按照逆距离加权进行差值处理,将差值得到的特征通过skip-link 连接,并引入droput层防止过拟合,...
虽然PointNet(vanilla)[20]具有最好的时间效率,但是我们没有密度自适应层的模型以相当快的速度实现了最小的模型大小。值得注意的是,我们的MSG,虽然在非均匀采样数据中具有良好的性能,但由于多尺度区域特征提取,它的成本是SSG版本的2倍。与MSG相比,MRG更有效,因为它使用跨层的区域。
首先来看采样层,为了从稠密的点云中抽取出一些相对较为重要的中心点,采用FPS(farthest point sampling)最远点采样法,这些点并不一定具有语义信息。当然也可以随机采样;然后是分组层,在上一层提取出的中心点的某个范围内寻找最近个k近邻点组成一个group;特征提取层是将这k个点通过小型pointnet网络进行卷积和pooling...
PointNetFeaturePropagation函数是FP层的具体实现,可以看到代码中使用了k近邻法(KNN,默认p=2,k=3)来反向加权求平均实现上采样特征传播。 3.4 SA层代码 下图展示了使用了MSG方法的SA层代码。 3.5 采样和分组代码 4. 总结 本文详细阐述了PointNet++的设计思路、网络结构以及对部分代码进行了解析。PointNet系列是近些年来...