TR2M: Transferring Monocular Relative Depth to Metric Depth with Language Descriptions and Dual-Level Scale-Oriented Contrast¶
会议: CVPR2026
arXiv: 2506.13387
代码: GitHub
机构: 香港中文大学
领域: 3D视觉
关键词: 单目深度估计, 相对深度转度量深度, 语言描述, 跨模态注意力, 对比学习, 像素级缩放
一句话总结¶
提出 TR2M 框架,利用图像和文本描述预测像素级的 scale/shift 映射图,将泛化性强但无尺度的相对深度转换为度量深度,仅用 19M 可训练参数和 102K 训练图像即可实现跨域零样本度量深度估计。
背景与动机¶
单目深度估计(MDE)分为两大流派:
- 度量深度估计(MMDE):输出真实尺度(米),但通常局限于特定域,跨域泛化差;使用相机内参或大量数据缓解但代价高。
- 相对深度估计(MRDE):通过 affine-invariant loss 训练,跨域泛化好,但输出缺少绝对尺度,下游应用(机器人导航、三维重建)受限。
现有的相对→度量转换方法存在两个核心问题:
- 单因子缩放的局限:之前方法(如 RSA)仅估计一个全局 scale 和 shift 因子,无法修正相对深度中局部错误区域,甚至会放大误差。
- 语义描述歧义:同一类别物体在不同分布和比例下产生不同深度,但文本描述可能相似,导致尺度估计不准确。
核心问题¶
如何高效地消除相对深度的尺度不确定性,将其转换为度量深度,同时保持 MRDE 的跨域泛化能力?关键挑战在于实现像素级的精细缩放而非全局缩放,并在特征层面建立尺度一致性。
方法详解¶
整体框架¶
TR2M 要破的是"相对深度泛化好但没尺度、度量深度有尺度但跨域差"的两难:能不能保住相对深度的泛化力,又给它补上真实尺度?它的做法是不直接回归深度,而是预测一对像素级缩放图。输入 RGB 图像 \(I \in \mathbb{R}^{H \times W \times 3}\) 和一段文本描述 \(L\)(LLaVA 自动生成),网络输出 scale map \(A \in \mathbb{R}^{H \times W}\) 和 shift map \(B \in \mathbb{R}^{H \times W}\),把冻结的 Depth Anything-Small 给出的相对深度 \(D_r\) 逐像素换成度量深度:
\(\odot\) 为逐元素乘。整条链路里相对深度模型、图像编码器、文本编码器全部冻结,只训练中间的融合与解码模块(共 19M 参数)。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
I["RGB 图像 I"] --> ENC["DINOv2 ViT-L 图像编码器(冻结)<br/>→ 图像特征 F_I"]
L["文本描述 L(LLaVA 生成)"] --> TENC["CLIP ViT-L/14 文本编码器(冻结)<br/>→ 文本特征 F_L"]
I --> DA["Depth Anything-Small(冻结)<br/>→ 相对深度 D_r"]
ENC --> FUSE["跨模态注意力<br/>图像自注意力 + 图像×文本交叉注意力"]
TENC --> FUSE
FUSE --> SHEAD["像素级 scale/shift 映射图<br/>ScaleHead→A,ShiftHead→B"]
SHEAD --> COMBINE["逐像素重缩放<br/>D̂_m = 1 / (A⊙D_r + B)"]
DA --> COMBINE
COMBINE --> OUT["度量深度 D̂_m"]
COMBINE -.训练监督.-> SUP1["伪度量深度 + 阈值筛选<br/>最小二乘对齐 + δ₁ 门控"]
COMBINE -.训练监督.-> SUP2["双层尺度导向对比<br/>图像级 + 像素级尺度对齐"]
关键设计¶
1. 像素级 scale/shift 映射图:把全局单因子换成逐像素修正
之前的方法(如 RSA)只估一个全局 scale 和 shift,相对深度里某块局部错了不仅没法修、还会被整体缩放放大。TR2M 直接预测和图像同分辨率的 \(A\)、\(B\) 两张图,每个像素一组缩放参数,于是局部错误区域能被单独纠正。这一步是全文最大增益来源:消融里从单因子换成映射图,NYUv2 AbsRel 从 0.118 直接降到 0.084。
2. 跨模态注意力:让文本当全局尺度先验,注入到每个像素
图像由冻结的 DINOv2 ViT-L 编出特征 \(F_I \in \mathbb{R}^{HW \times D}\),文本由冻结的 CLIP ViT-L/14 编出 \(F_L \in \mathbb{R}^{1 \times D}\)。融合时以图像特征当 Query,分别对自身(self-attention)和文本(cross-attention)做注意力:
融合特征 \(F_{out} = F_I + \text{Attn}_{cm}^I + \text{Attn}_{cm}^L\),再经两个轻量级 DPT 风格解码头分别解出 \(A = \text{ScaleHead}(F_f)\)、\(B = \text{ShiftHead}(F_f)\)。这样图像特征保持像素级空间分辨率当 Query,文本里隐含的尺度信息("室内桌面"vs"室外街景")作为全局先验被注入每个像素位置,而不是只给一个全局数。
3. 伪度量深度 + 阈值筛选:让稀疏 GT 之外的像素也有监督
GT 度量深度往往稀疏,大片像素没标注。TR2M 先用最小二乘把相对深度对齐到 GT 生成伪度量深度:
得 \(D_m^{pseudo} = \tilde{\alpha} D_r + \tilde{\beta}\)。但伪深度不一定靠谱,于是用阈值精度 \(\delta_1\)(\(\max(D_m^{gt}/D_m^{pseudo}, D_m^{pseudo}/D_m^{gt}) < 1.25\) 的像素比例)做质量门控,只有 \(\delta_1 > \rho\) 才纳入监督:
这让稀疏标注外的区域也拿到可信监督信号,零样本场景 iBims δ₁ 因此 +0.051。
4. 双层尺度导向对比:从图像级和像素级两个粒度对齐尺度分布
光有回归监督还不够,特征空间本身要按"尺度"组织起来。粗粒度上,对每张图的特征做 average pooling 得图像级嵌入 \(\tilde{F}_f\),按伪 scale 因子 \(\tilde{\alpha}\) 排序,尺度相近(\(|i - j| < t\))的为正样本对、相差大(\(|i - j| \geq t\))的为负样本对,用 InfoNCE 风格损失把相似尺度的场景在特征空间拉近。细粒度上,把 GT 深度量化成 \(|\mathcal{C}|\) 个离散类别:
用类似 MoCo 的 EMA 双分支,Query 像素在 Key 特征图里找同深度类别的像素当正样本、不同类别当负样本,最大化正样本相似度。两级合起来 \(\mathcal{L}_{soc} = \mathcal{L}_{coarse} + \mathcal{L}_{fine}\),粗保全局尺度一致、细保局部深度分布一致,互补地把零样本进一步推高(DIODE δ₁ +0.031)。
损失函数 / 训练策略¶
总损失四项加权:
其中 \(\mathcal{L}_{es}\) 为边缘感知平滑损失(约束 scale/shift map 平滑),权重 \(\lambda_1=1, \lambda_2=0.5, \lambda_3=0.1, \lambda_4=0.01\)。关键训练配置:
| 配置项 | 设置 |
|---|---|
| GPU | NVIDIA RTX 4090 |
| 优化器 | AdamW |
| Batch size | 8 |
| 学习率 | \(1 \times 10^{-5}\),每 epoch 衰减 0.9 |
| 训练 epoch | 20 |
| 可学习 Scale Embedding 数 | 256 |
| 相对深度模型 | Depth Anything-Small(冻结) |
| 图像编码器 | DINOv2 ViT-L(冻结) |
| 文本编码器 | CLIP ViT-L/14(冻结) |
| 可训练参数量 | 19M |
| 训练数据量 | 102K 图像 |
| 训练数据集 | NYUv2 + KITTI + VOID + C3VD |
| 文本生成 | LLaVA v1.6 Vicuna & Mistral |
实验关键数据¶
NYUv2 室内基准(Table 1)¶
| 方法 | 类型 | 可训练参数 | \(\delta_1\uparrow\) | AbsRel\(\downarrow\) | RMSE\(\downarrow\) |
|---|---|---|---|---|---|
| DA V2 | 直接度量 | 25M | 0.969 | 0.073 | 0.261 |
| UniDepth | 零样本度量 | 347M | 0.981 | 0.072 | 0.229 |
| Metric3Dv2 | 零样本度量 | 1011M | 0.980 | 0.067 | 0.260 |
| RSA | 语言+缩放因子 | 4.7M | 0.752 | 0.156 | 0.528 |
| ScaleDepth | 语言+域自适应 | 109M | 0.913 | 0.099 | 0.329 |
| WorDepth | 语言+域自适应 | 137M | 0.926 | 0.090 | 0.330 |
| TR2M | 语言+缩放图 | 19M | 0.954 | 0.082 | 0.293 |
零样本跨域泛化(Table 3, 5个未见数据集)¶
| 方法 | Backbone | 训练图像 | SUN δ₁ | iBims δ₁ | HyperSim δ₁ | DIODE δ₁ | SimCol δ₁ | Avg Rank |
|---|---|---|---|---|---|---|---|---|
| ZoeDepth | BeiT384-L | - | 0.545 | 0.656 | 0.302 | 0.237 | 0.438 | 4.70 |
| DA Single | ViT-L | - | 0.660 | 0.714 | 0.361 | 0.288 | 0.553 | 2.80 |
| UniDepth | ViT-L | 3M | 0.443 | 0.217 | 0.545 | 0.635 | - | 4.00 |
| RSA | ViT-S | 102K | 0.527 | 0.450 | 0.230 | 0.244 | 0.162 | 5.80 |
| TR2M | ViT-S | 102K | 0.591 | 0.736 | 0.361 | 0.274 | 0.445 | 2.40 |
TR2M 以 ViT-Small 骨干和 102K 训练图像达到最佳平均排名(2.40),远超使用更大模型和更多数据的方法。
消融实验¶
| Rescale Maps | \(\mathcal{L}_{tp\text{-}si}\) | \(\mathcal{L}_{soc}\) | NYUv2 AbsRel | iBims δ₁ | DIODE δ₁ |
|---|---|---|---|---|---|
| ✕ | ✕ | ✕ | 0.118 | 0.566 | 0.225 |
| ✓ | ✕ | ✕ | 0.084 | 0.657 | 0.237 |
| ✓ | ✓ | ✕ | 0.085 | 0.708 | 0.243 |
| ✓ | ✓ | ✓ | 0.082 | 0.736 | 0.274 |
- 从单因子→像素级映射图:AbsRel 从 0.118 降到 0.084,最大提升
- 加伪深度监督:零样本场景显著提升(iBims δ₁ +0.051)
- 加尺度对比学习:零样本进一步提升(DIODE δ₁ +0.031)
亮点¶
- 像素级 rescale map替代全局单因子缩放是核心创新,能修正相对深度中的局部错误区域,这是之前方法(如 RSA)无法实现的
- 极高的参数效率:仅 19M 可训练参数(编码器全部冻结),比 UniDepth(347M)、Metric3Dv2(1011M) 小 1-2 个数量级,却达到可比性能
- 双层对比学习设计精巧:粗粒度保证全局尺度一致性,细粒度保证局部深度分布一致性,两者互补
- 伪深度+阈值筛选策略简洁有效地解决了稀疏 GT 问题,提升零样本泛化
- 文本描述作为"免费"的辅助先验,无需相机参数或传感器信息
局限与展望¶
- 文本描述依赖 LLaVA 生成:文本质量受限于 VLM 能力,极端场景(医学内窥镜等)的描述可能不够准确
- 相对深度模型的上限:框架性能受限于冻结的相对深度模型(Depth Anything-Small)的输出质量
- 零样本在部分域仍有差距:SUN RGB-D 和 DIODE Outdoor 上 AbsRel 仍偏高(0.451/0.673),说明跨域巨大的尺度差距仍有挑战
- 对比学习计算开销:像素级对比需要 EMA 双分支结构,增加训练时间和内存
- 可尝试更强的相对深度骨干(如 Depth Anything V2)来进一步提升上限
与相关工作的对比¶
| 维度 | RSA | ScaleDepth/WorDepth | UniDepth/Metric3Dv2 | TR2M |
|---|---|---|---|---|
| 输入 | 文本 | 文本+图像 | 图像(+相机参数) | 文本+图像+相对深度 |
| 缩放方式 | 全局双因子 | 隐式解码 | 端到端度量头 | 像素级映射图 |
| 可训练参数 | 4.7M | 109-137M | 347-1011M | 19M |
| 训练数据 | 102K | 单域 | 3-16M | 102K |
| 跨域能力 | 差 | 单域 | 较好 | 强 |
| 核心局限 | 单因子不够精细 | 域自适应受限 | 需大数据+大模型 | 依赖相对深度质量 |
启发与关联¶
- 相对深度→度量深度的范式类似于 NLP 中的"预训练+轻量适配",冻结大模型+少参数微调的高效思路值得借鉴
- 像素级 rescale map 的思想可推广到其他需要尺度恢复的任务(如单目法线估计、光流尺度恢复)
- 双层对比学习的设计(全局+局部)可迁移到其他密集预测任务中做特征正则化
- 文本辅助深度估计这条路线如果结合更强的 MLLM(如 GPT-4V),可能进一步提升场景理解和尺度推理能力
评分¶
- 新颖性: ⭐⭐⭐⭐ (像素级 rescale map + 双层对比学习组合新颖)
- 实验充分度: ⭐⭐⭐⭐ (4个训练集 + 5个零样本测试集 + 充分消融)
- 写作质量: ⭐⭐⭐⭐ (结构清晰,动机阐述充分)
- 价值: ⭐⭐⭐⭐ (高效的相对→度量深度转换方案,实用性强)