模型简介
模型特点
模型能力
使用案例
🚀 单目深度估计模型 dpt-beit-large-384
单目深度估计模型 dpt-beit-large-384 基于 BEiT 骨干网络,能够从单张图像中推断出详细的深度信息,在生成式 AI、3D 重建和自动驾驶等领域具有广泛的应用价值。
🚀 快速开始
安装依赖
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
使用模型进行零样本深度估计
from transformers import DPTImageProcessor, DPTForDepthEstimation
import torch
import numpy as np
from PIL import Image
import requests
# 远程获取图像
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
# 本地文件获取图像
# path = "../image/000000039769.jpg"
# image = Image.open(path)
processor = DPTImageProcessor.from_pretrained("Intel/dpt-beit-large-384")
model = DPTForDepthEstimation.from_pretrained("Intel/dpt-beit-large-384")
# 为模型准备图像
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
predicted_depth = outputs.predicted_depth
# 插值到原始大小
prediction = torch.nn.functional.interpolate(
predicted_depth.unsqueeze(1),
size=image.size[::-1],
mode="bicubic",
align_corners=False,
)
# 可视化预测结果
output = prediction.squeeze().cpu().numpy()
formatted = (output * 255 / np.max(output)).astype("uint8")
depth = Image.fromarray(formatted)
depth
使用管道 API
from transformers import pipeline
pipe = pipeline(task="depth-estimation", model="Intel/dpt-beit-large-384")
result = pipe("http://images.cocodataset.org/val2017/000000181816.jpg")
result["depth"]
✨ 主要特性
- 基于 BEiT 骨干网络:DPT 模型使用 BEiT 模型作为骨干网络,并添加了颈部和头部用于单目深度估计。
- 多领域应用:单目深度估计旨在从单张图像或相机视图中推断详细的深度信息,可应用于生成式 AI、3D 重建和自动驾驶等领域。
- 持续发展:随着计算机视觉中变压器架构的兴起,MiDaS v3.1 结合了有前景的基于变压器的编码器和传统的卷积编码器,旨在全面研究深度估计技术。
📦 安装指南
安装依赖
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
版本要求
确保更新 PyTorch 和 Transformers,版本不匹配可能会产生错误,如:"TypeError: unsupported operand type(s) for //: 'NoneType' and 'NoneType'"。经测试,以下版本运行正常:
import torch
import transformers
print(torch.__version__)
print(transformers.__version__)
out: '2.2.1+cpu'
out: '4.37.2'
💻 使用示例
基础用法
from transformers import DPTImageProcessor, DPTForDepthEstimation
import torch
import numpy as np
from PIL import Image
import requests
# 远程获取图像
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
# 本地文件获取图像
# path = "../image/000000039769.jpg"
# image = Image.open(path)
processor = DPTImageProcessor.from_pretrained("Intel/dpt-beit-large-384")
model = DPTForDepthEstimation.from_pretrained("Intel/dpt-beit-large-384")
# 为模型准备图像
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
predicted_depth = outputs.predicted_depth
# 插值到原始大小
prediction = torch.nn.functional.interpolate(
predicted_depth.unsqueeze(1),
size=image.size[::-1],
mode="bicubic",
align_corners=False,
)
# 可视化预测结果
output = prediction.squeeze().cpu().numpy()
formatted = (output * 255 / np.max(output)).astype("uint8")
depth = Image.fromarray(formatted)
depth
高级用法
from transformers import pipeline
pipe = pipeline(task="depth-estimation", model="Intel/dpt-beit-large-384")
result = pipe("http://images.cocodataset.org/val2017/000000181816.jpg")
result["depth"]
📚 详细文档
模型概述
单目深度估计旨在从单张图像或相机视图中推断详细的深度信息,但由于问题的约束不足,从单张图像的单个像素中推导深度具有挑战性。最近的进展归功于基于学习的方法,特别是 MiDaS,它利用数据集混合和尺度与平移不变损失。MiDaS 不断发展,推出了具有更强大骨干网络的版本和适用于移动设备的轻量级变体。随着变压器架构在计算机视觉中的兴起,MiDaS v3.1 结合了有前景的基于变压器的编码器和传统的卷积编码器,旨在全面研究深度估计技术。
模型描述
DPT 模型使用 BEiT 模型作为骨干网络,并添加了颈部和头部用于单目深度估计。之前发布的 MiDaS v3.0 仅使用了原始视觉变压器 ViT,而 MiDaS v3.1 提供了基于 BEiT、Swin、SwinV2、Next-ViT 和 LeViT 的额外模型。
模型细节
属性 | 详情 |
---|---|
模型作者 - 公司 | Intel |
日期 | 2024 年 3 月 7 日 |
版本 | 1 |
类型 | 计算机视觉 - 单目深度估计 |
论文或其他资源 | MiDaS v3.1 – A Model Zoo for Robust Monocular Relative Depth Estimation 和 GitHub 仓库 |
许可证 | MIT |
问题或评论 | 社区标签 和 Intel 开发者 Discord |
预期用途
预期用途 | 描述 |
---|---|
主要预期用途 | 可以使用原始模型进行零样本单目深度估计。请参阅 模型中心 以查找针对您感兴趣的任务进行微调的版本。 |
主要预期用户 | 任何进行单目深度估计的人 |
超出范围的用途 | 此模型在大多数情况下需要针对您的特定任务进行微调。该模型不应被用于故意为人们创造敌对或疏远的环境。 |
定量分析
模型 | 方形分辨率 HRWSI RMSE | 方形分辨率混合 MVS REL | 方形分辨率 ReDWeb RMSE |
---|---|---|---|
BEiT 384-L | 10.82 | 10.82 | 10.82 |
Swin-L 训练 1 | 0.0708 | 0.0724 | 0.0826 |
Swin-L 训练 2 | 0.0713 | 0.0720 | 0.0831 |
ViT-L | 0.071 | 0.072 | 0.082 |
Next-ViT-L-1K-6M | 0.075 | 0.073 | 0.085 |
DeiT3-L-22K-1K | 0.070 | 0.070 | 0.080 |
ViT-L-Hybrid | 0.075 | 0.075 | 0.085 |
DeiT3-L | 0.077 | 0.075 | 0.087 |
ConvNeXt-XL | 0.075 | 0.075 | 0.085 |
ConvNeXt-L | 0.076 | 0.076 | 0.087 |
EfficientNet-L2 | 0.165 | 0.277 | 0.219 |
ViT-L 反转 | 0.071 | 0.073 | 0.081 |
Swin-L 等距 | 0.072 | 0.074 | 0.083 |
伦理考虑和限制
dpt-beit-large-384 可能会产生事实错误的输出,不应依赖它来产生事实准确的信息。由于预训练模型和微调数据集的限制,该模型可能会生成淫秽、有偏见或其他冒犯性的输出。因此,在部署 dpt-beit-large-384 的任何应用程序之前,开发人员应进行安全测试。
注意事项和建议
用户(直接用户和下游用户)应了解模型的风险、偏差和限制。以下是一些了解 Intel AI 软件的有用链接:
免责声明
此模型的许可证不构成法律建议。我们不对使用此模型的第三方的行为负责。在将此模型用于商业目的之前,请咨询律师。
BibTeX 引用
@article{DBLP:journals/corr/abs-2103-13413,
author = {Ren{\'{e}} Reiner Birkl, Diana Wofk, Matthias Muller},
title = {MiDaS v3.1 – A Model Zoo for Robust Monocular Relative Depth Estimation},
journal = {CoRR},
volume = {abs/2307.14460},
year = {2021},
url = {https://arxiv.org/abs/2307.14460},
eprinttype = {arXiv},
eprint = {2307.14460},
timestamp = {Wed, 26 Jul 2023},
biburl = {https://dblp.org/rec/journals/corr/abs-2307.14460.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
📄 许可证
本模型采用 MIT 许可证。






