🚀 Midas 3.1 DPT (Intel/dpt-swinv2-tiny-256 使用Swinv2主幹網絡)
DPT(密集預測變換器)模型在140萬張圖像上進行訓練,用於單目深度估計。該模型由Ranftl等人在2021年的論文Vision Transformers for Dense Prediction中提出,並首次在此倉庫發佈。
免責聲明:發佈DPT的團隊並未為此模型撰寫模型卡片,此模型卡片由英特爾和Hugging Face團隊共同撰寫。
🚀 快速開始
本模型主要用於單目深度估計,可在生成式AI、3D重建和自動駕駛等領域發揮作用。下面將介紹模型的安裝和使用方法。
✨ 主要特性
- 多數據集訓練:在140萬張圖像上進行訓練,提升了模型的泛化能力。
- 先進的骨幹網絡:採用SwinV2作為骨幹網絡,適用於單目深度估計任務。
- 多用途應用:可應用於生成式AI、3D重建和自動駕駛等領域。
📦 安裝指南
安裝依賴
確保更新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'
安裝命令如下:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
💻 使用示例
基礎用法
以下是如何在圖像上使用此模型進行零樣本深度估計的示例:
output = prediction.squeeze().cpu().numpy()
formatted = (output * 255 / np.max(output)).astype("uint8")
depth = Image.fromarray(formatted)
depth
高級用法
也可以使用pipeline API:
from transformers import pipeline
pipe = pipeline(task="depth-estimation", model="Intel/dpt-swinv2-tiny-256")
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 Transformer簡介
Swin Transformer(Swin代表Shifted window)最初在arxiv上被描述,它能夠作為計算機視覺的通用骨幹網絡。它本質上是一種分層變換器,其表示通過移位窗口計算。移位窗口方案通過將自注意力計算限制在非重疊的局部窗口內,同時允許跨窗口連接,提高了效率。Swin Transformer在COCO目標檢測(測試開發集上的框AP為58.7,掩碼AP為51.1)和ADE20K語義分割(驗證集上的mIoU為53.5)上取得了強大的性能,大幅超越了以前的模型。
模型描述
此Midas 3.1 DPT模型使用SwinV2 Philosophy模型作為骨幹網絡,與Beit採用不同的視覺方法,Swin骨幹網絡更側重於使用分層方法。

之前發佈的MiDaS v3.0僅使用了原始視覺變換器ViT,而MiDaS v3.1提供了基於BEiT、Swin、SwinV2、Next-ViT和LeViT的額外模型。
Midas 3.1 DPT模型(Swin骨幹網絡)
該模型指的是基於Swin骨幹網絡的Intel dpt-swinv2-tiny-256。arxiv論文對Beit和Swin骨幹網絡進行了比較。使用BEiT變換器可實現最高質量的深度估計。我們提供了Swin-L、SwinV2-L、SwinV2-B、SwinV2-T等變體,其中數字表示512x512和384x384的訓練分辨率,字母分別表示大型和基礎模型。
模型信息
預期用途
預期用途 |
描述 |
主要預期用途 |
可以使用原始模型進行零樣本單目深度估計。請查看模型中心以查找針對您感興趣的任務進行微調的版本。 |
主要預期用戶 |
任何從事單目深度估計的人員 |
超出範圍的用途 |
在大多數情況下,此模型需要針對您的特定任務進行微調。該模型不應被用於故意為人們創造敵對或疏遠的環境。 |
定量分析
模型 |
方形分辨率HRWSI RMSE |
方形分辨率混合MVS REL |
方形分辨率ReDWeb RMSE |
BEiT 384-L |
0.068 |
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 Reversed |
0.071 |
0.073 |
0.081 |
Swin-L Equidistant |
0.072 |
0.074 |
0.083 |
倫理考慮和侷限性
dpt-swinv2-tiny-256可能會產生事實錯誤的輸出,不應依賴它來產生事實準確的信息。由於預訓練模型和微調數據集的侷限性,此模型有可能生成淫穢、有偏見或其他冒犯性的輸出。
因此,在部署dpt-swinv2-tiny-256的任何應用程序之前,開發人員應進行安全測試。
注意事項和建議
用戶(直接用戶和下游用戶)應瞭解該模型的風險、偏差和侷限性。
以下是一些瞭解英特爾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}
}
模型輸入輸出示例
輸入圖像 |
輸出深度圖像 |
 |
 |
視頻示例

MiDaS深度估計是英特爾實驗室的一個用於單目深度估計的機器學習模型。它在多達12個數據集上進行訓練,涵蓋了室內和室外場景。有多種不同的MiDaS模型可供選擇,從高質量深度估計模型到適用於移動下游任務的輕量級模型(鏈接)。