ليهي يانغ 1 · بينجي كانغ 2† · زيلونغ هوانغ 2
تشن تشاو · شياو قانغ شو · جياشي فنغ 2 · هنغشوانغ تشاو 1*
1 هونج كونج 2 تيك توك
† قائد المشروع * المؤلف المقابل
يقدم هذا العمل عمق أي شيء V2. إنه يتفوق بشكل كبير على V1 في التفاصيل الدقيقة والمتانة. بالمقارنة مع النماذج المعتمدة على SD، فهي تتمتع بسرعة استدلال أسرع ومعلمات أقل ودقة عمق أعلى.
نحن نقدم أربعة نماذج بمقاييس مختلفة لتقدير العمق النسبي القوي:
نموذج | بارامس | نقطة تفتيش |
---|---|---|
العمق-أي شيء-V2-صغير | 24.8 م | تحميل |
العمق-أي شيء-V2-القاعدة | 97.5 م | تحميل |
العمق-أي شيء-V2-كبير | 335.3 مليون | تحميل |
العمق-أي شيء-V2-العملاق | 1.3 ب | قريباً |
git clone https://github.com/DepthAnything/Depth-Anything-V2
cd Depth-Anything-V2
pip install -r requirements.txt
قم بتنزيل نقاط التفتيش المدرجة هنا ووضعها ضمن دليل checkpoints
.
import cv2
import torch
from depth_anything_v2 . dpt import DepthAnythingV2
DEVICE = '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' : { 'encoder' : 'vitb' , 'features' : 128 , 'out_channels' : [ 96 , 192 , 384 , 768 ]},
'vitl' : { 'encoder' : 'vitl' , 'features' : 256 , 'out_channels' : [ 256 , 512 , 1024 , 1024 ]},
'vitg' : { 'encoder' : 'vitg' , 'features' : 384 , 'out_channels' : [ 1536 , 1536 , 1536 , 1536 ]}
}
encoder = 'vitl' # or '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' )
depth = model . infer_image ( raw_img ) # HxW raw depth map in numpy
إذا كنت لا ترغب في استنساخ هذا المستودع، فيمكنك أيضًا تحميل نماذجنا من خلال Transformers. يوجد أدناه مقتطف رمز بسيط. يرجى الرجوع إلى الصفحة الرسمية لمزيد من التفاصيل.
from transformers import pipeline
from PIL import Image
pipe = pipeline ( task = "depth-estimation" , model = "depth-anything/Depth-Anything-V2-Small-hf" )
image = Image . open ( 'your/image/path' )
depth = pipe ( image )[ "depth" ]
python run.py
--encoder < vits | vitb | vitl | vitg >
--img-path < path > --outdir < outdir >
[--input-size < size > ] [--pred-only] [--grayscale]
خيارات:
--img-path
: يمكنك إما 1) توجيهه إلى دليل الصور الذي يخزن جميع الصور المعنية، 2) توجيهه إلى صورة واحدة، أو 3) توجيهه إلى ملف نصي يخزن جميع مسارات الصور.--input-size
(اختياري): افتراضيًا، نستخدم حجم الإدخال 518
لاستدلال النموذج. يمكنك زيادة الحجم للحصول على نتائج أكثر دقة.--pred-only
(اختياري): احفظ فقط خريطة العمق المتوقعة، بدون صورة أولية.--grayscale
(اختياري): احفظ خريطة العمق ذات التدرج الرمادي، دون تطبيق لوحة الألوان.على سبيل المثال:
python run.py --encoder vitl --img-path assets/examples --outdir depth_vis
python run_video.py
--encoder < vits | vitb | vitl | vitg >
--video-path assets/examples_video --outdir video_depth_vis
[--input-size < size > ] [--pred-only] [--grayscale]
يتمتع نموذجنا الأكبر بتناسق زمني أفضل في مقاطع الفيديو.
لاستخدام عرض Gradio الخاص بنا محليًا:
python app.py
يمكنك أيضًا تجربة العرض التوضيحي الخاص بنا عبر الإنترنت.
ملاحظة: بالمقارنة مع الإصدار V1، قمنا بإجراء تعديل بسيط على بنية DINOv2-DPT (نشأ من هذه المشكلة). في الإصدار 1، استخدمنا عن غير قصد ميزات من الطبقات الأربع الأخيرة من DINOv2 لفك التشفير. في الإصدار الثاني، نستخدم الميزات المتوسطة بدلاً من ذلك. على الرغم من أن هذا التعديل لم يحسن التفاصيل أو الدقة، فقد قررنا اتباع هذه الممارسة الشائعة.
يرجى الرجوع إلى تقدير العمق المتري.
يرجى الرجوع إلى معيار DA-2K.
نحن نقدر بشدة كل الدعم المجتمعي لسلسلة 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 } ,
author = { Yang, Lihe and Kang, Bingyi and Huang, Zilong and Zhao, Zhen and Xu, Xiaogang and Feng, Jiashi and Zhao, Hengshuang } ,
journal = { arXiv:2406.09414 } ,
year = { 2024 }
}
@inproceedings { depth_anything_v1 ,
title = { Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data } ,
author = { Yang, Lihe and Kang, Bingyi and Huang, Zilong and Xu, Xiaogang and Feng, Jiashi and Zhao, Hengshuang } ,
booktitle = { CVPR } ,
year = { 2024 }
}