ليهي يانغ 1 · بينجي كانغ 2† · زيلونغ هوانغ 2
تشن تشاو · شياو قانغ شو · جياشي فنغ 2 · هنغشوانغ تشاو 1*
1 هونج كونج 2 تيك توك
† قائد المشروع * المؤلف المقابل
يقدم هذا العمل عمق أي شيء V2. إنه يتفوق بشكل كبير على V1 في التفاصيل الدقيقة والمتانة. بالمقارنة مع النماذج المستندة إلى SD، فهي تتمتع بسرعة استدلال أسرع ومعلمات أقل ودقة عمق أعلى.
06-07-2024: Depth Anything V2 مدعوم في المحولات. راجع التعليمات للاستخدام المريح.
25-06-2024: تم دمج Depth Anything في نماذج Apple Core ML. راجع التعليمات (V1، V2) للاستخدام.
22-06-2024: قمنا بإصدار نماذج عمق متري أصغر استنادًا إلى العمق-أي شيء-V2-Small وBase.
2024-06-20: تم وضع علامة على مستودعنا وصفحة مشروعنا بواسطة GitHub وإزالتهما من الجمهور لمدة 6 أيام. نأسف للإزعاج.
14-06-2024: تم إصدار الورق وصفحة المشروع والتعليمات البرمجية والنماذج والعروض التوضيحية والمعيارية.
نحن نقدم أربعة نماذج بمقاييس مختلفة لتقدير العمق النسبي القوي:
نموذج | بارامس | نقطة تفتيش |
---|---|---|
العمق-أي شيء-V2-صغير | 24.8 م | تحميل |
العمق-أي شيء-V2-القاعدة | 97.5 م | تحميل |
العمق-أي شيء-V2-كبير | 335.3 مليون | تحميل |
العمق-أي شيء-V2-العملاق | 1.3 ب | قريباً |
استنساخ البوابة https://github.com/DepthAnything/Depth-Anything-V2cd Depth-Anything-V2 تثبيت النقطة -r متطلبات.txt
قم بتنزيل نقاط التفتيش المدرجة هنا ووضعها ضمن دليل checkpoints
.
استيراد cv2import torchfrom Deep_anything_v2.dpt import DepthAnythingV2DEVICE = 'cuda' إذا torch.cuda.is_available() آخر 'mps' إذا torch.backends.mps.is_available() else 'cpu'model_configs = {'vits': {'encoder': "الزيارات"، "الميزات": 64، "out_channels": [48, 96, 192, 384]},'vitb': {'encoder': 'vitb', 'features': 128, 'out_channels': [96, 192, 384, 768]},'vitl': { "التشفير": "vitl"، "الميزات": 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/عمق_anything_v2_{encoder}.pth', Map_location='cpu'))model = model.to(DEVICE).eval()raw_img = cv2.imread('your/image/path') Deep = model.infer_image(raw_img) # خريطة العمق الخام HxW في numpy
إذا كنت لا ترغب في استنساخ هذا المستودع، فيمكنك أيضًا تحميل نماذجنا من خلال Transformers. يوجد أدناه مقتطف رمز بسيط. يرجى الرجوع إلى الصفحة الرسمية لمزيد من التفاصيل.
ملاحظة 1: تأكد من أنه يمكنك الاتصال بـ Hugging Face وتثبيت أحدث المحولات.
ملاحظة 2: نظرًا لاختلاف الاختزال بين OpenCV (الذي استخدمناه) والوسادة (التي استخدمناها HF)، قد تختلف التوقعات قليلًا. لذا ننصحك باستخدام نماذجنا من خلال الطريقة الموضحة أعلاه.
من المحولات استيراد خط الأنابيب من PIL import Imagepipe = Pipeline(task=deep-estimation),model=deepth-anything/Depth-Anything-V2-Small-hf))image = Image.open('your/image/path') العمق = الأنبوب (الصورة) ["العمق"]
بيثون run.py --التشفير <vits | فيتب | فيتل | فيتج> --img-path <path> --outdir <outdir> [--حجم الإدخال <الحجم>] [--البريد المسبق فقط] [--تدرج الرمادي]
خيارات:
--img-path
: يمكنك إما 1) توجيهه إلى دليل الصور الذي يخزن جميع الصور المعنية، 2) توجيهه إلى صورة واحدة، أو 3) توجيهه إلى ملف نصي يخزن جميع مسارات الصور.
--input-size
(اختياري): افتراضيًا، نستخدم حجم الإدخال 518
لاستدلال النموذج. يمكنك زيادة الحجم للحصول على نتائج أكثر دقة.
--pred-only
(اختياري): احفظ فقط خريطة العمق المتوقعة، بدون صورة أولية.
--grayscale
(اختياري): احفظ خريطة العمق ذات التدرج الرمادي، دون تطبيق لوحة الألوان.
على سبيل المثال:
python run.py --encoder vitl --img-path الأصول/الأمثلة --outdir Deep_vis
بيثون run_video.py --التشفير <vits | فيتب | فيتل | فيتج> --أصول مسار الفيديو/examples_video --outdir video_ Deep_vis [--حجم الإدخال <الحجم>] [--البريد المسبق فقط] [--تدرج الرمادي]
يتمتع نموذجنا الأكبر بتناسق زمني أفضل في مقاطع الفيديو.
لاستخدام عرض Gradio الخاص بنا محليًا:
بيثون app.py
يمكنك أيضًا تجربة العرض التوضيحي الخاص بنا عبر الإنترنت.
ملاحظة: بالمقارنة مع V1، قمنا بإجراء تعديل بسيط على بنية DINOv2-DPT (نشأ من هذه المشكلة). في الإصدار 1، استخدمنا عن غير قصد ميزات من الطبقات الأربع الأخيرة من DINOv2 لفك التشفير. في الإصدار الثاني، نستخدم الميزات المتوسطة بدلاً من ذلك. على الرغم من أن هذا التعديل لم يحسن التفاصيل أو الدقة، فقد قررنا اتباع هذه الممارسة الشائعة.
يرجى الرجوع إلى تقدير العمق المتري.
يرجى الرجوع إلى معيار DA-2K.
نحن نقدر بشدة كل الدعم المجتمعي لسلسلة Depth Anything الخاصة بنا. شكرا جزيلا لك!
أبل كور مل:
https://developer.apple.com/machine-learning/models
https://huggingface.co/apple/coreml-عمق-anything-v2-small
https://huggingface.co/apple/coreml-عمق-anything-small
محولات:
https://huggingface.co/docs/transformers/main/en/model_doc/ Deep_anything_v2
https://huggingface.co/docs/transformers/main/en/model_doc/ Deep_anything
TensorRT:
https://github.com/spacewalk01/عمق-anything-tensorrt
https://github.com/zhujiajian98/Depth-Anythingv2-TensorRT-python
أو إن إكس: https://github.com/fabio-sim/Depth-Anything-ONNX
واجهة المستخدم المريحة: https://github.com/kijai/ComfyUI-DepthAnythingV2
Transformers.js (العمق في الوقت الحقيقي في الويب): https://huggingface.co/spaces/Xenova/webgpu-realtime- Deep-estimation
أندرويد:
https://github.com/shubham0204/Depth-Anything-Android
https://github.com/FeiGeChuanShu/ncnn-android- Deep_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{عمق_anything_v2, title={Depth Anything V2}, المؤلف={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{عمق_anything_v1, title={عمق أي شيء: إطلاق العنان لقوة البيانات غير المسماة واسعة النطاق}, المؤلف={Yang, Lihe and Kang, Bingyi and Huang, Zilong and Xu, Xiaogang and Feng, Jiashi and Zhao, Hengshuang}, عنوان الكتاب={CVPR}, year={2024}}