作者:宁了个宁 | 来源:3D视觉工坊
在公众号「3D视觉工坊」后台,回复「原论文」可获取论文pdf和代码链接。
添加微信:dddvisiona,备注:三维重建,拉你入群。文末附行业细分群。
1.摘要
我们提出了一种从大规模、稀疏和噪声点云重建3D隐式表面的新方法。我们的方法建立在最近引入的神经核场(NKF)表示之上。它具有与NKF相似的泛化能力,同时解决了其主要限制:(a)我们可以通过使用内存高效的稀疏线性求解器的紧凑支持核函数来处理大规模场景。(b)我们通过梯度拟合求解,实现对噪声的鲁棒。(c)我们最小化训练要求,使我们能够从任何密度的定向点数据集进行学习,甚至可以将不同尺度的物体和场景混合到训练数据中。我们的方法能够在几秒钟内重建数百万个点,并以非核心方式处理非常大的场景。我们在由单个对象以及室内场景和室外场景组成的重建基准测试中达到了最先进的性能。这里也推荐「3D视觉工坊」新课程《彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进》。
2.创新点
在这项工作中,我们基于NKF的卓越泛化能力,消除了其主要限制,以实现一种实用、可扩展、快速且对噪声具有鲁棒性的基于学习重建方法。与NKF一样,我们的工作利用了学习核的泛化思想,但我们(1)开发了一种新颖的基于梯度的核公式,对噪声鲁棒,(2)使用显式的体素层次结构和使用紧凑的支持核使我们的插值问题稀疏、多尺度且能够处理大型输入,同时仍能产生高保真度的输出。其结果是可应用于室外的点云的一种基于学习的、开箱即用的重建方法。特别地,它具有以下所有属性:
它能够泛化到分布之外的输入,即使在稀疏和噪声存在的情况下也能产生高保真的重构。
它可以在多种数据集的并集上进行训练,而只需要密集的定向点作为监督,从而解锁了新的训练数据规模水平。
它可以在几秒钟内重构由数百万个点组成的点云,并以一种核心之外的方式扩展到非常大的输入。
我们通过图2以可视化的方式说明这些点背景下的其他方法。
3.算法过程
我们的方法预测具有法线的点云的三维曲面。我们将该预测曲面编码为神经核域的零水平集,即表示为学习的正定基函数的加权和的隐函数,这些基函数以输入为条件,并且其权重在前向过程中使用线性优化来计算。这些基函数在稀疏体素层次结构上得到支持,其中我们使用稀疏卷积网络从输入点云预测该稀疏体素层级结构,并依赖每个体素角处的插值特征。以下是该方法的关键步骤,图3是对其进行的图示总结。
.线性系统对应于依赖于预测特征的核产生的克gram矩阵,如上面的L和v所示,但在Eq(4)中进行了数学定义。为了提取预测的表面,我们使用学习到的核基函数的线性组合来评估体素角处的函数值,然后是对偶移动立方体。
3.1 从点中预测3D形状
给定点和法线,我们模型的向前传递以两个步骤预测一个隐式表面作为学习核的加权和:首先,我们将数据输入到一个稀疏卷积网络中,该网络在每个角落根据特征预测了一个体素层次结构(图4)。这些特征定义了一个已学习基本函数的集合,这些特征在这个层次中集中在每个体素。其次,我们通过解决线性系统来找到这些基本函数的权重,该线性系统鼓励预测的隐式场在输入点附近具有零值,并且具有与输入法线一致的梯度。可选地,我们还可以预测几何掩码,该掩码输出在空间中提取最终表面的位置,修剪掉虚假的几何形状。
预测稀疏体素层次。 给定输入点 ,输入法线 ,以及体素大小W,我们首先使用卷积主干网络来预测L个体素网格的层次,该主干网络对每个点使用串联法线 来消化点云。我们预测的每个体素网格 具有宽度 、、、的体素, 并且位于级别 的中心为 的体素包含级别为 的中心为 的某些体素。这种主干网络的 设计受Adaptive o-cnn启发。我们另外预测每个体素网格层次上的特征 和法线 。特征 用于预测特征场,该特征场通过Bezier插值将坐标x提升到d维向量,然后通过MLP进行计算。图4展示了我们的预测层次和特征的2D示意图。
,并在周围的
单环中提供支持。
稀疏神经核场层次结构。 我们将重建的形状编码为3D隐式场 :的零水平集,该场是一个层次化的神经核场,即以输入为条件,并以它们的中点 为中心的,正定核的加权组合:这里, 是层次 中第i个体素的标量系数, 是第 级的预测核,定义为
其中<.,.>为点积, 是从层次结构中提取的特征字段,并且 是贝塞尔核,它在原点周围的一个体素(在level-l)邻域中衰减为零。
从点计算三维隐式曲面。 给定我们预测的体素层次,已学习的核 和预测法线 ,我们通过找到核场的最优系数 来计算隐式曲面。我们通过精确最小化模型前向过程中的以下损失来找到这些系数(为简洁起见,省略了 对 、 的条件):其中L'≤L是层次结构的超参数。通过最大限度地减少这种损失,我们希望我们的神经核场 具有与体素中心(因此表面周围的区域)处的法线一致的梯度,并且在所有输入点 处具有接近零的标量值。由于 在参数 中是线性的,我们通过求解线性系统来找到最佳系数 :
其中n是叠加成单个向量的被预测法线向量 , 是系数 的矢量,并且分别是在定义法线的体素中心处的gram矩阵和gram矩阵的偏导数。
我们注意到,由于用具有紧支集的进行调制,线性系统(4)是稀疏的,并且由于该系统是通过构造而正定的,因为它是一个Gram矩阵。因此,(4)可以在GPU上非常有效地解决。
掩蔽模块。 预测的神经核场 是在整个体素层次上定义的,但在远离表面的粗略级别上,它可能包含不需要的几何测量。为了将这些几何体从预测曲面中丢弃,我们在主干中添加了一个额外的分支,如下所示:,,它确定是应该修剪点 还是保留点 。分支源于骨干网络的直接特征,由几个线性层组成,ReLU激活后是sigmoid函数。当我们提取最终曲面时,我们只考虑 的区域中的顶点。
3.2.监督
为了训练我们的模型,我们需要对 , 和 ???。这里, 和分别是噪声输入点和密集监督点, 和是每个输入和监督点(即从其获取每个点的3D空间中的位置)的传感器原点。我们还通过将平面拟合到局部邻域中的点,并将法线与从点到传感器的方向对齐,来计算输入和监督法线、。我们注意到,我们的训练要求对训练的形状没有限制。例如,可以使用单个激光雷达帧作为输入,使用场景的累积激光雷达扫描作为监督,同时使用合成对象的噪声扫描作为输入,并使用同一对象的密集无噪声扫描作为监督。
为了定义用于监督我们的模型的损失项,我们首先定义了密集点周围的两个空间区域
:来自距离小于等于的点 :位于中包含的区域内并且其传感器位于的点。
然后,给定预测的神经核场 ,我们通过以下损失函数进行反向传播:其中tsdf(x, ) 是利用最近邻方法从计算得出的真实截断带符号距离
这里,确保隐式函数在真实表面附近为零,确保隐式场在表面附近经历符号变化,确保预测隐式函数的梯度与密度法线一致,确保远离表面处没有几何结构,而则作为正则项,鼓励预测隐式表面具有最小面积。如果没有基于传感器的信息,则省略后两种损失。
我们还计算了结构预测和掩蔽损失,我们在附录中进行了描述。我们使用梯度下降,通过所有这些损失函数的总和反向传播,以端到端的方式训练我们的模型。
4.实验
4.1.准确性:物体级重建
对于物体级重建,采用ShapeNet数据集、ABC数据集、Thingi10K数据集进行训练和测试,比较结果定量地列在表1和表2中,并在图5和图6中进行了可视化展示。我们的模型在所有数据集上都达到了最先进的性能。我们的基线模型NKF在无噪声设置下表现良好,但随着噪声的增加,由于过度依赖原始输入法线,性能会下降。另一方面,SAP和NGSolver在噪声下更加鲁棒,但由于表示能力不足,反映在 上的拟合紧密程度高于我们。我们的性能增益主要基于基于梯度的能量拟合公式,以及从所学习核中出现的自然归纳偏差。
表1:ABC/Thingi10K[36,79]比较。是被乘以。σ是加到传感器深度上的高斯噪声,L是最大盒长。除非指定,否则使用10次扫描来累积点云。
表2:ShapeNet[6]对比。'N.'表示是否法线作为输入。是被乘以。
4.2.可扩展性:户外驾驶场景
因为缺乏具有真实几何的大规模现实世界数据集,NKSR对大规模数据集的适用性使用合成CARLA[17]数据集进行了演示。我们将我们的结果与TSDF-Fusion、SPSR和基于学习的POCO进行了比较。对于后两个基线,我们使用与我们相同的体素尺寸W=10cm,对于TSDF-Fusion,我们发现有必要将W增加到30cm以达到体面的表面完整性。结果如表3所示,并在图7中进行了可视化。我们计算单面反映重建精度(Acc.)和完整性(Comp.)的倒角距离。我们还报告了每种方法在数据集上的平均运行时间。在此设置中,输入点的平均值/最小值/最大值数分别为490k/290k/820k。与我们的设置相比,SPSR对输入中的噪声和稀疏性相当敏感,留下凹凸不平和不完整的几何形状。虽然POCO可以达到类似的完备性值,但拟合曲面不能忠实地尊重输入。较长的运行时间(比我们的慢161倍)也阻碍了POCO的实际应用。
表3:CARLA[17]对比。为Acc.和Comp.的平均值(单位为cm。越小越好。)
4.3.跨域和密度的泛化
跨域。 我们通过将模型直接应用于ShapeNet和合成房间数据集(Synth.Rooms)[49]来比较我们的方法与其他方法的泛化能力,即ScanNet[12]和进行了拆分的Matterport3D的测试集。对于这两个数据集,我们都采样10K个点作为输入,并对尺度进行归一化以大致匹配训练集。如图8和表4所示的比较表明,我们的方法的泛化性比基线方法明显更好,其中ShapeNet训练集的准确性最高,这可能是由于其多样性和类似的几何分布。这里也推荐「3D视觉工坊」新课程《彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进》。
表4:房间级数据集[12,5]比较。乘以。
跨密度。 我们通过在CARLA数据集中('Novel'子集)的固定行驶距离内仅保留一个LiDAR帧扫描来测试我们模型在稀疏输入下的鲁棒性。结果在图10和表5中显示。在极稀疏的水平下,我们的方法仍然能够重建完整的几何形状(例如地面),而基准方法开始退化。
表5:不同输入密度下的性能比较。这里显示了F-Score↑指标。
4.4.消融实验
我们在不同特征维数d和不同体素大小W下运行我们的方法进行核计算,结果如图11所示。在增加特征维度有助于达到稍好的性能,体素大小的影响更为突出。我们尝试通过将设置为0('w/o Hier.'),或删除基于梯度的矩阵('w/o Grad.')来从线性求解器中删除层次结构。这两种设置都会导致性能下降,这显示了我们设计选择的有效性。
5.总结
本文提出了一种基于神经核域表示的精确、可扩展的曲面重建算法NKSR。我们通过大量的实验表明,我们的方法达到了最先进的质量和效率,同时对未见过的数据有很好的泛化。我们相信我们的方法进一步推动了3D重建领域的边界,并使基于深度学习的表面重建更加实用于一般用途。对于未来的工作,我们将尝试使用更具表现力的核模型进一步提高重建质量,并减少内存占用,以允许更大规模的重建。
—END—
高效学习3D视觉三部曲
第一步 加入行业交流群,保持技术的先进性
目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。[三维重建方向]NeRF、colmap、OpenMVS等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。
第二步 加入知识星球,问题及时得到解答
3.1 「3D视觉从入门到精通」技术星球
针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」
学习3D视觉核心技术,扫描查看,3天内无条件退款
3.2 3D视觉岗求职星球
本星球:3D视觉岗求职星球 依托于公众号「3D视觉工坊」和「计算机视觉工坊」、「3DCV」,旨在发布3D视觉项目、3D视觉产品、3D视觉算法招聘信息,具体内容主要包括:
-
收集汇总并发布3D视觉领域优秀企业的最新招聘信息。
-
发布项目需求,包括2D、3D视觉、深度学习、VSLAM,自动驾驶、三维重建、结构光、机械臂位姿估计与抓取、光场重建、无人机、AR/VR等。
-
分享3D视觉算法岗的秋招、春招准备攻略,心得体会,内推机会、实习机会等,涉及计算机视觉、SLAM、深度学习、自动驾驶、大数据等方向。
-
星球内含有多家企业HR及猎头提供就业机会。群主和嘉宾既有21届/22届/23届参与招聘拿到算法offer(含有海康威视、阿里、美团、华为等大厂offer)。
-
发布3D视觉行业新科技产品,触及行业新动向。
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行
如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com
科研论文写作:
[1]国内首个面向三维视觉的科研方法与学术论文写作教程
基础课程:
[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶
[2]面向三维视觉的Linux嵌入式系统教程[理论+代码+实战]
[3]如何学习相机模型与标定?(代码+实战)
[4]ROS2从入门到精通:理论与实战
[5]彻底理解dToF雷达系统设计[理论+代码+实战]
工业3D视觉方向课程:
[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]
[2]保姆级线结构光(单目&双目)三维重建系统教程
[3]机械臂抓取从入门到实战课程(理论+源码)
[4]三维点云处理:算法与实战汇总
[5]彻底搞懂基于Open3D的点云处理教程!
[6]3D视觉缺陷检测教程:理论与实战!
SLAM方向课程:
[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战
[2]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战
[3](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化
[4]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析
[5]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)
[6](第二期)ORB-SLAM3理论讲解与代码精析
视觉三维重建:
[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
自动驾驶方向课程:
[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)
[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程
[3]单目深度估计方法:算法梳理与代码实现
[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)
无人机:
[1] 零基础入门四旋翼建模与控制(MATLAB仿真)[理论+实战]
最后
1、3D视觉文章投稿作者招募
2、3D视觉课程(自动驾驶、SLAM和工业3D视觉)主讲老师招募
3、顶会论文分享与3D视觉传感器行业直播邀请