26年1月来自蚂蚁Robbyant的论文“Masked Depth Modeling for Spatial Perception”。

空间视觉感知是自动驾驶和机器人操作等物理世界应用的基本需求,其驱动力在于与三维环境进行交互。使用RGB-D相机捕获像素对齐的度量深度是最可行的方法,但通常会受到硬件限制和成像条件挑战的制约,尤其是在存在镜面反射或无纹理表面时。本文提出,深度传感器的误差可以被视为“掩码”信号,这些信号本质上反映潜在的几何模糊性。基于此,提出LingBot-Depth,一种利用视觉上下文通过掩码深度建模来优化深度图的深度补全模型,并集成一个自动化数据整理流程以实现可扩展的训练。令人鼓舞的是,模型在深度精度和像素覆盖率方面均优于顶级RGB-D相机。一系列下游任务的实验结果进一步表明,LingBot-Depth能够在RGB和深度模态之间提供对齐的潜表示。


RGB-D相机是理想的成像方式。然而,其效用常常受到硬件固有局限性的影响,尤其是立体视觉匹配算法对外观歧义的敏感性。如图左所示,即使是最先进的商用传感器,在纹理较少的表面、镜面反射和复杂光照条件等挑战性场景下也难以胜任。这些缺陷表现为严重的数据损坏和缺失值,直接违反对密集、像素对齐几何的要求。
请添加图片描述

本文提出一种范式转变:不再将传感器故障视为需要丢弃的噪声,而是将其作为有用的学习信号加以利用。受近期自监督掩码建模[9]和联合嵌入架构[1]进展的启发,引入掩码深度建模(MDM)来实现密集的、像素对齐的场景几何结构。MDM 的一个关键创新在于将原始深度图中的缺失区域(“孔洞”)解释为“自然掩码”,这与仅依赖随机掩码的标准 MAE 方法截然不同。由于这些自然掩码源于几何和外观上的歧义(例如,镜面反射),因此它们带来的重建挑战远大于随机丢弃( dropout)。为了解决这个问题,其架构将完整的、未掩码的 RGB 图像作为条件。因此,模型必须通过推理完整的 RGB 上下文与剩余有效深度token之间的相关性来推断缺失的深度值。

通过统一单目深度估计和深度补全的目标,MDM框架成为一个通用的多功能模型,能够从任意RGB-D输入生成度量尺度、像素对齐的密集深度图。这些任务之间的转换仅由Transformer内部的掩码策略控制。在所有深度tokens都被掩码的极端情况下,模型将作为纯粹的单目深度估计器运行,迫使自注意层仅利用RGB上下文来推断几何形状。相反,对于深度补全,仅掩码无效(传感器损坏)的tokens,使模型能够将稀疏的有效深度读数与视觉线索融合,从而重建完整的密集深度预测。

为了支持大规模MDM训练,构建一个可扩展的数据整理流程,该流程连接原始传感器数据和可靠的监督信息。该流程包含两个并行流:一个基于自托管3D资产的合成分支,以及一个使用模块化3D打印采集装置的真实世界分支。该装置兼容多种消费级RGB-D相机,包括主动立体视觉(Intel RealSense、Orbbec Gemini)和被动立体视觉(ZED)系统。利用该装置,收集100万个合成样本和200万个真实采集样本,每个样本都包含同步的RGB图像、原始传感器深度数据和立体图像对。立体图像对通过一个基于FoundationStereo [33] 并基于合成数据训练的自定义立体视觉匹配网络实现伪深度监督。还使用多个公开的RGB-D数据集 [4, 19, 21, 22, 30, 36, 37] 进一步丰富该语料库,从而构建一个多样化的训练集,以实现稳健的深度补全。使用掩码深度建模(MDM)对 ViT-Large 进行预训练,可以在这个精心整理的 RGB-D 语料库上,通过注意机制将度量几何信息集成到语义token中,从而提高 RGB-D 相机的感知质量,如上图右所示。


