楊立和1 ·康丙一2† ·黃子龍2
趙震·徐曉剛·馮嘉世2 ·趙恆爽1*
1香港大學2抖音
†專案負責人*通訊作者
這項工作呈現了 Depth Anything V2。它在細粒度細節和魯棒性方面明顯優於 V1。與基於SD的模型相比,它具有更快的推理速度、更少的參數和更高的深度精度。
2024-07-06:變形金剛支援 Depth Anything V2。請參閱說明以方便使用。
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:論文、專案頁面、程式碼、模型、演示和基準均已發布。
我們提供了四種不同尺度的模型,用於穩健的相對深度估計:
模型 | 參數 | 檢查站 |
---|---|---|
深度-任意-V2-小 | 24.8M | 下載 |
深度-任意-V2-基礎 | 97.5M | 下載 |
深度-任意-V2-大 | 335.3M | 下載 |
深度-任何-V2-巨人 | 1.3B | 即將推出 |
git克隆 https://github.com/DepthAnything/Depth-Anything-V2cd Depth-Anything-V2 pip install -r 要求.txt
下載此處列出的檢查點並將它們放在checkpoints
目錄下。
導入 cv2import torchfrom height_anything_v2.dpt 導入 DepthAnythingV2DEVICE = 'cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'mps' if torch.backends.mps.is_available() else = dovilable() else ='moil; 'vits','功能':64,'out_channels':[48,96,192,384]},'vitb':{'編碼器':'vitb','功能':128,'out_channels':[96 , 192, 384, 768]},'vitl': {'編碼器': 'vitl', 'features': 256, 'out_channels': [256, 512, 1024, 1024]},'vitg': {'編碼器' : 'vitg', '功能': 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 = model.to(DEVICE).eval()raw_img = cv2.imread('your/image/path')深度= model.infer_image(raw_img) # numpy 中的HxW 原始深度圖
如果您不想複製此儲存庫,您也可以透過 Transformers 載入我們的模型。下面是一個簡單的程式碼片段。更多詳情請參閱官方頁面。
註1:確保您可以連接到Hugging Face並安裝了最新的Transformers。
註 2:由於 OpenCV(我們使用的)和 Pillow(使用 HF)之間的上採樣差異,預測可能略有不同。所以更推薦您透過上面介紹的方式使用我們的模型。
from Transformers import pipelinefrom PIL import Imagepipe = pipeline(task=”深度估計”, model=”深度-anything/Depth-Anything-V2-Small-hf”)image = Image.open('your/image/path')深度=管道(影像)[“深度”]
蟒蛇運行.py --編碼器<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 asset/examples --outdir depth_vis
python run_video.py --編碼器<vits |維特布 |維特爾|維特格> --視訊路徑資產/examples_video --outdir video_depth_vis [--input-size <尺寸>] [--pred-only] [--grayscale]
我們更大的模型在視訊上具有更好的時間一致性。
要在本地使用我們的 gradio 演示:
蟒蛇應用程式.py
您也可以嘗試我們的線上演示。
注意:與V1相比,我們對DINOv2-DPT架構進行了較小的修改(源自於此問題)。在 V1 中,我們無意中使用了 DINOv2 最後四層的特徵進行解碼。在 V2 中,我們改用中間特徵。儘管此修改沒有提高細節或準確性,但我們決定遵循這種常見做法。
請參閱度量深度估計。
請參考 DA-2K 基準測試。
我們衷心感謝所有社群對我們的 Depth Anything 系列的支持。非常感謝!
蘋果核心機器學習:
https://developer.apple.com/machine-learning/models
https://huggingface.co/apple/coreml-depth-anything-v2-small
https://huggingface.co/apple/coreml-深度-anything-small
變形金剛:
https://huggingface.co/docs/transformers/main/en/model_doc/depth_anything_v2
https://huggingface.co/docs/transformers/main/en/model_doc/深度_anything
張量RT:
https://github.com/spacewalk01/深度-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(網路即時深度):https://huggingface.co/spaces/Xenova/webgpu-realtime-depth-estimation
安卓:
https://github.com/shubham0204/Depth-Anything-Android
https://github.com/FeiGeChuanShu/ncnn-android-depth_anything
我們衷心感謝優秀的 Hugging Face 團隊(@Pedro Cuenca、@Niels Rogge、@Merve Noyan、@Amy Roberts 等)為支援 Transformers 和 Apple Core ML 中的模特兒付出了巨大的努力。
我們也感謝 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}, 作者={楊、李河和康、丙一和黃、子龍和趙、甄和徐、小剛和馮、賈世和趙、恆爽}, journal={arXiv: 2406.09414},year={2024}}@inproceedings{depth_anything_v1,title={Depth Anything:釋放大規模未標記資料的力量}, 作者={楊、立和康、丙一和黃、子龍和徐、小剛和馮、賈世和趙、恆爽},書名={CVPR},年份={2024}}