الرؤية الحاسوبية2024متوسط11 دقيقة قراءة

Depth Anything: إطلاق قوة البيانات غير الموسومة واسعة النطاق

Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data

Yang, L. · Kang, B. · Huang, Z. · Xu, X. · Feng, J. · Zhao, H. — CVPR

المشكلة

تقدير العمق من صورة واحدة — أي معرفة بُعد كل بكسل عن الكاميرا دون الحاجة إلى كاميرا ثانية أو مستشعر LiDAR — قدرة جوهرية في الروبوتات والقيادة الذاتية والواقع المعزَّز. المشكلة أن الحصول على بيانات عمق موسومة مُكلف جداً: تحتاج مستشعرات ليزرية أو تصويراً مجسَّماً أو خوارزميات بنية من الحركة، وأفضل المحاولات لم تتجاوز بضعة ملايين صورة. نموذج MiDaS استخدم عدة مجموعات بيانات موسومة لكنه ظلّ يُخطئ في الضباب والإضاءة الضعيفة والتخطيطات الداخلية الغريبة. السؤال المطروح: هل يمكننا تجاوز سقف البيانات الموسومة دون إنفاق المزيد على جمعها؟

الإسهام

ثلاث أفكار محورية. أولاً، يجمع 62 مليون صورة غير موسومة من ثماني مجموعات عامة ويُولِّد لها توسيمات عمق تلقائية باستخدام نموذج معلّم. ثانياً، اكتشاف أن إضافة التوسيمات الزائفة وحدها لا تفيد — لكن حين يتلقّى الطالب صوراً مشوّهة بقوة (تشويه ألوان، ضبابية غاوسية، CutMix) ويُطلب منه استعادة العمق النظيف، يتعلّم تمثيلات أمتن وأقدر على . ثالثاً، دالة خسارة إضافية تُحاذي سمات الطالب مع سمات مُرمِّز DINOv2 المُجمَّد، فتنقل إليه معرفة دلالية غنية وتجعله يتفوّق في تقدير العمق والتقطيع الدلالي معاً.

الأثر

حقّق Depth Anything أفضل النتائج في تقدير العمق من صورة واحدة بدون أمثلة على ستة معايير تقييم، متفوّقاً على MiDaS v3.1 حتى حين كان MiDaS قد تدرّب على بيانات تلك المعايير نفسها. وحسّن الناتج أداء التقطيع الدلالي على Cityscapes وADE20K أيضاً. أثبت النموذج أن توسيع البيانات غير الموسومة مع إستراتيجية تدريب مدروسة يتفوّق على الاكتفاء بتوسيع البيانات الموسومة، ومهّد الطريق لـDepth Anything V2 وأصبح المُرمِّز المعياري للعمق في توليد الصور بـControlNet وإعادة البناء ثلاثي الأبعاد والتطبيقات الروبوتية.

تخيّل مُرمِّمة لوحات محترفة تُدرِّب متدرّبها. هذه المُرمِّمة درست عدداً محدوداً من اللوحات الموثّقة توثيقاً كاملاً، لكن في الأقبية والمستودعات تنتظر آلاف اللوحات التي لم يوثّقها أحد. فتقوم المُرمِّمة بفحص كل لوحة غير موثّقة وتُدوّن ملاحظاتها عن عمقها ومنظورها — وهذه هي . لكنها لا تُعطي المتدرّب النسخ الأصلية النظيفة، بل تُعطيه صوراً التُقطت عبر زجاج ضبابي ورُقَعٌ عشوائية مُبدَّلة بين لوحات مختلفة. على المتدرّب أن يستنتج البنية العمقية الحقيقية رغم كل هذا التشويه — وفي النهاية يُطوّر حسّاً بصرياً أدقّ من المُرمِّمة نفسها.

Depth Anything يعمل بالمبدأ ذاته تماماً: يُوسّم ملايين الصور المجانية، و يتعلّم من نُسخ مشوّهة عمداً، فيخرج بقدرة تعميم تفوق أي نموذج اعتمد على البيانات الموسومة وحدها.

