Depth Anything V2
Depth Anything V2 是由 Depth Anything 团队 提出的 通用深度估计模型的第二个版本,旨在实现“万物皆可深度”的目标 —— 利用大规模数据预训练,让深度估计模型具备良好的通用性和泛化能力。
该模型于 2024 年提出,进一步提升了对多样场景的深度感知能力,支持零样本深度预测、图像-深度对生成、图像编辑等多种任务。
🔍 模型亮点
1. 🌐 通用深度估计能力
Depth Anything V2 在多种深度估计基准测试集(如 KITTI、NYU Depth V2、DIW、IBims)上展现了强大的零样本泛化能力。
2. 🧠 强大预训练 Backbone
采用 ViT(Vision Transformer)作为编码器,结合 大规模图像-深度对预训练数据,具备良好的特征提取能力和上下文建模能力。
3. 📦 多任务融合结构
模型在结构设计上支持融合深度估计、语义分割、图像恢复等任务的信息,体现了“视觉大模型”的趋势。
⚙️ 模型架构
模型整体架构如下:
- Encoder:使用 Vision Transformer(ViT),可选 Tiny、Small、Base 等不同规模。
- Decoder:融合局部细节与全局上下文,输出像素级深度图。
- 训练策略:使用大规模训练集(如 Depth Anything Dataset),结合合成数据和真实世界图像。
支持输入图像尺寸范围为:
\[
\text{Input size} = H \times W,\quad \text{推荐为 } 384 \times 384
\]
📊 性能对比(Zero-shot)
在 NYU Depth V2 和 KITTI 上与主流方法比较(均为不调参的 zero-shot 测试):
| 模型 | NYU RMSE ↓ | KITTI AbsRel ↓ | DIW δ < 1.25 ↑ |
|---|---|---|---|
| DPT (MiDaS) | 0.505 | 0.099 | 0.682 |
| LeReS | 0.471 | 0.102 | 0.683 |
| Depth Anything V1 | 0.453 | 0.092 | 0.694 |
| Depth Anything V2 | 0.417 | 0.085 | 0.731 |
🧪 使用示例
安装依赖后,快速运行推理:
git clone https://github.com/DepthAnything/Depth-Anything-V2.git
cd Depth-Anything-V2
pip install -r requirements.txt
python demo.py --image_path assets/demo.jpg --output_path output.png
🛠️ 应用场景
- 自动驾驶:用于立体深度推断、3D重建等任务。
- 增强现实(AR):支持真实场景中的物体遮挡、空间理解等。
- 图像增强:如深度引导的图像修复、虚化、模糊恢复。
- 机器人感知:增强机器人在未知环境中的空间建模能力。
🧩 与其他模型对比
| 模型名称 | 是否通用预训练 | 支持零样本 | 编码器类型 | 是否开源 |
|---|---|---|---|---|
| LeReS | 否 | 否 | ResNet | 是 |
| MiDaS | 是 | 是 | ViT/DPT | 是 |
| DPT | 是 | 是 | Transformer | 是 |
| Depth Anything V2 | ✅ 是 | ✅ 是 | ✅ ViT | ✅ 是 |