AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)

AdaFit: Rethinking Learning-based Normal Estimation on Point Clouds (2021-ICCV)

代码地址:https://github.com/Runsong123/AdaFit.

在点云处理中,其中一个基本任务就是从点云中鲁棒地估计表面法线,这在许多实际应用中起着十分关键作用,例如表面重建、配准、分割、图元拟合、逆向工程和抓取。但由于存在噪声、点密度变化和结构缺失的问题,对点云的鲁棒且准确的表面法线估计任务仍然十分具有挑战性。

本文提出了一种用于对点云进行鲁棒法线估计的神经网络AdaFit,该网络可以处理具有噪声和密度变化的点云。现有的一些工作使用网络学习加权最小二乘曲面拟合的逐点权重来估计法线,这很难在复杂区域或包含噪声点的表面找到准确的法线。通过分析加权最小二乘曲面拟合的步骤,作者发现拟合曲面的多项式阶数很难确定,因此拟合的曲面对噪点很敏感。为了解决这些问题,作者提出了一个简单而有效的解决方案,它增加了一个额外的偏置预测层来提高法线估计的质量(PS:这里作者的工作在很多点云滤波方法中有类似的思路)。此外,为了利用来自不同邻域大小的点集,作者提出了一种新的级联尺度聚合层,以帮助网络更准确的预测逐点偏移和权重。大量实验表明,AdaFit在合成的PCPNet数据集和 真实SceneNN 数据集上都达到了SOTA。

主要贡献总结如下:

1)通过对加权表面拟合理论进行全面分析,发现了这些方法在法线估计中存在的两个关键问题。

2)通过预测偏移来调整相邻点的分布,从而实现法线估计的鲁棒性和准确性。

3)设计了一个包含CSA 层的AdaFit网络,可以同时结合邻域的小尺度和大尺度的优势,从而在多个数据集中实现性能提升。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第1张图片

图1 (a) 给定输入点云(左),输出是估计每个点的法线(右)。(b) 目前加权最小二乘曲面拟合受到欠拟合(上)、过拟合(中)或噪点(下)的严重影响,导致法线估计不准确。(c) 两种法线估计方法的误差图。第一个模型仅使用加权最小二乘曲面拟合(左),而第二个模型添加额外的偏移量来调整相邻点的分布,从而产生更准确的法线估计。(d) 使用具有权重的模型(左)和具有权重和偏移的模型(右)的法线重建表面结果。

目前法线估计最直接的方法是从邻域点上提取的特征值求法向量,然而,这种暴力的回归方式只会迫使网络记住法向量,这导致泛化能力有限。由于训练数据的稀缺,这种泛化问题在真实数据上更加明显。与直接回归不同,估计特定点的法线的更准确方法是在其相邻点上拟合几何曲面(平面或多项式曲面),然后根据估计的曲面计算法线。

基于此,作者针对当前法线估计的两个固有问题:第一个是由真实表面和拟合表面之间不一致的多项式阶数引起。不同点的拟合表面通常具有不同的多项式阶数,而现有方法总是为所有点选择一个恒定的阶数。这种不一致问题要么导致欠拟合,这会使图 1 (b) 顶部所示的邻域中的精细细节变得平滑。要么导致噪声过拟合,这会给图 1 (b) 中间所示的输出法线带来很大的方差。过拟合和欠拟合都可能导致错误的法线估计。第二个问题是加权表面拟合对噪点很敏感。通过理论分析逐点权重与最终估计法线的关系,作者发现远离拟合曲面的点上的权重对最终法线方向的影响较大。在这种情况下,由于噪声点比内点离拟合表面远得多,即使噪声点的权重很小也会严重影响估计的法线,如图 1(b)底部所示。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第2张图片

图2 第一行显示了不同点的最佳多项式阶数。第二行显示了不同多项式阶数的对应误差图。

