Project Icon

Depth-Anything-V2

单目深度估计新突破,高精度与快速推理并重

Depth-Anything-V2是单目深度估计领域的新进展。该模型在细节表现和鲁棒性上显著优于V1版本,并在推理速度、参数量和深度精度方面超越了基于SD的模型。项目提供四种预训练模型,适用于相对和度量深度估计,可处理图像和视频。此外,发布的DA-2K基准为深度估计研究设立了新标准。

Depth Anything V2

杨理赫1 · 康冰毅2† · 黄子龙2
赵震 · 徐晓刚 · 冯佳时2 · 赵恒双1*

1香港大学   2字节跳动
†项目负责人 *通讯作者

论文PDF 项目主页 基准测试

本文介绍了Depth Anything V2。与V1相比,它在细节处理和鲁棒性方面有显著提升。相比于基于SD的模型,它具有更快的推理速度、更少的参数量和更高的深度精度。

预览图

新闻

  • 2024年7月6日: Depth Anything V2已在Transformers中得到支持。请参阅使用说明以方便使用。
  • 2024年6月25日: Depth Anything已集成到Apple Core ML Models中。请参阅使用说明(V1V2)。
  • 2024年6月22日: 我们发布了基于Depth-Anything-V2-Small和Base的较小的度量深度模型
  • 2024年6月20日: 我们的仓库和项目页面被GitHub标记并从公众视野中移除了6天。对此造成的不便我们深表歉意。
  • 2024年6月14日: 论文、项目页面、代码、模型、演示和基准测试全部发布。

预训练模型

我们提供了四个不同规模的模型用于稳健的相对深度估计:

模型参数量检查点
Depth-Anything-V2-Small24.8M下载
Depth-Anything-V2-Base97.5M下载
Depth-Anything-V2-Large335.3M下载
Depth-Anything-V2-Giant1.3B即将推出

使用方法

准备工作

git clone https://github.com/DepthAnything/Depth-Anything-V2
cd Depth-Anything-V2
pip install -r requirements.txt

下载这里列出的检查点并将它们放在checkpoints目录下。

使用我们的模型

import cv2
import torch

from depth_anything_v2.dpt import DepthAnythingV2

DEVICE = 'cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu'

model_configs = {
    'vits': {'encoder': 'vits', 'features': 64, 'out_channels': [48, 96, 192, 384]},
    'vitb': {'encoder': 'vitb', 'features': 128, 'out_channels': [96, 192, 384, 768]},
    'vitl': {'encoder': 'vitl', 'features': 256, 'out_channels': [256, 512, 1024, 1024]},
    'vitg': {'encoder': 'vitg', 'features': 384, 'out_channels': [1536, 1536, 1536, 1536]}
}

encoder = 'vitl' # 或 'vits', 'vitb', 'vitg'

model = DepthAnythingV2(**model_configs[encoder])
model.load_state_dict(torch.load(f'checkpoints/depth_anything_v2_{encoder}.pth', map_location='cpu'))
model = model.to(DEVICE).eval()

raw_img = cv2.imread('你的图像路径')
depth = model.infer_image(raw_img) # HxW 原始深度图(numpy格式)

如果你不想克隆这个仓库,你也可以通过Transformers加载我们的模型。以下是一个简单的代码片段。更多详情请参考官方页面

  • 注意1:确保你能连接到Hugging Face并已安装最新版的Transformers。
  • 注意2:由于OpenCV(我们使用的)和Pillow(HF使用的)之间的上采样差异,预测结果可能会略有不同。因此,我们更推荐你通过上面介绍的方式使用我们的模型。
from transformers import pipeline
from PIL import Image

pipe = pipeline(task="depth-estimation", model="depth-anything/Depth-Anything-V2-Small-hf")
image = Image.open('你的图像路径')
depth = pipe(image)["depth"]

图像上运行脚本

python run.py \
  --encoder <vits | vitb | vitl | vitg> \
  --img-path <路径> --outdir <输出目录> \
  [--input-size <大小>] [--pred-only] [--grayscale]

选项:

  • --img-path: 你可以1)指向存储所有感兴趣图像的目录,2)指向单张图像,或3)指向存储所有图像路径的文本文件。
  • --input-size(可选):默认情况下,我们使用输入大小518进行模型推理。你可以增加大小以获得更加精细的结果。
  • --pred-only(可选):仅保存预测的深度图,不保存原始图像。
  • --grayscale(可选):保存灰度深度图,不应用色彩调色板。

例如:

python run.py --encoder vitl --img-path assets/examples --outdir depth_vis

在视频上运行脚本

python run_video.py \
  --encoder <vits | vitb | vitl | vitg> \
  --video-path assets/examples_video --outdir video_depth_vis \
  [--input-size <大小>] [--pred-only] [--grayscale]

我们的更大模型在视频上有更好的时间一致性。

Gradio演示

要在本地使用我们的Gradio演示:

python app.py

你也可以尝试我们的在线演示

注意:相比V1,我们对DINOv2-DPT架构做了一个小修改(源自这个问题)。 在V1中,我们无意中使用了DINOv2最后四层的特征进行解码。在V2中,我们改为使用中间特征。尽管这个修改并未改善细节或准确性,但我们决定遵循这一常见做法。

微调到度量深度估计

请参考度量深度估计

DA-2K评估基准

请参考DA-2K基准

社区支持

我们衷心感谢社区对我们Depth Anything系列的所有支持。非常感谢!

致谢

我们衷心感谢出色的Hugging Face团队(@Pedro Cuenca@Niels Rogge@Merve Noyan@Amy Roberts等)在Transformers和Apple Core ML中支持我们模型的巨大努力。

我们还要感谢DINOv2团队为我们的社区贡献了如此令人印象深刻的模型。

许可证

Depth-Anything-V2-Small模型使用Apache-2.0许可证。Depth-Anything-V2-Base/Large/Giant模型使用CC-BY-NC-4.0许可证。

引用

如果您发现这个项目有用,请考虑引用:

@article{depth_anything_v2,
  title={Depth Anything V2},
  author={Yang, Lihe and Kang, Bingyi and Huang, Zilong and Zhao, Zhen and Xu, Xiaogang and Feng, Jiashi and Zhao, Hengshuang},
  journal={arXiv:2406.09414},
  year={2024}
}

@inproceedings{depth_anything_v1,
  title={Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data}, 
  author={Yang, Lihe and Kang, Bingyi and Huang, Zilong and Xu, Xiaogang and Feng, Jiashi and Zhao, Hengshuang},
  booktitle={CVPR},
  year={2024}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号