源地址:https://depth-anything-v2.github.io/
模型解读:
Depth Anything V2 是一个 单张图像深度估计模型(monocular depth estimation)。
它主要预测 相对深度(relative depth,或称 affine-invariant inverse depth)。
👉 输出的深度图能保证远近关系正确,但不包含真实物理单位(如米)。
三阶段训练流程
教师网络(Teacher Model)
- 大容量模型(基于 DINOv2-Giant 编码器 + 解码器)。
- 在高质量、精确标注的 synthetic(三维合成数据) 上训练。
- synthetic 深度标注是“理想的”:无噪声、细粒度。
伪标签生成(Pseudo-Labeling)
- 教师网络用于对大量 未标注真实图片 生成深度预测。
- 得到高质量的 伪深度标签(pseudo depth labels)。
学生网络(Student Models)训练
- 使用带伪标签的真实图像训练。
- 学生网络规模更小、效率更高,推理速度快,泛化能力更好。
核心训练思想
- V1 → V2 的改进:
V2 完全用 synthetic 数据替代真实带标签图像训练教师模型。
避免了真实深度标签的噪声、不一致、分辨率问题。 - 学生模型训练:
仅依赖教师生成的 真实图像伪标签。
输出形式与绝对深度
默认输出:仿射不变的反深度
- 深度结果在不同点之间的远近关系正确。
- 但绝对尺度不确定(输出可被 scale + shift 调整)。
获取物理深度(metric depth,单位米):
- 需要在少量带物理标签的数据集(如 NYU Depth、KITTI)上 fine-tune。
- 使模型将相对深度映射到真实距离。
模型规模与效率
- 提供多个版本:Small, Base, Large, Giant。
- 参数规模从 数千万到十几亿 不等。
相比基于 Stable Diffusion 的深度估计方案:
- 速度更快
- 资源消耗更低
数据规模
- 教师模型训练:约 595,000 张 synthetic 图像。
- 学生模型训练:约 62,000,000+ 张真实图像(伪标签)。
结论
- Depth Anything V2 = 教师网络(synthetic 训练) + 学生网络(伪标签训练)
- 默认输出 相对深度(仿射不变反深度)。
- 要得到带“米”的 绝对深度,需额外微调。
测试:
测试逻辑:
- 目标:通过原图生成深度图,评估还原度与原图的接近程度。
规律:
- 原图越接近 → 还原度越好 → 深度更准确。
- 复杂材质/地板识别差:平面多材质理解不足,如果提示词中未明确说明,只能还原大结构。
- 分辨率影响显著:800px 与 1600px 的结果差距很大。
模型与测试结果ComfyUI 深度模型测试对比表
| 模型 | 分辨率 | 耗时 | 效果表现 |
|---|---|---|---|
| depth_anything_v2_vits_fp16 | 800px | 15s | 人物结构严重错误 |
| 1600px | 53s | 效果相对较好 | |
| 2400px | 464s | 人物更差,但桌子、栏杆更准确,右边椅子出现 | |
| depth_anything_v2_vits_fp32 | 1600px | 58s | 左边墙和桌子略好 |
| depth_anything_v2_vitb_fp16 | 1600px | 60s | 与 fp32 效果差不多 |
| depth_anything_v2_vitb_fp32 | 1600px | 60s | 同上 |
| depth_anything_v2_vitl_fp16 | 1600px | 59s | 二楼栏杆比较准确 |
| depth_anything_v2_vitl_fp32 | 1600px | 61s | 手指更精致,但整体不如 fp16 |
| depth_anything_v2_vitg_fp32 | 800px | 24s | 结果很差 |
| 960px | 27s | 人物很烂,场景二楼错误 | |
| 1600px | - | 设备太拉,爆了>< | |
| depth_anything_v2_metric_hypersim_vitl_fp32 | 1600px | 60s | 人物最接近,场景有瑕疵 |
| depth_anything_v2_metric_vkitti_vitl_fp32 | 1600px | 58s | 人物与桌子关系完全错误 |
| controlnet | 800px | 17s | 结果最奇怪 |
| 1600px | 55s | 抽象,不稳定 |


结果如图:
总结规律
- 分辨率影响最大:800px → 错误明显,1600px → 效果最佳;2400px → 场景部分提升,但人物更差。
- fp16 vs fp32:大多数情况下 fp16 稍微快一点,fp32 只在细节略有提升。