杨立和1 ·康丙一2† ·黄子龙2
赵震·徐晓刚·冯嘉世2 ·赵恒爽1*
1香港大学2抖音
†项目负责人*通讯作者
这项工作呈现了 Depth Anything V2。它在细粒度细节和鲁棒性方面明显优于 V1。与基于SD的模型相比,它具有更快的推理速度、更少的参数和更高的深度精度。
2024-07-06:变形金刚支持 Depth Anything V2。请参阅说明以方便使用。
2024-06-25: Depth Anything 已集成到 Apple Core ML 模型中。使用说明(V1、V2)。
2024-06-22:我们发布了基于 Depth-Anything-V2-Small 和 Base 的更小的度量深度模型。
2024 年 6 月 20 日:我们的存储库和项目页面被 GitHub 标记,并从公众中删除 6 天。带来不便敬请谅解。
2024-06-14:论文、项目页面、代码、模型、演示和基准均已发布。
我们提供了四种不同尺度的模型,用于稳健的相对深度估计:
模型 | 参数 | 检查站 |
---|---|---|
深度-任意-V2-小 | 24.8M | 下载 |
深度-任意-V2-基础 | 97.5M | 下载 |
深度-任意-V2-大 | 335.3M | 下载 |
深度-任何-V2-巨人 | 1.3B | 即将推出 |
git克隆 https://github.com/DepthAnything/Depth-Anything-V2cd Depth-Anything-V2 pip install -r 要求.txt
下载此处列出的检查点并将它们放在checkpoints
目录下。
导入 cv2import torchfrom depth_anything_v2.dpt 导入 DepthAnythingV2DEVICE = 'cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu'model_configs = {'vits': {'encoder': 'vits','功能':64,'out_channels': [48, 96, 192, 384]},'vitb': {'编码器': 'vitb', '特征': 128, 'out_channels': [96, 192, 384, 768]},'vitl': { “编码器”:“vitl”,“功能”:256,“out_channels”:[256,第512章 1024, 1024 }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('your/image/path')深度 = model.infer_image(raw_img) # numpy 中的 HxW 原始深度图
如果您不想克隆此存储库,您也可以通过 Transformers 加载我们的模型。下面是一个简单的代码片段。更多详情请参阅官方页面。
注1:请确保您可以连接到Hugging Face并安装了最新的Transformers。
注 2:由于 OpenCV(我们使用的)和 Pillow(使用 HF)之间的上采样差异,预测可能略有不同。所以更推荐您通过上面介绍的方式使用我们的模型。
from Transformers import pipelinefrom PIL import Imagepipe = pipeline(task=”深度估计”, model=”深度-anything/Depth-Anything-V2-Small-hf”)image = Image.open('your/image/path')深度=管道(图像)[“深度”]
蟒蛇运行.py --编码器<vits |维特布 |维特尔|维特格> --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 asset/examples --outdir depth_vis
python run_video.py --编码器<vits |维特布 |维特尔|维特格> --视频路径资产/examples_video --outdir video_depth_vis [--input-size <尺寸>] [--pred-only] [--grayscale]
我们更大的模型在视频上具有更好的时间一致性。
要在本地使用我们的 gradio 演示:
蟒蛇应用程序.py
您还可以尝试我们的在线演示。
注意:与V1相比,我们对DINOv2-DPT架构进行了较小的修改(源于此问题)。在 V1 中,我们无意中使用了 DINOv2 最后四层的特征进行解码。在 V2 中,我们改用中间特征。尽管此修改没有提高细节或准确性,但我们决定遵循这种常见做法。
请参阅度量深度估计。
请参考 DA-2K 基准测试。
我们衷心感谢所有社区对我们的 Depth Anything 系列的支持。非常感谢!
苹果核心机器学习:
https://developer.apple.com/machine-learning/models
https://huggingface.co/apple/coreml-depth-anything-v2-small
https://huggingface.co/apple/coreml-深度-anything-small
变形金刚:
https://huggingface.co/docs/transformers/main/en/model_doc/depth_anything_v2
https://huggingface.co/docs/transformers/main/en/model_doc/深度_anything
张量RT:
https://github.com/spacewalk01/深度-anything-tensorrt
https://github.com/zhujiajian98/Depth-Anythingv2-TensorRT-python
ONNX:https://github.com/fabio-sim/Depth-Anything-ONNX
ComfyUI:https://github.com/kijai/ComfyUI-DepthAnythingV2
Transformers.js(网络实时深度):https://huggingface.co/spaces/Xenova/webgpu-realtime-depth-estimation
安卓:
https://github.com/shubham0204/Depth-Anything-Android
https://github.com/FeiGeChuanShu/ncnn-android-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={杨、李河和康、丙一和黄、子龙和赵、甄和徐、小刚和冯、贾世和赵、恒爽},journal={arXiv: 2406.09414},年份={2024}}@inproceedings{深度_anything_v1,标题={深度任何事情:释放大规模未标记数据的力量}, 作者={杨、立和康、丙一和黄、子龙和徐、小刚和冯、贾世和赵、恒爽},书名={CVPR},年份={2024}}