🚀 DPT-Large (MiDaS 3.0)
Dense Prediction Transformer (DPT) モデルは、単眼深度推定のために140万枚の画像で学習されています。このモデルは、Ranftl ら (2021) による論文 Vision Transformers for Dense Prediction で紹介され、このリポジトリ で最初に公開されました。DPT は Vision Transformer (ViT) をバックボーンとして使用し、単眼深度推定のためにネックとヘッドを追加しています。

このモデルカードは、Hugging Face チームと Intel によって共同で作成されました。
🚀 クイックスタート
モデルの基本情報
想定される使用方法
想定される使用目的 |
説明 |
主な使用目的 |
生のモデルをゼロショット単眼深度推定に使用できます。関心のあるタスクで微調整されたバージョンを モデルハブ で探すことができます。 |
主なユーザー |
単眼深度推定を行うすべての人 |
想定外の使用方法 |
このモデルは、ほとんどの場合、特定のタスクに合わせて微調整する必要があります。また、人に敵対的または疎外感を与える環境を意図的に作り出すために使用してはいけません。 |
💻 使用例
基本的な使用法
最も簡単な方法は、パイプライン API を利用することです。
from transformers import pipeline
pipe = pipeline(task="depth-estimation", model="Intel/dpt-large")
result = pipe(image)
result["depth"]
高度な使用法
独自にすべてのロジックを実装したい場合は、画像のゼロショット深度推定を行う方法は次の通りです。
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)
processor = DPTImageProcessor.from_pretrained("Intel/dpt-large")
model = DPTForDepthEstimation.from_pretrained("Intel/dpt-large")
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)
より多くのコード例については、ドキュメント を参照してください。
📚 ドキュメント
影響因子
要因 |
説明 |
グループ |
複数のデータセットがまとめられています |
計測機器 |
- |
環境 |
Intel Xeon Platinum 8280 CPU @ 2.70GHz、物理コア8個、NVIDIA RTX 2080 GPU で推論が完了しました。 |
カードのプロンプト |
代替のハードウェアとソフトウェアでのモデル展開は、モデルのパフォーマンスを変化させます |
評価指標
メトリクス |
説明 |
モデルのパフォーマンス測定 |
ゼロショット転移 |
決定閾値 |
- |
不確実性と変動性へのアプローチ |
- |
学習と評価データ
学習と評価データ |
説明 |
データセット |
データセットは MIX 6 と呼ばれ、約140万枚の画像を含んでいます。モデルは ImageNet で事前学習された重みで初期化されました。 |
動機 |
堅牢な単眼深度予測ネットワークを構築するため |
前処理 |
"画像をリサイズして、長い方の辺を384ピクセルにし、サイズ384のランダムな正方形のクロップで学習します。... データ拡張のためにランダムな水平反転を行います。" 詳細は Ranftl et al. (2021) を参照してください。 |
定量分析
モデル |
学習セット |
DIW WHDR |
ETH3D AbsRel |
Sintel AbsRel |
KITTI δ>1.25 |
NYU δ>1.25 |
TUM δ>1.25 |
DPT - Large |
MIX 6 |
10.82 (-13.2%) |
0.089 (-31.2%) |
0.270 (-17.5%) |
8.46 (-64.6%) |
8.32 (-12.9%) |
9.97 (-30.3%) |
DPT - Hybrid |
MIX 6 |
11.06 (-11.2%) |
0.093 (-27.6%) |
0.274 (-16.2%) |
11.56 (-51.6%) |
8.69 (-9.0%) |
10.89 (-23.2%) |
MiDaS |
MIX 6 |
12.95 (+3.9%) |
0.116 (-10.5%) |
0.329 (+0.5%) |
16.08 (-32.7%) |
8.71 (-8.8%) |
12.51 (-12.5%) |
MiDaS [30] |
MIX 5 |
12.46 |
0.129 |
0.327 |
23.90 |
9.55 |
14.29 |
Li [22] |
MD [22] |
23.15 |
0.181 |
0.385 |
36.29 |
27.52 |
29.54 |
Li [21] |
MC [21] |
26.52 |
0.183 |
0.405 |
47.94 |
18.57 |
17.71 |
Wang [40] |
WS [40] |
19.09 |
0.205 |
0.390 |
31.92 |
29.57 |
20.18 |
Xian [45] |
RW [45] |
14.59 |
0.186 |
0.422 |
34.08 |
27.00 |
25.02 |
Casser [5] |
CS [8] |
32.80 |
0.235 |
0.422 |
21.15 |
39.58 |
37.18 |
表1. 単眼深度推定における最先端技術との比較。[30] で定義されたプロトコルに従って、ゼロショットクロスデータセット転移を評価します。相対的なパフォーマンスは、元の MiDaS モデル [30] に対して計算されます。すべてのメトリクスについて、値が低いほど良いです。(Ranftl et al., 2021)
倫理的な考慮事項
倫理的な考慮事項 |
説明 |
データ |
学習データは、複数の画像データセットをまとめたものです。 |
人間の生活 |
このモデルは、人間の生活や繁栄に関する決定を下すために使用することを意図していません。これは単眼深度画像データセットの集合です。 |
緩和策 |
モデル開発中に追加のリスク緩和策は考慮されていません。 |
リスクと危害 |
このモデルを使用することに伴うリスクの程度は不明です。 |
ユースケース |
- |
注意事項と推奨事項
注意事項と推奨事項 |
ユーザー (直接的および下流の両方) は、モデルのリスク、バイアス、および制限について認識すべきです。このモデルに関する追加の注意事項や推奨事項はありません。 |
BibTeX エントリと引用情報
@article{DBLP:journals/corr/abs-2103-13413,
author = {Ren{\'{e}} Ranftl and
Alexey Bochkovskiy and
Vladlen Koltun},
title = {Vision Transformers for Dense Prediction},
journal = {CoRR},
volume = {abs/2103.13413},
year = {2021},
url = {https://arxiv.org/abs/2103.13413},
eprinttype = {arXiv},
eprint = {2103.13413},
timestamp = {Wed, 07 Apr 2021 15:31:46 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2103-13413.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
📄 ライセンス
このモデルは Apache 2.0 ライセンスの下で提供されています。