Iris: Integrating Language into Diffusion-based Monocular Depth Estimation¶
会议: CVPR 2026
论文: CVF Open Access
代码: 项目页 Iris-website
领域: 3D视觉 / 单目深度估计
关键词: 单目深度估计, 扩散模型, 语言条件, 视觉-语言, 文本引导
一句话总结¶
Iris 系统性验证了一个朴素假设——给基于扩散的单目深度估计器额外喂一段描述场景物体的文本,能借助文生图预训练里学到的"文本↔3D 场景"条件分布缩小深度解空间,从而在 Marigold/Lotus/E2E-FT 三种扩散 MDE 上整体提升零样本精度,对小目标和模糊区域尤其有效,还能加速训练和推理收敛。
研究背景与动机¶
领域现状:单目深度估计(MDE)要从单张 RGB 图预测逐像素深度。基于扩散的 MDE(Marigold、Lotus、E2E-FT 等)从预训练文生图扩散模型微调而来,靠逐步去噪生成高质量、细节丰富的深度图,是当前一条主流路线。
现有痛点:单目深度本质是病态问题——从单张 2D 图恢复 3D 几何在几何上不可能唯一,再叠加重复纹理、同质表面这类视觉歧义就更难。尤其占像素少的小物体/细结构/远处物体容易在去噪或滤波中被抹平、整体漏掉,导致细节保真度差。前馈方法(如 Depth Anything v2)虽泛化强但依赖难复制的超大规模训练,扩散方法则在这些歧义区仍频繁出错。
核心矛盾:现有扩散 MDE 只吃图像、丢掉了它们"出身"——文生图预训练时模型本来就学过"文本描述 ↔ 合理 3D 场景布局"的条件分布,这层先验在改造成深度估计后被弃用了。换句话说,缩小解空间的一个现成线索(语言)被白白浪费。
本文目标:把文本描述重新作为额外输入注入扩散 MDE 的训练与推理,系统验证"语言能否提升深度估计保真度",并量化它在整体精度、局部小目标、迭代细化、收敛速度四个维度的影响。
切入角度:作者假设"知道场景里有哪些物体"有助于定位并更忠实地重建它们——哪怕物体视觉上不显眼;知道典型物体形状也能在歧义区给出更规整的估计;甚至能借物体共现关系推断未提及的物体。文本天然携带这些先验。
核心 idea:不重训模型,而是给现成扩散 MDE 加一个文本编码器、把描述当作去噪的条件,用文生图预训练遗留的"文本↔场景"分布把深度解空间收窄。这是首个系统验证文本能改善扩散 MDE 的工作。
方法详解¶
整体框架¶
Iris 的方法本身很轻:在现有扩散 MDE(Marigold/Lotus/E2E-FT)基础上,引入一个冻结的 CLIP 文本编码器,把图像 \(x\) 和文本描述 \(c\) 一起作为去噪条件。训练时,真值深度 \(y^*\) 用冻结 VAE 编码成潜变量 \(z_y\),前向扩散逐步加噪得 \(z_t=\sqrt{\bar\alpha_t}z_y+\sqrt{1-\bar\alpha_t}\epsilon\);扩散 U-Net(由 Stable Diffusion v2 初始化)在第 \(t\) 步预测噪声 \(\epsilon_\theta(z_t,t,x,c)\),损失就是标准的噪声回归 \(L(\theta)=\mathbb{E}_{y,\epsilon,t}[\|\epsilon-\epsilon_\theta(z_t,t,x,c)\|^2]\)。推理时从纯高斯噪声 \(z_T\) 出发,每步按 \(z_{t-1}=\frac{1}{\sqrt{\alpha_t}}(z_t-\frac{1-\alpha_t}{\sqrt{1-\bar\alpha_t}}\epsilon_\theta(z_t,t,x,c))\) 反向去噪到 \(z_0\),再用冻结 VAE 解码器得到深度 \(\hat y=\mathcal D(z_0)\)。整个改动就是把 \(c\) 这个条件接进去噪——但作者把重心放在系统性实验上:文本可以只在训练、只在推理、或训推都注入,分别考察其效果。由于方法是"在标准扩散 MDE 上加一个条件"这一处机制,这里不画框架图,用公式与流程文字即可讲清。
关键设计¶
1. 文本作为去噪条件注入扩散 MDE:用文生图预训练的条件分布收窄解空间
这是方法的实质。给定文本 \(c=\{c_1,c_2,\dots\}\),先经冻结 CLIP 文本编码器编码再喂入扩散模型;图像 \(x\) 用与编码深度同一个 VAE 编码 \(\mathcal E(x)\),与深度潜变量 \(z_t\) 拼接后一同输入。于是噪声预测同时条件于 \((z_t,t,x,c)\),最终把高斯噪声逐步精炼成既符合图像又符合文字描述的深度图。为什么有效:文生图预训练让模型学过"在各种视角和布局下生成符合文字的图像",这意味着物体形状、尺寸、空间关系已隐式编码进它的潜表示;把文本重新作为条件,等于调用这层"文本↔合理 3D 场景"的分布,把与图像兼容的 3D 场景集合缩小,从而提升深度精度。这也让用户可以输入不同描述、对特定易错物体"加权强调"。
2. 用 VLM 自动生成描述模拟人工标注:解决"没有现成文本标签"的工程瓶颈
标准深度基准并不自带场景描述,逐图人工写描述又不现实。作者改用现成视觉-语言模型生成文本来模拟人工标注:Marigold 用 LLaVA v1.6,Lotus 和 E2E-FT 用 InternVL3-8B,每张训练图和测试图各生成一段描述。这一步让"文本条件"在没有人工标注的标准基准上也能落地评测,是整套实验能跑起来的前提;同时也埋下方法的命门——效果上限受生成描述质量约束。
3. 迭代式文本细化:把"加一句描述"变成可交互的纠错手段
因为文本是条件输入,作者展示了一个自然用法:每次把新增的一句描述追加到原描述末尾、重跑推理,深度估计就能针对被新描述点名的区域/物体逐步细化(如先补"一个金属置物架"、再补"架上挂着黑色橄榄球头盔")。这把深度估计从"一次性预测"变成"可迭代修正"——当模型在某处出错时,用户补一句更具体的描述就能定向纠正该区域,呼应了文本能局部影响深度的发现。
一个例子:用追加描述逐步修正深度¶
以论文图 6 的杂乱室内场景为例,体会"文本如何一步步收紧深度解空间":初始描述只有"一个杂乱的室内空间,前景有一把扶手椅、靠墙立着一把折叠椅",此时模型对墙边那块区域的深度判断含糊;接着把"一个挂着杂物的金属置物架"追加到描述末尾、重跑推理,置物架所在区域的深度被定向拉正;再追加"架子上挂着一顶黑色橄榄球头盔",那个更小、更易被忽略的物体也开始被正确感知。整个过程模型权重不动,只靠不断丰富的条件 \(c\) 把"与图像兼容的 3D 场景集合"一轮轮缩小——这正是把语言当条件而非训练死参数带来的可交互性。
实验关键数据¶
主实验¶
训练用两个合成数据集 HyperSim(室内)和 Virtual KITTI 2(街景),零样本评测五个真实数据集 NYUv2、KITTI、ETH3D、ScanNet、DIODE。指标:δ1↑ 一阶阈值精度(预测与真值之比落在 1.25 倍内的像素百分比,越高越好),AbsRel↓ 平均绝对相对误差(越低越好),均按仿射不变协议、不做集成。+ Text 表示在该基模型上注入文本(默认训推都注入)。* 为作者用开源代码复现的结果。
| 模型 | NYUv2 δ1↑/AbsRel↓ | KITTI δ1↑/AbsRel↓ | ETH3D δ1↑/AbsRel↓ | ScanNet δ1↑/AbsRel↓ |
|---|---|---|---|---|
| Marigold | 95.9 / 6.0 | 90.4 / 10.5 | 95.1 / 7.1 | 94.5 / 6.9 |
| Marigold + Text | 95.9 / 5.9 | 90.6 / 10.4 | 95.7 / 6.5 | 94.9 / 6.7 |
| Lotus-D* | 96.6 / 5.6 | 92.2 / 8.7 | 96.8 / 6.1 | 96.0 / 6.0 |
| Lotus-D + Text | 96.8 / 5.4 | 93.0 / 8.4 | 97.0 / 6.0 | 96.6 / 5.6 |
| E2E-FT* | 95.4 / 6.9 | 90.1 / 10.5 | 94.1 / 8.1 | 94.6 / 7.7 |
| E2E-FT + Text | 96.3 / 6.2 | 91.7 / 9.7 | 94.7 / 7.8 | 95.0 / 7.5 |
整体趋势:三种扩散 MDE 注入文本后多数数据集指标改善;作者还发现"只在训练"或"只在推理"注入文本有时也能带来提升,说明语言条件既能正则化扩散训练过程、也能在零样本推理时引导深度。
局部与效率分析¶
用 MaskDINO 给 NYUv2 测试集做全景分割,按掩码占图面积 <5%/10%/20% 评估小目标深度。
| NYUv2 区域 | Marigold δ1↑/AbsRel↓ | Marigold+Text δ1↑/AbsRel↓ |
|---|---|---|
| 整图 Standard | 95.7 / 6.1 | 95.9 / 5.9 |
| 小区域 (<5%) | 91.7 / 9.0 | 92.8 / 8.3 |
| 小区域 (<10%) | 92.2 / 8.4 | 93.1 / 7.9 |
| 小区域 (<20%) | 93.9 / 7.3 | 94.6 / 6.8 |
关键发现¶
- 小目标增益最大:区域越小基线越难估准,注入文本的相对提升越明显(<5% 区域 δ1 91.7→92.8),印证"语言为不显眼物体提供了存在性与形状先验"。
- 加速收敛:注入文本不仅训练收敛更快,推理去噪步数也大幅减少——
+ Text仅 10 步即收敛,基线需 25 步才达到同等效果,作者归因于语言提供的额外语义/几何约束。 - 文本可定向纠错也可被误导:迭代追加正确描述能定向改善对应区域;但若把"带玻璃的书架"误描述成"带窗帘的窗户",模型会跟着错判该处结构(图 9)——效果强依赖描述质量。
亮点与洞察¶
- "复活"被弃用的预训练先验:扩散 MDE 当初正是看中文生图模型隐含的 3D 场景知识才被改造,却把文本输入丢了;Iris 指出"把文本接回去"几乎免费地找回了这层先验,思路简单但切中要害。
- 零样本可控性:文本是条件而非训练死参数,用户能在推理时换描述、强调特定物体,甚至迭代补充——这把一个端到端黑盒变成了可交互、可纠错的系统,对自动驾驶等安全敏感场景有想象空间。
- 跨三种基模型一致有效:在 Marigold/Lotus/E2E-FT 上都见提升,说明"文本条件"是与具体扩散 MDE 解耦的通用增量,可即插即用。
- "少步数也能用"的副产品很实用:文本注入让推理从 25 步压到 10 步仍收敛,等于在提升精度的同时近 2.5× 加速去噪——对扩散 MDE 推理慢这一老问题是顺带的好处。
- 指出一条被忽视的评测维度:用全景分割按面积分桶评估小目标深度,把"整图平均指标掩盖小物体退化"这件事量化出来,方法学上对后续工作有参考价值。
局限与展望¶
- 强依赖描述质量(作者承认):歧义或错误的文本会拖累甚至误导预测;人工描述也可能不完整或含微妙歧义。作者建议引入语言鲁棒性模块(如不确定性估计、一致性过滤)来纠错或滤除坏描述。
- 依赖 VLM 生成标注:训练/评测用的描述由 LLaVA/InternVL 生成,其偏差和幻觉会传导进深度,且"模拟人工标注"与真实人工描述的差距未充分量化。
- 方法增量较薄:核心贡献是系统性实证而非新架构——本质是"加一个文本条件",但其价值在于首次把这件事验证清楚。⚠️ 部分主表数值(如 Marigold 复现行)在缓存文本中排版混乱,引用以原文表格为准。
相关工作与启发¶
- vs Marigold / Lotus / E2E-FT(被增强的基模型):它们都从文生图扩散微调、却只吃图像;Iris 在其上重新接入文本条件,是叠加而非替换,普适地提了精度与收敛速度。
- vs WorDepth / RSA(文本辅助深度):WorDepth 从文本学 3D 场景的变分先验、RSA 用文本预测尺度对齐相对深度到度量深度;它们多在非扩散架构里用文本,本文专注"文本对扩散式 MDE 的影响"这一此前未被研究的问题。
- vs DepthCLIP:DepthCLIP 直接用 CLIP 的语义深度响应做零样本序数深度;本文不是把语言当深度信号本身,而是当缩小解空间的条件,去引导扩散去噪。
评分¶
- 新颖性: ⭐⭐⭐ 思路简单(把文本条件接回扩散 MDE),胜在"首次系统验证"而非架构创新
- 实验充分度: ⭐⭐⭐⭐ 三基模型 × 五数据集 × 训练/推理/训推三种注入 + 小目标/收敛/迭代多维分析,实证扎实
- 写作质量: ⭐⭐⭐⭐ 假设—验证逻辑清晰,四个 finding 组织得当,可视化充分
- 价值: ⭐⭐⭐⭐ 提供一个即插即用、可交互纠错的增量,对扩散 MDE 社区实用