🚀 Midas 3.1 DPT (Intel/dpt-swinv2-large-384 使用 Swinv2 骨干网络)
DPT(密集预测变换器)模型在 140 万张图像上进行训练,用于单目深度估计。该模型由 Ranftl 等人(2021 年)在论文 Vision Transformers for Dense Prediction 中提出,并首次在 此仓库 发布。
免责声明:发布 DPT 的团队并未为此模型撰写模型卡片,此模型卡片由英特尔和 Hugging Face 团队共同撰写。
🚀 快速开始
安装
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'
以下是如何使用此模型对图像进行零样本深度估计:
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-swinv2-large-384")
result = pipe("http://images.cocodataset.org/val2017/000000181816.jpg")
result["depth"]
✨ 主要特性
- 单目深度估计:旨在从单张图像或相机视图中推断详细的深度信息,可应用于生成式 AI、3D 重建和自动驾驶等领域。
- 结合多种骨干网络:MiDaS v3.1 结合了基于变换器的编码器和传统卷积编码器,对不同的 v3.1 模型进行了全面比较。
- 多种模型变体:提供了如 Swin-L、SwinV2-L、SwinV2-B、SwinV2-T 等变体,可根据不同的训练分辨率和模型大小进行选择。
📦 安装指南
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
💻 使用示例
基础用法
import torch
import transformers
print(torch.__version__)
print(transformers.__version__)
高级用法
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-swinv2-large-384")
result = pipe("http://images.cocodataset.org/val2017/000000181816.jpg")
result["depth"]
📚 详细文档
单目深度估计概述
单目深度估计的目标是从单张图像或相机视图中推断详细的深度信息,在生成式 AI、3D 重建和自动驾驶等领域有广泛应用。然而,由于问题的约束不足,从单张图像的单个像素中推导深度信息具有挑战性。最近的进展归因于基于学习的方法,特别是 MiDaS,它利用数据集混合和尺度与平移不变损失。MiDaS 已经发展,发布了具有更强大骨干网络和适用于移动设备的轻量级变体。随着变换器架构在计算机视觉中的兴起,包括 ViT、Swin 和 SwinV2 等模型的先驱,人们开始转向使用它们进行深度估计。受此启发,MiDaS v3.1 结合了有前途的基于变换器的编码器和传统卷积编码器,旨在全面研究深度估计技术。论文重点描述了这些骨干网络在 MiDaS 中的集成,对不同的 v3.1 模型进行了全面比较,并为未来在 MiDaS 中使用骨干网络提供了指导。
Swin 变换器
Swin 变换器(Swin 代表 Shifted window)最初在 arxiv 中被描述,它可以作为计算机视觉的通用骨干网络。它本质上是一个分层变换器,其表示是通过移位窗口计算的。移位窗口方案通过将自注意力计算限制在不重叠的局部窗口中,同时允许跨窗口连接,提高了效率。
Swin 变换器在 COCO 目标检测(在 test-dev 上的框 AP 为 58.7,掩码 AP 为 51.1)和 ADE20K 语义分割(在验证集上的 mIoU 为 53.5)方面取得了强大的性能,大幅超越了以前的模型。
模型详情
预期用途
预期用途 |
描述 |
主要预期用途 |
可以使用原始模型进行零样本单目深度估计。查看 模型中心 以查找针对您感兴趣的任务进行微调的版本。 |
主要预期用户 |
任何进行单目深度估计的人 |
超出范围的用途 |
此模型在大多数情况下需要针对您的特定任务进行微调。该模型不应被用于故意为人们创造敌对或疏远的环境。 |
定量分析
模型 |
方形分辨率 HRWSI RMSE |
方形分辨率混合 MVS REL |
方形分辨率 ReDWeb RMSE |
BEiT 384-L |
10.82 |
0.070 |
0.076 |
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(密集预测变换器)模型使用 SwinV2 作为骨干网络,结合了变换器架构和传统卷积编码器,用于单目深度估计。
训练方法
模型在 140 万张图像上进行训练,利用数据集混合和尺度与平移不变损失。
性能评估
在多个数据集上进行了评估,包括 MIX-6,取得了较好的性能。
📄 许可证
本模型采用 MIT 许可证。
注意事项
⚠️ 重要提示
此模型的许可证不构成法律建议。我们不对使用此模型的第三方的行为负责。在将此模型用于商业目的之前,请咨询律师。
💡 使用建议
在部署 dpt-swinv2-large-384 的任何应用程序之前,开发人员应进行安全测试。用户(直接用户和下游用户)应了解模型的风险、偏差和局限性。
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}
}