PointNet++网络学习

📅 2026/7/21 8:02:30
PointNet++网络学习
1.前言学完PointNet之后觉得简单又轻松。PointNet也还行吧主要是增加2个新模块增加模型的局部特征提取能力跟图像卷积的特征层和残差层类似检测头还是和PointNet一致。新增SASet Abstraction集合抽象层模块, FPFeature Propagation特征反向传播模块还有传统机器学习算法FPS最远点下采样模块。2.核心模块2.1 FPS最远点下采样这个模块主要干两件事先点云下采样后特征同步索引点云的下采样。如下图所示输入B,3,N采样点为512个。按照FPS算法从N个点中采样512个点再从512个点附近采集满足距离条件的32个点不满32使用重复值分别得到[B,3,512], [B,3,32,512]。当输入有特征层时多一个步骤将特征层按照采样点的索引方式组合特征。如下图按照[B,3,512]下采样到[B,3,64,128]的索引方式将[B,128,512]组合成[B,128,64,128]。2.2 SASet Abstraction集合抽象层这个模块创建的并不复杂但是这是提升局部检测能力的关键其核心机制在于计算某一采样点的特征时并非孤立地依赖该点本身而是通过球查询Ball Query主动将其空间邻域内的邻近点纳入计算范畴并利用局部PointNet对邻域内所有点的特征及相对几何关系进行显式聚合。这使得网络输出的特征天然携带了丰富的局部空间上下文从而从根本上增强了对细微几何结构的感知能力。2.3 FPFeature Propagation特征反向传播以某一特征传播FP层为例输入为[B, 512, 128]即128 个采样点每个点携带512 维高层语义特征需将其反扩散至512 个密集点并保持特征维度不变输出[B, 512, 512]。具体操作对于当前层待插值的512 个目标点即编码器对应层保留的密集点坐标每个目标点独立地去上一层稀疏点集128 个采样点中搜索距离最近的 3 个邻居取这 3 个邻居对应的 512 维特征按距离的倒数加权求和距离越近贡献越大得到该目标点的插值特征重复此过程直至 512 个目标点全部完成插值最终输出形状为[B, 512, 512]即恢复了空间分辨率同时保留了高层语义信息。