掩码深度建模(MDM)遵循掩码图像建模[9]的通用范式,采用编码器-解码器框架,但通过对RGB-D输入进行操作,将学习目标从外观重建转移到深度图预测。采用标准的Vision Transformer (ViT)架构[5],并使用ViT-Large作为编码器骨干。对于从图像块token进行深度重建,没有采用原始MAE[9]中使用的浅层Transformer解码器,而是采用MoGe[28, 29]中改进的ConvStack解码器,该解码器更适合密集几何预测。如下图概述掩码深度建模架构。
请添加图片描述

针对 RGB-D 输入的分离式图像块嵌入

图像块嵌入层。对两种输入模态应用独立的图像块嵌入层:三通道 RGB 图像和单通道深度图。每种模态都被独立地投影到一系列图像块token上,从而得到空间上对齐到同一二维网格上的 RGB token和深度 token。这种分离式图像块嵌入设计使得 ViT 编码器中的自注意层能够学习联合表示,将 RGB 图像的外观上下文与深度测量的几何线索相结合。具体而言,该模型可以利用丰富的视觉上下文和基本几何先验(例如近远关系、共面性和空间连续性)中的互补信息。在实现中,根据 DINOv2 [18] 将两个图像块嵌入层的图像块大小都设置为 14。不失一般性,假设RGB帧和深度图具有相同的空间分辨率(H, W),其中H和W都能被14整除。因此,每个模态的token数为N = HW/142。将第i个RGB token记为ci ,第i个深度token记为di ,n是token嵌入的维度。

位置嵌入。与标准ViT输入相比,RGB-D token序列需要编码两种位置信息:(1)每个token的二维空间位置,以及(2)模态标识,用于区分位于相同空间位置的RGB token和深度token。为此,引入两种位置嵌入:(1)一个共享的、可学习的二维空间位置嵌入,用于RGB和深度token,捕捉它们在图像平面中的空间位置; (2) 模态嵌入,用于区分每个token的输入来源——RGB 或深度。具体来说,RGB token的模态嵌入设置为 1,深度token的模态嵌入设置为 2。每个token的最终位置编码计算为其空间嵌入和模态嵌入之和。最后,每个 RGB/深度token ci 或 di 与其对应的位置嵌入相加,然后输入到注意模块。

用于掩码深度预测的 RGB 和未掩码深度的联合嵌入

深度传感器本质上对外观相关的干扰非常敏感,RGB-D 相机经常会生成深度图,其中包含缺失或无效的测量值。重要的是,这些缺失的深度值通常与场景中具有挑战性的视觉条件相关,包括表面材质属性、光照变化以及反射或无纹理区域。并不将这些缺失的测量值视为噪声,而是将其视为从互补来源学习联合表示的机会:有效的深度观测值和始终可用的 RGB 外观上下文。因此,利用深度传感器自然产生的掩码模式,训练模型学习RGB token和未掩码深度token的联合嵌入,从而在观测数据不完整的情况下实现鲁棒的深度推理。

缺失深度测量值的掩码。掩码策略基于缺失深度测量值引入的归纳偏差。然而,在实践中,许多RGB-D样本条件良好,几乎不包含缺失的深度值。尽管如此,这些样本对于学习联合嵌入仍然很有价值,因为它们提供了丰富的成对外观-几何观测数据,不应被丢弃。因此,目标是尽可能多地纳入RGB-D样本,以支持大规模的Vision Transformer训练。另一个实际考虑因素来自基于图像块的处理:单个图像块可能包含有效和无效深度值的混合。为了解决这种歧义,基于每个图像块内的有效性统计数据在图像块级别定义掩码决策,从而确保深度token的掩码规则的一致性和明确性。

基于以上讨论,深度patch(token)中完全缺失值的深度patch始终会被掩码。对于包含有效和无效深度值混合的patch,赋予其更高的掩码概率(例如,在训练中为 0.75)。如果这两种情况下的掩码token数量不足以达到目标掩码率,会随机抽取额外的完全有效深度tokens来补全掩码集。这种掩码策略允许不完美但信息丰富的深度token保持未掩码状态,从而能够与上下文 RGB token 进行有意义的交互。深度图的整体掩码率在 60% 到 90% 之间。