为了解决上述两个问题,作者提出了一个简单而有效的解决方案,通过预测额外的逐点偏移来调整相邻点的分布。当预测表面的多项式阶数与预定义的多项式阶数不同时,阶数的调整为整个网络带来了更大的灵活性,可以将相邻点投影到具有预定义阶数的表面上。虽然得到的表面可能与ground truth不完全一致,但中心点的法线比直接加权表面拟合估计的要准确得多。同时,邻域中的噪点可以偏移到表面附近的位置,以便所有点到表面的距离相似。因此,与之前噪点权重对法线影响较大的加权曲面拟合相比,调整后的点贡献更均匀,从而产生了更鲁棒的法线估计。

另一方面,为了解决表面拟合中最佳邻域大小的选择问题,作者设计了一个Cascaded Scale Aggregation (CSA) 层,使用多个 CSA 层,既可以从大尺度提取特征,同时仅在小尺度区域上将表面与相邻点拟合。这样CSA 层进行特征提取既可以享受大尺度带来更多表面信息的好处,也可以享受小尺度带来更准确的法线估计结果。最终,作者设计一个名为 AdaFit 的网络来实现上述想法,该网络将查询点及其相邻点作为输入并输出查询点的法线。AdaFit 使用 CSA 层提取特征并同时预测逐点权重和偏移。为了验证所提出的方法,作者在PCPNet 数据集进行了大量实验。同时为了展示AdaFit 的泛化能力,作者还在两个真实世界的数据集,即室内 SceneNN数据集和室外 Semantic 3D数据集上对所提方法进行了评估。此外,作者还展示了 AdaFit 预测的法线在点云去噪和表面重建中的应用。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第3张图片

图3 用于法线估计的 AdaFit 网络架构。

方法核心:

1 问题描述:

给定一个点 p 和它的相邻点{pi|i=1,…,Np},我们想估计点p处的法线 np。这个法线估计问题可以通过在相邻点上拟合曲面并从拟合曲面计算法线来解决。在这里,作者采用了广泛使用的 n-jet 表面模型,该表面用多项式函数 Jn 表示:即R2→R,将坐标 (x, y) 映射到它们在切线空间中的高度 z:

331c8b1fbe2979cc67bcab12b5292016.png

其中 β是系数。为了简化符号,β表示为向量:

f34b6ffb7888763ebeb99f87bdce8380.png

同时,定义d7b7f40966e3ce40fa218da74608e03f.png

此时拟合表面的法向量表示为:

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第4张图片

为了在方程中找到更为精确的拟合表面函数。作者在每个点上预测一个逐点权重。然后,所有点通过主成分分析(PCA)转换到切线空间,并通过加权最小二乘(WLS)拟合问题求解表面系数:

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第5张图片

这里wi是逐点权重,(xi, yi, zi) 是 pi 在切线空间中的坐标。

2 偏移预测:

为了解决前面描述的两个主要问题,作者提出了一个简单而有效的解决方案。首先在每个点上预测一个额外的逐点偏移(∆xi, ∆yi, ∆zi)来调整点的分布。然后,将WLS 应用于这些偏置点从而寻找最佳平面。

41d731ee1ca40196dfcf8edac1732a59.png

由于偏移量预测的加入,设计的网络具有额外的灵活性来调整点以构建具有与预定义的多项式阶数相同拟合表面。从而大大减少了欠拟合或过拟合现象。同时,噪点可以通过网络偏移到拟合表面上,从而使生成的拟合表面对其权重不那么敏感。图 4 显示了两个示例,其中添加偏移预测对噪点显示出更强的鲁棒性,并避免了过度拟合或欠拟合。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第6张图片

图4 使用权重直接拟合曲面和使用偏移点拟合的两个示例。绿色箭头是真实的法线方向,而红色箭头表示预测的法线方向。

3 Cascaded Scale Aggregation(CAS层):

为了提取特征以进行准确的权重和偏移预测,作者提出了一个称为CSA层的新网络层。如图 5 所示,CSA 层负责从不同的邻域大小(即尺度)中提取特征。对于一个点 p,作者用一个整数 s 来定义这个点的尺度,它由一个点集 Ns 表示,该点集包括离该点最近的s个点。CSA 层采用两个尺度 (sk, sk+1) 作为输入,其中 sk+1 < sk。点 pi上特征 fk+1,i的提取结果表示为:

fe023389debaf901b8f52b0b2ed5a058.png

