深度补全技术是计算机视觉和机器人感知领域的关键基础,它能够从稀疏的深度测量数据中恢复出完整的密集深度图。这项技术在自动驾驶、增强现实、机器人导航等应用中扮演着重要角色。然而,传统深度补全方法面临着两个主要挑战:一是对特定训练域的过度依赖导致泛化能力不足;二是对输入深度模式的敏感性,当遇到不同传感器采集的深度数据时性能会显著下降。
当前主流的深度补全方法通常采用两阶段处理流程:第一阶段通过融合RGB和稀疏深度信息生成粗略的深度图,第二阶段再对这个粗略结果进行细化。这种架构存在几个固有缺陷:
Any2Full提出了一种革命性的单阶段框架,将深度补全重新定义为对预训练单目深度估计(MDE)模型的"尺度提示适应"。这种方法的核心优势在于:
关键突破:Any2Full不再试图直接预测深度值,而是通过"提示"预训练MDE模型调整其输出,使其与稀疏深度测量在尺度上保持一致。这种思路类似于人类利用少量线索就能推断完整场景深度的认知过程。
Any2Full的架构可以分解为三个核心组件:
输入归一化:对原始稀疏深度进行标准化处理,保留相对尺度关系
python复制# 伪代码示例:深度归一化处理
def normalize_depth(depth_map):
valid_mask = depth_map > 0
valid_depths = depth_map[valid_mask]
mean_depth = np.mean(valid_depths)
std_depth = np.std(valid_depths)
normalized = (depth_map - mean_depth) / std_depth
return normalized * valid_mask # 保持无效区域为0
尺度提示生成:通过SAPE编码归一化深度图
MDE特征调制:利用生成的提示调整MDE特征
深度预测:输出相对深度图
度量对齐:通过全局线性变换将相对深度转换为度量深度
SAPE是Any2Full的核心创新,它通过两个层次化模块处理稀疏深度的不规则性:
该模块将稀疏深度中的尺度线索与MDE提供的密集几何上下文相结合,生成对稀疏变化鲁棒的局部特征。关键技术包括:
特征级线性调制(FiLM):动态调整MDE特征
math复制\mathbf{f}_{loc,i} = \gamma (\mathbf{f}_{dep,i}, \mathbf{f}_{mde,i}) \odot \mathbf{f}_{mde,i} + \beta (\mathbf{f}_{dep,i}, \mathbf{f}_{mde,i})
其中γ和β是由轻量级MLP预测的调制参数。
多尺度深度嵌入:处理不同稀疏密度
有效性掩码:标识可靠深度测量区域
该模块通过MDE几何引导的注意力机制,将局部尺度特征传播到整个场景:
实际应用技巧:在机器人仓库场景中,我们发现对前几个Transformer块使用掩码注意力(仅允许有效深度区域初始化传播)可以显著提升对极端稀疏输入的处理能力。
生成的尺度提示通过分层FiLM机制注入MDE解码器:
为提升模型对多样深度模式的适应能力,Any2Full采用两种采样策略生成训练数据:
| 数据集 | 场景类型 | 图像数量 | 主要特点 |
|---|---|---|---|
| Hypersim | 室内 | 60K | 高质量合成,复杂光照 |
| VKITTI2 | 室外 | 10K | 驾驶场景,天气变化 |
| TartanAir | 混合 | 15K | 运动模糊,多视角 |
Any2Full使用多任务损失确保不同方面的预测质量:
尺度位移不变损失(L_ssi):保证全局对齐
math复制\mathcal{L}_{\text{ssi}} = \frac{1}{|\Omega|}\sum_{i \in \Omega} |\tilde{\hat{d}}_i - \tilde{d}_i|
梯度匹配损失(L_gm):保持边缘锐度
math复制\mathcal{L}_{\text{gm}} = \frac{1}{|\Omega|}\sum_{i \in \Omega} (|\nabla_x \tilde{\hat{d}}_i - \nabla_x \tilde{d}_i| + |\nabla_y \tilde{\hat{d}}_i - \nabla_y \tilde{d}_i|)
稀疏锚点一致性(L_anchor):确保与输入测量一致
相对结构相似性(L_r-ssim):提升局部结构准确性
工程经验:冻结MDE骨干网络参数仅训练SAPE,不仅加快收敛还能防止破坏预训练获得的几何先验。实际部署中发现,适当降低初始学习率(如3e-5)能提升训练稳定性。
在NYU-Depth V2、iBims-1、KITTI DC等6个基准数据集上的测试表明:
| 方法 | AbsREL(↓) | RMSE(↓) | 参数量 | 延迟(ms) |
|---|---|---|---|---|
| CompletionFormer | 0.089 | 0.371 | 210M | 45 |
| PriorDA | 0.011 | 0.141 | 431M | 680 |
| Any2Full(DA-L) | 0.007 | 0.110 | 395M | 490 |
| Any2Full(DA-S) | 0.009 | 0.126 | 33M | 90 |
在物流仓库机器人抓取系统中,Any2Full解决了黑色包裹导致的深度缺失问题:
| 包裹尺寸 | 原始成功率 | 使用Any2Full后 | 提升幅度 |
|---|---|---|---|
| 大 | 42% | 100% | +58% |
| 中 | 25% | 100% | +75% |
| 小 | 17% | 75% | +58% |
为验证模型鲁棒性,设计了两种极端测试场景:
深度范围限制:仅使用20-60%的深度值
极端稀疏输入:仅150个有效深度点
在实际机器人应用中,我们发现将Any2Full与简单的时序滤波结合,能进一步提升动态场景下的深度补全稳定性。这种组合方案已在仓储物流系统中验证有效,未来有望扩展到自动驾驶等更复杂场景。