用于 Vision Transformer 的 RGB-D tokens。应用掩码策略后,将完整的 RGB tokens和未掩码的深度 tokens 连接起来形成 RGB-D tokens,并将其输入到包含 24 个自注意块的 ViT-Large 编码器中。除了 RGB-D token之外,还保留了一个 [cls] token来捕获跨模态的全局上下文。与传统设计不同,传统设计会聚合来自多个中间层(例如第 6、12、18 和 24 层)的token以进行密集预测,例如 DepthAnythingV2 [35] 和 MoGe [28, 29] 中采用的设计,而仅保留最终编码器层的输出tokens用于后续处理。

在原始 MAE 中,使用浅层 Transformer 解码器进行逐像素 RGB 重建。每个图像块token被解码为 3 × patch_size × patch_size 的值,然后重塑到像素域。这种设计适用于仅 RGB 掩码,其中掩码token在解码器内共享同质的潜表示。相比之下,本掩码策略仅应用于深度token,而 RGB token仍然完全可观察,并提供完整的上下文信息。这种设置使得每个空间位置的深度预测都能够基于丰富的外观上下文。因此,采用一种名为 ConvStack 的卷积解码器架构,它更适合密集几何重建。

ConvStack 解码器。编码器之后,潜在深度tokens被丢弃,而潜在上下文tokens则作为空间分布表示被保留。为了注入全局场景上下文,[cls]token被广播并逐元素地添加到每个上下文tokens中,从而用任务级语义信息丰富它们。这些增强后的tokens作为输入查询,传递给一个基于 MoGe [28, 29] 的分层卷积解码器。

解码器采用金字塔结构,由一个共享的卷积颈和多个特定于任务的头部组成。从一个大小为 (h, w) 的低分辨率特征图开始,卷积颈通过堆叠残差块和转置卷积(内核大小为 2,步长为 2)逐步上采样特征,在每个阶段将空间分辨率提高一倍,直到达到 (16h, 16w)。在每个尺度上,注入源自图像坐标圆形映射的UV位置编码,以保持空间布局和宽高比。由此产生的多尺度特征金字塔在所有任务头之间共享,从而实现高效的特征重用,同时允许每个任务头解码其自身的密集输出。最终的深度预测经过双线性上采样以匹配原始输入分辨率。这种设计将高层上下文建模与密集几何重建解耦,从而在支持可扩展且灵活的多任务学习的同时,实现精确的深度估计。

注意可视化。为了验证联合嵌入是否有效地捕获跨模态关联,可视化最终编码器层的深度-到-RGB注意图。对于选定的深度token,提取其在所有RGB token上的注意权重,并将其投影回图像平面,作为热图叠加层。如图所示,在同一场景中选择多个查询块,并可视化它们各自的注意模式。在各种不同的场景中——例如,一个密布物体且深度各异的水族箱,以及一个材质各异的室内架子——不同的深度token始终关注RGB图像中与其各自查询位置相对应的、空间上局部化的不同区域。这表明编码器通过掩码深度建模(MDM)目标学习细粒度的、位置-觉察的几何-外观对应关系,而不是退化为全局或简单的注意模式。
请添加图片描述

训练细节

