🚀 Depth Anything V2 Base – Transformers Version
Depth Anything V2は、595Kの合成ラベル付き画像と62M以上の実際のラベルなし画像を用いて学習され、以下の特徴を持つ最先端の単眼深度推定(MDE)モデルを提供します。
- Depth Anything V1よりも細かい詳細を提供
- Depth Anything V1やSDベースのモデル(例: Marigold、Geowizard)よりも頑健
- SDベースのモデルよりも10倍高速で軽量
- 事前学習モデルを用いた印象的な微調整性能
このモデルチェックポイントは、transformersライブラリと互換性があります。
Depth Anything V2は、Lihe Yangらによる同名の論文で紹介されました。元のDepth Anythingと同じアーキテクチャを使用していますが、合成データと大容量の教師モデルを使用することで、より細かく頑健な深度予測を実現しています。元のDepth Anythingモデルは、Lihe Yangらによる論文Depth Anything: Unleashing the Power of Large-Scale Unlabeled Dataで紹介され、このリポジトリで最初に公開されました。
オンラインデモ
🚀 クイックスタート
このセクションでは、Depth Anything V2の概要と使用方法について説明します。
✨ 主な機能
- 細かい詳細:Depth Anything V1よりも細かい詳細を提供します。
- 頑健性:Depth Anything V1やSDベースのモデル(例: Marigold、Geowizard)よりも頑健です。
- 効率性:SDベースのモデルよりも10倍高速で軽量です。
- 微調整性能:事前学習モデルを用いた印象的な微調整性能を備えています。
📚 ドキュメント
モデルの説明
Depth Anything V2は、DINOv2バックボーンを持つDPTアーキテクチャを利用しています。
このモデルは、約600Kの合成ラベル付き画像と約6200万の実際のラベルなし画像で学習され、相対深度推定と絶対深度推定の両方で最先端の結果を得ています。

Depth Anythingの概要。元の論文から引用。
想定用途と制限
この生モデルは、ゼロショット深度推定などのタスクに使用できます。興味のあるタスクに関する他のバージョンは、モデルハブを参照してください。
使い方
このモデルを使用してゼロショット深度推定を行う方法は次の通りです。
基本的な使用法
from transformers import pipeline
from PIL import Image
import requests
pipe = pipeline(task="depth-estimation", model="depth-anything/Depth-Anything-V2-Base-hf")
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
depth = pipe(image)["depth"]
高度な使用法
from transformers import AutoImageProcessor, AutoModelForDepthEstimation
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)
image_processor = AutoImageProcessor.from_pretrained("depth-anything/Depth-Anything-V2-Base-hf")
model = AutoModelForDepthEstimation.from_pretrained("depth-anything/Depth-Anything-V2-Base-hf")
inputs = image_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,
)
より多くのコード例については、ドキュメントを参照してください。
引用
@misc{yang2024depth,
title={Depth Anything V2},
author={Lihe Yang and Bingyi Kang and Zilong Huang and Zhen Zhao and Xiaogang Xu and Jiashi Feng and Hengshuang Zhao},
year={2024},
eprint={2406.09414},
archivePrefix={arXiv},
primaryClass={id='cs.CV' full_name='Computer Vision and Pattern Recognition' is_active=True alt_name=None in_archive='cs' is_general=False description='Covers image processing, computer vision, pattern recognition, and scene understanding. Roughly includes material in ACM Subject Classes I.2.10, I.4, and I.5.'}
}
📄 ライセンス
このモデルは、CC BY-NC 4.0ライセンスの下で提供されています。