其中Φk和Ψk都是多层感知器(MLP),fk+1,i是点pi在sk+1尺度上的输出特征,fk,i是同一个点在尺度sk上的特征。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第7张图片

图5 CSA层的结构,它通过全局池化从大尺度中提取特征,并将大尺度的特征连接到小尺度点的特征作为输出。

CSA层使用更大尺度的特征来帮助完成当前尺度下的特征提取,而最终拟合只使用最小尺度。大尺度提供更多拟合表面的信息,而小尺度则包括表面拟合中最相关的点。因此,所提出的 CSA 层同时具有大尺度和小尺度的优势,可以实现精确的表面拟合。

4 Loss函数

为了训练网络,作者参考DeepFit工作中提出的相同的损失函数,该损失函数最小化预测法线N和ground truth法线 Ngt 之间的|Ngt×N|。同时,作者还采用了 DeepFit 中使用的邻域一致性损失和变换正则化损失。细节请参考DeepFit中的工作。

实验环节:

AdaFit 的 RMSE 和基准方法对比如表 1 所示,所有方法的 AUC 见图 6。结果表明 AdaFit 在所有设置中均优于传统方法和基于学习的方法,这证明了使用偏移量来调整点集的优势。特别是在密度变化的点云上,其他方法可能无法在稀疏区域上找到足够的点进行表面拟合,而 AdaFit 使用偏移量将点投影到相邻区域从而获得了更为鲁棒的表面拟合结果。

表1 PCPNet上各类方法RMSE的对比

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第8张图片

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第9张图片

图6 AdaFit 和其他方法的法线估计误差 AUC 曲线。X 轴为角度值,Y 轴显示给定阈值下正确估计法线的比率。

图 7 显示了 AdaFit 估计的法线效果,图 8 显示了 AdaFit 和其他对比方法在不同模型上的法线角度误差。可以看出,Lenssen等人在平坦区域上表现更好,而 DeepFit则可以更好地处理曲线区域,但对于具有尖锐边区域的法线估计不准确。相比之下, AdaFit 在所有区域和所有设置情况下(噪声或密度变化)上相对更鲁棒。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第10张图片

图7 AdaFit 在 PCPNet 数据集上估计的法线。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第11张图片

图8 PCPNet 数据集上的法线估计误差。

同时,为了测试 AdaFit 的泛化能力,作者直接在真实数据集上评估 AdaFit,包括室内 SceneNN数据集和室外 Semantic3D数据集。所有方法仅在 PCPNet 数据集上进行训练,并直接在这些数据集上进行评估。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第12张图片

图9 SceneNN 数据集上法线估计的误差图。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第13张图片

图10 Semantic 3D数据集上法线估计的结果。

同时,作者还进行了一系列的附带或不附带CSA的数据结果对比结果。

表2 PCPNet 数据集上有或没有 CSA 层的模型的法线估计RMSE结果。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第14张图片

最后,作者还展示了所做工作在泊松曲面重建和去噪方面的一些应用。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第15张图片

图11利用不同方法估计法线的泊松表面重建比较。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第16张图片

图12 点云去噪的定性结果。第一行显示去噪点云,而第二行显示相应的重建表面。

备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区

原创征稿

初衷
3D视觉工坊是基于优质原创文章的自媒体平台,创始人和合伙人致力于发布3D视觉领域最干货的文章,然而少数人的力量毕竟有限,知识盲区和领域漏洞依然存在。为了能够更好地展示领域知识,现向全体粉丝以及阅读者征稿,如果您的文章是3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、硬件选型、求职分享等方向,欢迎砸稿过来~文章内容可以为paper reading、资源总结、项目实战总结等形式,公众号将会对每一个投稿者提供相应的稿费,我们支持知识有价!

投稿方式

邮箱:[email protected] 或者加下方的小助理微信,另请注明原创投稿。

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第17张图片

▲长按加微信联系

AdaFit:一种对基于学习的点云法线估计方法的新思考(ICCV2021)_第18张图片

▲长按关注公众号

你可能感兴趣的:(算法,python,计算机视觉,机器学习,人工智能)