采用24层的ViT-Large编码器(ViT-L/14)[18]作为视觉骨干。由于训练Vision Transformer需要大量数据,而目标是探索RGB帧和深度图的联合上下文建模,因此使用官方DINOv2预训练检查点初始化编码器。解码器由一个共享的卷积颈和特定任务的头组成,其初始值是随机的。为了适应预训练编码器和随机初始化解码器不同的优化动态,采用一种差分学习率策略:编码器主干网络中的参数使用 1 × 10⁻⁵ 的基础学习率进行优化,而包括解码器在内的所有其余参数则使用更高的学习率 1 × 10⁻⁴ 进行训练。优化器为 AdamW [15],动量参数为 β₁ = 0.9,β₂ = 0.999,权重衰减为 0.05。参数分组基于模块名称,所有匹配 backbone 模式的参数都被分配到低学习率组。采用复合学习率调度。在前 2000 次迭代中,编码器学习率从零线性升温至 1 × 10⁻⁵,而解码器学习率则直接从目标值开始。升温后,每 25000 次迭代,阶跃衰减调度器将编码器和解码器的学习率都降低 0.5 倍。训练总共进行了 25 万次迭代,全局批大小为 1024,使用 128 个 GPU,每个 GPU 的批大小为 8。数据增强包括随机裁剪和水平翻转,以及一系列合成图像退化效果——具体包括颜色抖动、JPEG压缩伪影、运动模糊和散粒噪声——以提高模型在真实视觉条件下的鲁棒性。采用最大范数为1.0的梯度裁剪来稳定优化过程,并全程启用基于BF16的混合精度训练,以提高计算效率并降低内存消耗。整个训练过程大约需要7.5天。预测深度图采用L1损失函数进行监督学习,该损失函数直接应用于真实深度图。损失函数的计算仅包含真实深度图中具有有效深度值的像素。


由于依赖于专用深度传感器,RGB-D 数据比纯 RGB 数据稀少得多。现有的大多数 RGB-D 数据集要么为了减少深度测量缺失而避免具有挑战性的成像条件,要么使用高质量的 3D 模型和渲染引擎生成近乎完美的深度图。因此,它们缺乏掩码深度建模所需的自然深度不完整性。为了克服这一限制,整理能够保留真实世界感知中产生的逼真缺失模式的 RGB-D 数据。数据整理流程包含两个并行流:一个基于自托管 3D 模型构建的合成流程,以及一个基于可扩展 RGB-D 采集系统(使用多个商用深度相机)的真实世界流程。如图显示数据原始数据中的掩码比率分布。
请添加图片描述

将从合成流程中整理出的合成数据命名为 LingBot-Depth-S,将从真实世界流程中整理出的真实世界数据命名为 LingBot-Depth-R。此外,还整合现有的开源RGB-D数据集作为补充训练数据。对于这些数据集,人为地用高斯噪声污染深度图,并在训练过程中应用掩码策略,同时使用原始深度图作为重建目标,并利用有效像素掩码排除缺失值。

合成数据管道

合成数据管道不同于现有方法,后者仅专注于渲染理想化的深度图。相反,本文显式地模拟真实世界中主动式 RGB-D 相机的成像过程,以生成具有自然缺陷的逼真深度观测结果。

数据整理流水线如图所示:顶部一行展示总共 210 万个真实采集样本和 100 万个模拟采集样本的集合。底部一行则分别展示相应的 RGB-D 输入和 GT 深度图。
请添加图片描述

用自托管的 3D 资源,在 Blender 中同时渲染 RGB 图像、完美深度图和带有散斑图案的灰度立体图像对。RGB 图像由立体图像对中的左侧相机渲染,确保 RGB 图像外观与立体匹配产生的深度测量值在像素级上对齐。然后,使用广泛应用的半全局匹配 (SGM) 算法处理渲染的立体图像,以生成模拟真实世界拍摄伪影的传感器级深度图。

对于立体渲染,在 Blender 中配置一对虚拟相机,并从 0.05 米到 0.2 米之间的均匀分布中随机采样立体基线。相机焦距独立地从 16 毫米到 28 毫米之间的均匀分布中采样,从而实现各种成像几何形状。

最终数据样本格式。从 442 个室内场景中渲染 1000 万个合成样本。每个样本(如图所示)包含以下组件:
• 分辨率为 960 × 1280 (H×W) 的 RGB 图像;
• 相同目标分辨率下的完美深度图;
• 分辨率为 720 × 960 的立体图像对和分辨率为 960 × 1280 的真实视差图;
• 由 720 × 960 的立体图像对计算得到的传感器深度图,然后使用最近邻插值进行上采样以匹配目标分辨率。
请添加图片描述

