UniDepth V2 评测 — 一张照片就能重建三维深度,开源界的深度估算新王者

UniDepth V2 评测 — 一张照片就能重建三维深度,开源界的深度估算新王者

一句话简介: UniDepth V2 是 ETH Zurich 团队开发的通用单目度量深度估计模型,仅需一张 RGB 图像即可输出精确的度量深度图、3D 点云和相机内参,3600万+ 下载,多项基准达 SOTA。


工具概览

UniDepth(GitHub)由 ETH Zurich 的 Luigi Piccinelli 等人开发,V1 版本于 2024 年 3 月发布并入选 CVPR 2024(Highlight),V2 版本于 2025 年 2 月 28 日发布。该项目已在 HuggingFace 获得 3600万+ 下载,是深度估计领域最受欢迎的开源模型之一。

它的核心突破在于统一性——一个模型就能在不同数据集、不同相机类型、不同场景下实现高质量的深度估计,真正做到”一个模型走天下”。


核心功能

1. 单目度量深度估计

只需输入一张 RGB 图像,UniDepth V2 就能输出具有真实物理尺度的深度图(而非相对深度)。这在机器人导航、自动驾驶、AR/VR 等领域至关重要。

2. 3D 点云重建

模型直接输出相机坐标系下的 3D 点云(predictions["points"]),无需额外的后处理步骤,可直接用于三维重建、场景理解等任务。

3. 相机内参预测

除了深度,UniDepth V2 还能自动预测相机内参矩阵,即使输入图像没有附带的相机信息也能工作,大大降低了使用门槛。

4. 置信度输出

V2 新增置信度估算功能,输出每个像素的估计可靠性 ranking,帮助用户判断深度估计的可信区域。

5. ONNX 导出支持

UniDepth V2 支持导出为 ONNX 格式,可轻松部署到 Web、移动端或嵌入式设备,跨平台兼容性极强。


性能表现

在多个主流深度估计基准上,UniDepth V2 均达到或接近 SOTA:

模型NYUv2SUN-RGBDETH3DKITTINuscenesDDAD
ZoeDepth95.286.735.096.528.327.2
Metric3Dv298.981.290.098.584.1-
DepthPro-83.139.7-56.629.9
UniDepth V198.494.318.598.684.685.8
UniDepth V298.896.485.298.987.088.2

V2 相比 V1 在几乎所有基准上都有显著提升,尤其是 ETH3D(18.5 → 85.2)和 SUN-RGBD(94.3 → 96.4),差距非常惊人。


适用人群

  • 机器人研究者:需要精确深度信息用于导航和避障
  • 自动驾驶开发者:从单目相机获取场景深度
  • AR/VR 开发者:重建真实世界的三维结构
  • 3D 重建爱好者:用普通照片生成点云和三维模型
  • 计算机视觉学生:作为深度估计任务的 baseline 模型

与同类工具对比

特性UniDepth V2ZoeDepthMetric3DDepth Pro
开源✅✅✅❌ (商业)
内参预测✅❌❌❌
ONNX 导出✅❌❌❌
置信度输出✅❌❌❌
多相机类型✅❌❌❌
推理速度快(比V1快30%)中等快快
安装复杂度中等低中等低

UniDepth V2 的最大优势在于功能全面——深度估计、点云重建、内参预测一站式解决,而且完全开源,社区活跃。


如何使用

安装

pip install unidepth --extra-index-url https://download.pytorch.org/whl/cu118

基本使用

from unidepth.models import UniDepthV2
import torch
from PIL import Image
import numpy as np

# 加载模型
model = UniDepthV2.from_pretrained("lpiccinelli/unidepth-v2-vitl14")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)

# 加载图像
rgb = torch.from_numpy(np.array(Image.open("image.jpg"))).permute(2, 0, 1)

# 推理
predictions = model.infer(rgb)

# 获取结果
depth = predictions["depth"]        # 度量深度图
points = predictions["points"]      # 3D 点云
intrinsics = predictions["intrinsics"]  # 相机内参
confidence = predictions["confidence"]  # 置信度

调整分辨率与速度

# resolution_level 范围 [0, 10),越高越精确但越慢
model.resolution_level = 5

ONNX 导出

python ./unidepth/models/unidepthv2/export.py \
  --version v2 --backbone vitl \
  --shape 462 616 --output-path unidepthv2.onnx

模型选择

UniDepth V2 提供三种不同规模的模型,可根据算力选择:

模型参数量级适用场景
unidepth-v2-vits14小移动端、实时应用
unidepth-v2-vitb14中平衡精度与速度
unidepth-v2-vitl14大最高精度要求

总结

UniDepth V2 是目前开源社区中最强大的单目深度估计工具之一。它由 ETH Zurich 顶尖团队开发,学术背景扎实,性能数据过硬。V2 版本相比 V1 在精度、速度和功能上都有全面提升,尤其 ONNX 支持和多相机类型适配让它在工业界的应用前景更加广阔。

推荐指数:★★★★☆(4.5/5)

扣分点在于安装配置相对复杂(需要编译 CUDA 算子),以及对初学者来说调试难度略高。但对于有一定 PyTorch 基础的开发者来说,这完全不是问题。

如果你正在寻找一个开源、免费、高性能的深度估计方案,UniDepth V2 是不二之选。


论文:UniDepthV2: Universal Monocular Metric Depth Estimation Made Simpler
项目地址:GitHub
模型权重:HuggingFace