同济大学机器人与人工智能实验室(RAIL)近期发表的 3DV 2022 Oral 论文 **《SDA-SNE: Spatial Discontinuity-Aware Surface Normal Estimation via Multi-Directional Dynamic Programming》**提出一个基于多向动态规划和迭代 多项式插值的端到端法向量估计方法,性能远超现有 SoTA 算法!代码已开源!
详细信息如下:
- 项目官网:https://mias.group/SDA-SNE/
- 论文链接:https://arxiv.org/abs/2208.08667
- 代码链接:https://github.com/ryming2001/SDA-SNE
- 演示视频:https://www.bilibili.com/video/BV1fN4y1G7AC
1. 引言
目前最先进的表面法向量估计方法(SNEs)通常以端到端的方式将深度图像映射为表面3D法向量场。虽然这些法向量估计方法极大地平衡了效率和精度,但它们在空间不连续处(如物体边缘、脊)的性能仍然不能令人满意。为了解决这一问题,本文首先引入了一种全新的多向动态规划策略,通过最小化(路径)平滑度能量来自适应地确定内点(与被估点共面的三维邻域点);然后,设计了迭代多项式插值算法,精细化迭代求解深度梯度,以助于产生精度更高的表面3D法向量。本文引入的空间不连续区域自感知(SDA)深度梯度优化策略可以与任何现有的深度估法向量的SNE兼容。本文提出的SDA-SNE比其他所有SoTA的方法取得了更好的性能,尤其是在空间不连续处区域上。
本文进一步评估了SDA-SNE在不同迭代次数下的性能,结果表明它只经过少数几次迭代就能迅速收敛。这确保了它在几乎不损失精度的前提下具有较好的实时性。此外,本文对数据集加入不同程度的噪声,来验证SDA-SNE具有良好的鲁棒性和环境适应性。本文的代码、演示视频和补充材料均可以在https://mias.group/SDA-SNE/上公开获得。
表面法向量是一种信息丰富的三维视觉特征,被广泛地用于如位姿估计、目标定位、场景理解等各种计算机视觉和机器人技术应用。作为其他计算机视觉任务和机器人技术应用的一种辅助估计手段,迄今为止,表面法向量估计任务还没有被广泛、深入的研究。由于这种应用场景通常需要良好的鲁棒性和较高的实时性,表面法向量估计方法必须拥有足够的精度和计算效率。
目前,最先进的表面法向量估计方法通常选择一组三维点,并通过平面拟合、几何变换或统计分析来计算表面法线。然而,这种方法无法估计空间不连续处(如边缘和脊)的表面法向量(如图1所示),因为它们通常会在不同的空间曲面上引入相邻的三维点。Bormann等人提出了第一个边缘感知SNE,能够自适应地选择同一表面上合理的相邻三维点,因此其在边缘处的表现明显优于其他现有法向量估计算法。尽管如此,他们的方法只关注边缘处法向量估计,并且需要手动设置一个边缘感知阈值。这导致了其对不同场景和数据集的适应性较低。因此,开发一种能够处理所有类型的空间不连续性的表面法向量估计方法,以实现高鲁棒性和环境适应性,具有重要的现实意义和应用价值。
2.算法详解
上图展示了本文提出的SDA-SNE的算法原理和流程,其通过对目标点的多个方向(水平、垂直、倾斜)上的邻域点进行动态规划,筛选出最优内点集合,然后利用迭代多项式插值算法,优化表面3D法向量估计,进而达到超高精度的法向量估计值。在本节中,主要介绍多向动态规划算法、路径平滑范数、迭代多项式插值算法,三者共同完成深度梯度估计过程。
2.1 多向动态规划算法
一般地,在估计一个被测像素p的深度梯度时,只应引入与其共面的邻域像素点。首先,本文定义水平和垂直路径平滑能量函数来判决迭代过程中邻域点的传播方向,定义状态转移变量来描述下一次迭代时引入邻域点的位置。E、S分别定义如下:
其中,T为平滑能量转移方程,k代表当前迭代的次数。同时,利用深度图二阶偏导来定义前向差分算子和后向差分算子的权重η,并初始化深度梯度:
进而,初始化
中的最小值;初始化
2.2 路径平滑范数
定义路径平滑范数如下:
其中,分别为函数f(x,y)的二阶偏导。进一步,通过路径平滑范数计算状态转移变量,判断是否引入周围点来优化当前法向量估计:
2.3 迭代多项式插值算法
定义迭代多项式插值算法,对于由n个离散点{}插值所得的多项式
,其可以被扩展为如下形式:
其中,,分别为由{}和{}插值所得的多项式。进一步地,根据迭代多项式插值算法定义迭代梯度更新方程:
最后,针对多个方向的邻域点,使用动态规划方法完成深度梯度的迭代优化更新,方程为:
其中,分别代表水平、垂直、对角线上的邻域点。
3.实验结果
由于本文提出的多向DP算法主要是为了提高深度梯度估计的性能,因此它可以兼容任何深度估法向量的SNE。表格1展示了不同算法在采取和不采取本文提出的SDA优化时的平均角度误差。图5展示了不同算法间法向量估计在不连续处的差异。
此外,本文还比较了本文提出的SDA-SNE的性能关于最大迭代次数的集合。下图展示了基于CP2TV和基于3F2N的SDA-SNEs在三个不同难度数据集上获得的CAR分数。可以观察到,SDA-SNE的性能仅经过几次迭代后就达到了很好的表现。
此外,本文将SDA-SNE与所有其他SoTA SNEs进行了比较。表2给出了简单,中等,困难数据集上所有SNE的eA和eP。
进一步地,本文比较了SDA-SNE与两个SoTA深度估法向量的SNE (3F2N和CP2TV)关于随机高斯噪声的鲁棒性,如图4所示。可以看出,所有SNE的eA分数随着噪声水平的增加而单调增加,并且本文提出的SDA-SNE在不同噪声水平下优于3F2N和CP2TV。这进一步证明了本文的算法优于其他算法的鲁棒性。
4.总结
本文提出了一种高精度的不连续区域自感知表面法向量估计方法,SDA-SNE。该方法利用一种新颖的多向动态规划算法,迭代引入相邻的共面像素,计算深度图像的表面法线。为了细化每次迭代中的深度梯度,本文引入了一种新的递归多项式插值算法,同时保证其低计算复杂度。本文提出的深度梯度估计方法适用于任何深度-法向量估计方法(如3F2N和CP2TV)。为了评估本文提出的表面法向量估计方法的准确性,本文在原始数据集和加噪数据集上进行了广泛的实验。本文提出的SDA-SNE在原始3F2N数据集上的精度最高(在简单、中等和困难数据集上分别为0.68°、4.38°、8.10°),优于所有其他SoTA表面法向量估计方法。本算法对不同水平的随机高斯噪声也具有较高的鲁棒性。实验结果表明,本文提出的SDA-SNE在将多向动态规划的最大迭代次数减少到3时,也可以达到类似的性能。这确保了本文提出的SDA-SNE在各种需要实时性能的计算机视觉和机器人应用中的高效性。