UniDepth 项目介绍
项目背景
UniDepth 是一个专注于单目度量深度估计的项目,旨在通过单个摄像机图像实现对三维空间深度信息的准确预测。项目的主要目标是提高深度估计的准确性,从而为计算机视觉领域的其它应用提供支持。UniDepth 的研究成果已被接受在 2024 年的 CVPR(国际计算机视觉与模式识别会议)上发表。
功能与特性
- 通用型深度估计:UniDepth 支持在多种数据集和环境下进行深度估计,适用于多样化的应用场景。
- 灵活的输入形状与尺寸:新的 UniDepthV2 版本对输入的形状和比例具有更高的灵活性。
- 快速推理与高效解码器设计:优化的解码器设计提高了模型的推理速度,使得实时应用成为可能。
- 预训练模型支持:模型可以直接从 Hugging Face 平台加载,并支持 ONNX 格式以用于更广泛的平台。
安装与使用
环境准备
UniDepth 推荐使用 Linux 操作系统,并需要 Python 3.10+ 和 CUDA 11.8。用户可以选择使用 Python 虚拟环境或者 conda 管理项目环境。
安装步骤
-
创建虚拟环境:
export VENV_DIR=<YOUR-VENVS-DIR> export NAME=UniDepth python -m venv $VENV_DIR/$NAME source $VENV_DIR/$NAME/bin/activate
使用 conda 的步骤:
conda create -n $NAME python=3.11 conda activate $NAME
-
安装 UniDepth 和相关依赖:
pip install -e . --extra-index-url https://download.pytorch.org/whl/cu118
-
运行示例代码测试安装:
python ./scripts/demo.py
模型库
UniDepth 提供了多个预训练模型可供选择,支持不同的骨干网络:
-
UnidepthV1:
- ConvNext-L 模型
- ViT-L 模型
-
UnidepthV2:
- ViT-S 模型
- ViT-B 模型
- ViT-L 模型
评测与成功案例
UniDepth 在多个基准数据集上的深度估计表现优异,特别是在 NYUv2、KITTI 等具代表性的数据集上实现了较高的性能指标。模型在提供精确的三维点云和深度估计的同时,保持了快速的计算速度。
贡献与支持
如果用户在使用中发现代码错误,欢迎将问题报告给团队。目前,项目由丰田欧洲汽车公司通过 TRACE-Zurich 项目资助。
引用与授权
如果 UniDepth 在您的研究中有所帮助,请引用以下文献:
@inproceedings{piccinelli2024unidepth,
title = {{U}ni{D}epth: Universal Monocular Metric Depth Estimation},
author = {Piccinelli, Luigi and others},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year = {2024}
}
该项目在 Creative Commons BY-NC 4.0 许可下发布。