سقف البيانات الموسومة

يطرح سؤالاً يبدو بسيطاً لكنه صعب حقاً: أعطني صورة فوتوغرافية واحدة وأخبرني كم يبعد كل بكسل فيها عن الكاميرا. في الرؤية المجسَّمة لدينا كاميرتان نستطيع من خلالهما تثليث المسافة، لكن هنا نعمل بزاوية رؤية واحدة فقط — تماماً كما يُقدّر الإنسان العمق حين ينظر إلى لوحة مسطّحة.

قبل Depth Anything، كانت النماذج السائدة مثل MiDaS تعتمد على بيانات موسومة جُمعت من مستشعرات LiDAR ومنظومات مجسَّمة وخوارزميات بنية من الحركة. هذه المصادر مُكلفة ومحدودة التنوّع ويصعب توسيعها. MiDaS v3.1 وصل إلى نحو 1.5 مليون صورة موسومة من 12 مجموعة بيانات — رقم لا بأس به لكنه لا يُمثّل إلا شريحة ضيّقة من العالم البصري. فحين يواجه النموذج ضباباً أو إضاءة ضعيفة أو تخطيطاً داخلياً غير مألوف، ينهار أداؤه.

الفكرة الجوهرية في Depth Anything هي أن الصور الأحادية غير الموسومة موجودة بالمليارات على الإنترنت، تُغطّي كل مشهد يمكن تخيّله، ولا تحتاج أي مستشعر خاص. التحدّي ليس في توفّرها بل في كيفية الاستفادة منها.

افتح في المختبر
قارن بين حجم البيانات الموسومة وغير الموسومة. Depth Anything يستخدم 1.5 مليون صورة موسومة مقابل 62 مليون غير موسومة — توسّع يبلغ 40 ضعفاً في التغطية.
تستيقظ التجربة عند وصولك…

محرّك البيانات: من بذور موسومة إلى 62 مليون صورة

العملية تمرّ بمرحلتين. في الأولى نُدرِّب نموذج معلّم على 1.5 مليون صورة موسومة من ست مجموعات بيانات عامة (BlendedMVS وDIML وHRWSI وIRS وMegaDepth وTartanAir). المُرمِّز يبدأ من أوزان DINOv2 المُدرَّبة مسبقاً ليستخلص سمات بصرية قوية منذ البداية. ونستخدم تُحاذي مقياس كل تنبؤ وانزياحه مع القيمة الحقيقية — وهذا ضروري لأن كل مجموعة بيانات تقيس العمق بوحدات مختلفة.

في المرحلة الثانية، نأخذ هذا المعلّم ونُمرّر عبره 62 مليون صورة غير موسومة جُمعت من ثماني مجموعات ضخمة: SA-1B وOpen Images وBDD100K وImageNet-21K وLSUN وObjects365 وPlaces365 وGoogle Landmarks. كل صورة تدخل المعلّم فيُخرج لها خريطة عمق كثيفة — هذه هي التوسيمات الزائفة. تمريرة أمامية واحدة لكل صورة، بلا حاجة إلى مطابقة مجسَّمة أو إعادة بناء ثلاثي الأبعاد.

النتيجة النهائية مجموعة تدريب موحَّدة تجمع بين صور موسومة وأخرى بتوسيمات زائفة، تُغطّي مشاهد داخلية وخارجية وقيادة وجوّية وفنية. هذا التنوّع الواسع هو ما يمنح النموذج قدرته على التعميم.

افتح في المختبر
تتبّع مراحل محرّك البيانات: صور موسومة تُدرِّب المعلّم، ثم يُوسّم المعلّم ملايين الصور غير الموسومة ليتدرّب عليها الطالب.
تستيقظ التجربة عند وصولك…

الخسارة الثابتة تحت التحويل التآلفي: كيف نقارن مقاييس مختلفة

