ヤン・リーヘ1・カン・ビンイー2†・ファン・ジロン2
Zhen Zao · Xiaogang Xu · Jiashi Feng 2 · Hengshuang Zhao 1*
1 HKU 2 TikTok
†プロジェクトリーダー *責任著者
本作はDepth Anything V2を紹介します。きめ細かいディテールと堅牢性の点で V1 を大幅に上回ります。 SD ベースのモデルと比較して、推論速度が速く、パラメーターが少なく、深度精度が高くなります。
2024-07-06: Depth Anything V2 が Transformers でサポートされました。便利な使い方については説明書をご覧ください。
2024-06-25: Depth Anything が Apple Core ML モデルに統合されました。使用方法については、説明書 (V1、V2) を参照してください。
2024-06-22: Depth-Anything-V2-Small および Base に基づいた、より小さいメトリック深度モデルをリリースします。
2024 年 6 月 20 日:私たちのリポジトリとプロジェクト ページは GitHub によってフラグが立てられ、6 日間公開されなくなりました。ご不便をおかけして申し訳ありません。
2024-06-14:論文、プロジェクト ページ、コード、モデル、デモ、ベンチマークがすべてリリースされました。
堅牢な相対深度推定のために、さまざまなスケールの4 つのモデルを提供します。
モデル | パラメータ | チェックポイント |
---|---|---|
深さ-何でも-V2-小 | 24.8M | ダウンロード |
深さ-何でも-V2-ベース | 97.5M | ダウンロード |
深さ-何でも-V2-大 | 335.3M | ダウンロード |
Depth-Anything-V2-Giant | 1.3B | 近日公開 |
git clone https://github.com/DepthAnything/Depth-Anything-V2cd Depth-Anything-V2 pip install -r 要件.txt
ここにリストされているチェックポイントをダウンロードし、 checkpoints
ディレクトリの下に置きます。
import cv2import torchfrom Depth_anything_v2.dpt import DepthAnythingV2DEVICE = 'cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu'model_configs = {'vits': {'encoder': 'vits'、'features': 64、'out_channels': [48, 96, 192, 384]},'vitb': {'エンコーダー': 'vitb', 'features': 128, 'out_channels': [96, 192, 384, 768]} ,'vitl': {'エンコーダー': 'vitl', 'features': 256, 'out_channels': [256, 512, 1024, 1024]},'vitg': {'encoder': 'vitg', 'features': 384, 'out_channels': [1536, 1536, 1536 、1536]} }encoder = 'vitl' # または 'vits'、'vitb'、'vitg'model = DepthAnythingV2(**model_configs[encoder])model.load_state_dict(torch.load(f'checkpoints/ Depth_anything_v2_{encoder}.pth', map_location='cpu'))モデル = model.to(DEVICE).eval()raw_img = cv2.imread('your/image/path') Depth = model.infer_image(raw_img) # numpy の HxW 生深度マップ
このリポジトリのクローンを作成したくない場合は、Transformers を通じてモデルをロードすることもできます。以下は簡単なコードスニペットです。詳細は公式ページをご確認ください。
注意 1: Hugging Face に接続できること、および最新の Transformers がインストールされていることを確認してください。
注 2: OpenCV (使用) と Pillow (HF 使用) のアップサンプリングの違いにより、予測は若干異なる場合があります。したがって、上記で紹介した方法でモデルを使用することをお勧めします。
トランスフォーマーからインポート パイプラインPIL からインポート Imagepipe = Pipeline(task="深さ推定",モデル="深さ-任意の深さ/深さ-任意の V2-Small-hf")image = Image.open('your/image/path')深さ = パイプ(画像)["深さ"]
Python run.py --encoder <vits |ビタ |ヴィトル |ヴィトグ> --img-path <パス> --outdir <出力ディレクトリ> [--input-size <サイズ>] [--pred-only] [--grayscale]
オプション:
--img-path
: 1) 対象となるすべての画像を保存する画像ディレクトリを指定する、2) 単一の画像を指定する、または 3) すべての画像パスを保存するテキスト ファイルを指定することができます。
--input-size
(オプション): デフォルトでは、モデル推論に入力サイズ518
を使用します。サイズを大きくすると、さらに詳細な結果が得られます。
--pred-only
(オプション): 予測された深度マップのみを保存し、生の画像は保存しません。
--grayscale
(オプション): カラー パレットを適用せずに、グレースケール深度マップを保存します。
例えば:
python run.py --encoder vitl --img-path アセット/例 --outdir Depth_vis
Python run_video.py --encoder <vits |ビタ |ヴィトル |ヴィトグ> --video-pathassets/examples_video --outdir video_ Depth_vis [--input-size <サイズ>] [--pred-only] [--grayscale]
私たちの大規模なモデルは、ビデオ上でより良い時間的一貫性を持っています。
Gradio デモをローカルで使用するには:
Python app.py
オンラインデモを試すこともできます。
注: V1 と比較して、DINOv2-DPT アーキテクチャに若干の変更を加えました (この問題が原因です)。 V1 では、DINOv2 の最後の 4 つのレイヤーの機能をデコードに意図せず使用してしまいました。 V2 では、代わりに中間機能を使用します。この変更により詳細や精度は向上しませんでしたが、この一般的な慣例に従うことにしました。
メトリック深度の推定を参照してください。
DA-2Kベンチマークをご参照ください。
Depth Anything シリーズに対するコミュニティのサポートに心から感謝いたします。どうもありがとうございました!
Apple コア ML:
https://developer.apple.com/machine-learning/models
https://huggingface.co/apple/coreml- Depth-anything-v2-small
https://huggingface.co/apple/coreml- Depth-anything-small
トランスフォーマー:
https://huggingface.co/docs/transformers/main/en/model_doc/ Depth_anything_v2
https://huggingface.co/docs/transformers/main/en/model_doc/ Depth_anything
テンソルRT:
https://github.com/spacewalk01/ Depth-anything-tensorrt
https://github.com/zhujiajian98/Depth-Anythingv2-TensorRT-python
ONNX: https://github.com/fabio-sim/Depth-Anything-ONNX
ComfyUI: https://github.com/kijai/ComfyUI-DepthAnythingV2
Transformers.js (Web のリアルタイム深度): https://huggingface.co/spaces/Xenova/webgpu-realtime- Depth-estimation
アンドロイド:
https://github.com/shubham0204/Depth-Anything-Android
https://github.com/FeiGeChuanShu/ncnn-android- Depth_anything
トランスフォーマーと Apple Core ML のモデルをサポートするために多大な努力をしてくれた素晴らしい Hugging Face チーム (@Pedro Cuenca、@Niels Rogge、@Merve Noyan、@Amy Roberts など) に心から感謝しています。
また、このような印象的なモデルをコミュニティに提供してくれた DINOv2 チームにも感謝します。
Depth-Anything-V2-Small モデルは、Apache-2.0 ライセンスの下にあります。 Depth-Anything-V2-Base/Large/Giant モデルは CC-BY-NC-4.0 ライセンスの下にあります。
このプロジェクトが役立つと思われる場合は、以下を引用することを検討してください。
@article{ Depth_anything_v2, title={Depth Anything V2}、author={Yang、Lihe と Kang、Bingyi と Huang、Zilong と Zhao、Zhen と Xu、Xiaogang と Feng、Jiashi と Zhao、Hengshuang}、journal={arXiv: 2406.09414}、 year={2024}}@inproceedings{ Depth_anything_v1, title={Depth Anything: 大規模なラベルなしデータの力を解き放つ}, 著者={ヤン、リーヘとカン、ビンイーとファン、ズーロンとシュウ、シャオガンとフェン、ジアシと趙、恒双}、booktitle={CVPR}、年={2024}}