与现有数据集的比较。在开展这项工作之前,已有若干研究探索不完美深度测量的模拟 [3, 32],但规模要小得多。例如,HSSD-IsaacSIM-STD [32] 渲染约 1 万对立体红外图像,而 DREDS [3] 生成约 13 万对立体图像。相比之下,仿真流程生成的数据规模要大一个数量级以上。除了数据量之外,数据集在场景保真度方面也存在质的差异。采用自托管的高质量 3D 场景,而不是像 DREDS [3] 那样,简单地在模拟器中堆叠孤立物体来构建场景。尽管 HSSD-IsaacSIM-STD [32] 采用更真实的场景级布局,但它对面向机器人的模拟器的依赖引入一些近似值,导致其视觉保真度低于真实世界的捕捉结果。

可扩展的RGB-D采集系统

为了采集大规模的真实世界RGB-D数据,构建一个可扩展的RGB-D采集原型,如上图所示。具体来说,利用3D打印技术设计并制造定制的安装支架,该支架背面可以灵活地安装不同类型的商用RGB-D相机。支架正面集成了一台配备触摸屏的便携式PC客户端,用于接收和管理来自相机的数据流。使用各相机制造商提供的官方SDK开发了一个统一的数据采集接口。这种轻量级和模块化的设计使得采集系统既可扩展又易于使用,显著降低大规模RGB-D数据采集的门槛。部署多个采集设备,以扩展下表中所列场景的数据采集规模。

请添加图片描述

由于实际采集的图像没有无缺失的深度图,参考FoundationStereo [33] 的方法计算左右红外图像对的立体视差,从而获得伪深度标签。为了确保立体匹配生成的伪深度图的质量,进行左右检查,并从深度图中滤除不一致的像素值。最终,获得总共 200 万张具有极佳场景多样性的真实图像用于掩码深度建模。

训练数据概述

除了自行整理的 320 万条数据(包括 LingBot-Depth-S 和 LingBot-Depth-R 数据集)之外,还使用以下开源数据集 [4, 19, 21, 22, 30, 36, 37] 作为训练数据,从而形成总共 1000 万个用于掩码深度建模(MDM)的训练样本。需要注意的是,这些开源合成数据集不存在缺失的深度测量值,随机生成补丁token,以满足 60%-90% 的预期掩码率范围,而无需任何额外处理。对于真实世界的开源数据集,由于它们的深度图比整理的数据相对完整,因此掩码策略也将主要采用随机掩码采样。如图显示训练数据的概要。
请添加图片描述


真实世界机器人抓取姿态生成

将 LingBot-Depth 应用于真实世界的灵巧抓取流程,其中精确的深度信息对于生成精确的抓取姿态至关重要。

设置。系统由一个配备 X Hand-1 灵巧手的 Rokae XMate-SR5 机械臂和一个用于感知的 Orbbec Gemini 335 RGB-D 相机组成。给定一个 RGB-D 观测值,首先将其深度转换为点云,然后使用扩散策略预测 N × 22 的灵巧手姿态。该策略基于 DINOv2 (ViT-L/14) 提取的 RGB 特征和来自 Point Transformer 的点云特征,遵循类似 DP3 的架构 [38]。该模型在 HOI4D 数据集 [14] 上进行训练,该数据集通过 3D 关键点对应将人手与物体的交互重定向到灵巧手的配置。

如图所示:左图展示机械臂、灵巧夹爪和深度摄像头的硬件配置。右图展示四个目标物体的RGB图像、原始传感器深度图像以及优化后的深度图像。对于反光物体(例如钢杯)和透明物体(例如玻璃杯、储物盒),原始深度图像严重失真,而本文方法可以生成完整且几何精度高的深度图。

请添加图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