【AI】大模型之深度估计
一、背景:为什么大模型也要“深度”?
- 人类视觉:两眼视差 → 3D 感知
- 计算机视觉早期:双目/结构光/ToF → 稀疏深度图
- 2020 年后:
- 数据端——互联网 10 亿级“图像+文本”已挖完,“可学习 3D”成为下一个富矿
- 任务端——3D-GS、NeRF、Diffusion-3D、具身智能都需要稠密深度作条件
→ 于是“Foundation Model for Depth”出现:用超大视觉-语言模型,零样本推断任意图的像素级深度,不再依赖标定、基线或硬件
二、问题定义
给定单张 RGB 图 I ∈ ℝ^(H×W×3) ,大模型输出
D ∈ ℝ^(H×W) 满足 D(u,v) = 离相机中心的真实距离(米制或相对尺度)
分类:
- 相对深度(任意 0-1 区间,保持序关系)
- 度量深度(绝对米制,需额外尺度因子)
三、原理总览:大模型怎么做深度?
-
路线对比
┌──────────────┬─────────────┬─────────────┐
│ 方法 │ 代表 │ 核心 trick │
├──────────────┼─────────────┼─────────────┤
│ 双目匹配 │ OpenCV SGM │ 视差+标定 │
│ 单目 CNN │ MiDaS V3 │ 多数据集混合│
│ 单目 ViT │ DPT │ 编码器→解码器│
│ VLM Prompt │ Depth-Anything│ 伪标签+更大 ViT│
│ 扩散条件 │ Marigold │ 潜空间扩散 │
│ 自监督大模型│ ZoeDepth │ 相对→度量转换│
└──────────────┴─────────────┴─────────────┘ -
通用框架(90% 论文遵循)
输入图像 → ViT Encoder → 特征 token → Decoder → 上采样 → 深度图
‑ ViT 提供全局感受野
‑ Decoder 常用特征金字塔/转置卷积/DPT neck
‑ 损失:尺度不变误差 + 梯度 + 法向 + 可选度量头
四、数学公式(以 MiDaS/DPT 为例)
-
尺度不变损失(SILog)
L_si = 1/N ∑_i (d_i − d̄)^2 − λ/2 (∑_i (d_i − d̄))^2
其中 d_i = log D_i , d̄ = mean(log D) -
梯度匹配
L_grad = 1/N ∑_i |∇_x (d_i − d_i^)| + |∇_y (d_i − d_i^)| -
总体
L = L_si + α L_grad + β L_nrm
五、伪标签自训练(大模型数据秘诀)
step1 用 8 个公开数据集(ReDWeb, DIW, ETH3D…)→ 各自训 specialist 模型
step2 把 specialist 在 600 万张 无标注 Web 图上推理 → 得到 伪深度
step3 用伪标签 + 更大 ViT(ViT-L/2-G)重新训练 → Depth-Anything
→ 零样本相对深度 SOTA,且无需任何真实深度真值
六、代码:一行命令跑通
# 1. 安装
pip install torch torchvision transformers
git clone https://github.com/LiheYoung/Depth-Anything
cd Depth-Anything# 2. 下载 1.3 GB ViT-L 权重(自动)
python run.py --input your.jpg --output depth.png --encoder vitl
输出:与输入同分辨率灰度图,0=远 255=近(相对),秒级推理。
七、结果示例
输入(左)→ 深度热力图(右)
https://github.com/LiheYoung/Depth-Anything/raw/main/examples/depth_vis.png
- 远景建筑蓝色(远),近景车头红色(近)
- 边缘清晰 → ViT 全局上下文保留细节
- 零样本,无校准、无额外传感器
八、如何把“相对”变“度量”
- 稀疏 LiDAR 监督:ZoeDepth 加 Metric Head,用 KITTI 微调 → 误差 ↓ 到 2.1 %
- 相机内参法:已知焦距 f,利用
Z = f · baseline / (disp · pixel_size)
把相对深度缩放到米制(手机 AR 用此法) - 单目 SLAM 尺度恢复:跑一遍 ORB-SLAM,用轨迹对齐即可
九、与大模型生态的衔接
- ControlNet-depth:把深度图作为条件,Stable-Diffusion 生成多视角
- 3D-GS 初始化:深度→点云→30 秒得到可渲染 Gaussian Splatting
- 具身智能:VLM 先语义分割,再 depth 估计 → 可抓取区域实时定位
十、小结
- 深度估计已进入 “ViT + 伪标签 + 零样本” 时代,无需双目/硬件
- 大模型靠 自监督 + 600 万张伪深度 实现 任意场景通用
- 相对→度量只需稀疏真值或相机参数即可落地米制
- 产出深度图已成为 3D-GS、Diffusion-3D、机器人 的标准前置条件——“2D 大模型”向“3D 大模型”过渡的钥匙