المشكلة هنا عملية بحتة: كل مجموعة بيانات تقيس العمق بطريقتها. مجموعة LiDAR تُعطيك أمتاراً، ومجموعة اصطناعية تُعطيك وحدات اعتباطية. لو دمجت هذه المجموعات مباشرةً لَخلطت بين مقاييس مختلفة تماماً. لذلك نحتاج دالة خسارة تتجاهل المقياس المطلق وتُركّز على الترتيب النسبي لقيم العمق فقط.

الحل بسيط: قبل حساب الخطأ، نُسوّي كلاً من التنبؤ والقيمة الحقيقية بطرح الوسيط ثم القسمة على متوسط الانحراف المطلق. بهذه الطريقة لا يهمّ ما إذا كانت القيم بالأمتار أو بوحدات عشوائية — المهم هو شكل خريطة العمق: أيّ البكسلات أقرب وأيّها أبعد.

d^i=dimedian(d)s(d),s(d)=1HWi=1HWdimedian(d)\hat{d}_i = \frac{d_i - \text{median}(d)}{s(d)}, \quad s(d) = \frac{1}{HW}\sum_{i=1}^{HW}|d_i - \text{median}(d)|
التسوية التآلفية — محاذاة المقياس والانزياحنأخذ خريطة العمق dd ونطرح وسيطها ثم نقسم على متوسط الانحراف المطلق لتصبح مُمركَزة حول الصفر بمقياس موحَّد. بعدها نحسب الخسارة كمتوسط الخطأ المطلق بين التنبؤ المُسوَّى والقيمة الحقيقية المُسوّاة: Ll=1HWd^id^i\mathcal{L}_l = \frac{1}{HW}\sum|\hat{d}_i^* - \hat{d}_i|. هذا ما يُتيح التدريب على مجموعات بيانات بمقاييس عمق مختلفة تماماً دون أي تعارض.

الاكتشاف المحوري: تحدَّ الطالب ولا تُدلّله

هنا النقطة الأهم في الورقة. حين جرّب المؤلفون الطريقة المباشرة — جمعوا الصور الموسومة مع الصور ذات التوسيمات الزائفة ودرّبوا طالباً عليها — لم يتحسّن شيء على الإطلاق. السبب أن المعلّم والطالب يشتركان في التدريب المُسبَق والبنية نفسها، فالطالب يُعيد إنتاج ما يعرفه المعلّم أصلاً دون تعلّم جديد.

الحل جاء عكس المتوقّع: اجعل المهمة أصعب على الطالب. أثناء التدريب على الصور غير الموسومة، يتلقّى الطالب نُسخاً مُشوَّهة بقوة: حاد، وضبابية غاوسية، وCutMix (رُقَع مستطيلة تُبدَّل عشوائياً بين صورتين). في المقابل، توسيمات المعلّم مأخوذة من الصور النظيفة الأصلية. أي أن الطالب يرى صورة تالفة ويُطلب منه استعادة العمق كما لو كانت سليمة.

الأمر يُشبه عازفاً يتمرّن على إيقاع أسرع من المطلوب — الصعوبة تُنمّي مهارات لا تظهر مع التكرار المريح. الطالب يُجبَر على التقاط إشارات بصرية ثابتة — حواف وأنسجة وعلاقات مكانية — تبقى صالحة رغم التشويه، فيبني تتمتع بقدرة تعميم أعلى بكثير.

افتح في المختبر
جرّب تفعيل أنواع التشويه المختلفة لترى كيف يتلقّى الطالب مدخلات مُشوَّهة بينما يتعلّم من توسيمات المعلّم النظيفة. هذه الفجوة بين المدخل والهدف هي ما يفرض تعلّماً أعمق.
تستيقظ التجربة عند وصولك…

CutMix لتقدير العمق: تركيب عالَمين معاً

CutMix تقنية مُستعارة من عالم التصنيف: نأخذ رقعة مستطيلة من صورة ونلصقها فوق صورة أخرى. Depth Anything يُكيِّفها لتقدير العمق. الفكرة أننا نأخذ منطقة عشوائية من صورة غير موسومة ونضعها فوق صورة ثانية، فنحصل على صورة مُركَّبة uabu_{ab}. الطالب يُطلب منه تقدير العمق للصورة كلها، لكننا نحسب الخسارة لكل منطقة مستقلةً — كل جزء يُقارَن بـالتوسيمة الزائفة الخاصة بصورته الأصلية.

