(论文速读)IterativePFN:让点云去噪真正学会迭代

发布时间:2026/11/6 6:32:55
(论文速读)IterativePFN:让点云去噪真正学会迭代

论文题目:IterativePFN: True Iterative Point Cloud Filtering(IterativePFN:真正的迭代式点云滤波)

会议:CVPR 2023

摘要:点云质量常受到采集噪声影响,因此去噪是三维视觉中的基础任务。现有学习方法通常训练网络预测滤波位移,将噪声点直接移动到干净表面;在高噪声情况下,方法会在测试阶段反复滤波,但点向干净表面的收敛速度仍有限。本文提出 IterativePFN(迭代式点云滤波网络),通过多个 IterationModule 在单个网络内部显式建模迭代滤波过程,并使用一种新的损失函数,在每个迭代阶段采用自适应真值目标,学习中间滤波结果之间的关系,从而加快收敛。实验表明,该方法优于多种现有方法。

源码:https://github.com/ddsediri/IterativePFN


一、研究背景与核心问题

点云由无序的三维点构成,广泛用于机器人、自动驾驶和三维重建。传感器精度、环境因素等会引入噪声,影响法向量估计、表面重建和渲染。传统方法常依赖局部曲面、法向量或邻域信息;重采样方法则可能损失尖锐边缘和几何细节。学习方法虽然可以预测点的滤波位移,但很多方法只在测试时反复执行滤波,训练阶段没有显式学习各次迭代之间的关系。

问题在于,每次滤波后点云的残余噪声都会改变。如果训练时总要求网络直接把当前点推到干净表面,就忽略了不同迭代阶段的状态差异;ScoreDenoise 等方法也需要多次测试时迭代,收敛效率仍有提升空间。本文关注的核心问题是:能否让网络在训练阶段就学会逐步降低噪声,而不是只学习一次位移预测?

论文 Figure 1:ScoreDenoise 不同测试迭代次数与 IterativePFN 的点到干净表面距离分布对比(Casting,50K points,2.5% Gaussian noise)。

Figure 1 比较了 ScoreDenoise 在测试阶段迭代 1、4、8、24 次的结果,以及由 4 个 IterationModule 构成的 IterativePFN。作者借此说明,将迭代过程纳入训练,有助于让滤波点更快地靠近干净表面。论文的思路包括两点:网络内部串联多个迭代模块;损失函数为不同阶段设置噪声逐渐减小的目标。

二、方法整体框架:把多步滤波放进一个网络

论文 Figure 2:IterativePFN 整体架构与单个 IterationModule 的编码器—解码器结构。

IterativePFN 由多个 IterationModule 串联组成。每个模块输入一个局部点云 patch,利用改进的 Dynamic EdgeConv 提取几何特征,再通过由 4 个全连接层组成的解码器预测 patch 内各点的位移。模块输出作为下一模块的输入。
图中将 patch 中的点视为图顶点,每个顶点连接其 32 个近邻,以学习局部几何关系。与只滤波 patch 中心点的方法不同,IterativePFN 一次处理 patch 中的多个点。点的位置更新为当前点位置加上预测位移,即,其中,是上一阶段的点位置,是第个模块预测的位移,更新后的位置将作为下一阶段的输入。作者主要采用 4 个 IterationModule,让一次网络前向过程包含 4 次内部迭代,而不是在测试时反复调用一个单步网络。

论文 Figure 3:Casting 形状、50K 点、2.5% 高斯噪声条件下,PCN、ScoreDenoise 与 IterativePFN 的点到干净表面距离分布。

在这一设置下,论文报告 PCN、ScoreDenoise 和 IterativePFN 的平均距离分别为 0.014、0.012 和 0.007(以包围球半径为相对尺度)。这说明该实验中 IterativePFN 的滤波点整体更接近干净表面,但结论应限定在论文所测试的形状和噪声条件内。

三、核心创新:自适应真值目标与迭代损失

普通位移预测方法通常要求网络直接把噪声点移到干净表面。IterativePFN 则让中间模块先处理较低、但尚未完全消除的噪声,再由后续模块继续修正。

论文 Figure 4:在中间滤波迭代中使用自适应真值目标,逐步引导结果收敛到干净表面。

设干净 patch 为 Y,第阶段的目标为,其中,表示该阶段目标所对应的噪声尺度。噪声尺度逐步降低,满足,因此最后阶段的目标就是干净 patch。直观地说,前面的模块先向噪声更低的目标靠近,后面的模块再继续去噪。

网络预测的位移记为,作者根据当前点在阶段目标 patch 中的最近邻位置构造参考位移,并使用二范数平方误差监督:

其中,是与点在 patch 中的位置有关的权重;表示当前点指向相应目标 patch 最近邻点的位移。各阶段分别计算损失后再累加,使网络同时学习合理的位移和逐步降低噪声的过程。

作者还比较了固定目标损失:它在每个阶段都使用干净 patch Y;自适应损失则使用噪声逐步减小的。两者的关键区别是每一步应该向哪个噪声水平的目标靠近,消融实验将验证这一选择。

四、局部 patch 构建与融合

推理时,IterativePFN 使用最远点采样(Farthest Point Sampling,FPS)选择参考点,再围绕参考点构建局部 patch。论文默认使用 1000 个近邻点,并为每个点连接 32 个近邻;实验也测试了将 patch 大小减至 100 的设置。

论文 Figure 5:通过最远点采样构建近邻 patch,以及 patch 之间可能出现的重叠区域。

