我自己的原文哦~ https://blog.51cto.com/whaosoft/12538137
#SIF3D
通过两种创新的注意力机制——三元意图感知注意力(TIA)和场景语义一致性感知注意力(SCA)——来识别场景中的显著点云,并辅助运动轨迹和姿态的预测。
设想一下,你在家中准备起身,前往橱柜取东西。一个集成 SIF3D 技术的智能家居系统,已经预测出你的行动路线(路线通畅,避开桌椅障碍物)。当你接近橱柜时,系统已经理解了你的意图,柜门在你达到之前就已自动打开,无需手动操作。
视频中,左边为 3D 场景和预测结果(红色人体表示真实序列,蓝色人体表示预测结果)中间为运动序列最有可能和场景发生交互的点云,右边为每一个人体 pose 最有可能和场景发生交互的点云(红交互可能性大,蓝色交互可能性小)
SIF3D(Sense-Informed Forcasting of 3D human motion),即场景感知运动预测技术,由小红书创作发布团队提出,目前已被计算机视觉顶会 CVPR2024 收录。SIF3D 的先进之处在于其多模态感知能力。它结合人过去的动作序列、真实 3D 场景信息以及人的视线三个方面,预测未来的人体运动。
这项技术特别擅长于理解和预测在复杂环境中的动作,如避开障碍物,这对于自动驾驶、机器人导航、游戏开发和虚拟现实等领域至关重要。比如使得汽车能够更准确地提前预测马路上的行人、车辆未来可能的运动趋势,或是应用于医疗康复诊疗,提前对病人可能发生的不安全运动行为进行预警等。
SIF3D 的工作原理是:通过两种创新的注意力机制——三元意图感知注意力(TIA)和场景语义一致性感知注意力(SCA)——来识别场景中的显著点云,并辅助运动轨迹和姿态的预测。 TIA 专注于预测人的意图和全局动作轨迹,而 SCA 则专注于局部场景细节,确保每一帧的姿态预测都与环境保持连贯性。
实验结果表明,SIF3D 在多个大规模场景感知运动预测的数据集上的卓越性能(SOTA),预测时长突破目前算法边界,达到 5 秒时长。它能够有效地识别场景中那些可能与人的运动相关联、相耦合的部分(显著性区域),并通过场景中显著性区域的特征辅助运动预测。这一开创性的方法,不仅推动了人体运动预测技术的发展,也为未来在更多场景下应用场景感知人体运动提供了新的方向和可能性。
01 背景
人体动作预测(Human Motion Forecasting),即根据观测到的人体运动序列预测其将来的动作,这是机器智能(MI)、自动驾驶汽车(AD)和人机协作(HRI)等领域的关键技术。在现实生活中,人类的动作是与周围环境紧密相连的,比如我们会因为障碍物而改变行走路径。然而在现有的运动预测研究中,场景信息却常常被忽略,大大制约了技术在真实 3D 场景下的应用。
在机器人技术中,场景信息通常被表达为 3D 点云。现有的场景感知运动预测的方法,通常会将整个 3D 点云进行编码,而后通过全局嵌入或索引、插值等手段将其作为条件引入至运动预测任务当中。尽管该方法可行,但我们注意到:并非点云中的所有信息都与运动预测任务同等相关,相反,往往只有小部分的场景点云会对我们当前序列的运动预测起到作用,我们称其为显著点云(salient point clouds)。
此外,人眼的凝视点(与场景的交汇点)也是一种能够体现人的运动意图的表现。我们期望通过联合分析 3D 场景和人眼凝视点,可以捕捉人类向特定位置的运动行为,从而更准确地预测其运动序列。
3D 场景(左),传统运动预测(中)与本文提出的场景感知预测(右)的对比
为了解决上述挑战,我们提出了一种全新的多模态场景感知的运动预测方法 SIF3D(Multimodal Sense-Informed Forecasting of 3D Human Motions)。SIF3D 主要包含以下两个核心组件:
- 三元意图感知注意力机制(ternary intention-aware attention,TIA):通过观测序列、场景点云、人眼凝视的三元多模态联合分析,预测人的意图并区分全局显著点云(global salient points),用于辅助人体运动轨迹预测
- 场景语义一致性感知注意力机制(semantic cohenrence-aware attention,SCA):逐帧分析运动序列与场景语义的连贯性与一致性,区别得到逐帧的局部显著点云(local salient points),用于辅助人体姿态预测
通过在新引入的大型数据集上的广泛实验,SIF3D 在真实场景下的 3D 人体运动预测方面取得了最优越的性能,证明了其捕获显著点云的准确性,以及通过显著点云辅助运动预测的有效性。此外,这些发现同样为将来基于真实场景的高保真运动预测、人机交互等领域的应用提供了新的视角和可能性。
02 方法
SIF3D 算法流程图
如图所示,SIF3D 主要涉及以下三个核心步骤:
- Encoding: 通过点云网络(PointNet)和 Transformer 分别提取 3D 场景的空间信息与运动序列的时间、空间信息,并将其编码为高维隐藏特征;
- Crossmodal Attention: 通过提出的三元意图感知注意力机制(TIA)与场景语义一致性感知注意力机制(SCA)提取 3D 场景中的全局与局部显著点云,并通过跨模态注意力机制分别辅助运动轨迹与姿态的预测;
- Decoding: 融合 TIA 与 SCA 预测的轨迹与姿态,并使用真伪判别器进一步监督预测序列的保真度。
2.1 多模态编码(Multimodal Encoding)
由于 SIF3D 使用到了三种模态的信息(运动序列、3D 场景点云、人眼凝视点),在对它们进行联合分析之前,我们首先需要将运动序列与 3D 场景点云编码并映射至同一空间,而人眼凝视点则作为索引,用于获取凝视点的 3D 场景特征。具体操作如下:
2.2 三元意图感知注意力机制(TIA)
三元意图感知注意力机制(ternary intention-aware attention,TIA)通过分析观测序列与场景之间的关系,同时基于“人们大多数时候总是会走向看着的地方“这一先验来分析这三种模态间的关联,并通过以下步骤辅助路径规划:
a. 运动特征编码与聚合: 短期内,人的意图在运动序列中具有唯一性且不会随着运动的持续进行而发生变化,因此我们首先对运动特征进行进一步编码,并将整个序列的运动特征聚合为一个向量:
b. 全局显著性点云识别: 将聚合得到的运动特征与场景特征进行跨模态注意力分析,寻找出场景中那些响应当前观测序列的点云,作为全局显著点云,我们仅会利用全局显著点云用于提取跨模态意图特征,并用于辅助轨迹预测:
d. 全局特征特征融合: 通过三元多模态感知,我们试图从多个维度来分析人的运动意图,最后我们通过标准的多层感知机(MLP)来融合这些全局特征,作为 TIA 的输出:
2.3 场景语义一致性感知注意力机制(SCA)
不同于 TIA 关注全局特征与人的运动意图,场景语义一致性感知注意力机制(SCA)则更加关注每一帧的局部显著性场景细节,用来更好地指导每一帧局部姿态的预测:
a. 局部点云显著度: 我们首先对运动特征进一步编码,得到每一帧的姿态特征,并将它们分别与场景特征进行跨模态注意力分析,来找到场景中响应每一帧运动姿态的局部显著性点云。
b. 空间显著度偏置: 由于 SCA 会更关注场景中的一些可能影响人体姿态的细粒度信息,且正对着人的朝向且距离更近的场景点往往更可能会影响人体姿态,我们基于每个场景点相对于每一帧中人体的距离与方向额外对于局部点云显著性引入了一项空间显著度偏置 :
c. 局部特征特征融合: 结合了局部点云显著度与空间显著度偏置,我们同样只利用局部显著性点云来辅助姿态预测:
而后利用多层感知机(MLP)来融合局部特征,作为 SCA 的输出:
2.4 运动序列解码与生成
预测未来的运动序列需要同时考虑轨迹和姿势。TIA 通过识别全局显著点云分析了人的意图,而 SCA 则识别局部点云以维持每一帧人体与环境的连贯性与一致性,因此我们利用 TIA 的特征预测轨迹,而用 SCA 的特征预测人体姿态:
由于分别预测得到的轨迹与姿态可能存在不一致,因此我们利用一个基于图网络(GCN)的解码器来融合它们并得到最终结果:
03 实验
3.1 实验设置
本文基于 GIMO 与 GTA-1M 两个近期发布的包含 3D 场景点云的人体运动数据集,将 SIF3D 与包含经典方法、最新最优方法在内的 4 个方法进行了对比:基于图网络的 LTD、SPGSN,基于 Transformer 的 AuxFormer,以及考虑了场景信息的 BiFu。
本文从轨迹与姿态两个维度对 SIF3D 与对比方法进行了评估,轨迹评估计算了预测轨迹与真实轨迹之间的偏差,姿态评估了则计算了每个关节点的位置与真实位置的平均偏差。
对于所有的指标我们都从所有的预测帧与最终的预测帧两个方面来评估,包括:
- Traj-path: 衡量了整个预测序列中平均的轨迹偏差;
- Traj-dest: 衡量了最终预测帧的轨迹偏差;
- MPJPE-path: 衡量了整个预测序列中的平均姿态关节点偏差;
- MPJPE-dest: 衡量了最终预测帧的平均姿态关节点偏差。
3.2 实验结果
我们首先统计了引入不同多模态信息时(3D 场景点云 Scene,人眼凝视点 Gaze),各个方法的预测性能(表 1),而后详细展开统计了不同场景以及不同时间点下各个方法的预测性能(表 2)
表 1:考虑了不同模态时(3D 场景点云 Scene,人眼凝视点 Gaze)各个方法的预测结果
表 2:不同场景以及不同时间点下各个方法的详细预测性能
3.3 可视化对比结果
可视化结果提供了一种更为直观的方法将 SIF3D 与传统方法进行了对比。
通过识别场景中的全局与局部显著点云,我们可以更高效地利用场景信息辅助运动预测,得到更为精准与真实的预测序列。我们可以清楚地看到,SIF3D 不但能更好地识别场景元素,还能感知人的意图,其预测结果不但更接近真实序列,也具有更高的保真度。
3.4 消融实验
消融实验(Ablation Study)旨在评价 SIF3D 中不同组件的重要度以及对最终预测性能的影响,即通过移除或修改某些部分来评估模型性能的变化。主要包括:
a. 移除主要组件: 包括 TIA,SCA,运动解码器,真伪判别器与场景编码器 PointNet++。它们是构成 SIF3D 最主要的五个部件,通过比较移除这些组件前后的预测误差,可以评估它们在提高预测准确性方面的重要性,如下表所示。可以看出本文提出的组件均不同程度地有主提高最终的预测效果,尤其是意图注意力模组和场景编码模块。
b. 调整场景点云大小:
原始的 LiDAR 传感器采样得到的场景点云可能包含 50 万以上的顶点数量,为了更高效地利用点云数据,我们对其进行了下采样。然而过度下采样可能影响点云对于场景的表征能力,因此我们需要权衡下采样的点云大小,如下表所示。本文实验采用了 4096 作为场景点云的大小。可以看到,在点云数量为4096时,算法在内存开销、推理速度、最终性能等方面取得了最佳平衡。
c. TIA 中的运动特征聚合方法:
在 TIA 中,我们将编码得到的运动特征聚合为一个向量用于计算与场景点云间的全局显著性,这里我们研究了不同聚合方式对于性能的影响,包括:
Last,采用最后一帧的运动特征;Mean,采用所有帧运动特征的均值;Max,采用帧间最大池化;Conv,利用三层卷积网络进行下采样;Transformer,引入单层 Transformer 解码器用于聚合。结果如下表所示。可以看出,使用运动特征的最后一个时间维度的特征作为计算场景相关性的key-query取得了最佳的性能,这也意味着:
(1)最后一帧的运动特征可能包含了之前所有时间的上下文信息;
(2)最后时刻的运动信息对于人类未来轨迹起到的作用最大。
04 结语
在本研究中,我们提出了一个开创性的多模态感知信息框架 SIF3D,用于在真实世界的 3D 场景中进行人体运动预测。通过结合外部客观的 3D 场景点云和主观的人眼凝视点,SIF3D 能够通过 TIA 与 SCA 注意力机制感知场景和理解人类意图的。在 GIMO 与 GTA-1M 两个数据集中,SIF3D 均取得了目前最佳的预测性能。与此同时,我们的发现强调了 3D 场景与人眼凝视点在场景感知的运动预测中的重要性。此外,我们认为,在现实世界的 3D 场景中深入研究高保真度的不同人体运动生成任务,有望成为未来探索的一条引人注目的途径。
项目地址: https://sites.google.com/view/cvpr2024sif3d
#SAMPro3D
论文提出了一种创新的3D室内场景分割方法,这在增强现实、机器人技术等领域是一个关键的任务。该任务的核心是从多种3D场景表现形式(如网格或点云)中预测3D物体掩膜。 三维场景零样本分割新突破
SAMPro3D: Locating SAM Prompts in 3D for Zero-Shot Scene Segmentation
这篇论文提出了一种创新的3D室内场景分割方法,这在增强现实、机器人技术等领域是一个关键的任务。该任务的核心是从多种3D场景表现形式(如网格或点云)中预测3D物体掩膜。历史上,传统方法在分割训练过程中未遇到的新物体类别时常常遇到困难,这限制了它们在陌生环境中的有效性。
最近的进展,如Segment Anything Model(SAM),在2D图像分割方面显示出潜力,能够在无需额外训练的情况下分割陌生的图像。本文探讨了将SAM原理应用于3D场景分割的可能性,具体研究了是否可以直接将SAM应用于2D帧,以分割3D场景,而无需额外训练。这一探索基于SAM的一个独特特点:它的提示功能,即它接受各种输入类型来指定图像中的分割目标。
作者指出了一个关键挑战:确保同一3D物体在不同帧中的2D分割的一致性。他们观察到,像SAM3D这样的现有方法,它将自动化SAM应用于单个帧,但在不同帧中存在不一致性,导致3D分割效果不佳。另一种方法,SAM-PT,在视频跟踪中效果显著,但在3D场景中失败,因为物体并非始终出现在所有帧中。
为了应对这些挑战,论文提出了一个名为SAMPro3D的新框架,该框架在输入场景中定位3D点作为SAM提示。这些3D提示被投影到2D帧上,确保了跨帧一致的像素提示和相应的掩膜。这种方法确保了同一3D物体在不同视角下的分割掩膜的一致性。
SAMPro3D首先初始化3D提示,使用SAM在各个帧中生成相应的2D掩膜。然后,它根据所有帧中相应掩膜的质量过滤3D提示,优先选择在所有视图中都能产生高质量结果的提示。为了解决部分物体分割的问题,该框架合并了重叠的3D提示,整合信息以实现更全面的分割。SAMPro3D累积跨帧的预测结果,以得出最终的3D分割。值得注意的是,该方法不需要额外的领域特定训练或3D预训练网络,这保持了SAM的零样本能力,是之前方法所不具备的显著优势。
该论文通过广泛的实验验证了SAMPro3D的有效性,展示了它在实现高质量和多样化分割方面的能力,通常甚至超过了人类级别的标注和现有方法。此外,它还展示了在2D分割模型(如HQ-SAM和Mobile-SAM)中的改进可以有效地转化为改进的3D结果。这篇论文为3D室内场景分割引入了一种开创性的方法,巧妙地利用了2D图像分割模型的能力,并将其创新地应用于3D领域。结果是一种强大的、零样本的分割方法,显著推进了3D视觉理解领域的最新发展。
方法
本文提出的方法名为SAMPro3D,旨在直接应用Segment Anything Model (SAM) 对室内场景的3D点云及其关联的2D帧进行零样本3D场景分割。
3D Prompt Proposal
2D-Guided Prompt Filter
Prompt Consolidation
有时,由单个3D提示对齐的2D掩膜可能只分割了对象的一部分,因为2D帧的覆盖范围有限。为解决这个问题,我们设计了一个提示合并策略。该策略涉及检查不同3D提示生成的掩膜,并识别它们之间的一定重叠。在这种情况下,我们认为这些提示可能正在分割同一个对象,并将它们合并为单个伪提示。这个过程促进了提示间信息的整合,导致更全面的对象分割。
3D Scene Segmentation
在前面的步骤之后,我们获得了最终的3D提示集合及其在帧间的2D分割掩膜。此外,我们还确保了每个3D对象由单个提示分割,允许提示ID自然地作为对象ID。
实验
从这个表格中提供的实验数据中,我们可以得出一些结论关于3D室内场景分割性能。这些数据基于ScanNet200数据集的标注,评价指标是mIoU(mean Intersection over Union),一个常用的衡量图像分割效果的指标。
这些实验结果表明,本文提出的方法在3D室内场景分割任务上具有强大的性能,尤其是在采用2D引导的提示过滤和提示合并策略,以及进一步增强SAM模型时。此外,这些结果还揭示了不同提示数量和投票机制对性能的影响,以及优化3D提示的潜力。
讨论
这篇论文在3D室内场景分割领域提出了一种创新的方法,展示了显著的性能提升,尤其是在处理具有挑战性的零样本场景时。其主要优势在于有效地利用了Segment Anything Model(SAM),通过一系列精心设计的步骤,如3D提示提议、2D引导的提示过滤和提示合并策略,来改善3D场景的分割效果。这种方法充分利用了SAM在2D图像分割领域的强大能力,并巧妙地将其扩展到3D场景,显示了跨领域应用的巨大潜力。
特别是,该方法通过3D提示的初始化和精确过滤,确保了3D分割的精度和一致性。此外,通过集成HQ-SAM和Mobile-SAM,该方法进一步提升了其性能,显示了在不断发展的深度学习领域中,通过集成新技术以适应更复杂应用场景的重要性。
然而,该方法也存在一些潜在的限制。首先,尽管实验结果表明该方法在多个指标上表现出色,但它依赖于SAM模型,这可能限制了其在没有大规模预训练数据时的适用性。此外,3D提示的初始化和过滤策略虽然有效,但可能需要显著的计算资源,尤其是在处理大规模或复杂的3D场景时。此外,该方法的泛化能力尚需在更多不同类型的3D场景中进行测试和验证。
综上所述,尽管这篇论文在3D室内场景分割方面取得了显著进展,但其依赖于特定的深度学习模型和可能需要较高计算资源的处理流程,这些因素可能会影响其在实际应用中的广泛可行性。
结论
总的来说,这篇论文提出了一种创新且有效的方法,用于提升3D室内场景分割的准确度和效率。其通过集成先进的2D图像分割模型并将其扩展到3D领域,展示了显著的性能提升。尽管存在一些潜在的限制,如对预训练数据的依赖和高计算资源需求,但这项工作无疑为3D视觉理解领域带来了新的见解和方法。
#MonoLSS
MonoLSS: Learnable Sample Selection For Monocular 3D Detection
排名第一,用于视觉3D检测训练中的样本选择(百度最新)
论文链接:https://arxiv.org/pdf/2312.14474.pdf
在自动驾驶领域,单目3D检测是一个关键任务,它在单个RGB图像中估计物体的3D属性(深度、尺寸和方向)。先前的工作以一种启发式的方式使用特征来学习3D属性,而没有考虑不适当的特征可能产生不良影响。在本文中,引入了样本选择,只有适合的样本才应该用于回归3D属性。为了自适应地选择样本,提出了一个可学习的样本选择(LSS)模块,该模块基于Gumbel-Softmax和相对距离样本划分。LSS模块在warmup策略下工作,提高了训练稳定性。此外,由于专用于3D属性样本选择的LSS模块依赖于目标级特征,进一步开发了一种名为MixUp3D的数据增强方法,用于丰富符合成像原理的3D属性样本而不引入歧义。作为两种正交的方法,LSS模块和MixUp3D可以独立或结合使用。充分的实验证明它们的联合使用可以产生协同效应,产生超越各自应用之和的改进。借助LSS模块和MixUp3D,无需额外数据,方法MonoLSS在KITTI 3D目标检测基准的所有三个类别(汽车、骑行者和行人)中均排名第一,并在Waymo数据集和KITTI-nuScenes跨数据集评估中取得了有竞争力的结果。
MonoLSS主要贡献:
论文强调,并非所有特征对学习3D属性都同样有效,并首先将其重新表述为样本选择问题。相应地,开发了一种新的可学习样本选择(LSS)模块,该模块可以自适应地选择样本。
为了丰富3D属性样本,设计了MixUp3D数据增强,它模拟了空间重叠,并显著提高了3D检测性能。
在不引入任何额外信息的情况下,MonoLSS在KITTI基准的所有三个类别中排名第一,在汽车类别的中等和中等水平上,超过了当前的最佳方法11.73%和12.19%。它还实现了Waymo数据集和KITTI nuScenes跨数据集评估的SOTA结果。
MonoLSS主要思路
MonoLSS框架如下图所示。首先,使用与ROI Align相结合的2D检测器来生成目标特征。然后,六个Head分别预测3D特性(深度、尺寸、方向和3D中心投影偏移)、深度不确定性和对数概率。最后,可学习样本选择(LSS)模块自适应地选择样本并进行损失计算。
Learnable Sample Selection
假设U~Uniform(0,1),则可以使用逆变换采样通过计算G=−log(−log(U))来生成Gumbel分布G。通过用Gumbel分布独立地扰动对数概率,并使用argmax函数找到最大元素,Gumbel Max技巧实现了无需随机选择的概率采样。基于这项工作,Gumbel Softmax使用Softmax函数作为argmax的连续可微近似,并在重新参数化的帮助下实现了整体可微性。
GumbelTop-k通过在没有替换的情况下绘制大小为k的有序采样,将采样点的数量从Top-1扩展到Top-k,其中k是一个超参数。然而,相同的k并不适用于所有目标,例如,被遮挡的目标应该比正常目标具有更少的正样本。为此,我们设计了一个基于超参数相对距离的模块来自适应地划分样本。总之,作者提出了一个可学习样本选择(LSS)模块来解决三维属性学习中的样本选择问题,该模块由Gumbel Softmax和相对距离样本除法器组成。LSS模块的示意图如图2的右侧所示。
Mixup3D数据增强
由于严格的成像约束,数据增强方法在单目3D检测中受到限制。除了光度失真和水平翻转之外,大多数数据增强方法由于破坏了成像原理而引入了模糊特征。此外,由于LSS模块专注于目标级特性,因此不修改目标本身特性的方法对LSS模块来说并不足够有效。
由于MixUp的优势,可以增强目标的像素级特征。作者提出了MixUp3D,它为2D MixUp添加了物理约束,使新生成的图像基本上是空间重叠的合理成像。具体而言,MixUp3D仅违反物理世界中对象的碰撞约束,同时确保生成的图像符合成像原理,从而避免任何歧义!
实验结果
KITTI测试集上汽车类的单目3D检测性能。与KITTI排行榜相同,方法排名在中等难度以下。我们以粗体突出显示最佳结果,以下划线突出显示第二个结果。对于额外的数据:1)LIDAR表示在训练过程中使用额外的LIDAR云点的方法。2) 深度是指利用在另一深度估计数据集下预先训练的深度图或模型。3) CAD表示使用由CAD模型提供的密集形状注释。4) 无表示不使用额外数据。
Wamyo上数据集测试结果:
KITTI-val模型在深度为MAE的KITTI-val和nuScenes前脸val汽车上的跨数据集评估:
#Zip-NeRF
2020 年,加州大学伯克利分校、谷歌的研究者开源了一项 2D 图像转 3D 模型的重要研究 ——NeRF。它可以利用几张静态图像生成多视角的逼真 3D 图像,生成效果非常惊艳:NeRF原班人马
打造
三年之后,这支团队做出了更惊艳的效果:在一项名为「Zip-NeRF」的研究中,他们完整还原了一个家庭的所有场景,就像无人机航拍的效果一样。
作者介绍说,Zip-NeRF 模型结合了 scale-aware 的抗混叠 NeRF 和快速基于网格的 NeRF 训练,以解决神经辐射场训练中的混叠问题。与以前的技术相比,Zip-NeRF 的错误率降低 8%-76%,训练速度提高 22 倍。
这项技术有望在 VR 领域得到应用,比如参观线上博物馆、线上看房。
- 论文地址:https://arxiv.org/pdf/2304.06706.pdf
- 项目地址:https://jonbarron.info/zipnerf/
论文概览
在神经辐射场(NeRF)中,一个神经网络被训练来模拟一个三维场景的体积表示,这样通过光线跟踪就可以呈现该场景的新视图。NeRF 已被证明是一种有效的任务工具,如视图合成,生成媒体,机器人,和计算摄影。
Mip-NeRF 360 和 instant-NGP(iNGP)都是基于 NeRF 的形式:通过投射 3D 射线和沿光线距离 t 的位置来渲染像素,这些特征被输入给神经网络,输出渲染后呈现颜色。反复投射与训练图像中的像素对应的光线,并最小化(通过梯度下降)每个像素的渲染颜色和观察颜色之间的误差来完成训练。
Mip-NeRF 360 和 instant-NGP 在沿射线的坐标参数化方式上有显著差异。在 mip-NeRF 360 中,一条射线被细分为一组区间 [t_i,t_i+1],每一个代表一个锥形锥,其形状近似于多元高斯值,该高斯值的期望位置编码被用于一个大型 MLP [3] 的输入。相比之下,instant-NGP 是将位置的特征值插值到一个不同大小的三维网格层次中,之后使用一个小的 MLP 生成特征向量。作者们提出的模型结合了 mip-NeRF360 的整体框架和 instant-NGP 的特征化方法,但盲目地直接结合这两种方法,会引入了两种混叠形式:
1、instant-NGP 的特征网格方法与 mip-nerf360 的尺度感知集成位置编码技术互相不兼容,因此 instant-NGP 产生的特征相对于空间坐标进行别名,从而产生别名的渲染图。在后面的介绍中,研究者通过引入一种用于计算预过滤的 instant-NGP 特性的类似多采样的解决方案来解决这个问题。
2、使用 instant-NGP 后显著加速了训练,但这暴露了 mip-nerf360 在线蒸馏方法的一个问题,该方法导致高度可见的 “z - 混叠”(沿着射线混叠),其中场景内容随着摄像机的移动而不稳定地消失。在后面的介绍中,研究人员用一个新的损失函数来解决这个问题,它在在线蒸馏过程中沿着每条射线进行预过滤。
方法概览
1.Spatial Anti-Aliasing:
Mip-NeRF 使用的特征近似于子体素内坐标的位置编码的积分,在 NeRF 中是沿圆锥形的圆锥体。这导致了当每个正弦曲线的周期大于高斯曲线的标准差时,傅里叶特征的振幅很小 —— 这些特征只在大于子体素大小的波长上表示子体积的空间位置。因为这个特性同时编码位置和尺度,所以使用它的 MLP 能够学习出呈现抗锯齿的图像的 3D 场景的多尺度表示。像 iNGP 这样的基于网格的表示不去查询子体素,而是在单个点上使用三线性插值来构造用于 MLP 的特性,这将导致训练后的模型不能推理不同尺度或混叠。
研究人员为了解决这个问题将每个圆锥变成一组各向同性高斯,使用多采样和特征加权:各向异性子体素首先转换为一组点近似其形状,然后每个点被认为是一个各向同性高斯尺度。这个各向同性的假设,可以利用网格中的值是零均值这一事实来近似特征网格在子体素上的真实积分。通过平均这些降加权特征,从 iNGP 网格中获得了具有尺度感知的预过滤特征。有关可视化信息见下图。
抗锯齿的问题在一些图形文献中有深入的探讨。Mip-map(Mip-nerf 的同名名称)预先计算了一个能够快速反锯齿的结构,但尚不清楚如何将这种方法应用于 iNGP 底层的散列数据结构。超采样技术采用了一种直接增加采样数量的方法来抗锯齿,产生了大量的不必要采样,这种方法与 mip-map 效果类似,但花费更高。Multi-sampling 技术构建一小组样本,然后将这些多样本的信息汇集到聚合表示中,该聚合表示提供给复杂的渲染过程 —— 一种类似于作者方法的策略。另一种相关的方法是椭圆加权平均,它近似于一个沿椭圆长轴排列的各向同性样本的椭圆核。
给定沿射线的间隔 [t_i,t_(i+1)),研究者想构建一组近似圆锥形的多样本形状。正如在样本预算有限的图形应用多采样的程序中一样,他们为他们的用例手工设计了一个多采样模式,沿着一个螺旋分配了 n 个点,它使 m 个点绕着射线的轴循环,并沿着 t 呈线性间隔:
这些三维坐标被旋转成世界坐标,通过乘以一个标准正交基,这个标准正交基的第三个向量是射线的方向,其前两个向量是垂直于视图方向的任意帧,然后由射线的原点移动。当 n≥3 和 n 和 m 是共素数时,保证每一组多样本的样本均值和协方差与每个样本的均值和协方差完全匹配,类似于 mip-NeRF 中的高斯采样。
研究者使用这 n 个多样本 {x_j} 作为各向同性高斯分布的均值,每个样本的标准差为 σ_j。他们将 σ_j 设置为 rt,通过一个超参数(在实验中为 0.35)。因为 iNGP 网格需要输入坐标位于一个有界域内,研究人员应用了 mip-NeRF 360 的收缩函数。因为这些高斯分布是各向同性的,所以可以使用 mip-NeRF 360 使用的卡尔曼滤波方法的简化和优化版本来执行这种收缩,详情请后面补充内容。
为了对每个单独的多样本进行反别名插值,研究者以一种新的方式重新加权每个尺度上的特征,其与每个网格单元内各样本的各向同性高斯拟合程度成反比例:如果高斯值远远大于被插值的单元,插值的特征可能是不可靠的就应该降低加权。Mip-NeRF 的 IPE 特性也有类似的解释。
在 iNGP 中,对坐标 x 处的每个 {V_l} 进行插值是通过用网格的线性大小 n 缩放,并对 V_l 进行三线性插值,得到一个 c 长度向量。相反,研究者插值一组具有均值和标准差为 σ_j 的多采样各向同性高斯分布。通过对高斯 CDFs 的推理,可以计算出在 V 中 [−1/2n,1/2n]^3 内的每个高斯 PDF 的分数,它被插值为一个与尺度相关的下降权重因子 ω_j,l, 研究者在 {V} 上施加权重衰减使得鼓励 V 中的值是符合正态分布和零均值。这个零均值假设让他们将每个多样本的高斯分布的期望网格特征近似为 ω_j・f_j,l+(1−ω_j)・0=ω_j・f_j,l。这样,可以通过取每个多样本插值特征的加权平均值来近似与圆锥锥对应的期望特征:
2. Z-Aliasing and Proposal Supervision:
虽然之前提到的精细的多采样和减加权方法是减少空间混叠的有效方法,但大家必须考虑在光线沿线还有一个额外的混叠来源 --z - 混叠。它是由于在 mip-NeRF360 的使用下 MLP 学习产生上限场景几何:在训练和渲染期间,沿着射线反复评估这个 MLP 生成直方图的下一轮采样,只有最后一组样本是由 NeRF 的 MLP 网络呈现。Mip-NeRF 360 表明,与之前学习一个的 mi-nerf 或多个的 nerf 的策略相比,该方法显著提高了速度和渲染质量,这些策略都使用图像重建损失进行监督。研究者发现 mip-NeRF 360 中的 MLP 方案倾向于学习从输入坐标到输出体积密度的非光滑映射。这将导致一个射线跳跃场景内容的伪影,如上图所示。虽然这个假象在 mip-NeRF 360 中很微小,但如果作者在他们提出的网络中使用 iNGP 后端而不是 MLP(可以增加新模型的快速优化能力),就变得常见和视觉突出,尤其是当相机沿其 z 轴转换时。
下图里,研究人员可视化了一个训练实例的 proposal 监督,其中一个狭窄的 NeRF 直方图(蓝色)沿着一个相对于一个粗糙的 proposal 直方图(橙色)的射线翻译。(a) mip-NeRF360 使用的损失是分段常数的,但 (b) 新模型的损失是平滑的,因为研究人员将 NeRF 直方图模糊为分段线性样条(绿色)。新模型中的预过滤损失可以学习反锯齿的 proposal 分布。Anti-Aliased Interlevel Loss:
研究者继承的 mip-NeRF 360 中的提案监督方法需要一个损失函数,该函数以由 NeRF(s,w)产生的阶跃函数和由 proposal 模型(^s,^w)产生的类似阶跃函数作为输入。这两个阶跃函数都是直方图,其中 s 和ˆs 是端点位置的向量,而 w 和ˆw 是和等于≤1 的权重向量,其中 w_i 表示可见场景内容是阶跃函数的间隔 i。每个 s_i 都是真度量距离 ti 的标准化函数,根据一些标准化函数 g (・),研究者稍后将讨论。请注意,s 和ˆs 是不相同的 —— 每个直方图的端点都是不同的。
Normalizing Metric Distance:
许多 NeRF 方法都需要一个函数来将度量距离 t∈[0,∞) 转换为标准化距离 s∈[0,1] 的方法。左图:功率变换 P(x,λ)允许通过修改 λ 在公共曲线之间进行插值,如线性、对数和逆,同时在原点附近保持线性形状。右图:构建一条从线性过渡到逆 / 反转查询的曲线,并支持靠近摄像机的场景内容。
实验效果
研究者们的模型是在 JAX 中实现的,并基于 mip-NeRF 360 的 baseline,重新设计实现了 iNGP 的体素网格和哈希表结构,取代 mip-NeRF 360 使用的大 MLP 网络,除了在其中引入的抗混叠调整,以及一些附加修改外整体模型架构与 mip-NeRF 360 相同。
在 360 Datase 的多尺度版本上的性能,训练和评估多尺度图像。红色、橙色和黄色的高光表示每个指标的第一、第二和第三个最佳表现技术。所提出的模型显著优于两个基线 —— 特别是基于 iNGP 的基线,特别是在粗糙尺度上,新模型误差减少了 54%-76%。A-M 行是模型的消融实验,详情请论文最后面参阅扩展文本。
虽然 360dataset 中包含很多具有挑战性的场景内容,它不能衡量以渲染质量作为规模的函数,因为这个数据集是由相机环绕在一个中心对象以大致恒定的距离拍摄得到的,学习模型不需要处理训练在不同的图像分辨率或不同的距离中心对象。因此研究者使用一个更具挑战性的评估过程,类似于使用 mip-NeRF 的多尺度的 blender 数据集:研究人员把每个图像变成一组四个图像被用 [1,2,4,8] 尺度分别降采样的图像额外的训练 / 测试视图的相机已经从场景的中心放大出来了。在训练过程中,研究者将数据项乘以每条射线的尺度因子,在测试时他们分别评估每个尺度。这大大增加了模型跨尺度泛化的重建难度,并导致混叠伪影效果显著出现,特别是在粗尺度上。
在表 1 中,研究者根据 iNGP、mipNeRF 360、mip-NeRF 360 + iNGP 基线和许多消融方法来评估了新提出的模型。尽管 mip-NeRF 360 表现合理(因为它可以训练多尺度),新模型在最精细的尺度上降低了 8.5%,在最粗糙的尺度上降低了 17%,同时快了 22 倍。mip-NeRF 360 + iNGP 基线因为其没有抗锯齿或推理规模的机制,表现很差:新模型的均方根误差在最精细的尺度下低 18%,在最粗糙的尺度上低 54%,最粗尺度下的 DSSIM 和 LPIPS 都低了 76%。这种改进可以从下图中看出。研究者的 mip-NeRF 360 + iNGP 基线通常优于 iNGP(除了最粗的尺度),正如他们在第二张表中所预期的那样。
总结
研究者提出了 Zip-NeRF 模型,该模型整合了在尺度感知抗锯齿 NeRF 和基于快速网格的 NeRF 训练这两种方式的优点。通过利用关于多采样和预过滤的方法,该模型能够实现比之前技术低 8%-76% 的错误率,同时也比 mip-NeRF360(目前相关问题的最先进技术)快 22 倍。研究者希望这里提出的工具和分析关于混叠(网的空间混叠从空间坐标颜色和密度的映射,以及 z - 混叠的损失函数在在线蒸馏沿每个射线)可以进一步提高 nerf 逆渲染技术的质量,速度和成品效率。
#D3GA~
创建逼真的动态虚拟角色,要么在训练期间需要准确的 3D 配准,要么在测试期间需要密集的输入图像,有时则两者都需要,也许 D3GA 是你需要的。AI研究也能借鉴印象派?这些栩栩如生的人竟然是3D模型
在 19 世纪,印象主义的艺术运动在绘画、雕塑、版画等艺术领域盛行,其特点是以「短小的、断断续续的笔触,几乎不传达形式」为特征,就是后来的印象派。简单来说印象派笔触未经修饰而显见,不追求形式的精准,模糊的也合理,其将光与色的科学观念引入到绘画之中,革新了传统固有色观念。
在 D3GA 中,作者的目标反其道而行之,是希望创建像照片般逼真的表现。在 D3GA 中,作者对高斯泼溅(Gaussian Splatting)进行创造性的运用,作为现代版的「段笔触」,来创造实时稳定的虚拟角色的结构和外观。
印象派画家莫奈代表作《日出・印象》。
对于虚拟形象的构建工作来说,创造驱动型(即可以生成动画新内容)的逼真人类形象目前需要密集的多视角数据,因为单目方法缺乏准确性。此外,现有的技术依赖于复杂的预处理,包括精确的 3D 配准。然而,获取这些配准需要迭代,很难集成到端到端的流程中去。而其它不需要准确配准的方法基于神经辐射场(NeRFs),通常对于实时渲染来说太慢,或者在服装动画方面存在困难。
Kerbl 等人在经典 Surface Splatting 渲染方法基础上引入了 3D Gaussian Splatting(3DGS)。与基于神经辐射场的最先进方法相比,这种方法在更快的帧率下呈现更高质量的图像,并且不需要任何高度准确的 3D 初始化。
但是,3DGS 是为静态场景设计的。并且已经有人提出基于时间条件的 Gaussian Splatting 可用来渲染动态场景,这些模型只能回放先前观察到的内容,所以不适用于表达新的或其未曾见过的运动。
在驱动型的神经辐射场的基础上,作者对 3D 的人类的外观及变形进行建模,将其放置在一个规范化的空间中,但使用 3D 高斯而不是辐射场。除性能更好以外,Gaussian Splatting 还不需要使用相机射线采样启发式方法。
剩下的问题是定义触发这些 cage 变形的信号。目前在驱动型的虚拟角色中的最新技术需要密集的输入信号,如 RGB-D 图像甚至是多摄像头,但这些方法可能不适用于传输带宽比较低的情况。在本研究中,作者采用基于人体姿势的更紧凑输入,包括以四元数形式的骨骼关节角度和 3D 面部关键点。
通过在九个高质量的多视图序列上训练个体特定的模型,涵盖各种身体形状、动作和服装(不仅限于贴身服装),以后我们就可以通过任何主体的新姿势对人物形象进行驱动了。
方法概览
- 论文链接:https://arxiv.org/pdf/2311.08581.pdf
- 项目链接:https://zielon.github.io/d3ga/
目前用于动态体积化虚拟角色的方法要么将点从变形空间映射到规范空间,要么仅依赖正向映射。基于反向映射的方法往往在规范空间中会累积误差,因为它们需要一个容易出错的反向传递,并且在建模视角相关效果时存在问题。
因此,作者决定采用仅正向映射的方法。D3GA 是基于 3DGS 的基础上通过神经表示和 cage 进行扩展,分别对虚拟角色的每个动态部分的颜色和几何形状进行建模。
D3GA 使用 3D 姿势 ϕ、面部嵌入 κ、视点 dk 和规范 cage v(以及自动解码的颜色特征 hi)来生成最终的渲染 C¯ 和辅助分割渲染 P¯。左侧的输入通过每个虚拟角色部分的三个网络(ΨMLP、ΠMLP、ΓMLP)进行处理,以生成 cage 位移∆v、高斯变形 bi、qi、si 以及颜色 / 透明度 ci、oi。
在 cage 变形将规范高斯变形后,通过方程式 9,它们被光栅化成最终的图像。
实验结果
D3GA 在 SSIM、PSNR 和感知度量 LPIPS 等指标上进行评估。表 1 显示,D3GA 在只使用 LBS 的方法中(即不需要为每个帧扫描 3D 数据)其在 PSNR 和 SSIM 上的表现是最佳的,并在这些指标中胜过所有 FFD 方法,仅次于 BD FFD,尽管其训练信号较差且没有测试图像(DVA 是使用所有 200 台摄像机进行测试的)。
定性比较显示,与其它最先进方法相比,D3GA 能更好地建模服装,特别是像裙子或运动裤这样的宽松服装 (图 4)。FFD 代表自由形变网格,其包含比 LBS 网格更丰富的训练信号 (图 9)。
与其基于体积方法相比,作者的方法可以将虚拟角色的服装分离出来,并且服装也是可驱动的。图 5 显示了每个单独的服装层,可以仅通过骨骼关节角度控制,而不需要特定的服装配准模块。
#4DGen
4DGen定义了” Grounded 4D Generation“的任务形式,通过视频序列和可选3D模型的引入提升了4D生成的可控性。通过高效的4D Gaussian Splatting的表达,2D和3D伪标签的监督和时空的连续性约束,使得4DGen可以实现高分辨率、长时序的高质量的4D内容生成。
本文分享4D生成方向新工作,由北京交通大学和得克萨斯大学奥斯汀分校共同完成的4DGen: Grounded 4D Content Generation with Spatial-temporal Consistency
,文章使用Gaussian Splatting实现了高质量的4D生成。基于动态 3D 高斯的可控 4D 生成
- 文章主页:https://vita-group.github.io/4DGen/
- 论文地址:https://arxiv.org/abs/2312.17225
- 开源代码:https://github.com/VITA-Group/4DGen
视频
发不了...
研究背景
尽管3D和视频生成取得了飞速的发展,由于缺少高质量的4D数据集,4D生成始终面临着巨大的挑战。过去几篇工作尝试了Text-To-4D的任务,但依然存在两个主要问题:
- 由于输入依赖于单视角的图片或者简单的文本描述,并不能保证得到精准的4D结果,需要花费大量的时间进行反复调整。
- 尽管采用了Hexplane作为4D的表征,基于NeRF的方法在高分辨率和长视频上的渲染所需要的计算时间和显存占用是难以接受的。即使采用了一个超分辨的后处理网络,依然会有模糊和闪烁的结果。
为了解决上述问题,4DGen定义了“Grounded 4D Generation“新型任务形式,并且设计了新的算法框架实现高质量的4D内容生成。
任务定义
过往的4D生成工作是“one click“的方式,并不能对生成的结果进行有效的控制。4DGen提出了“Grounded 4D Generation“的形式,通过利用视频序列和可选的3D模型作为4D生成的控制信息,可以实现更为精准的4D内容生成。用户可通过输入视频序列或3D模型来约束4D结果的运动和外观;当用户仅提供单张图片作为输入时,可借助预训练好的视频生成模型来得到视频序列;当用户未提供3D模型时,可通过单张图片重建3D模型来作为起始点。
方法介绍
4DGen框架的输入起始点为用户给定或者模型生成的视频序列,对于任意的单张图片,借助多视角生成模型(multi-view diffusion model),可以得到不同视角的图片。4DGen通过对第一帧多视图进行三维重建,得到初始的静态3D Gaussians作为4D生成的起始点。
由于4D数据的匮乏,需要尽可能的从先验模型中蒸馏信息。4DGen将每一帧生成的多视图作为2D伪标签,并且采用多视图生成的点云作为3D点的伪标签来监督训练过程。
因为多视图生成具有ill-posed的特点,得到的伪标签在不同视角之间,不同时序之间存在不连续性,需要引入时间和空间上的一致性损失函数进行约束。相较于拟合多视图DDIM采样得到的图片,score distillation sampling(SDS)是根据先验的扩散模型对场景表达进行似然估计。4DGen依据正面视角计算任意视角图片在Zero123模型上的SDS损失,用于提升空间上的连续性。
为了缓解闪烁问题,4DGen引入了无监督的时间平滑约束。通过计算平面的平滑损失和Gaussians不同时刻的平滑损失,有效提升了时间上的一致性。
实施细节
4DGen的 4D表达采用了4D Gaussian Spaltting的方式,通过一个多分辨率Hexplane对每个Gaussian进行编码。将6个时空平面的特征进行相加,并经过一个额外的MLP解码得到对应Gaussian在不同时刻的位置偏移量。训练上采用三阶段方式,第一阶段对场景进行静态建模,第二阶段利用2D和3D的伪标签进行动态场景的初步建模,第三建模利用平滑损失增强模型的细节和连续性。
所有实验可以在一张RTX3090上完成,对于2.5万个Gaussians只需45分钟的训练,对于9万个Gaussians训练2小时可以得到更加好的细节效果。
实验结果
4DGen可以实现不同视角、不同时间的高质量图片渲染。相较于对比方法在细节表达、噪声去除、颜色还原、时空连续性等方面有显著提升。更多视觉效果可以参考项目主页。
量化对比上,4DGen采用了不同时序图片和参考图片的CLIP距离来衡量生成质量,采用CLIP-T衡量不同时间下的图像连续性。4DGen在多项指标上明显优于过往方法。
总结
4DGen定义了” Grounded 4D Generation“的任务形式,通过视频序列和可选3D模型的引入提升了4D生成的可控性。通过高效的4D Gaussian Splatting的表达,2D和3D伪标签的监督和时空的连续性约束,使得4DGen可以实现高分辨率、长时序的高质量的4D内容生成。
#O²-Recon
在计算机视觉中,物体级别的三维表面重建技术面临诸多挑战。与场景级别的重建技术不同,物体级别的三维重建需要为场景中的每个物体给出独立的三维表示,以支持细粒度的场景建模和理解。这对 AR/VR/MR 以及机器人相关的应用具有重要意义。清华大学提出三维重建的新方法:O²-Recon,用2D扩散模型补全残缺的3D物体
许多现有方法利用三维生成模型的隐空间来完成物体级别的三维重建,这些方法用隐空间的编码向量来表示物体形状,并将重建任务建模成对物体位姿和形状编码的联合估计。得益于生成模型隐空间的优秀性质,这些方法可以重建出完整的物体形状,但仅限于特定类别物体的三维重建,如桌子或椅子。即使在这些类别中,这类方法优化得到的形状编码也往往难以准确匹配实际物体的三维形状。另外一些方法则从数据库中检索合适的 CAD 模型,并辅以物体位姿估计来完成三维重建,这类方法也面临着类似的问题,其可扩展性比较有限,重建准确性低,很难贴合物体真实的三维表面结构。
随着 NeRF 和 NeuS 等技术的发展,imap 和 vMap 等技术能够利用可微渲染来优化物体的几何结构,这些方法能够重建出更加贴合真实物体表面的网格模型,也能够重建多个类别的物体,打破单一物体类别的限制。然而,由于场景内部拍摄角度的约束,很多物体都是被遮挡的,比如靠近墙壁的物体,或者彼此遮挡的物体。在物体被遮挡的情况下,这些方法重建出的物体往往是不完整的,如下图所示。这些不完整的三维模型无法支持大角度的旋转和大范围平移,就很难被各种下游任务利用。
遮挡下的重建结果
清华大学刘永进教授团队提出物体三维重建的新方法 O²-Recon,利用已有的 2D 扩散模型补全物体图像中被遮挡的区域,继而用神经隐式表面场从补全后的图像中重建完整的三维物体。该论文利用重投影机制保持填充区域的三维一致性,并且在隐式重建过程中加入 CLIP 损失函数监督不可见角度的语义信息,最终重建出完整且合理的三维物体模型,支持大角度的旋转和平移,可以用于各种下游任务。目前,该论文已被人工智能顶会之一 AAAI 2024 接收。
论文链接:https://arxiv.org/abs/2308.09591
O²-Recon 简介
方法介绍
受到 2D 扩散模型在图像补全任务中出色表现的启发,研究者设计了 O²-Recon 方法,旨在利用预训练的扩散模型来补全图像中物体被遮挡的区域。虽然现有的扩散模型在图像补全中表现出强劲的性能,但如果没有准确的遮罩(Mask)来指出物体应当被补全的区域,扩散模型就很有可能生成错误的图像内容,比如超出正确区域的结构或者错误的形状。在 O²-Recon 方法中,研究者引入了少量的人工操作来构建准确的 Mask,从而保证 2D 补全和 3D 重建的质量。
给定一段带有物体 Mask 的 RGB-D 视频序列,需要用户选择 1-3 帧图像,并推测这 1-3 帧图像中物体被遮挡的区域,绘制被遮挡区域的 Mask。结合扩散模型补全出的深度信息,研究者将这些视角下的 Mask 投影到所有其他视角,得到其他视角下的遮挡区域 Mask。通过加入少量的人机交互,研究者保证了 Mask 的质量,同时由于这些 Mask 是重投影得到的,它们在不同视角下具有的几何一致性,从而能够引导 2D 扩散模型为遮挡区域填充出合理且一致的图像内容。
在三维重建阶段,研究者利用类似于 NeuS 的神经隐式表面场来完成表面重建,并利用体渲染构建损失函数进行优化。考虑到补全的图像仍然可能存在不一致性,这种隐式表示能在多视角优化的过程中逐渐学习出合理的三维结构。另一方面,研究者从两个角度来提升完全不可见区域的重建效果:首先,研究者利用 CLIP 特征监督新视角下渲染结果与和物体类别文本的一致性;其次,研究者设计了一个级联网络结构来编码隐式表面场,其中包括一个浅层的 MLP+低频位置编码来确保表面的整体平滑性,以及一个更深的 MLP 分支+高频 PE 位置编码来预测 SDF 的残差。这种结构既保证可见区域表面的灵活性,又确保了物体不可见区域的平滑性。
实验效果
物体的三维重建效果
主要实验结果展示
与其他物体级别的三维重建方法相比,O²-Recon 能重建出更准确,更完整的三维结构,如上图所示。其中 FroDO 是基于隐空间形状编码的方法,Scan2CAD 是基于数据库检索的方法,vMap 是利用 NeRF 做表面重建的方法,MonoSDF 是场景级别的三维重建方法。
动图对比
动图对比
动图对比
重建后物体的位置编辑
由于 O²-Recon 重建出的物体较为完整,我们可以对这些物体做大幅度的旋转或平移,在编辑位置之后,从新的角度观察这些物体,其表面质量仍然不错,如下图所示。
在编辑之前,这些物体在原场景中的位置下:
多物体动图对比
在编辑之后,这些物体在新的位置下:
多物体动图对比
总结
本文提出了 O²-Recon 方法,来利用预训练的 2D 扩散模型重建场景中被遮挡物体的完整 3D 几何形状。研究者利用扩散模型对多视角 2D 图像中的遮挡部分进行补全,并从补全后的图像利用神经隐式表面重建 3D 物体。为了防止 Mask 的不一致性,研究者采用了一种人机协同策略,通过少量人机交互生成高质量的多角度 Mask,有效地引导 2D 图像补全过程。在神经隐式表面的优化过程中,研究者设计了一个级联的网络架构来保证 SDF 的平滑性,并利用预训练的 CLIP 模型通过语义一致性损失监督新视角。研究者在 ScanNet 数据集上的实验证明,O²-Recon 能够为任意类别的被遮挡物体重建出精确完整的 3D 表面。这些重建出的完整 3D 物体支持进一步的编辑操作,如大范围旋转和平移。
#3D Gaussian Splatting
这是3D Gaussian Splatting综述, 先回顾3D Gaussian的原理和应用,借着全面比较了3D GS在静态场景、动态场景和驾驶场景中的性能,最后为未来指明了研究方向!
三维 Gaussian splatting(3DGS)是近年来在显式辐射场和计算机图形学领域出现的一种变革性技术。这种创新方法的特点是使用了数百万个3D高斯,这与神经辐射场(NeRF)方法有很大的不同,后者主要使用隐式的基于坐标的模型将空间坐标映射到像素值。3D GS凭借其明确的场景表示和可微分的渲染算法,不仅保证了实时渲染能力,而且引入了前所未有的控制和场景编辑水平。这将3D GS定位为下一代3D重建和表示的潜在游戏规则改变者。为此我们首次系统地概述了3D GS领域的最新发展和关键贡献。首先详细探索了3D GS出现的基本原理和公式,为理解其意义奠定了基础。进而深度讨论3D GS的实用性。通过促进实时性能,3D GS开辟了大量应用,从虚拟现实到交互式媒体等等。此外,还对领先的3D GS模型进行了比较分析,并在各种基准任务中进行了评估,以突出其性能和实用性。该综述的结论是确定了当前的挑战,并提出了该领域未来研究的潜在途径。通过这项调查,我们旨在为新来者和经验丰富的研究人员提供宝贵的资源,促进在适用和明确的辐射场表示方面的进一步探索和进步。
为了帮助读者跟上3D GS的快速发展,我们提供了首个关于3D GS的调查综述,我们系统而及时地收集了有关该主题的最重要的最新文献。鉴于3D GS是最近的一项创新(图1),我们的重点是自其推出以来出现的各种发展和贡献。3D GS的相关工作主要来源于arxiv。文章的主要目标是对3D GS的初步发展、理论基础和新兴应用进行全面和最新的分析,突出其在该领域的革命性潜力。承认3D GS的新生但快速发展的性质,本次调查还旨在确定和讨论该领域的当前挑战和未来前景。我们提供了对3D GS可能促进的正在进行的研究方向和潜在进展的见解。希望给大家的不仅仅是提供一个学术综述,而是促进这一领域的进一步研究和创新。本文的文章结构如图2所示:
本节首先提供辐射场的简要公式,辐射场是场景渲染中的一个关键概念。它概述了两种主要类型的辐射场表示:隐式如NeRF,它使用神经网络进行直接但计算要求高的渲染;和显式的比如网格,它采用离散结构来更快地访问,但代价是更高的内存使用率。下文进一步建立了与相关领域的联系,如场景重建和渲染。
问题定义
两全其美的3D Gaussian Splatting:3D GS表示从隐式辐射场到显式辐射场的转变。它通过利用3D高斯作为灵活高效的表示,利用了这两种方法的优势。这些高斯系数经过优化,可以准确地表示场景,结合了基于神经网络的优化和显式结构化数据存储的优点。这种混合方法旨在通过更快的训练和实时性能实现高质量渲染,特别是对于复杂的场景和高分辨率输出。3D高斯表示公式化为:
上下文和术语
许多技术和研究学科与3D GS有着密切的关系,下文将对其进行简要描述。
场景重建与渲染:粗略地说,场景重建涉及从图像或其他数据的集合创建场景的3D模型。渲染是一个更具体的术语,专注于将计算机可读信息(例如,场景中的3D对象)转换为基于像素的图像。早期的技术基于光场生成逼真的图像。structure-from-motion(SfM)和多视图立体(MVS)算法通过从图像序列估计3D结构进一步推进了这一领域。这些历史方法为更复杂的场景重建和渲染技术奠定了基础。
神经渲染与辐射场:神经渲染将深度学习与传统图形技术相结合,以创建照片级真实感图像。早期的尝试使用卷积神经网络(CNNs)来估计混合权重或纹理空间解决方案。辐射场表示一个函数,该函数描述了通过空间中每个点在每个方向上传播的光量。NeRFs使用神经网络对辐射场进行建模,从而实现详细逼真的场景渲染。
体积表示和Ray-Marching:体积表示不仅将目标和场景建模为曲面,还将其建模为填充了材质或空白空间的体积。这种方法可以更准确地渲染雾、烟或半透明材料等现象。Ray-Marching是一种与体积表示一起使用的技术,通过增量跟踪穿过体积的光的路径来渲染图像。NeRF分享了体积射线行进的相同精神,并引入了重要性采样和位置编码来提高合成图像的质量。在提供高质量结果的同时,体积射线行进在计算上是昂贵的,这促使人们寻找更有效的方法,如3D GS。
基于点的渲染:基于点的渲染是一种使用点而不是传统多边形来可视化3D场景的技术。这种方法对于渲染复杂、非结构化或稀疏的几何数据特别有效。点可以用额外的属性来增强,如可学习的神经描述符,并有效地渲染,但这种方法可能会遇到诸如渲染中的漏洞或混叠效应等问题。3D GS通过使用各向异性高斯来扩展这一概念,以实现场景的更连续和更有凝聚力的表示。
显式辐射场的3D高斯
3D GS在不依赖神经组件的情况下,在实时、高分辨率图像渲染方面取得了突破。
学习得到的3D高斯用于新视角合成
考虑一个由(数百万)优化的3D高斯表示的场景。目标是根据指定的相机姿势生成图像。回想一下,NeRF是通过计算要求很高的体积射线行进来完成这项任务的,对每个像素的3D空间点进行采样。这种模式难以实现高分辨率图像合成,无法实现实时渲染速度。与此形成鲜明对比的是,3D GS首先将这些3D高斯投影到基于像素的图像平面上,这一过程被称为“splatting”(图3a)。然后,3D GS对这些高斯进行排序,并计算每个像素的值。如图所示,NeRF和3D GS的渲染可以被视为彼此的逆过程。在接下来的内容中,我们从3D高斯的定义开始,这是3D GS中场景表示的最小元素。接下来描述如何将这些3D高斯用于可微分渲染。最后介绍了3D GS中使用的加速技术,这是快速渲染的关键。
三维高斯的性质:三维高斯的特征是其中心(位置)μ、不透明度α、三维协方差矩阵∑和颜色c。对于与视图相关的外观,c由球面谐波表示。所有属性都是可学习的,并通过反向传播进行优化。
Frustum Culling:给定指定的相机位姿,此步骤将确定哪些3D高斯位于相机的平截头体之外。通过这样做,给定视图之外的3D高斯将不会参与后续计算,从而节省计算资源。
Splatting:**在该步骤中,3D高斯(椭球)被投影到2D图像空间(椭球)中用于渲染。给定观看变换W和3D协方差矩阵∑,投影的2D协方差矩阵∑′使用以下公式计算:
Tiles (Patches):为了避免为每个像素推导高斯系数的成本计算,3D GS将精度从像素级转移到patch级细节。具体来说,3D GS最初将图像划分为多个不重叠的块,在原始论文中称为“tiles”。图3b提供了tiles的图示。每个瓦片包括16×16个像素。3D GS进一步确定哪些tiles与这些投影的高斯图相交。假设投影的高斯可能覆盖多个tiles,逻辑方法包括复制高斯,为每个副本分配相关tiles的标识符(即tile ID)。
并行渲染:在复制之后,3D GS将各个tile ID与从每个高斯的视图变换获得的深度值相组合。这生成字节的未排序列表,其中高位表示tile ID,低位表示深度。通过这样做,排序后的列表可以直接用于渲染(即alpha合成)。图3c和图3d提供了这些概念的视觉演示。值得强调的是,渲染每个tile和像素都是独立发生的,这使得这个过程非常适合并行计算。另一个好处是,每个tile的像素都可以访问公共共享内存,并保持统一的读取序列,从而能够以更高的效率并行执行alpha合成。在原始论文的官方实现中,该框架将tile和像素的处理分别视为类似于CUDA编程架构中的块和线程。
简而言之,3D GS在前向处理阶段引入了几种近似,以提高计算效率,同时保持高标准的图像合成质量。
3D Gaussian Splatting的优化
3D GS的核心是一个优化过程,旨在构建大量的3D高斯集合,准确捕捉场景的本质,从而促进自由视点渲染。一方面,3D高斯的特性应该通过可微分渲染来优化,以适应给定场景的纹理。另一方面,能够很好地表示给定场景的3D高斯数是预先未知的。一个很有前途的途径是让神经网络自动学习3D高斯密度。我们将介绍如何优化每个高斯的性质以及如何控制高斯的密度。这两个过程在优化工作流程中是交错的。由于在优化过程中有许多手动设置的超参数,为了清晰起见,我们省略了大多数超参数的符号。
参数优化
损失函数:一旦图像的合成完成,就将损失计算为渲染图像和GT的差:
密度控制
初始化:3D GS从SfM或随机初始化的稀疏点的初始集合开始。然后,采用点加密和修剪来控制三维高斯的密度。
点密集化:在点密集化阶段,3D GS自适应地增加高斯密度,以更好地捕捉场景的细节。这一过程特别关注几何特征缺失的区域或高斯分布过于分散的区域。密集化在一定次数的迭代之后执行,目标是表现出大的视图空间位置梯度(即,高于特定阈值)的高斯。它涉及在重建不足的区域克隆小高斯,或在重建过度的区域分裂大高斯。对于克隆,将创建高斯的副本,并将其移向位置梯度。对于分裂,用两个较小的高斯代替一个较大的高斯,将它们的规模缩小一个特定的因子。该步骤寻求高斯在3D空间中的最佳分布和表示,从而提高重建的整体质量。
点修剪:点修剪阶段涉及去除多余或影响较小的高斯,在某种程度上可以被视为一个正则化过程。这一步骤是通过消除几乎透明的高斯(α低于指定阈值)和在世界空间或视图空间中过大的高斯来执行的。此外,为了防止输入相机附近高斯密度的不合理增加,在一定次数的迭代后,将高斯的阿尔法值设置为接近零。这允许控制必要的高斯密度的增加,同时能够淘汰多余的高斯。该过程不仅有助于节省计算资源,还确保模型中的高斯对场景的表示保持精确和有效。
应用领域和任务
3D GS的变革潜力远远超出了其理论和计算的进步。本节深入探讨3D GS正在产生重大影响的各种开创性应用领域,如机器人、场景重建和表示、人工智能生成的内容、自动驾驶,甚至其他科学学科。3D GS的应用展示了其多功能性和革命性的潜力。在这里,我们概述了一些最著名的应用领域,深入了解3D GS如何在每个领域形成新的前沿。
SLAM
SLAM是机器人和自主系统的核心计算问题。它涉及机器人或设备在未知环境中理解其位置的挑战,同时建图环境布局。SLAM在各种应用中至关重要,包括自动驾驶汽车、增强现实和机器人导航。SLAM的核心是创建未知环境的地图,并实时确定设备在该地图上的位置。因此,SLAM对计算密集型场景表示技术提出了巨大的挑战,同时也是3D GS的良好试验台。
3D GS作为一种创新的场景表示方法进入SLAM领域。传统的SLAM系统通常使用点/曲面云或体素网格来表示环境。相比之下,3D GS利用各向异性高斯来更好地表示环境。这种表示提供了几个好处:1)效率:自适应地控制3D高斯的密度,以便紧凑地表示空间数据,减少计算负载。2) 准确性:各向异性高斯可以进行更详细、更准确的环境建模,尤其适用于复杂或动态变化的场景。3) 适应性:3D GS可以适应各种规模和复杂的环境,使其适用于不同的SLAM应用。一些创新研究在SLAM中使用了3D高斯飞溅,展示了这种范式的潜力和多功能性。
动态场景建模
动态场景建模是指捕捉和表示随时间变化的场景的三维结构和外观的过程。这涉及到创建一个数字模型,该模型准确地反映场景中对象的几何体、运动和视觉方面。动态场景建模在各种应用中至关重要,包括虚拟和增强现实、3D动画和计算机视觉。4D高斯散射(4D GS)将3D GS的概念扩展到动态场景。它结合了时间维度,允许对随时间变化的场景进行表示和渲染。这种范式在实时渲染动态场景的同时保持高质量的视觉输出方面提供了显著的改进。
AIGC
AIGC是指由人工智能系统自主创建或显著改变的数字内容,特别是在计算机视觉、自然语言处理和机器学习领域。AIGC的特点是能够模拟、扩展或增强人工生成的内容,实现从逼真图像合成到动态叙事创作的应用。AIGC的意义在于其在各个领域的变革潜力,包括娱乐、教育和技术发展。它是不断发展的数字内容创作格局中的一个关键元素,为传统方法提供了可扩展、可定制且通常更高效的替代方案。
3D GS的这种明确特性有助于实现实时渲染功能以及前所未有的控制和编辑水平,使其与AIGC应用程序高度相关。3D GS的显式场景表示和可微分渲染算法完全符合AIGC生成高保真、实时和可编辑内容的要求,这对虚拟现实、交互式媒体等领域的应用至关重要。
自动驾驶
自动驾驶旨在让车辆在没有人为干预的情况下导航和操作。这些车辆配备了一套传感器,包括相机、LiDAR以及雷达,并结合了先进的算法、机器学习模型和强大的计算能力。中心目标是感知环境,做出明智的决策,安全高效地执行机动。自动驾驶对交通运输具有变革潜力,提供了关键好处,如通过减少人为失误提高道路安全性,增强无法驾驶者的机动性,以及优化交通流量,从而减少拥堵和环境影响。
自动驾驶汽车需要感知和解读周围环境,才能安全行驶。这包括实时重构驾驶场景,准确识别静态和动态物体,并了解它们的空间关系和运动。在动态驾驶场景中,由于其他车辆、行人或动物等移动物体,环境不断变化。实时准确地重建这些场景对于安全导航至关重要,但由于所涉及元素的复杂性和可变性,这是一项挑战。在自动驾驶中,3D GS可以用于通过将数据点(例如从LiDAR等传感器获得的数据点)混合成内聚和连续的表示来重建场景。这对于处理不同密度的数据点和确保场景中静态背景和动态目标的平滑准确重建特别有用。到目前为止,很少有作品使用3D高斯对动态驾驶/街道场景进行建模,并且与现有方法相比,在场景重建方面表现出优异的性能。
性能对比
本节通过展示我们之前讨论的几种3D GS算法的性能来提供更多的经验证据。3D GS在许多任务中的不同应用,加上每个任务的定制算法设计,使得在单个任务或数据集中对所有3D GS算法进行统一比较变得不切实际。因此,我们在3D GS领域中选择了三个具有代表性的任务进行深入的性能评估。性能主要来源于原始论文,除非另有说明。
定位性能
静态场景渲染性能
动态场景渲染性能
驾驶场景渲染性能
数字人体性能
未来研究方向
尽管近几个月来3D GS的后续工作取得了显著进展,但我们认为仍存在一些有待克服的挑战。
- 数据高效的3D GS解决方案:从有限的数据点生成新颖的视图和重建场景是非常令人感兴趣的,特别是因为它们有可能以最小的输入增强真实感和用户体验。最近的进展已经探索了使用深度信息、密集概率分布和像素到高斯映射来促进这种能力。然而,仍然迫切需要在这一领域进行进一步探索。此外,3D GS的一个显著问题是在观测数据不足的地区出现伪影。这一挑战是辐射场渲染中的一个普遍限制,因为稀疏数据往往会导致重建不准确。因此,在这些稀疏区域中开发新的数据插值或积分方法代表了未来研究的一条很有前途的途径。
- 内存高效的3D GS解决方案:虽然3D GS展示了非凡的能力,但其可扩展性带来了重大挑战,尤其是当与基于NeRF的方法并置时。后者得益于仅存储学习的MLP的参数的简单性。在大规模场景管理的背景下,这种可扩展性问题变得越来越严重,其中计算和内存需求显著增加。因此,迫切需要在训练阶段和模型存储期间优化内存利用率。探索更高效的数据结构和研究先进的压缩技术是解决这些限制的有希望的途径。
- 高级渲染算法:目前3D GS的渲染管道是向前的,可以进一步优化。例如,简单的可见性算法可能导致高斯深度/混合顺序的剧烈切换。这突出了未来研究的一个重要机会:实现更先进的渲染算法。这些改进的方法应旨在更准确地模拟给定场景中光和材料特性的复杂相互作用。一种有前景的方法可能涉及将传统计算机图形学中的既定原理同化和适应到3D GS的特定环境中。在这方面值得注意的是,正在进行的将增强渲染技术或混合模型集成到3D GS当前计算框架中的努力。此外,逆渲染及其应用的探索为研究提供了肥沃的土壤。
- 优化和正则化:各向异性高斯虽然有利于表示复杂的几何形状,但会产生视觉伪像。例如,那些大的3D高斯,尤其是在具有依赖于视图的外观的区域,可能会导致弹出的伪影,视觉元素突然出现或消失,破坏沉浸感。在3D GS的正则化和优化方面有相当大的探索潜力。引入抗锯齿可以缓解高斯深度和混合顺序的突然变化。优化算法的增强可能会更好地控制空间中的高斯系数。此外,将正则化纳入优化过程可以加速收敛、平滑视觉噪声或提高图像质量。此外,如此大量的超参数影响了3D GS的泛化,这急需解决方案。
- 网格重建中的3D高斯:3D GS在网格重建中的潜力及其在体积和表面表示谱中的位置尚待充分探索。迫切需要研究高斯基元如何适用于网格重建任务。这一探索可以弥合体积绘制和传统基于表面的方法之间的差距,为新的绘制技术和应用提供见解。
- 赋予3D GS更多可能性:尽管3D GS具有巨大的潜力,但3D GS的全部应用范围在很大程度上仍未开发。一个很有前途的探索途径是用额外的属性来增强3D高斯,例如为特定应用量身定制的语言和物理属性。此外,最近的研究已经开始揭示3D GS在几个领域的能力,例如,相机姿态估计、手-物体相互作用的捕捉和不确定性的量化。这些初步发现为跨学科学者进一步探索3D GS提供了重要机会。
结论
据我们所知,这篇综述首次全面概述了3D GS,这是一项革命性的显式辐射场和计算机图形学技术。它描绘了传统NeRF方法的范式转变,突出了3D GS在实时渲染和增强可控性方面的优势。我们的详细分析证明了3D GS在实际应用中的优势,特别是那些需要实时性能的应用。我们提供了对未来研究方向和该领域尚未解决的挑战的见解。总的来说,3D GS是一项变革性技术,有望对3D重建和表示的未来发展产生重大影响。这项调查旨在作为一项基础资源,推动这一快速发展领域的进一步勘探和进展。
#ORB-SLAM3~地图初始化
基础矩阵/单应矩阵/三角化的实际应用
目的
通收获如下内容:
- 对极几何、对极约束以及基础矩阵(Fundamental)/本质矩阵(Essential)的数学原理,并且明白为何视觉SLAM中需要对极几何
- 单应矩阵(Homography)的基础概念,以及单应矩阵与基础矩阵的区别
- 如何通过匹配点对求解基础矩阵和单应矩阵
- 如何通过基础矩阵和单应矩阵求解相机的位姿
- 三角化的基础概念和应用
- ORBSLAM中的地图初始化详细流程
- 一个精简的剥离了复杂的ORB_SLAM3框架的地图初始化代码,并进行详细的中文注释。同时,提供可直接运行的demo。
本文代码:https://github.com/zeal-up/ORB_SLAM_Tracking
Part1 视觉SLAM中的地图初始化
在视觉SLAM中,地图初始化是一个非常重要的步骤,它决定了后续的跟踪、建图等模块的效果。简单来说,初始化的目的是利用前几帧图像,计算出相机位姿,并且构建出第一批3D地图点
第一批3D地图点为跟踪、建图等模块提供了一个初始的地图,这样后续的模块就可以利用这些地图点进行跟踪、建图等工作。
由于ORB_SLAM系列工作将传感器模式扩展到了:单目、双目、RGBD、IMU+单目、IMU+双目、IMU+RGBD等多种模式,所以地图初始化的方式也有所不同。
双目由于已知两个相机的内外参,可以直接三角化出3D点。三角化是单目的一个步骤,所以双目初始化比较简单。RGBD可以直接通过深度值还原3D坐标,更加简单。 配置了IMU之后实际也可以直接两个相机之间的姿态,也可以直接三角化出3D点(虽然IMU初始化需要考虑IMU参数的初始化,但是这部分内容不在本文的讨论范围内)。
因此,本文将重点放在单目初始化上。单目初始化由于涉及到对极几何和三角化和矩阵求解等知识,对于初学者会比较复杂。
Part2 ORB_SLAM地图初始化流程
01-init_pipeline
本文将对这流程中的每一个步骤进行详细的讲解,并且给出代码实现。
Part3 ORB特征提取及匹配
特征点提取是一个比较独立的内容,对于ORB特征提取可以参考这篇文章:https://zeal-up.github.io/2023/05/18/orbslam/orbslam3-ORBextractor/
Part4 对极几何及对极约束
4.1从实际问题出发
为什么视觉SLAM需要对极几何?
02-feature_point_matching
那么,我们现在的问题是,如何从这些点对的匹配关系,得到相机之间的相对位姿?
PS:通常,我们会将第一帧图像当作参考帧,也就是世界坐标系。第二帧相机的位姿也就是相对于第一帧相机的位姿。
4.2 对极几何
所谓的对极几何,就是指物体与两个相机之间空间几何关系。我们可以利用这个几何关系来求解相机之间的相对位姿。
4.3 对极约束
4.4 基础矩阵(Fundamental Matrix)F与本质矩阵(Essential Matrix)E
公式(7)和公式(9)都可以叫做对极约束。公式(7)忽略了相机内参的影响,因为一般在SLAM中相机内参是已知的,而归一化平面坐标可以方便地由相机内参和像素坐标得到,因此公式(7)是公式(9)的简化形式。
为了简便,我们可以记公式(9)中间部分为两个矩阵
要注意的是,由于上式中等式右边是0,因此左右两边同时乘以一个系数等式依旧成立,这一点我们在后面会再次提到
4.5 对极约束的几何意义
4.6 本质矩阵与基础矩阵的求解
4.6.1 基础矩阵的求解推导
本质矩阵是一个3x3矩阵,但其是由旋转与平移组成(6自由度),并且,要注意到公式(11)可以对任意尺度成立,也就是说本质矩阵可以放缩任意一个尺度,因此,本质矩阵有5个自由度。 因此,从理论上最少可以由5对点对求解(注意这里与PnP算法的不同,PnP算法等号两边没有0,一个点对可以建立两个等式,因此一个点对可以约束2个自由度。而这里一个点对只能建立一条等式,也就是约束一个自由度,因此需要5个点对)
04-solve_essential_matrix
以上方程求解后就可以得到本质矩阵(对任意尺度成立)
4.6.2 使用OpenCV求解
OpenCV有Api可以直接通过匹配点对计算基础矩阵
Mat cv::findFundamentalMat(
InputArray points1,
InputArray points2,
int method,
double ransacReprojThreshold,
double confidence,
int maxIters,
OutputArray mask = noArray()
)
具体说明可以参考Api说明:findFundamentalMat()
Part5 单目尺度不确定性
5.1 如何理解单目尺度不确定性
让我们再次回到对极几何的图
Part6 单应矩阵(Homography Matrix)
我们前面讨论基础矩阵的概念以及如何从一些匹配点对关系中求解基础矩阵。我们没有对关键点是否在一个平面上进行任何假设。但是,如果我们假设关键点在一个平面上,那么我们就可以使用单应矩阵(Homography Matrix)来求解相机之间的位姿。
05-homography_example
当匹配点对的关键点都是在3D空间中一个平面上时,这些点对关系可以通过单应矩阵来描述(相差一个常量系数)
06_homographyMatrix
6.1 单应矩阵与相机内外参的关系
6.2 单应矩阵的求解
6.2.1 单应矩阵的求解推导
6.2.2 使用OpenCV求解
OpenCV提供接口可以直接求解单应矩阵
Mat cv::findHomography(
InputArray srcPoints,
InputArray dstPoints,
int method = 0,
double ransacReprojThreshold = 3,
OutputArray mask = noArray(),
const int maxIters = 2000,
const double confidence = 0.995
)
详细的使用可以参考Api说明:cv::findHomography()
如果对内部实现有兴趣,可以参考这篇文章博客:对OpenCV::findHomography的源码解读
Part7 从H、E矩阵恢复R、t
7.1 基础要点
F矩阵与E矩阵只相差相机内参,通常我们会将F矩阵转换为E矩阵,然后再恢复R、t。
从H、E矩阵求解R、t涉及到比较复杂的数学推导,对于CV从业人员我认为这部分可以忽略具体推导过程,但是要抓住几个要点:
7.2 从E矩阵恢复R、t
求解推导过程忽略,我们只需要知道根据E可以分解出两对R,t如下
08-four_situation_of_E
7.3 使用OpenCV从E中求解R,t
OpenCV提供了一个api可以直接从E矩阵中分解出R、t
void cv::decomposeEssentialMat(
InputArray E,
OutputArray R1,
OutputArray R2,
OutputArray t
)
详细使用参考API说明:cv::decomposeEssentialMat
7.4 从H矩阵恢复R、t
从H矩阵恢复R、t有多种方法,论文中的方法叫Faugeras SVD-based decomposition,最终可以求解出8种解。另外一种有名的数值解法(通过奇异值分解)叫Zhang SVD-based decomposition
OpenCV的接口使用的是分析解法:https://inria.hal.science/inria-00174036v3/documentOpenCV的接口最终返回4种解
OpenCV的接口使用说明:cv::decomposeHomographyMat
Part8 如何选择正确的R、t
无论从E矩阵还是H矩阵中恢复出R、t,都会得到多种解。我们需要从这些解中选择出正确的解。 最简单的做法是利用分解出的R、t对匹配点进行三角化,并检查该3D点在两个相机下的深度值,3D点必须在两个相机下都是正的才是正确的解。
对于单应矩阵的分解结果,OpenCV提供了一个函数可以帮助我们选择正确的解:cv::filterHomographyDecompByVisibleRefpoints
在ORB_SLAM中,对于每一种解,都会对所有匹配点进行三角化,对三角化出来的点,会进行很多步骤的检查,最后选择拥有最多内点的解作为正确的解。
Part9 三角化
9.1 三角化的基础概念和推导
9.2 三角化的求解实现
可以用SVD求解上述方程,求解出的3D坐标有4个元素,需要将第四个元素归一化为1。这里把ORB_SLAM的这部分代码也贴出来
/**
* @brief 三角化获得三维点
* @param x_c1 点在关键帧1下的归一化坐标
* @param x_c2 点在关键帧2下的归一化坐标
* @param Tc1w 关键帧1投影矩阵 [K*R | K*t]
* @param Tc2w 关键帧2投影矩阵 [K*R | K*t]
* @param x3D 三维点坐标,作为结果输出
*/
bool GeometricTools::Triangulate(
Eigen::Vector3f &x_c1, Eigen::Vector3f &x_c2, Eigen::Matrix<float,3,4> &Tc1w, Eigen::Matrix<float,3,4> &Tc2w,
Eigen::Vector3f &x3D)
{
Eigen::Matrix4f A;
// x = a*P*X, 左右两面乘x的反对称矩阵 a*[x]^ * P * X = 0 ,[x]^*P构成了A矩阵,中间涉及一个尺度a,因为都是归一化平面,但右面是0所以直接可以约掉不影响最后的尺度
// 0 -1 v P(0) -P.row(1) + v*P.row(2)
// 1 0 -u * P(1) = P.row(0) - u*P.row(2)
// -v u 0 P(2) u*P.row(1) - v*P.row(0)
// 发现上述矩阵线性相关(第一行乘以-u加上第二行乘以-v等于第三行),所以取前两维,两个点构成了4行的矩阵(X分别投影到相机1和相机2),就是如下的操作,求出的是4维的结果[X,Y,Z,A],所以需要除以最后一维使之为1,就成了[X,Y,Z,1]这种齐次形式
A.block<1,4>(0,0) = x_c1(0) * Tc1w.block<1,4>(2,0) - Tc1w.block<1,4>(0,0);
A.block<1,4>(1,0) = x_c1(1) * Tc1w.block<1,4>(2,0) - Tc1w.block<1,4>(1,0);
A.block<1,4>(2,0) = x_c2(0) * Tc2w.block<1,4>(2,0) - Tc2w.block<1,4>(0,0);
A.block<1,4>(3,0) = x_c2(1) * Tc2w.block<1,4>(2,0) - Tc2w.block<1,4>(1,0);
// 解方程 AX=0
Eigen::JacobiSVD<Eigen::Matrix4f> svd(A, Eigen::ComputeFullV);
Eigen::Vector4f x3Dh = svd.matrixV().col(3);
if(x3Dh(3)==0)
return false;
// Euclidean coordinates
x3D = x3Dh.head(3)/x3Dh(3);
return true;
}
9.3 使用OpenCV进行三角化
OpenCV也提供接口进行三角化,且可以批量操作:cv::triangulatePoints
Part10 ORB_SLAM中的初始化
ORB_SLAM中对于初始化部分的操作虽然基础原理离不开上面的内容,但是具体实现上有很多细节,不仅仅反应作者的深厚算法功底,也反映了作者的工程能力。我们这里介绍ORB_SLAM中初始化部分的一些特殊操作
10.1 自动选择Homography或者Fundamental模型进行初始化
10.2 从H、F矩阵恢复R、t
选择了H或者F模型之后,会对H/F进行分解得到R、t。对于每一种[R,t]组合,会对所有匹配点对进行三角化,然后对三角化出来的3D点进行检查,去除以下情况的点:
- 深度为负(需满足在两个相机下都是正的)
- 重投影误差大于某个阈值(默认为2个像素)
同时,对每个点会统计其到两个相机光心的夹角,最后对所有夹角进行从小到大排序,选择第50个夹角,如果这个夹角小于1度,会认为初始化失败。
10.3 只在特征金字塔的最底层进行特征点匹配
在ORB_SLAM中,初始化阶段特征点匹配是在特征金字塔的最底层进行的。这一点也可以理解。图像金字塔主要是用来解决移动造成的尺度变化,而在初始化阶段,两帧图像不会有大的尺度变化,因此只需要在最底层进行匹配即可。
Part11附录A:在复现过程中的一些问题
PS:本文提供详细注释的精简代码,并附有demo:https://github.com/zeal-up/ORB_SLAM_Tracking
A-1 H矩阵的分数一直比F模型的分数低
在实验的过程中发现,H矩阵的分数一直比F模型的分数低,初始化时一直是选择的F模型进行初始化。后来发现ORBSLAM3中有一个bug,在使用H模型重建时并没有对3D点赋值,所以H模型其实可能一直没有被用上。https://github.com/UZ-SLAMLab/ORB_SLAM3/pull/806
A-2 与OpenCV求解H/F矩阵的对比
笔者在使用ORB_SLAM提供的代码进行初始化的时候很容易失败,而且每次运行的结果可能都不太相同。后来尝试使用OpenCV的接口求解H/F矩阵,发现每次运行的结果都比较一致,而且很少失败。OpenCV在求解H/F矩阵时也是用的RANSAC方法,区别比较大的应该是分数的计算。ORB_SLAM中计算分数的时候是计算双边投影误差,而OpenCV中计算分数的时候是计算内点个数。这两种方法的区别可能导致了ORB_SLAM中的实现对随机数非常敏感,每次运行的结果都不一样。
同时,使用ORB_SLAM的实现找出来的H/F矩阵,很容易在后续的三角化阶段
被拒绝。而使用OpenCV接口求解的H/F矩阵,很少被拒绝。
另外,使用OpenCV的接口计算H、F矩阵,速度要比ORB_SLAM中的实现快很多,一个原因可能还是双边投影误差的计算需要两次投影。
Part12 附录B:Demo结果
PS:本文提供详细注释的精简代码,并附有demo:https://github.com/zeal-up/ORB_SLAM_Tracking
B.1 特征提取结果
同时可视化特征点的角度方向
run_01-features
B.2 特征点匹配
run_02-matches
B.3 成功三角化的特征点
run_03-matchesWithFinestFeatures
B.4 三角化的点
#Point-PEFT
仅需1%的参数量就可以在下游任务上实现和完全微调相媲美的性能结果。 PEFT 技术正式进军3D领域
论文标题: 《Point-PEFT: Parameter-Efficient Fine-Tuning for 3D Pre-trained Models》
作者单位:上海人工智能实验室,西北工业大学
代码链接:https://github.com/Ivan-Tang-3D/Point-PEFT
论文链接:https://arxiv.org/abs/2310.03059
PEFT, Parameter-Efficient Fine-Tuning
此前已经在NLP、2D 图像预训练大模型中被广泛应用(Prompt Tuning, Lora, Adapter等),随着3D点云预训练模型的发展,PEFT技术如何应用到3D大模型中成为了研究者们所关切的问题。今天为大家介绍的 Point-PEFT 给出了解决方案,仅需1%的参数量就可以在下游任务上实现和完全微调相媲美的性能结果!
背景和动机
在自然语言领域,由大型文本语料库预训练的GPT系列表现出卓越的语言生成能力。在2D图像领域,ViT和多模态CLIP也展现了强大的视觉泛化能力。然而,这些大型模型的完全微调通常需要大量时间和计算资源。为了缓解这一问题,研究者已经提出许多相关的参数高效微调(PEFT)方法,主要将预训练大模型中的大部分训练参数冻住,并仅在下游任务中优化原有的极小部分参数或新插入的PEFT模块。常用技术包括适配器(Adapter)、提示调整(P-Tuning, Prompt-Tuning)和低秩适应(LoRA)。
但针对3D预训练模型的PEFT方法仍未被充分挖掘探索。因此,受语言和2D图像领域成功的启发,我们提出以下问题:我们能否开发一个针对3D点云的高效的PEFT框架?
为此我们提出了Point-PEFT
,一个针对3D预训练模型的新型参数高效微调框架。针对点云的稀疏和不规则特性,我们引入了Point-prior Prompt
和Geometry-aware Adapter
模块,可以有效利用点云先验知识并细粒度地理解3D几何信息。
在不同的下游3D任务中,我们冻结了大部分预训练参数,只对任务特定的头部和我们的Point-PEFT组件进行微调,我们达成比完全微调更加卓越的性能表现,上图就展示了在ModelNet40数据集上Point-PEFT框架和完全微调在三个不同的Transformer-based模型上的性能对比。
方法
如上图所示,给定一个预训练的3D点云Transformer ,包含12个blocks和一个特定的下游任务头,我们在微调时冻结了大部分参数,只更新我们引入的Point-PEFT模块和特定的头。
对于输入的点云PC,首先通过Token Embed模块编码为M个point tokens。然后,我们在point tokens前附加初始化过的长度为K的prompt tokens,表示为P0。P0的每个token都加和了一个可学习的3D坐标来表示对应的空间位置。
对于第i个block,我们将上一个block的输出和Point-prior Prompt 的输出相连接作为输入,先后输入预训练的自注意层和带有残差连接的前馈网络(FFN)。之后,我们采用Geometry-aware Adapter模块(GA-Adapter)来编码细粒度的局部3D结构。
Point-prior Prompt
如上图(a),为了创建点先验库,我们使用预训练的3D Transformer 对下游训练数据集T中的所有点云进行编码,沿样本维度连接训练集特征并作为下游3D领域的先验知识存储。对于输入的点云PC,我们先使用预训练的3D Transformer 来获取3D特征Ft。
紧接着,我们对Ft进行无参数注意力操作,以便从点先验库中自适应地聚合有用的语义信息。具体来说,输入点云特征Ft作为查询(query),点先验库中预编码的训练集特征作为键(key)和值(value)。在注意力机制中,我们首先计算查询和键之间的余弦相似度S,表示输入点云对先验训练集中所有3D知识的注意力分数。
随后,我们对相似度S进行排序,并获取前(K-2)个分数S(k-2)。相应地,我们选择值中对应的(K-2)个训练集特征X(k-2)。在此基础上,我们进行加权聚合得到Fa,代表了输入点云特征在聚合了点先验库中的先验知识后的结果。
之后,我们将原始特征Ft与Fa和X(k-2)连接起来,以获得当前点云及其所有相关3D先验语义的综合表示Pprior。对于第i个block,我们会逐元素地将Pprior与一组可学习的prompt tokens相加,得到最终的Point-prior prompt。我们通过先验的特定领域语义自适应地增强了可学习的下游知识,有助于更好的微调性能。
Geometry-aware Adapter
如上图(b),在第i个block中,特征在经过预训练的自注意层和前馈网络(FFN)处理后,被送入几何感知适配器(Geometry-aware Adapter), 通过局部聚合来把握细粒度的几何信息,这与自注意层的全局交互相辅相成。
输入首先通过bottleckneck MLP进行转换,然后采用最远点采样(FPS)将数量下采样作为一组局部中心。之后,我们通过k-最近邻(k-NN)算法为每个局部中心获取邻近点。每个局部邻域被送入一个自注意层进行组内交互以把握每个组内的细粒度局部语义。
自注意层的权重在所有block中共享并有效地减少了可训练参数。在此基础上,我们使用最大池化操作来整合每个局部邻域内的特征。最后,参考PointNet++,我们将整合的局部特征通过加权求和传播到对应的k个邻近点,进一步通过MLP处理以获得输出。
实验
如上表所示,在ScanObjectNN数据集上我们的Point-PEFT框架在仅使用不到5%的可训练参数的情况下,超过了完全微调方法。我们框架带来的改进分别为Point-BERT提升了+1.9%,Point-M2AE提升了+0.1%,以及Point-MAE提升了+1.0%,表明我们的框架在复杂的3D场景下通过提取的细粒度几何信息具有巨大优势。得益于预训练的先验知识,我们的Point-PEFT框架在适应与真实世界扫描对象相关的任务方面具有更强的能力。
在ModelNet40数据集上通过不到4%的可学习参数,我们分别在Point-BERT、Point-M2AE和Point-MAE上取得了93.4%、94.1%和94.2%的性能,增益分别为+0.7%、+0.7%和+1.0%。这些结果指出了我们框架在处理稀疏和不规则点云特征方面的有效性。对于合成的点云对象,Point-PEFT框架能够同时把握全局形状并理解局部3D结构。
如上表所示,我们的Point-PEFT框架可以超越传统的PEFT技术并获得巨大的增益,相比于Prompt Tuning提高了5.5%,相比于Adapter提高了2.4%,相比于LoRA提高了2.8%,以及相比于Bias Tuning(BitFit)提高了4.1%。综合实验展示了我们框架相对于传统PEFT方法的优越性,表明我们提出的方法有效地将3D领域特定知识整合到PEFT框架中。
总结
在本文中,我们为大家介绍了Point-PEFT
,一个专门针对点云预训练模型的参数高效微调框架。我们的方法在下游任务上实现了与完全微调相当的性能,同时显著减少了可学习参数的数量。
框架由一个几何感知适配器(Geometry-aware Adapter)和一个点先验提示(Point-prior Prompt)组成。几何感知适配器利用局部交互来提取细粒度的几何信息。点先验提示使用预训练的语义信息来进行增强。广泛的实验验证了Point-PEFT的有效性。我们期望Point-PEFT可以作为未来3D PEFT研究的baseline。
#X-Ray
NUS研究团队胡涛博士等人近期发布了一种全新的3D表示—X-Ray,它能够序列化地表示从相机摄像角度看过去的物体的逐层次的物体表面形状和纹理,可以充分利用视频生成模型的优势来生成3D物体,可以同时生成物体的内外3D结构。
看透物体的3D表示和生成模型:NUS团队提出X-Ray
- 项目主页:https://tau-yihouxiang.github.io/projects/X-Ray/X-Ray.html
- 论文地址:https://arxiv.org/abs/2404.14329
- 代码地址:https://github.com/tau-yihouxiang/X-Ray
- 数据集:https://huggingface.co/datasets/yihouxiang/X-Ray
如今的生成式AI在人工智能领域迅猛发展,在计算机视觉中,图像和视频生成技术已日渐成熟,如Midjourney、Stable Video Diffusion [1]等模型广泛应用。然而,三维视觉领域的生成模型仍面临挑战。
目前的3D模型生成技术通常基于多角度视频生成和重建,如SV3D模型[2],通过生成多角度视频并结合神经辐射场(NeRF)或者3D高斯渲染模型(3D Gaussian Splatting技术逐步构建3D物体。这种方法主要限制在只能生成简单的、无自遮挡的三维物体,且无法呈现物体内部结构,使得整个生成过程复杂而且不完美,显示出该技术的复杂性和局限性。
究其原因,在于目前缺乏灵活高效且容易泛化的3D Representation (3D表示)。
图1. X-Ray序列化3D表示
X射线能够穿透并记录关键物体内外表面信息,受到这个启发,新加坡国立大学(NUS)胡涛博士带领研究团队发布了一种全新的3D表示—X-Ray,它能够序列化地表示从相机摄像角度看过去的物体的逐层次的物体表面形状和纹理,可以充分利用视频生成模型的优势来生成3D物体,可以同时生成物体的内外3D结构。
本文将详细展示X-Ray技术的原理、优势及其广泛的应用前景。
图2. 与基于渲染的3D模型生成方法比较。
技术革新:物体内外表面的3D表示方法
X-Ray表示:从相机中心开始朝向物体方向的H×W个矩阵点发射射线。在每条射线方向上,逐个记录与物体的表面相交点的L个包含深度、法向量和颜色等的三维属性数据,然后将这些数据组织成L×H×W的形式,实现任意3D模型的张量表示,这就是该团队提出的X-Ray表示方法。
值得注意的是,该表示形式与视频格式一样,因此可以用视频生成模型做3D生成模型。具体过程如下。
图3. 不同层数的X-Ray示例样本。
1.编码过程: 3D模型转X-Ray
通过编码过程,将一个任意的3D模型转化为X-Ray,它和视频格式是一样的,并且具有不同的帧数,通常情况下,帧数L=8 足够表示一个3D物体。
2.解码过程:X-Ray转3D模型
给定一个X-Ray,也可以通过解码过程转化回3D模型,这样只需要通过生成X-Ray即可生成3D模型。具体过程包括点云生成过程和点云重建表面两个过程。
- X-Ray到点云:X-Ray很容易转化为点云,该点云中的每个点除了有3D点的位置坐标,还具有颜色和法向量信息。
其中r_0,r_d分别是相机射线的起点和归一化方向,通过对每个相机射线的处理,就可以获得一个完整的点云。
- 点云到三维网格:接下来就是将点云转化为三维网格的过程,这是一个被研究了很多年的技术,因为这些点云具有法向量,所以采用Screened Poisson 算法直接将点云转化为三维网格模型,即最终的3D模型。
基于X-Ray表示的3D模型生成
为了生成高分辨率的多样3D X-Ray模型,该团队使用了与视频格式相似的视频扩散模型架构。这个架构可以处理连续的3D信息,并通过上采样模块来提高X-Ray的质量,生成高精度的3D输出。扩散模型负责从噪声数据逐步生成细节丰富的3D图像,上采样模块则增强图像分辨率和细节,以达到高质量标准。结构具体如图4所示。
X-Ray 扩散生成模型
扩散模型在X-Ray生成中使用潜在空间,通常需要自定义开发向量量化-变分自编码器(VQ-VAE)[3] 进行数据压缩,这一缺少现成模型的过程增加了训练负担。
为有效训练高分辨率生成器,该团队采用了级联合成策略,通过技术如Imagen和Stable Cascaded,从低到高分辨率逐步训练,以适应有限的计算资源并提高X-Ray图像质量。
具体而言,使用Stable Video Diffusion中的3D U-Net架构作为扩散模型,生成低分辨率X-Ray,并通过时空注意机制从2D帧和1D时间序列中提取特征,增强处理和解释X-Ray能力,这对高质量结果至关重要。
X-Ray 上采样模型
前一阶段的扩散模型仅能从文本或其他图像生成低分辨率的X-Ray图像。在随后的阶段,着重提升这些低分辨率X-Ray至更高分辨率。
该团队探索了两种主要方法:点云上采样和视频上采样。
由于已经获得了形状和外观的粗糙表示,将这些数据编码成带有颜色和法线的点云是一个很直接的过程。
然而,点云表示结构过于松散,不适合进行密集预测,传统的点云上采样技术通常只是简单增加点的数量,这对于提升诸如纹理和颜色等属性可能不够有效。为了简化流程并确保整个管道的一致性,选择使用视频上采样模型。
这个模型改编自Stable Video Diffusion(SVD)的时空VAE解码器,专门从头开始训练,以4倍的因子上采样合成的X-Ray帧,同时保持原始的层数。解码器能够在帧级和层级上独立进行注意力操作。这种双层注意力机制不仅提高了分辨率,还显著改善了图像的整体质量。这些功能使得视频上采样模型成为在高分辨率X-Ray生成中更加协调和有效的解决方案。
图4:基于X-Ray表示的3D模型生成框架,包括X-Ray扩散模型与X-Ray上采样模型。
实验
1. 数据集:
实验使用了Objaverse数据集的一个筛选子集,从中移除了缺少纹理和不充分提示的条目。
这个子集包含超过60,000个3D对象。对于每个对象,随机选择4个摄像机视角,覆盖从-180到180度的方位角和从-45到45度的仰角,摄像机到对象中心的距离固定为1.5。
然后使用Blender软件进行渲染,并通过trimesh库提供的光线投射算法生成相应的X-Ray。通过这些过程,可以创建超过240,000对图像和X-Ray数据集来训练生成模型。
2. 实现细节:
X-Ray扩散模型基于Stable Video Diffusion (SVD) 中使用的时空UNet架构,进行了轻微调整:模型配置为合成8个通道:1个命中通道,1个深度通道和6个法线通道,与原始网络的4个通道相比。
鉴于X-Ray成像与传统视频之间的显著差异,从头开始训练模型,以弥补X-Ray与视频领域之间的大差距。训练在8个NVIDIA A100 GPU服务器上进行了一周。在此期间,学习率保持在0.0001,使用AdamW优化器。
由于不同的X-Ray具有不同数量的层,将它们填充或裁剪到相同的8层,以便更好地批处理和训练,每层的帧尺寸为64×64。对于上采样模型,第L层的输出仍然是8,但每个帧的分辨率提高到256×256,增强了放大X-Ray的细节和清晰度,结果如图5和图6所示。
图5:图像到X-Ray并到3D模型生成
图6:文本到X-Ray并到3D模型生成
未来展望:新表示带来无限可能
随着机器学习和图像处理技术的不断进步,X-Ray的应用前景无限广阔。
未来,这种技术可能会与增强现实(AR)和虚拟现实(VR)技术结合,为用户创造出完全沉浸式的3D体验。教育和训练领域也可以从中受益,例如通过3D重建提供更为直观的学习材料和模拟实验。
此外,X-Ray技术在医疗影像和生物技术领域的应用,可能改变人们对复杂生物结构的理解和研究方法。期待它如何改变与三维世界的互动方式。
#CDSM~
融合雷达数据,提升三维目标检测性能
在本论文中,作者提出了一种新颖的方法来解决自动驾驶车辆感知系统中用于三维目标检测的摄像头和雷达传感器融合问题。
作者的方法基于深度学习的最新进展,并利用两种传感器的优势来提高目标检测性能。
具体来说,作者使用最先进的深度学习架构从摄像头图像中提取2D特征,然后应用一种新颖的跨域空间匹配(CDSM)转换方法将这些特征转换为3D空间。
随后,作者采用互补融合策略将它们与提取的雷达数据融合,以生成最终的3D目标表示。为了证明作者方法的有效性,作者在NuScenes数据集上进行了评估。
作者将作者的方法与单一传感器性能以及当前的最新融合方法进行了比较。作者的结果显示,所提出的方法比单一传感器解决方案具有更优越的性能,并且可以直接与其他顶级融合方法竞争。
1 Introduction
现代汽车每天都在变得越来越自动化。尽管它们距离实现完全的5级自动化还相去甚远,但作者在这个研究领域看到了显著的进展。其中一个主要原因是人工感知系统的进步。在自动驾驶车辆(AV)中,感知系统负责识别周围环境:过滤掉背景,检测其他道路使用者(汽车、行人等)和重要的基础设施地标(车道线、交通标志、交通信号灯等)。
为了执行感知任务,车辆配备了多功能的传感器套件[2]。一个典型的配置包括一个高分辨率的正面摄像头,用于一般目标检测,辅以较低分辨率的周围摄像头,以提供360度的视野,用于检测靠近车辆周围的物体。此外,高密度的激光雷达传感器用于精确的距离测量,而近距离和远距离雷达的结合则用于获取准确的速度和距离读数。
这些传感器的原始数据,以图像或点云的形式,随后被处理以获得环境的模型,例如用于路径规划算法和安全系统。从原始传感器读数创建这样的模型是一项复杂的任务。
这个任务复杂到传统算法无法处理在不同真实道路场景中收集的数据的多样性和数量,因此使用了机器学习方法来处理传感器输入。特别是神经网络已经被证明在执行目标检测任务方面非常出色。它们在图像中识别物体的能力超越了人类。同样,激光雷达和雷达传感器的点云对人类来说可能难以解释,而神经网络可以轻松地找到其中的模式。
图2:CDSM融合方法在NuScenes测试数据上的预测结果示例。预测的物体在摄像头视图和增强的BEV视图中以蓝色标记。绿色立方体表示匹配的 GT 标签。在BEV视图中添加了激光雷达点云作为参考。
为了确保AV感知系统的性能更上一层楼,融合算法将单个传感器数据和最终的感知结果结合在一起。融合结果应该更加健壮,并从每个传感器的优势中受益。另外,在部分传感器被遮挡或其他故障模式的情况下,融合算法提供了一层额外的安全保障。它可以通过依赖更可靠的传感器读数来减轻危险的影响。融合算法可以分为高级或低级。高级融合利用来自各个传感器检测到的目标信息,并在目标层面进行融合。
低级融合更接近原始输入数据,直接使用每个数据流的信息。它们之间的主要区别在于,高级融合操作已经处理过的传感器检测结果,而低级融合操作原始或仅最小处理过的数据流本身。因此,低级融合神经网络可能发现跨传感器数据中的模式,这些模式在更高(目标)层面是无法访问的。
在自动驾驶车辆的情况下,低级融合通常是在图像和点云数据上进行的。图像来自汽车级摄像头,在许多方面都已被证明对感知系统至关重要。但当涉及到点云数据时,有两种传感器,激光雷达和雷达,它们产生的输出看似非常相似,但之间存在重大差异。
这两种传感器都能在3D空间中产生带有精确距离读数的点云数据,但激光雷达点云的稀疏性(几十万点)比雷达(几百点)要密集得多,因此包含更多信息。这是有代价的,因为旋转式激光雷达是更昂贵的传感器,从制造商的角度来看,不适合大规模生产。
固态激光雷达成本较低,但这类传感器的发展尚未达到汽车级传感器所需的技术就绪水平[5]。另一方面,雷达使用无线电频率而不是光波,对道路环境影响的抵抗力要强得多。它们还为每个检测到的点提供关于速度的额外信息,这对于交通环境建模可能非常有用。考虑到这些差异,两种传感器似乎都适合与摄像头图像进行融合,因为它们可以提供互补信息。也就是说,在深度学习传感器融合领域,与摄像头-激光雷达融合解决方案相比,摄像头-雷达融合解决方案的数量要少得多。
在本文中,作者提出了一种基于神经网络的低 Level 摄像头-雷达融合感知系统新方法,以解决这些传感器数据融合的问题。在相关研究部分的基础上,作者采用了用于摄像头-LiDAR解决方案的多视角方法,分别使用单独的单阶段架构进行摄像头处理和 Voxel 化的雷达点云处理。然后,在这些获得的特征图上,作者采用一种新颖的跨领域空间匹配(CDSM)低 Level 融合块将它们融合在一起,以产生增强的鸟瞰图内部表示。基于这种表示,检测Head生成带有相关参数的3D物体边界框。作者在nuScenes[6]数据集上进行了实验,并展示了作者解决方案的优势和不足。
本文结构如下。在第2部分,作者回顾了关于单传感器感知以及不同融合技术的研究工作。在第3部分,作者介绍了基于摄像头-雷达的感知系统方法,包括详细的网络架构和CDSM融合方法。第4部分包含了进行的实验的描述以及作者以感知关键绩效指标(KPIs)和融合相对于单传感器系统的改进增益形式获得的结果。最后,作者在第5部分得出结论。
2 Related Work
作者在两个主要领域回顾相关工作:首先,作者讨论了深度学习技术在视觉识别方面的发展;其次,作者调研了无监督学习及其在视觉数据应用方面的进展。
Camera object detection
在摄像机图像中的目标检测任务是第一个成功应用卷积神经网络解决方案的领域。从那时起,研究行人通过应用新颖的架构和机制不断改进算法以提高性能。作者可以将目标检测方法分为两大类:2D图像平面和单目3D域检测器。
在2D检测器中最易识别的架构之一是单次射击的YOLO(You Only Look Once)网络。随着时间的推移,已经提出了改进措施以提高初始网络性能。YOLOv2利用 Anchor 框机制,不是预测原始边界框大小,而是相对于最适合的预定义 Anchor 大小进行预测。YOLOv3 引入了多尺度训练,以在不同的神经网络特征金字塔网络(FPN) Level 上对小、中、大物体进行处理,然后在非最大抑制(NMS)算法之前进行拼接。YOLOv4 通过应用跨阶段部分连接(CPS)主干,路径聚合网络(PAN),以卷积块注意力机制(CBAM)形式的注意力,CIoU 度量改进损失计算和mish激活函数来细化网络架构。基于相同的概念,RetinaNet 架构以Focal Loss的形式引入了改进。新的损失函数改善了类别不平衡问题以及整体训练速度和稳定性。
进一步优化单次射击检测器的架构,谷歌的研究行人更深入地研究了模型缩放,即模型的宽度、深度和分辨率。在他们的论文EfficientNet中,通过复合系数,他们设计了一种更小、更快、但性能更好的架构,该架构是从具有各种宽度、深度和分辨率参数的模型集合中选择的。紧随这个想法,引入了检测网络架构EfficientDet,它使用EfficientNet作为主干。此外,在多尺度特征融合的思想基础上,他们提出了加权的双向特征金字塔网络(BiFPN),以更有效地传播内部网络表示。在EfficientNetV2中,对主干架构进行了进一步优化,以便在模型大小方面实现更好的训练速度和参数效率。不同的主干架构在Deep Layer Aggregation(DLA)[18]中有所展示。作者提出更深入的特征聚合以改善跨主干层的信息共享。这包括迭代深度聚合(IDA)和分层深度聚合(HDA)这两种新颖的特征聚合方法。
尽管从单个单目相机图像在3D空间中进行目标检测要复杂得多,但最近的研究表明,特定的神经网络架构也能实现有意义的结果。在CenterNet[19]中,2D模型的扩展,所提出的方法是将3D目标检测分为两步。
第一步是对给定图像中长方体的中心进行 Anchor-Free 预测,
第二步是回归所有3D参数,如深度、3D尺寸和旋转角度。在预测中心投影后,获得3D结果。同样,在FCOS3D[21]中,作者使用一组预定义的图像中3D地标点来执行2D中心性预测,并根据2D位置和深度将其投影到2.5D空间。其余参数也在3D空间中进行回归,以得到最终的目标预测。
Pointcloud object detection
来自激光雷达和雷达的输入传感器数据以点坐标及其对应特征的形式呈现。根据传感器的不同,特征可以是激光雷达的反射强度或雷达的截面和速度。这类点的列表通常称为点云。在神经网络方面,点云处理带来了一些挑战。网络必须对输入点的所有排列具有不变性;改变输入列表中数据的顺序应该产生相同的结果。这类列表的长度也可能因传感器读数而异,但由于神经网络架构的结构,它倾向于接受固定的输入大小。另一方面,当点云数据散布在三维空间时,数据非常稀疏(95%的空间是空的)。这些问题导致了对点云处理采用了两种神经网络方法:逐点方法和 Voxel 方法。
在分类网络PointNet [22]中,逐点方法使用变换密集层分别提取每个点的特征,尽管这些层的权重是共享的。为了确保对点顺序的不变性,使用最大池化层来提取全局特征。另一个逐点架构PointRCNN [23]采用两阶段方法进行3D目标检测任务。第一阶段,从背景中分割点,并以自下而上的方式生成少量的检测。在第二阶段,这些检测针对局部空间特征和全局语义特征进行逐点精细化,从而产生精确的边界框和置信度分数。
对于检测问题,更常用的是 Voxel 方法。在VoxelNet [24]中引入的思想是将点散布在三维空间中,为了最小化计算努力和数据稀疏性,整个空间被划分为较小的立方体,称为 Voxel 。每个 Voxel 都由Voxel Feature Extractor(VFE)层基于其中的点来计算特征。特征提取后,固定大小的输出张量通过3D卷积层处理,以生成3D检测结果。Pointpillars [25]算法通过将 Voxel 沿z轴垂直堆叠来改变特征提取。通过这样做,提取的输出是一个三维张量,而不是像在VoxelNet中的四维张量。这使得可以使用2D卷积而不是3D卷积,正如论文所示,这极大地提高了推理时间(达到实时)。
在最近称为PV-RCNN [26]的工作中,作者提出将逐点处理方法和 Voxel 处理方法结合到一个网络架构中。除了正常的 Voxel 特征提取之外, Voxel 子网络的特征图与原始Voxel Set Abstraction Module中的逐点特征融合。融合的结果产生了关键点特征,并传递到检测Head以放大输出网格中的某些区域。
另一方面,仅雷达的3D目标检测是一个较少受到关注的研究课题。在最近的NVRadarNet [27]中,作者使用传感器峰值检测,而不是原始的天线信号,来创建一个稀疏的雷达点云。这样的点云散布在BEV网格上,并通过编码器-解码器模型处理以产生3D物体。他们在NuScenes数据集上展示了结果,但这些结果与激光雷达传感器在3D目标检测任务的KPI指标方面所取得的成绩相去甚远。
Fusion architectures
传感器融合算法将不同传感器获取的数据结合起来,以获得改进的性能。这对于图像和点云数据尤其如此,因为摄像头和激光雷达或雷达以完全不同但互补的方式感知环境。由于传感器读数域在图像相机视图和点云3D周围视图之间存在显著差异,因此融合成为一个将这两种信息源结合在一起的问题。
在多视图设置中(如AVOD ,MV3D ,PointFusion ),每个传感器输入都由一个独特的子网络处理,以获得视图特定的特征图。这些视图通常包括鸟瞰点云视图(BEV)、前视点云视图(3D点投影到相机平面视图)和相机视图。基于拼接的特征图,融合区域建议网络确定检测Head感兴趣的区域(ROIs)。在这些解决方案中,融合过程通常以端到端的方式进行,其中具体的详细信息合并方法由训练过程中学习的网络权重分布确定。
另一种融合方法是在PointPillars++ [31] 和 Joint 3D Object Detection [32] 中展示的。作者通过将相机像素信息融合到相应点的激光雷达前视图来增强点云数据。然后,这个融合的前视图作为带有额外特征的点云由神经网络处理。通过在输入处理过程中执行这个确定性步骤,将特定的融合方法强加于神经网络架构,并更好地调节两种信息源的使用。
驾驶区域和道路检测领域的创新解决方案也可应用于目标检测融合。在[33]中,除了将激光雷达点云投影到相机图像上,作者还应用深度完善算法从前视图中的稀疏点创建密集深度图,从而为融合算法提供更多信息。在[34]中提出了相反的解决方案。不是将点投影到图像上,而是将像素数据投影到点云BEV占用网格上,从而产生完全不同的融合域,但取得了相当的结果。
所讨论的所有融合方法都是针对来自激光雷达传感器的点云数据设计的。只有少数深度学习融合解决方案利用相机图像和雷达点云,如中提到的。
在相同的论文中,作者提出了一个基础的多视图网络架构,并展示了他们的结果,但就性能而言,这些结果仍不及最先进的相机-激光雷达融合方法。
他们解释说,这种差距可能是由于训练数据集较小,以及两种传感器特定的点云数据差异所致。另一方面,CRFNet [36] 在更新的、大得多的NuScenes数据集上实现了令人满意的相机-雷达融合结果。融合的方法是在相机图像上增强投影的雷达点,但以图像中的垂直线形式。作者展示了相对于仅使用相机的 Baseline 目标检测网络的改进。尽管如此,目标是在2D相机图像空间中检测到的,而不是3D域。
最近的CenterFusion 架构在3D空间获得预测。融合是在类似CenterNet仅视觉模型方法的处理过的相机图像上进行的,但带有来自雷达检测的额外信息。
首先在图像中预测2D中心点和目标特征,然后通过椎体关联机制与提取的雷达特征关联。两个传感器特征图的融合导致最终的3D预测。在FUTR3D [38]中,作者提出了一个框架,用于融合相机图像以及激光雷达和雷达点云。他们采用基于 Query 的模态不可知特征采样器来融合所有传感器特征,并采用 Transformer 解码器直接预测3D目标。
这些融合解决方案目前在官方NuScenes 3D目标检测排名[39]中取得了顶尖位置。在下一节中,作者将介绍作者针对相机和雷达传感器数据融合的方法。作者目标是完整的3D预测域,因为这样的预测对于感知系统来说更受欢迎的输入,尽管它们也更难以获得。为此,作者提出了一种新的简单但有效的融合图像和点云特征图的方法,以完成上述任务。
3 Proposed Approach
作者的融合方法采用了多视角设置的构想。作者使用不同的网络架构来处理摄像机图像和雷达点云数据(图3)。摄像机输入在2D图像域中处理,而雷达点云在增强的BEV中的3D空间处理。两个神经网络都能在其相关领域产生各自的输出,即预测。此外,为了实现低 Level 传感器融合,作者还引入了新颖的跨领域空间匹配(CDSM)融合块。作者的目标是融合来自中间网络层的特征图,在3D空间中创建单一的融合输出。这些特征图的主要问题是它们来自完全不同的领域(2D摄像机和3D BEV),因此为了从这两个来源中受益,作者需要在融合之前对它们进行空间对齐,这一步骤在CDSM块中完成。
Image network architecture:
在摄像头图像处理方面,作者设计了一个基于EfficientDet网络结构的单阶段检测器。作者的模型主要由三个要素组成(图4):用于初步特征提取的EfficientNetV2主干网络,跨不同抽象层次的BiFPN特征聚合和合并,以及最终用于预测最终结果的分类和回归 Head 。
尽管核心概念保持不变,但作者对网络结构进行了修改,以便针对作者的特定目的进行优化。输入分辨率被改为512x384像素,以更好地适应NuScenes数据集的图像宽高比。作者从主干网络在3个阶段提取特征,分别对应官方的P3-P5 Level (输入大小的1/8、1/16和1/32)。然后,作者人为地增加了P6和P7 Level 以匹配BiFPN块的所需输入。经过4次BiFPN重复后,精细的特征被传递到分类 Head 进行目标类别和得分的预测,以及回归 Head ,用于边界框的坐标和大小。
作者为主干网络EfficientNetV2使用了ImageNet预训练权重,并为BiFPN和预测 Head 随机初始化权重。通过实验,作者决定在所有层中使用LeakyRelu和Mish激活函数的混合。作者还尝试了不同的归一化层:批归一化(BatchNorm)、组归一化(GroupNorm)、实例归一化(InstanceNorm)和层归一化(LayerNorm),其中最后一个对作者来说效果最好。
最后,模型在5个不同的尺度上预测目标(输出网格大小为输入大小的1/8、1/16、1/32、1/64和1/128),相对于相应的 Anchor 点。Anchor 点根据每个网格大小以及3个缩放因子和3个比率因子的组合自动生成,结果是每个网格单元有9个 Anchor 点。为了得到最终结果,作者同时使用非最大抑制(Non-Max Suppression)算法对所有5个尺度的检测进行处理,以移除重复和重叠的检测。
Pointcloud network architecture:
对于雷达点云处理网络,作者从处理激光雷达点云的架构中汲取灵感。由于数据稀疏性高,作者采用 Voxel (voxel)方式的处理雷达数据,将整个3D空间划分为1m x 1m x 1m大小的 Voxel 网格。然后在 Voxel 特征提取器(VFE)中,基于每个 Voxel 内的雷达点,作者计算其特征。每个 Voxel 的最大点数限制为5,因为VFE需要固定数量的点。为了确保足够的推理时间,作者将沿Z轴堆叠 Voxel ,将 Voxel 特征张量从4D转换为3D。
在提取 Voxel 特征之后,点云网络架构与之前描述的图像网络相似:它有一个 Backbone 网络,一个BiFPN块和预测头(图5)。由于作者不再使用ImageNet预训练权重,作者将 Backbone 网络更改为DLA34,作者进一步对其进行重大修改以适用于点云处理。作者的新 Backbone 网络比EfficientNet小得多,但仍然提供了DLA架构的聚合功能。BiFPN块和预测头的层数也减少了。这样做的原因是雷达点云的稀疏性以及需要处理的信息量相对较低(与相机或激光雷达相比)。
点云处理网络的输出是一组3个BEV网格,尺寸分别为80x80、40x40和20x20(分别对应的单元格大小为1m、2m和4m),覆盖了80x80m的ROI。物体也是相对于每个尺度的自动生成 Anchor 点进行预测的。不同之处在于,编码边界框中心的额外Z维度以及高度,以及每个预测在3D中的偏航旋转角度。在NMS算法中结合预测得到最终结果。
CDSM fusion:
作者提出的解决方案中的主要创新是一个名为跨域空间匹配(CDSM)的融合块。这个融合块的核心概念基于相机图像和雷达点云的传感器读数中包含的信息的空间对齐,因为来自每个网络中间层的相应特征图最初是错位的。CDSM包括两个主要元素:域对齐和特征融合。
为了更好地理解这个想法,作者首先引入一个车辆坐标系(VCS)。VCS以汽车的前轴为中心,X轴指向前方,Y轴指向汽车的左侧,Z轴垂直向上。考虑到VCS,作者可以将传感器读数定位在这个统一的空间中,即图像和点云 Voxel 网格。如图6所示,两个输入的相关3D张量具有不同的方向。对于相机图像,前两个维度对应于VCS的ZY平面,学习的特征(最初是RGB值)沿X轴展开。在点云 Voxel 网格的情况下,前两个维度对应于VCS的XY平面,特征(最初是堆叠的VFE输出)沿Z轴展开。后一种表示与预期的单次感知网络输出一致,即一个BEV网格(在XY平面)带有检测到的物体及其参数。然而,融合来自相机的信息存在问题,因为这些张量包含不同视角的特征。在CDSM融合块中,作者通过以下解决方案来解决这个融合问题。
领域对齐。在融合两个视图的信息之前,作者在VCS中调整张量以匹配它们的空间方向。为此,作者实现了一个自定义的CDSM旋转层来执行此类操作。原则上,作者使用四元数旋转链来计算最终的旋转矩阵,并通过矩阵乘法将其应用到张量索引上。作者还通过计算出的偏移量调整新索引,以对齐(0,0,0)张量索引(因为某些旋转会导致负的索引值)。最后,作者从旧索引中收集所有值,并根据新索引将它们分散到旋转后的输出张量中。作者使用CDSM旋转层来匹配相机和雷达特征图张量与VCS的关系。相机特征张量的参数和旋转顺序如下:首先围绕第一个维度(VCS Z轴)旋转180度,然后围绕第二个维度(VCS Y轴)旋转90度。值得一提的是,所选择的旋转组合和顺序不仅保证了两个张量在VCS方面具有相同的方向,还使VCS的两个中心对齐在相同的位置。这种对齐无法通过输入张量维度的任何排列和/或转置组合来实现。
对齐特征融合。两个张量在空间上对齐后,作者能够在融合块中合并来自两个视图的信息。作者提出的CDSM融合方法(图7)可以分为以下三个阶段。
首先,作者从不同尺度 Level 获取相机特征图,并将它们在单个BEV地图上进行聚合。这样做的原因是,这些特征图负责检测相机平面中不同大小的物体,因此由于透视映射,它们对应于BEV域中从摄像头传感器一定距离处的特定区域。作者使用了Grad-CAM[40]可视化方法来确定每个尺度 Level 特征的距离范围。此外,在聚合特征图时,作者考虑了摄像头传感器视场与输出BEV网格的关系。这确保了特征不会放置在图像中不可见的3D空间中。
在聚合之后,作者提出了一个特征细化步骤。该步骤包括在BEV领域中的几个2D卷积层。与主干网络概念类似,作者从详细特征处理到更一般的特征,创建同一BEV区域的小网格表示。这个步骤使得作者能够在端到端的过程中,在训练过程中获得不同特征图之间的关系,而不是手动将它们调用到模型上。它还创建了更高层次的特征,这些特征在BEV中捕捉更大的区域。最终,细化步骤的结果是一组3个不同的3D领域内摄像头传感器的BEV网格特征图,作者可以直接将这些特征图与点云特征图融合。
由于作者将摄像头和点云特征转换到了相同的坐标系中,因此融合这两者特征相对简单。在BEV中,聚合和细化的摄像头特征图在空间上与雷达数据处理期间获得的一致。在架构设计过程中,作者确保了网格大小兼容,以便作者可以将这两个网格张量连接起来,沿着通道维度将每个网格单元的摄像头和雷达特征堆叠起来。作者对不同 Level 的连接特征图应用另一个BiFPN块,以进一步将两个传感器的信息融合到单一的3D内部表示中。这个表示在预测 Head 中使用,以产生最终的3D目标预测。
4 Experiments & Results
第四部分:实验与结果开始。
Dataset
作者在2019年发布的一个流行汽车数据集NuScenes上训练了作者的融合解决方案。该数据集中的记录场景来自不同环境和城市的真实世界测试驾驶。关于数据集的详细信息在[6]号论文中有介绍。作者使用了NuScenes 1.0版本。在传感器设置方面,汽车配备了6个摄像头、1个顶部激光雷达和5个雷达传感器。为了本研究的目的,作者仅使用了前视RGB摄像头以及激光雷达和雷达读数(图8和9)在所选视场(FOV)内。作为FOV,作者决定只考虑点云数据和摄像头视图重叠的区域,在前面提到的车辆坐标系中,该区域在X轴上限制为0m到80m(车前),Y轴上为-40m到40m(从右到左),Z轴上为0m到5m(高度)。数据集的划分遵循常见的训练、验证和测试集划分,其大小分别为19872、8111和4485个样本。
图像数据预处理. NuScenes的前置RGB摄像头的分辨率为1600x900像素。这对于神经网络来说处理起来相当大。为了减轻作者模型的计算要求,作者决定将图像调整到512x384像素的分辨率。作者还使用了信箱调整机制以保持图像的宽高比和像素值的标准化,所有RGB通道的像素值从0到1。
点云数据预处理. 点云数据以传感器坐标系中的一系列带有XYZ坐标的点以及传感器特定的读数形式出现,激光雷达的强度以及雷达的参数,如速度、横截面积等。首先,作者将这些坐标映射到定义的VCS中。此外,作者移除了落在作者定义的FOV之外的点,因为它们对融合算法没有有用的信息。同时,这一步骤有助于提高网络推理速度,因为需要处理的数据点更少。将点云裁剪到FOV内,导致进一步处理的激光雷达和雷达传感器的点更少。每个样本中点云的平均点数是LiDAR为13567,雷达为45。
标签数据预处理. NuScenes数据集是依据激光雷达点云和摄像头图像在3D空间中由人工手动标注的。标签被划分为如汽车、行人、卡车等类别。每个类别都有子类别,例如,坐着的行人、走路的行人等。为了目标检测的目的,作者只区分顶级类别。在摄像头目标检测中,作者将3D标签的角点变换到摄像头图像平面上,并绘制包含所有投影点的最小矩形边界框。作者还根据原始图像调整系数对这些边界框进行缩放。对于点云和融合检测,作者直接从NuScenes数据库获取标签,因为它们位于相同的空间,但是进行了标签过滤的相关后处理。
NuScenes标签提供了关于相机图像中目标可见性的额外信息,以及属于给定标注目标的激光雷达和雷达点的数量。这些信息使作者能够过滤掉一些标签,因为在这种特定的传感器设置中没有必要的数据来检测这些目标。根据表1中的特征,作者决定只使用可见性超过40%的标签作为摄像头目标检测的GT,以及至少有一个雷达检测的标签作为3D增强的BEV目标检测的GT。对于融合,作者希望证明它的鲁棒性,因此GT应在摄像头中可见或具有雷达检测或两者都有。最后,作者决定只关注汽车目标,因为该类别的雷达检测足够可靠,可以观察到与该传感器融合的真实好处。
Training
为了证明作者的方法并展示与单一传感器解决方案相比的融合优势,作者分别训练了相机和雷达检测网络,同时还将CDSM模块与多传感器融合模型相结合。
两个训练模型都取得了不错的结果,使它们成为CDSM融合的合适子模型。然而,作者发现将2D相机指标与3D雷达和融合指标进行比较并没有太大意义。因此,作者训练了另一个仅限视觉的模型,该模型基于单目相机图像预测3D空间中的物体。该模型在现有的2D模型基础上进行训练,但在从BiFPN获取2D特征图后,作者应用了CDSM对齐和聚合层,而没有与雷达数据融合。这种将2D特征转换为3D空间的方法使得可以直接预测该域中的物体,与CDSM融合概念相似。
图9:带有投影的激光雷达点(蓝色)、雷达点(红色)和标签的NuScenes鸟瞰图。除了颜色编码的标签可见性外,实线样式表示标签目标内同时有激光雷达和雷达点,虚线仅表示激光雷达点,点线表示标签目标内既没有激光雷达点也没有雷达点。彩色观看效果最佳。
最后,作者采用了两个单一传感器模型,并进行了端到端的CDSM融合模型训练。作者使用之前预训练的子模型来从相机和雷达数据中获取传感器特定的特征图,并对它们应用CDSM对齐、聚合和融合。训练超参数与单一传感器相似。作者还尝试对预训练网络进行微调。起初,作者冻结它们,只训练架构的融合部分。之后,作者在训练过程中也优化了它们,为融合目的进行精确调整。
Results
对获得的结果在NuScenes数据集的一部分上进行了评估,这部分数据集包含在训练和验证过程中未使用的特定场景序列。作者使用了目标检测任务中最流行的性能度量标准——平均平均精度(mAP),该标准基于不同阈值下的精确度-召回关系。此外,mAP高度依赖于真实阳性关联方法,因此作者明确指出在每次实验中使用了哪种方法,无论是基于3D长方体中心的交并比(IoU)还是绝对距离(DIST)。
在图10中,作者展示了从单一摄像头和雷达传感器网络以及融合网络获得的同一数据集样本的结果。对于仅使用摄像头的模型,作者可以观察到高目标检测率以及准确的总体大小估计。另一方面,3D中的深度距离预测相当不准确,导致由于关联过程失败而出现不匹配的检测。相比之下,仅使用雷达的模型能够准确预测位置,但由于检测数量较少,它在预测目标尺寸和方向方面存在困难。最终,融合模型利用了两种传感器的优势并减轻了它们的不足。雷达数据的精确位置读数与摄像头预测的准确大小、方向和类别相结合,使得CDSM模型在性能上大大超过了单一传感器模型。
在表2中,作者安排了训练的单传感器和融合模型的性能指标,以及用于计算mAP分数的模态、预测域和关联方法。
尽管仅使用视觉的2D模型具有最高的mAP分数,但它是唯一一种在2D图像空间产生预测的解决方案,这比3D目标检测要简单得多。当作者考虑在3D域中的仅视觉模型时,由于每个目标基于单一的图像帧进行深度估计任务,mAP分数显著降低。基于雷达点云的模型分数甚至更低,这是由于前面讨论的高雷达检测稀疏性问题。即使存在预测,也常常被视为假阳性,因为关联条件未得到满足,这主要是因为尺寸估计不准确。
融合模型在性能上大幅超过了单一传感器。在考虑相同的关联度量时,mAP要高得多,这表明更多的目标被正确检测,总体准确性更好。此外,在微调版本中,作者不冻结单一传感器子模型并在训练过程中调整其参数,取得了更好的结果,因为相机和雷达数据的内部表示是为了融合目的而调整的。
融合模型的另一个优势在于单一传感器未能检测到特定目标的情况。在图11中,作者展示了一个这样的边缘案例,其中摄像头模型正确识别了右侧的停泊车辆,但前进的车辆距离 GT 位置太远。另一方面,雷达模型对前方车辆的检测非常精确,而完全错过了停泊的车辆。融合模型预测了所有目标,甚至在两种传感器的位置和尺寸估计上都有所改进。
最后,作者将作者的结果与其他最先进的技术在表3中进行了比较。为此,作者根据NuScenes官方排名计算了mAP分数,这是四种不同关联方法(即DIST 0.5m、1m、2m和4m)的mAP平均值。
图10:对于同一测试数据集场景,从上到下分别针对仅摄像头、仅雷达和CDMS融合模型的预测结果。在图像和相应的3D视图中,作者标记了作为真阳性匹配的预测边界框(蓝色预测,绿色匹配目标),假检测(洋红色)和遗漏的目标(黄色)。在BEV视图中添加了LiDAR点云以供参考。
最相关的类似3D摄像头和雷达融合解决方案是CenterFusion和FUTR3D。在为汽车类别目标计算最终的mAP分数时,作者看到在CDSM模型中,这两个方法都有所改进。此外,尽管作者的仅摄像头模型获得的分数低于类似的FCOS3D模型,但融合的应用弥补了这一差距,并超过了这两种仅视觉方法。
5 Conclusion
在本文中,作者专注于自动驾驶应用中来自摄像头和雷达设备的传感器数据融合。作者介绍了单一传感器方法的相关工作,以及给定传感器套件可用的融合解决方案。此外,作者详细描述了使用所提出的跨领域空间匹配转换和融合来解决这一问题的创新方法。
为了证明CDSM融合的优势,作者在开放的NuScenes数据集上进行了实验。作者训练了单一传感器模型和提出的融合架构。结果显示,后者在总体mAP指标和特定边缘情况下都有显著提升。最后,作者将作者的方法与其他三维目标检测领域的最先进解决方案进行了比较,为摄像头和雷达设置实现了卓越的性能。
虽然作者对当前结果感到满意,但作者观察到摄像头和雷达单一传感器对融合的贡献之间存在差距。作者相信,采用机器学习方法处理原始雷达天线信号,而不是内部后处理检测,可以改善这些传感器的感知能力,并且通过作者的方法,也能提升整个融合系统的性能。
#InFusion
本文提出的方法InFusion,为3D高斯场景提供了高质量且高效的补全能力。此外,作者证明了结合扩散先验能够显著增强深度图像修复模型。这个改进的深度补全模型对于各种3D应用,特别是在新视角合成领域有着很大的应用前景。
项目主页地址: https://johanan528.github.io/Infusion/
Github仓库: https://github.com/ali-vilab/infusion
机构单位: 中科大,港科大,蚂蚁,阿里巴巴
3D高斯泼溅最近已经成为新视角合成的一种高效表示方法。本工作研究了其编辑能力,特别是着重于补全任务,旨在为不完整的3D场景补充高斯,以实现视觉上更好的渲染效果。与2D图像补全任务相比,补全3D高斯模型的关键是要确定新增点的相关高斯属性,这些属性的优化很大程度上受益于它们初始的3D位置。为此,我们提出使用一个图像指导的深度补全模型来指导点的初始化,该模型基于2D图像直接恢复深度图。这样的设计使我们的模型能够以与原始深度对齐的比例填充深度值,并且利用大规模扩散模型的强大先验。得益于更精确的深度补全,我们的方法,称为InFusion,在各种复杂场景下以足够更好的视觉保真度和效率(约快20倍)超越现有的替代方案。并且具有符合用户指定纹理或插入新颖物体的补全能力。
(a)InFusion 能够无缝删除 3D 对象,以用户友好的方式进行纹理编辑和对象插入。
(b)InFusion 通过扩散先验学习深度补全,显着提高深度修复质量。
背景:
3D高斯作为新视角合成的一种重要方法,因能够以惊人的渲染速度制作出具有真实感的图像而受到重视。3D高斯提供了明确的表示能力和实时处理的可能性,大大提高了编辑3D场景的实用性。特别是对于虚拟现实(VR)和增强现实(AR)等互动式下游应用,研究如何编辑3D高斯变得越来越重要。我们的研究关注于3D高斯的补全任务,这对于3d场景编辑至关重要,有效填补了确实部分,并为进一步的移动物体,增加新物体,改变纹理等编辑方式奠定基础。
现有方法对3D高斯补全的初步探索通常是使用对不同角度的渲染图象进行图像层次的补全,迭代的使用修复后的2D多视图图像作为新的训练数据。但是,这种方法往往会因生成过程中的不一致而产生模糊的纹理,且速度缓慢。
值得注意的是,当初始点在3D场景中精确地定位时,高斯模型的训练质量会显著提高。因此一个实际的解决方案是将需要补全位置的高斯设置到正确的初始点,从而简化整个训练过程。因此,在为需补全高斯分配初始高斯点时,进行深度补全是关键的,将修复后的深度图投影回3D场景能够实现向3D空间的无缝过渡。
因此,我们引入了InFusion,一种创新的3D高斯补全方法,我们利用了预训练扩散模型先验,训练了一个深度补全模型。我们的方法表明,Infusion可以准确确定初始点的位置,显著提高了3D高斯图像修复的保真度和效率。该模型在与未修复区域的对齐以及重构物体深度方面展现了显著的优越性。这种增强的对齐能力确保了补全高斯和原3D场景的无缝合成。此外,为了应对涉及大面积遮挡的挑战性场景, InFusion可以通过渐进的补全方式,体现了它解决此类复杂案例的能力。
方法
如上图InFusion技术方案的核心是一个以输入的RGB图像为条件的深度补全模型。这个模型能够根据观测到的单视图图像来预测和修复缺失的深度信息。它利用了预训练的潜在扩散模型先验,这些模型在大规模图像数据集上进行训练,从而具备了强大的生成能力和泛化性。
整体流程如下:
1)场景编辑初始化:首先,根据编辑需求和提供的掩码,在训练3d高斯场景的过程中,利用预先标记的掩码,构造残缺的高斯场景。
2)深度补全:总体来说,选择一个参考视图,并对该视角渲染得到的单张RGB图像利用图像修复模型如(Stable Diffusion XL Inpainting )进行修复。再利用深度补全模型基于观测图像预测出缺失区域的深度信息,生成补全后的深度图。具体来说,深度补全模型接受三个输入:从3D高斯渲染得到的深度图、相应的修复后彩色图像和一个掩码,其中掩码定义了需要补全的区域。先使用变分自编码器(VAE)将深度图和彩色图像编码到潜在空间中。其中通过将深度图重复使其适合VAE的输入要求,并应用线性归一化,使得深度值主要位于[-1, 1]区间内。后将编码后的深度图加噪得到的近高斯噪声,将掩码区域设置为0的编码后的深度图,编码后的RGB指导图像,以及掩码图像,在channel维度进行连接,输入到U-Net网络进行去噪,逐步从噪声中恢复出干净的深度潜在表示。再次通过VAE解码得到补全后的深度图。
3)3D点云构建:使用补全后的深度图和对应的彩色图像,通过3D空间中的反投影操作,将2D图像点转换为3D点云,这些点云随后与原始的3D高斯体集合合并。
4)Gaussian模型优化:合并后的3D点云通过进一步很少迭代次数的优化过程进行调整,以确保新补全的高斯体与原始场景在视觉上的一致性和平滑过渡。
实验结果
1.与过往方法对比,Infusion表现出保持 3D 连贯性的清晰纹理,而基线方法通常会产生模糊的纹理,尤其是复杂场景下。
2.在更具有挑战性的场景下,包括具有多对象遮挡的场景,Infusion相比于其他方法也能够产生令人满意的效果
3.同时通过与广泛使用的其他基线方法的比较,以及相应的点云可视化。比较清楚地表明,我们的方法成功地能够补出与现有几何形状对齐的正确形状。
4.Infusion可以通过迭代的方式,对复杂的残缺gaussian进行补全。
5.得益于Infusion补全3d高斯点的空间准确性,用户可以修改补全区域的外观和纹理。
6.通过编辑单个图像,用户可以将物体投影到真实的三维场景中。此过程将虚拟对象无缝集成到物理环境中,为场景定制提供直观的工具。
结论
本文提出的方法InFusion,为3D高斯场景提供了高质量且高效的补全能力。此外,我们证明了结合扩散先验能够显著增强了我们的深度图像修复模型。这个改进的深度补全模型对于各种3D应用,特别是在新视角合成领域有着很大的应用前景。我们的方法为潜在扩散模型(LDM)与3D场景编辑之间建立了联系。这种协同作用对于未来的进一步发展和优化具有重大潜力。