رياضياً، الصورة المُركَّبة هي uab=uaM+ub(1M)u_{ab} = u_a \odot M + u_b \odot (1-M) حيث MM قناع ثنائي يحدّد المنطقة المُستبدَلة. نحسب الخسارة في كل منطقة بتسويتها التآلفية الخاصة، لأن الصورتين الأصليتين قد يكون لهما توزيعات عمق مختلفة كلياً:

Lu=MHWρ ⁣(S(uab) ⁣ ⁣M,  T(ua) ⁣ ⁣M)+(1 ⁣ ⁣M)HWρ ⁣(S(uab) ⁣ ⁣(1 ⁣ ⁣M),  T(ub) ⁣ ⁣(1 ⁣ ⁣M))\mathcal{L}_u = \frac{\sum M}{HW}\,\rho\!\bigl(S(u_{ab})\!\odot\!M,\;T(u_a)\!\odot\!M\bigr) + \frac{\sum(1\!-\!M)}{HW}\,\rho\!\bigl(S(u_{ab})\!\odot\!(1\!-\!M),\;T(u_b)\!\odot\!(1\!-\!M)\bigr)
خسارة CutMix للعمق — محاذاة تآلفية مستقلة لكل منطقةSS هو الطالب، وTT المعلّم، وρ\rho متوسط الخطأ المطلق بعد التسوية التآلفية. خسارة كل منطقة تُوزَن بنسبة البكسلات التي تشغلها. يُطبَّق CutMix باحتمال 50% من الدُفعة؛ والنصف الآخر يمرّ بتشويهات لونية قوية فقط دون لصق رُقَع.

الإدراك المُعزَّز دلالياً: اقتراض المعرفة من DINOv2

ثمة علاقة وثيقة بين العمق والفهم الدلالي. حين يعرف النموذج أن منطقة في الصورة هي «سماء» فهو يعلم أنها بعيدة جداً، وحين يعرف أنها «طاولة» يستطيع تقييد العمق المحتمل. حاولت أعمال سابقة إضافة مهمة مساعدة، لكنها فشلت حين كان نموذج العمق قوياً بالفعل — لأن ضغط سمات بصرية غنية في مجموعة صغيرة من الفئات المنفصلة يُضيّع كمّاً كبيراً من المعلومات.

الحل الذي اعتمده المؤلفون أذكى: بدلاً من التنبؤ بفئات، نُحاذي فضاء سمات الطالب مباشرةً مع فضاء سمات DINOv2 الغني والمتّصل. DINOv2 يتمتّع بقدرات دلالية استثنائية حتى مع تجميد أوزانه. وكل ما نحتاجه هو خسارة بسيطة تسحب فضاءي السمات نحو بعضهما:

