3DV 2022 Oral | 同济大学开源非连续区域自感知的法向量估计方法,性能远超 SoTA!

原文链接:3DV 2022 Oral | 同济大学开源非连续区域自感知的法向量估计方法,性能远超 SoTA!

同济大学机器人与人工智能实验室(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在各种需要实时性能的计算机视觉和机器人应用中的高效性。

文章仅用作学术分享,如有侵权请联系删除。

独家重磅课程官网:cvlife.net

图片

全国最大的机器人SLAM开发者社区

图片

技术交流群

图片

— 版权声明 —

本公众号原创内容版权属计算机视觉life所有;从公开渠道收集、整理及授权转载的非原创文字、图片和音视频资料,版权属原作者。如果侵权,请联系我们,会及时删除。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340