不同 patch 可能覆盖同一个点。靠近 patch 边界的点,其邻域往往不完整,预测质量可能低于中心区域。为融合重叠区域,作者提出通用的 patch stitching 方法:根据点与参考中心的距离设置高斯权重,越靠近中心权重越高,再融合多次预测;权重支持半径设为 patch 半径的三分之一。该方法不依赖额外的自注意力模块,并支持一次滤波多个点。

推理流程:带噪点云 → FPS 选取参考点 → 构建局部 patch 与近邻图 → 多个 IterationModule 逐步滤波 → 高斯权重融合重叠区域 → 输出点云。

五、实验结果与消融分析

5.1 实验设置

合成实验采用 PUNet 数据集:从 40 个训练网格中采样 10K、30K、50K 点云,得到 120 个训练样本,并添加相当于包围球半径 0.5%–2% 的高斯噪声。测试使用 20 个网格,在 10K、50K 分辨率下测试 1%、2%、2.5% 噪声;其中 2.5% 高于训练噪声范围,可用于观察泛化能力。指标为 Chamfer Distance(CD)和 Point2Mesh distance(P2M),均越低越好,表中数值乘以。
模型使用 Adam 训练 100 个 epoch,学习率为。RueMadame 真实扫描数据缺少干净真值,因而只进行定性比较。

5.2 合成数据上的主实验

论文 Table 1:PUNet 合成数据集上,不同方法在 10K/50K 分辨率及多种噪声水平下的 CD、P2M 对比。

Table 1 中,IterativePFN 在列出的 10K、50K 分辨率以及 1%、2%、2.5% 噪声组合下,均取得最低的 CD 和 P2M。例如,10K 点、2.5% 噪声下 CD/P2M 为 33.52/10.45;50K 点、相同噪声水平下为 10.15/5.88。
即使测试噪声高于训练时的最高水平,结果仍有优势,支持自适应目标和内部迭代有助于处理更高噪声的判断,但不能据此推断任意真实噪声下都必然领先。

论文 Figure 6:50K 点、2% 高斯噪声下,Camel、Casting、Cow 和 Fandisk 形状的逐点 P2M 距离可视化。

Figure 6 以颜色展示点到参考表面的距离,补充了 Table 1 的定量结果,也便于观察形状轮廓和复杂几何区域是否出现明显误差。

5.3 真实扫描数据

论文 Figure 7:RueMadame 真实扫描数据中两个场景的滤波结果;绿色箭头标记效果较好的区域,红色箭头标记效果不理想的区域。

RueMadame 的可视化结果显示,IterativePFN 能较稳定地保留路牌、车辆引擎盖等结构;PDFlow 和 ScoreDenoise 留下较明显的离群噪声,Pointfilter 则在部分区域扭曲原有形状。真实场景去噪不仅要降低噪声,也要避免损伤几何细节。

论文 Table 2:Kinect v1 与 Kinect v2 真实扫描数据集上的 CD、P2M 定量对比。

将 patch 从 1000 点减至 100 点后,IterativePFN 的 CD 从 14.07 降至 13.20(Kinect v1),从 19.68 降至 18.69(Kinect v2)。
P2M 也有所改善,但并非两个数据集上的最优值:Pointfilter 的 P2M 分别为 7.91 和 10.29,低于 IterativePFN 的 8.43 和 10.92。
因此,合成数据上的全面领先不能直接等同于真实扫描数据上所有指标都领先;
patch 大小和数据分布都会影响效果。

5.4 消融实验:为什么选择 4 个模块?

论文 Table 3:不同 IterationModule 数量、DPFN 对照结构,以及自适应/固定目标损失的消融结果。

Table 3 显示,模块数量并非越多越好。8 个模块在 1% 和 2% 噪声下误差较低,但在未见的 2.5% 噪声下,4 个模块更好:CD/P2M 分别为 33.52/10.45,而 8 个模块为 33.88/10.78。作者认为,更多模块可能让网络更专注于训练中出现的噪声尺度,影响高噪声泛化。

模块数量增加也会提高显存开销。论文报告 1、2、4、8、12 个模块分别占用 3.9GB、7.6GB、15GB、29.5GB 和 44.1GB,因此选择 4 个模块作为效果与资源的折中。
参数量同为 3.2M、但仅含一个 IterationModule 的 DPFN 对照网络在高噪声下表现更差,说明提升不只是参数量增加带来的。固定目标在 2.5% 噪声下为 34.17/10.87,也高于自适应目标 $L_a$ 的 33.52/10.45,支持逐步降低目标噪声的设计。

六、总结与思考

IterativePFN 的核心不是简单堆叠编码器—解码器,而是让网络结构和训练目标共同模拟迭代去噪:前一模块的输出成为后一模块的输入,每一阶段的监督目标也逐渐降低噪声水平。模型因此学习“先降低一部分噪声,再继续修正”,而不是把全部去噪压力放在单次位移预测上。

论文的合成实验和消融结果支持这一思路,但作者也指出,自适应目标依赖于训练时能够构造已知分布、已知尺度的噪声,例如不同尺度的高斯噪声。真实传感器噪声往往更复杂,如何构造更贴近真实场景的训练噪声仍值得研究;作者还提出将该架构扩展到点云上采样等任务。从工程角度看,patch 大小、重叠区域融合和目标噪声设定都会影响结果。本文最值得借鉴的观点是:**当任务本身包含连续的状态变化时,训练过程也应显式学习中间状态及其变化,而不只是追求一次预测的准确性。