Lfeat=11HWi=1HWcos(fi,fi)\mathcal{L}_{feat} = 1 - \frac{1}{HW}\sum_{i=1}^{HW}\cos(f_i,\,f'_i)
خسارة محاذاة السمات — وراثة المعرفة الدلالية المُسبقةfif_i هي سمة الطالب عند البكسل ii، وfif'_i السمة المقابلة من مُرمِّز DINOv2 المُجمَّد. تشابه جيب التمام يدفع الفضاءين نحو التقارب. لكن هناك تفصيل مهم: هامش تسامح α=0.85\alpha = 0.85 يُوقف ضغط المحاذاة على البكسلات التي وصل تشابهها بالفعل إلى العتبة. السبب أن DINOv2 يرى مقدّمة السيارة ومؤخّرتها كأجزاء متشابهة دلالياً (كلاهما «سيارة»)، لكن في خريطة العمق قد يكونان على مسافتين مختلفتين جداً.
افتح في المختبر
شاهد كيف يحمي هامش التسامح α قدرة مُرمِّز العمق على التمييز بين أجزاء الجسم الواحد مع الاحتفاظ بالمعرفة الدلالية المُكتسبة من DINOv2.
تستيقظ التجربة عند وصولك…

تجميع الصورة الكاملة: الخسارة الإجمالية

الآن نجمع كل شيء. دالة الخسارة النهائية هي مجموع ثلاث خسائر، لكل منها دور واضح. الأولى Ll\mathcal{L}_l تتعلّم العمق من البيانات الموسومة ذات القيم الحقيقية. الثانية Lu\mathcal{L}_u توسّع تغطية النموذج إلى ملايين المشاهد عبر التوسيمات الزائفة والتشويهات القوية. والثالثة Lfeat\mathcal{L}_{feat} تنقل الفهم الدلالي من DINOv2 عبر محاذاة السمات.

L=Ll+Lu+Lfeat\mathcal{L} = \mathcal{L}_l + \mathcal{L}_u + \mathcal{L}_{feat}
الخسارة الإجمالية للتدريبالخسائر الثلاث تُجمع بأوزان متساوية. Ll\mathcal{L}_l تعمل على الصور الموسومة بقيمها الحقيقية، وLu\mathcal{L}_u على الصور غير الموسومة بعد تطبيق التشويهات القوية عليها، وLfeat\mathcal{L}_{feat} تفرض تقارب سمات الطالب مع سمات مُرمِّز DINOv2 المُجمَّد.
افتح في المختبر
المنظومة الكاملة لـDepth Anything. انقر على أي مكوّن لترى دوره وكيف تترابط البيانات الموسومة وغير الموسومة والتشويهات ومحاذاة السمات.
تستيقظ التجربة عند وصولك…

البنية: مُرمِّز DINOv2 + مفكّك DPT

البنية مباشرة: مُرمِّز DINOv2 يليه DPT ( بالمحوّلات)، على غرار ما فعله MiDaS. المُرمِّز يستخلص سمات على مقاييس متعدّدة عبر ، والمفكّك يدمج هذه السمات من طبقات مختلفة ليُنتج خريطة عمق بدقة الصورة الأصلية.

النموذج متوفّر بثلاثة أحجام: ViT-S (24.8 مليون معامل)، وViT-B (97.5 مليون)، وViT-L (335.3 مليون). اللافت أن ViT-S الصغير — أقل من عُشر حجم MiDaS — يتفوّق عليه في عدة معايير. وViT-B يتخطّى MiDaS ViT-L بفارق واضح. هذه نتيجة بليغة: إستراتيجية التدريب أهم من حجم النموذج.

من ناحية التنفيذ: الصور تُصغَّر بحيث يصبح ضلعها الأقصر 518 بكسلاً وتُقتَص إلى 518 × 518 أثناء التدريب. للمُرمِّز هو 5e-6 وللمفكّك أعلى بعشر مرات. في كل دفعة تكون نسبة الصور الموسومة إلى غير الموسومة 1:2. والمعلّم يستخدم دائماً مُرمِّز ViT-L للحصول على أعلى جودة في التوسيم، حتى لو كان الطالب أصغر حجماً.

النتائج: أداء رائد على جميع المقاييس

العمق النسبي بدون أمثلة. Depth Anything ViT-L يتفوّق على MiDaS ViT-L في المعايير الستة جميعها (KITTI وNYUv2 وSintel وDDAD وETH3D وDIODE). على KITTI مثلاً، خطأ AbsRel ينخفض من 0.127 إلى 0.076 ودقة δ1\delta_1 ترتفع من 0.850 إلى 0.947 — والمفارقة أن MiDaS تدرّب فعلاً على بيانات KITTI بينما Depth Anything لم يرَها قطّ.

العمق المتري. حين نأخذ مُرمِّز Depth Anything و لتقدير العمق المتري باستخدام إطار ZoeDepth، نحصل على أرقام قياسية على NYUv2 (δ1\delta_1: 0.964 ← 0.984) وKITTI (δ1\delta_1: 0.978 ← 0.982). والمكاسب تنتقل أيضاً إلى مجموعات بيانات جديدة لم يُتدرَّب عليها.

التقطيع الدلالي. المُرمِّز يُحسّن أداء التقطيع الدلالي أيضاً: 86.2 mIoU على Cityscapes (مقابل 84.6 لـConvNeXt-XL) و59.4 mIoU على ADE20K (مقابل 58.3 لـViT-Adapter مع BEiT-L). هذا يُؤكّد أن المُرمِّز الناتج يصلح كـ عام متعدّد المهام للإدراك البصري على المستويين المتوسط والعالي.

افتح في المختبر
قارن أداء تقدير العمق بدون أمثلة على ستة معايير. بدّل بين أحجام Depth Anything المختلفة وMiDaS لترى الفروق.
تستيقظ التجربة عند وصولك…

دراسة الاستئصال: ماذا يُضيف كل مكوّن

تجارب الاستئصال ترسم صورة واضحة. لو بدأنا بالتدريب على البيانات الموسومة فقط نحصل على خطأ AbsRel يساوي 0.085 على KITTI. بإضافة صور غير موسومة بدون تشويهات يبقى الرقم عند 0.085 — لا فائدة تُذكر. لكن حين نُضيف التشويهات القوية ينخفض الخطأ إلى 0.081 — هنا بدأت البيانات غير الموسومة تُسهم فعلاً. وبإضافة خسارة محاذاة السمات يهبط إلى 0.076، أي تحسّن نسبي بنحو 10.6%. والنمط نفسه يتكرّر على المعايير الستة كلها.

هامش التسامح α\alpha له أثر ملموس. بدونه (α=1.0\alpha = 1.0، محاذاة كاملة) يبلغ متوسط AbsRel عبر المعايير 0.188. مع α=0.85\alpha = 0.85 يهبط إلى 0.175. الدرس واضح: المحاذاة العمياء تُضرّ بقدرة النموذج على التمييز بين أجزاء الجسم الواحد ذات الأعماق المختلفة.

نتيجة لافتة أيضاً: تطبيق محاذاة السمات على البيانات غير الموسومة فقط يُعطي نتائج أفضل من تطبيقها على الموسومة. المنطق أن البيانات الموسومة تحمل قيماً حقيقية دقيقة، فالخسارة الدلالية قد تتعارض مع التعلّم منها. أما في البيانات ذات التوسيمات الزائفة، فالقيد الدلالي يُعوِّض ضجيج التوسيمات ويُضيف معرفة مفيدة في الوقت نفسه.

السياق والإرث

  1. 2020

    MiDaS — ريادة العمق متعدّد مجموعات البيانات

    أول من استخدم خسارة ثابتة تحت التحويل التآلفي لدمج عدة مجموعات بيانات عمق معاً، فأنتج أول جيل من نماذج تقدير العمق الأحادي القادرة على العمل بدون أمثلة.

  2. 2023

    DINOv2 — سمات بصرية عالمية

    محوّل رؤية مُدرَّب بإشراف ذاتي يُنتج سمات بصرية قوية تتفوّق في المهام الدلالية حتى دون ضبط الأوزان. Depth Anything يستفيد من هذه السمات عبر محاذاتها مع مُرمِّزه.

  3. 2023

    ZoeDepth — من العمق النسبي إلى المتري

    أثبت أن نموذج عمق نسبي قوياً يمكن ضبطه لإنتاج عمق متري دقيق، ووضع الإطار الذي يعتمده Depth Anything لاحقاً في تقييماته المترية.

  4. 2024

    Depth Anything (هذه الورقة)

    سخّر 62 مليون صورة غير موسومة عبر محرّك بيانات وإستراتيجية تشويه صارمة، وتفوّق على MiDaS في جميع المعايير مع قدرات قوية في مهام متعدّدة.

  5. 2024

    Depth Anything V2

    استغنى عن التوسيمات الزائفة واستبدلها ببيانات اصطناعية بالكامل، محقّقاً دقة أعلى وأصبح نموذج العمق المرجعي في التطبيقات اللاحقة.

المرجعYang, Kang, Huang, Xu, Feng, Zhao. Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data. CVPR, 2024.

مصطلحات هذه الورقة