Depth Anything V2

Paper: Depth Anything V2 Authors: Lihe Yang¹, Bingyi Kang² (project lead), Zilong Huang², Zhen Zhao, Xiaogang Xu, Jiashi Feng², Hengshuang Zhao¹ (corresponding author) Affiliations: ¹The University of Hong Kong (HKU) · ²TikTok arXiv: 2406.09414 · PDF: arxiv.org/pdf/2406.09414 · HTML mirror: ar5iv

Note on this guide. This is an explanatory walkthrough written for someone who has not read the paper, not a copy of the paper itself — text is paraphrased throughout, with short direct quotes (in quotation marks) used sparingly to preserve the authors’ exact wording on key claims. Figures are linked to the paper’s own images hosted on the arXiv HTML mirror (ar5iv) rather than re-hosted locally, since this guide was produced in a sandboxed environment without general internet/image-download access — see the note at the end of each figure block.


TL;DR

Depth Anything V2 is a monocular depth estimation model — it predicts a depth map from a single RGB image, no stereo pair or LiDAR required. The paper’s core message is almost contrarian: don’t train on more labeled real-world depth data — train on almost none of it. Real depth-labeled datasets (from stereo cameras, structured-light sensors, or SfM/multi-view reconstruction) are inherently noisy: sensors mislabel mirrors, glass, thin structures like tree branches or basketball nets, and moving objects. Feeding a model that noise teaches it to be “average,” not sharp.

Instead, the authors build a three-stage recipe:

  1. Train a large teacher model (DINOv2-Giant backbone) purely on synthetic images, which have perfect, noise-free depth ground truth (because it comes straight from a graphics engine).
  2. Use that teacher to generate pseudo depth labels on 62 million unlabeled real images.
  3. Train smaller student models (25M–1.3B parameters) purely on this pseudo-labeled real data — never touching noisy human-labeled real datasets at all.

This sidesteps synthetic data’s biggest weakness (limited scene diversity — a graphics engine only has so many rendered rooms and streets) by borrowing scene diversity from huge unlabeled real photo collections, while sidestepping real labeled data’s biggest weakness (sensor noise) by never using it. The result: models that are sharper and more robust than Depth Anything V1, more than 10× faster than diffusion-based competitors like Marigold, and — despite being much smaller and faster — more accurate on the authors’ new, cleaner benchmark. The paper also introduces DA-2K, a sparse but precisely-annotated evaluation benchmark built to expose exactly the failure modes (transparency, reflections, fine structures) that older, noisier benchmarks like NYU-D and KITTI cannot reliably measure.


1. Introduction & Motivation

Monocular depth estimation (MDE) — predicting a per-pixel depth map from a single 2D image — is foundational for robotics, AR/VR, 3D reconstruction, and autonomous driving. The field has moved from narrow, in-domain “metric depth” models (trained and tested on the same type of scene, e.g. only indoor rooms or only driving scenes) toward zero-shot relative depth estimation: models like MiDaS and Depth Anything V1 that generalize to any image and predict depth up to an unknown scale and shift (see the Glossary for “affine-invariant depth”).

The paper opens by stating its goal plainly: not to chase “fancy techniques,” but to surface a small number of practical findings that meaningfully improve on Depth Anything V1. Compared with V1, Depth Anything V2 produces “much finer and more robust depth predictions” via three practices, which form the spine of the entire paper:

  1. Replace all labeled real images with synthetic images when training the teacher model.
  2. Scale up the teacher model’s capacity (using the largest DINOv2 backbone, “DINOv2-G”).
  3. Bridge to student models via large-scale pseudo-labeled real images rather than training students directly on labeled data or via classic feature-distillation.

The introduction also previews the paper’s second contribution: because existing depth benchmarks (NYU-D, KITTI, and similar) are themselves noisy and narrow in scene coverage, “performance on these benchmarks may not reflect real-world reliability.” So alongside the model, the authors build DA-2K, a new benchmark with sparse but precise, human-verified relative-depth annotations spanning eight diverse real-world scenario categories at high resolution.

Two families of prior approaches are contrasted throughout the paper:

  • Discriminative models (regression-style, e.g. MiDaS, Depth Anything V1) — trained on large amounts of labeled data, fast at inference, but limited by the precision of that labeled data.
  • Generative / diffusion-based models (e.g. Marigold, GeoWizard, DepthFM) — built on Stable Diffusion, trained mostly on synthetic data since diffusion priors need clean signal, capable of very fine detail, but slow at inference (diffusion sampling requires multiple denoising steps) and comparatively weaker on complex/diverse real scenes.

Depth Anything V2’s central bet is that you can get the fine detail of the diffusion camp and the speed and robustness of the discriminative camp, if you fix the training data pipeline rather than the architecture.


2. Background: How Depth Anything V1 Used Labeled Data

Depth Anything V1’s recipe was: use a modest amount of labeled real images plus a very large pool of unlabeled real images (turned into pseudo-labels by a teacher trained on the labeled set), which gave it strong “data-driven” generalization. This version 2 paper revisits that design and questions the wisdom of leaning on labeled real data at all, given how noisy real-world depth ground truth typically is.

Real depth labels come from three main acquisition methods, each with characteristic failure modes:

  • Depth sensors (e.g. Kinect-style structured light / time-of-flight, used for datasets like NYU-D): fail on reflective and transparent surfaces (mirrors, glass) and struggle with fine/thin structures.
  • Stereo cameras: produce noisy or missing disparity at depth discontinuities, textureless regions, and thin structures.
  • SfM / multi-view reconstruction: only reconstructs static, well-textured, well-covered geometry — thin or moving objects and low-texture regions frequently drop out or are wrong.

A model trained directly on these labels inherits their blind spots — it learns that mirrors have “solid” depth, that thin branches or nets are invisible or blurred, because that’s literally what the training signal told it. This is the paper’s motivating diagnosis, illustrated in the source paper’s Figure 3 (noisy ground truth from sensor, stereo, and SfM sources, alongside the resulting prediction errors of models trained on them).

Depth Anything V2

Figure 3 — Various noise in GT depth labels and prediction errors in correspondingly trained models.

Figure 3 — “Various noise in GT depth labels and prediction errors in correspondingly trained models.” (source: ar5iv mirror).


3. The Problem With Synthetic Data

If real labels are noisy, the obvious fix is synthetic data: images rendered by a graphics engine come with perfect, dense, noise-free depth for free. So why hasn’t the field simply switched to synthetic data already? The paper identifies two structural problems:

1. Distribution shift. Synthetic images are “too ‘clean’ in color and ‘ordered’ in layout, while real images contain more randomness” in lighting, clutter, texture, and composition. A model trained only on synthetic renders can overfit to that cleanliness and fail to transfer to messy real photographs.

2. Restricted scene coverage. Synthetic datasets are “iteratively sampled from graphics engines with pre-defined fixed scene types” (the paper’s examples: “living room,” “street scene”). Even if the geometry within those scenes is pixel-perfect, the variety of scenes is inherently bounded by what artists have modeled — nothing like the boundless diversity of real-world photography (a monastery courtyard, a coral reef, a construction site, a concert stage).

The authors test this empirically: only the largest encoder (DINOv2-G) trained purely on synthetic data manages to transfer reasonably well to real images; smaller encoders (ViT-S/B/L) trained the same way transfer poorly. Even DINOv2-G, the best case, still shows systematic failure cases on scene types/objects underrepresented in the synthetic training distribution (paper’s Figure 6). This finding is important because it justifies two separate design choices later: (a) only the largest model is trusted as the synthetic-only teacher, and (b) smaller student models are not trained directly on synthetic data — they need a different bridge, which is the paper’s next section.

Depth Anything V2

Figure 6 — Failure cases of the most capable DINOv2-G model when purely trained on synthetic images.

Figure 6 — “Failure cases of the most capable DINOv2-G model when purely trained on synthetic images.” (source: ar5iv mirror). > Figure 5 — Qualitative comparison of different vision encoders on synthetic-to-real transfer.

Figure 5 — “Qualitative comparison of different vision encoders on synthetic-to-real transfer.” (source: ar5iv mirror).


4. Why Large-Scale Unlabeled Real Images Matter

The paper’s resolution to the synthetic-data dilemma is not to add real labeled data back in (that reintroduces sensor noise), but to add real unlabeled data, relabeled automatically by the synthetic-trained teacher. This gives three benefits, each explained in the paper:

  • Bridging the domain gap. Pseudo-labeled real images act as “an intermediate learning target” — a way for the student to see real-world pixel statistics (real lighting, clutter, texture) while still being supervised by labels that trace back to clean synthetic ground truth (via the teacher), rather than by noisy sensor/stereo/SfM labels directly.
  • Restoring scene coverage. Public unlabeled image collections (e.g. Places365, ImageNet-21K, Open Images, SA-1B) “can easily cover numerous distinct scenes” that a synthetic renderer never modeled, fixing synthetic data’s diversity problem without touching noisy labels.
  • A safer form of knowledge transfer. Rather than distilling the teacher into students via feature matching or logit matching (classic knowledge distillation, which can be brittle when teacher and student differ hugely in capacity — here 1.3B → 25M parameters), the authors transfer knowledge at the prediction level: the teacher just produces depth maps, and the student learns from those maps as if they were ordinary training labels. The paper argues this is “safer” across such a large capacity gap.

This is the conceptual heart of the paper — synthetic data supplies precision, unlabeled real data (relabeled by a strong teacher) supplies diversity and realism, and combining them lets a small, fast student model inherit both properties without ever seeing a single noisy human-annotated real depth map.


5. Method: Depth Anything V2

5.1 Overall Framework

The full training pipeline has three sequential stages:

  1. Train a teacher. Train a DINOv2-G-based teacher model purely on 595K synthetic images (drawn from five synthetic datasets) with a DPT decoder, learning to predict precise affine-invariant depth.
  2. Generate pseudo labels. Run the trained teacher over 62 million unlabeled real images (drawn from eight public image datasets) to produce pseudo depth maps for all of them.
  3. Train students. Train four student models — built on DINOv2 Small, Base, Large, and Giant backbones respectively — purely on this 62M-image pseudo-labeled real dataset. Notably, the paper reports they “finally choose to train student models purely on pseudo-labeled images,” i.e. the synthetic set is used only to train the teacher, not the students directly.

Below is a Mermaid recreation of the paper’s Figure 7 (the main framework diagram), redrawn from the figure’s caption and pipeline description rather than reproduced as an image:

flowchart TD
    subgraph Stage1["Stage 1 — Train the Teacher"]
        A["Synthetic images<br/>595K images, 5 datasets<br/>(BlendedMVS, Hypersim, IRS, TartanAir, VKITTI2)"] --> B["Teacher model<br/>DINOv2-G encoder + DPT decoder"]
        B --> C["Precise depth predictions<br/>(clean synthetic ground truth supervises training)"]
    end

    subgraph Stage2["Stage 2 — Pseudo-Label Real Images"]
        D["Unlabeled real images<br/>62M images, 8 datasets<br/>(SA-1B, Open Images, ImageNet-21K, Places365,<br/>BDD100K, LSUN, Google Landmarks, Objects365)"] --> E["Trained teacher<br/>(frozen, from Stage 1)"]
        E --> F["Pseudo depth labels<br/>on all 62M real images"]
    end

    subgraph Stage3["Stage 3 — Train Students"]
        F --> G["Student training<br/>(pseudo-labeled real images only)"]
        G --> H1["Student: ViT-S (~25M params)"]
        G --> H2["Student: ViT-B (~97M params)"]
        G --> H3["Student: ViT-L (~335M params)"]
        G --> H4["Student: ViT-G (~1.3B params)"]
    end

    C -.trained model feeds forward.-> E

    style Stage1 fill:#eef,stroke:#446
    style Stage2 fill:#efe,stroke:#464
    style Stage3 fill:#fee,stroke:#644

(Diagram redrawn as Mermaid from the paper’s Figure 7 description; parameter counts for each backbone follow the standard DINOv2 S/B/L/G sizing convention referenced by the paper’s abstract range of “25M to 1.3B params” — the paper does not print a per-variant parameter table in the body text extracted for this guide, so treat the per-model figures as approximate/well-known DINOv2 sizes rather than a verbatim quote.)

5.2 Details

Backbone and decoder. All models use a DINOv2 encoder (Small / Base / Large / Giant) paired with a DPT (Dense Prediction Transformer) decoder head — the same encoder/decoder pairing used in Depth Anything V1, so the architectural novelty of V2 is almost entirely in the training data pipeline, not the network design.

Output representation. Like V1 and MiDaS before it, the model predicts affine-invariant inverse depth — i.e., depth up to an unknown global scale and shift, which sidesteps the need for metric-calibrated training data during pre-training (metric calibration is added later via fine-tuning, see §7.3).

Training resolution. Images are resized so the shorter side is 518px, followed by a random crop to 518×518.

Losses. Two loss terms, both inherited from MiDaS but found to be especially effective when paired with clean synthetic labels:

  • Scale- and shift-invariant loss (\(\mathcal{L}_{ssi}\)) — the main regression loss, invariant to the unknown affine ambiguity in the depth predictions.
  • Gradient matching loss (\(\mathcal{L}_{gm}\)) — a multi-scale loss that encourages the predicted depth map’s gradients (edges/discontinuities) to match the ground truth’s gradients, which is what drives the model’s sharpness at object boundaries and thin structures.

These are combined with a loss ratio of \(\mathcal{L}_{ssi} : \mathcal{L}_{gm} = 1 : 2\) — the gradient term is weighted twice as heavily as the base regression term, reflecting the paper’s emphasis on fine-detail sharpness.

When training on pseudo-labeled (as opposed to synthetic) images, the authors add a third term carried over from V1: a feature alignment loss, which keeps the student’s internal features close to the pre-trained DINOv2 encoder’s own features, preserving the rich semantic representations DINOv2 learned during its own (unrelated) self-supervised pre-training rather than letting depth fine-tuning erode them.

Noisy pseudo-label filtering. Since pseudo labels — while much better than raw sensor noise — are still imperfect, the authors ignore the top 10% highest-loss regions per image during student training, treating very-high-loss regions as likely pseudo-label errors rather than genuine hard examples worth learning from.

Optimization / schedule.

Stage Batch size Iterations Encoder LR Decoder LR Optimizer
Teacher (on synthetic) 64 160,000 5e-6 5e-5 Adam
Student (on pseudo-labeled real) 192 480,000 5e-6 5e-5 Adam

Table 1 — qualitative property comparison (paraphrased from the paper): the authors position V2 as combining the strengths of both prior camps —

Property Marigold (SD-based) Depth Anything V1 Depth Anything V2
Fine-grained details
Handles transparent objects
Handles reflections
Robust on complex scenes
Inference efficiency
Transferability (fine-tuning)

6. DA-2K: A New Evaluation Benchmark

6.1 Why Existing Benchmarks Fall Short

The authors argue existing MDE test sets (NYU-D, KITTI, and similar) have three problems that make them poor judges of a model like V2:

  1. Label noise. Even sensor-based “ground truth” like NYU-D has “incorrect annotations for mirrors and thin structures” — the very failure modes V2 is designed to fix, meaning improvements there may not even show up as better scores.
  2. Narrow scene diversity. Most benchmarks specialize in one setting — NYU-D is indoor rooms, KITTI is street driving scenes — so “performance on these benchmarks may not reflect real-world reliability” across the broader range of scenes a general-purpose model should handle.
  3. Low resolution. Most existing test images are roughly 500×500px, far below the resolutions (e.g. 1000×2000) relevant to modern applications, understating a high-resolution-capable model’s real advantage.

Depth Anything V2

Figure 8 — Visualization of widely adopted but indeed noisy test benchmark with depth of mirror and thin structures that are incorrect.

Figure 8 — “Visualization of widely adopted but indeed noisy test benchmark with depth of mirror and thin structures that are incorrect.” (source: ar5iv mirror).

6.2 DA-2K: Construction

Rather than trying to build a new dense ground-truth depth benchmark (extremely costly to annotate precisely at scale), the authors build a sparse relative-depth benchmark: for each image, just a handful of point pairs, each labeled with “which point is closer to the camera.” This is far easier to verify by a human than dense depth, while still discriminating between good and bad models.

Two annotation pipelines feed DA-2K:

flowchart TD
    A["Source images<br/>(keywords generated via GPT-4,<br/>images downloaded from Flickr)"] --> B{"Two annotation pipelines"}

    B --> P1S1["Pipeline 1: Automatic candidate mining"]
    P1S1 --> P1S2["Run SAM (Segment Anything Model)<br/>to predict object masks"]
    P1S2 --> P1S3["Sample two keypoints<br/>from mask boundaries"]
    P1S3 --> P1S4["Query 4 expert models for relative depth:<br/>Depth Anything V1, Marigold, GeoWizard, Depth Anything V2"]
    P1S4 --> P1S5{"Do experts agree?"}
    P1S5 -->|Yes, unanimous| P1S7["Accept as candidate label"]
    P1S5 -->|Disagreement| P1S6["Send to human annotator<br/>to resolve (or skip if truly ambiguous)"]
    P1S6 --> P1S7

    B --> P2S1["Pipeline 2: Manual hard-case mining"]
    P2S1 --> P2S2["Annotators manually identify<br/>challenging point pairs missed by automation<br/>(e.g. reflections, transparency, thin structures)"]
    P2S2 --> P1S7

    P1S7 --> V["Triple-check every annotation<br/>(independent verification passes)"]
    V --> Z["DA-2K benchmark<br/>1,000 images · 2,000 point-pair labels<br/>8 scenario categories"]

(Redrawn as Mermaid from the paper’s Figure 9(a) description.)

The resulting benchmark spans eight representative real-world scenario categories at high resolution, comprising 1,000 images with 2,000 total labeled point pairs, every one triple-checked. The authors are explicit that DA-2K is meant to supplement, not replace, existing dense benchmarks — it measures something existing benchmarks structurally cannot (precise relative ordering in exactly the hard cases where sensor-based ground truth breaks down).

Depth Anything V2

Figure 9 — Our proposed evaluation benchmark DA-2K. (a) The annotation pipeline… (b) Detail of our scenario coverage.

Figure 9 — “Our proposed evaluation benchmark DA-2K. (a) The annotation pipeline… (b) Detail of our scenario coverage.” (source: ar5iv mirror).


7. Experiments

7.1 Implementation Details (recap)

Covered fully in §5.2 above: DPT decoder on DINOv2 encoders, 518×518 training resolution, two-stage optimization (teacher: batch 64 / 160K iters; student: batch 192 / 480K iters), Adam optimizer, encoder LR 5e-6, decoder LR 5e-5, \(\mathcal{L}_{ssi}:\mathcal{L}_{gm} = 1:2\), top-10%-loss masking.

7.2 Zero-Shot Relative Depth Estimation

On conventional benchmarks (KITTI, NYU-D, Sintel, ETH3D, DIODE — all unseen during training), V2 is compared against MiDaS v3.1 and Depth Anything V1. Selected AbsRel / δ₁ numbers (lower AbsRel is better, higher δ₁ is better):

Dataset DA V1 (ViT-L) DA V2 (ViT-S) DA V2 (ViT-B) DA V2 (ViT-L) DA V2 (ViT-G)
KITTI 0.076 / 0.947 0.078 / 0.936 0.078 / 0.939 0.074 / 0.946 0.075 / 0.948
NYU-D 0.043 / 0.981 0.053 / 0.973 0.049 / 0.976 0.045 / 0.979 0.044 / 0.979
Sintel 0.458 / 0.760 0.500 / 0.718 0.495 / 0.734 0.487 / 0.752 0.506 / 0.772
ETH3D 0.127 / 0.882 0.142 / 0.851 0.137 / 0.858 0.131 / 0.865 0.132 / 0.862
DIODE 0.066 / 0.952 0.073 / 0.942 0.068 / 0.950 0.066 / 0.952 0.065 / 0.954

(Format: AbsRel / δ₁)

The important caveat, made explicitly by the authors: on these conventional benchmarks V2 looks only “merely comparable with V1” — sometimes even nominally worse. This is presented as expected and not a weakness of V2, precisely because these benchmarks carry the very label noise (§6.1) that V2 was designed to stop imitating. A model that stops copying noisy ground truth will not necessarily score better against noisy ground truth — it needs a cleaner yardstick, which is exactly what DA-2K provides:

On DA-2K (higher accuracy is better):

Model DA-2K Accuracy
Marigold 86.8%
GeoWizard 88.1%
DepthFM 85.8%
Depth Anything V1 88.5%
Depth Anything V2 (ViT-S) 95.3%
Depth Anything V2 (ViT-B) 97.0%
Depth Anything V2 (ViT-L) 97.1%
Depth Anything V2 (ViT-G) 97.4%

This is the paper’s headline empirical result: even the smallest V2 model (ViT-S, ~25M params) beats every prior model — including much larger diffusion-based ones — by a wide margin (95.3% vs. the next-best prior model’s 88.5%) once evaluated on a benchmark that isn’t itself full of label noise. The gap only widens with model scale, topping out at 97.4% for the largest variant.

7.3 Fine-Tuned to Metric Depth Estimation

To show the pre-trained encoders are useful beyond relative depth, the authors fine-tune them into metric depth models (predicting real, calibrated distances, e.g. in meters) by plugging the V2 encoder into the ZoeDepth pipeline in place of its original MiDaS encoder.

Benchmark Model δ₁ AbsRel
NYU-D ZoeDepth (ViT-L scale, prior work) 0.951 0.077
NYU-D Depth Anything V2 (ViT-S) 0.961 0.073
NYU-D Depth Anything V2 (ViT-L) 0.984 0.056
KITTI Depth Anything V2 (ViT-S) 0.973 0.053
KITTI Depth Anything V2 (ViT-L) 0.983 0.045

Even the smallest V2-based metric model matches or beats a considerably larger prior-generation model, and the largest V2-based metric model improves substantially further.

The authors add an important caution here too: models fine-tuned directly on NYU-D or KITTI’s own metric labels “fail to produce fine-grained depth prediction and are not robust to transparent objects, due to the inherent noise in training sets” — i.e., fine-tuning on noisy metric ground truth can partially undo the fine-detail gains from pre-training. Their fix is to fine-tune the metric heads on synthetic metric datasets instead (Hypersim for indoor scenes, Virtual KITTI for outdoor/driving scenes), keeping noisy real labels out of the pipeline end-to-end.

7.4 Ablation Study

Importance of pseudo-labeled real images (Table 5). The authors compare training on synthetic-only (\(\mathcal{D}^l\)), synthetic + pseudo-labeled combined, and pseudo-labeled-only, across model scales (KITTI AbsRel / δ₁ shown):

Model Synthetic only Synthetic + pseudo-labeled Pseudo-labeled only
ViT-S 0.104 / 0.889 0.085 / 0.928 0.078 / 0.936
ViT-B 0.094 / 0.912 0.080 / 0.938 0.078 / 0.939
ViT-L 0.081 / 0.937 0.075 / 0.947 0.074 / 0.946

Across every model size, adding pseudo-labeled real data substantially improves on synthetic-only training, and — somewhat counterintuitively — training on pseudo-labeled data alone matches or slightly beats mixing it with synthetic data. On DA-2K, pseudo-labeled-only ViT-L training reaches 97.3% accuracy, nearly matching the teacher model’s own 97.4%, which is the empirical justification for Stage 3 of the framework using pseudo-labeled-only training for students (§5.1).

Pseudo labels vs. real manual labels, head-to-head (Table 6). On the same underlying dataset (DIML), training with the teacher’s pseudo-labels beats training with the dataset’s own original human-annotated labels:

Label source KITTI AbsRel KITTI δ₁ DA-2K Accuracy
Original manual labels 0.122 0.882 80.2%
Teacher’s pseudo-labels 0.099 0.901 89.7%

The authors describe this as a “huge gap” that directly demonstrates “the high quality of our pseudo labels and the rich noise in current labeled real datasets” — arguably the paper’s most concrete piece of evidence that a strong teacher’s automatic labels can be more trustworthy than the human/sensor labels they’re meant to imitate.


9. Conclusion

The paper’s own summary of its contribution has three parts:

  1. A more robust, fine-detail model family (25M–1.3B parameters) that avoids the precision/robustness trade-off seen in prior work, achieved via a training-data recipe (synthetic → pseudo-labeled real) rather than an architectural change.
  2. Strong downstream transferability, validated by fine-tuning into metric depth models and (per the appendix) semantic segmentation.
  3. DA-2K, a new “versatile evaluation benchmark with precise annotations and diverse scenes,” addressing the measurement gap that made it hard to even see V2’s advantages on older benchmarks.

The authors frame the release (models across all four scales, plus the DA-2K benchmark) as intended to support both future monocular depth research and broader multimodal AI systems that might consume depth as an input signal.


10. Appendix Highlights

A. Sources of Training Data

Synthetic (595K images total, used for teacher training):

Dataset Images Scene type
BlendedMVS 115K indoor/outdoor
Hypersim 60K indoor
IRS 103K indoor
TartanAir 306K indoor/outdoor
Virtual KITTI 2 20K outdoor (driving)

Pseudo-labeled real (≈62M images total, used for student training):

Dataset Images Scene type
SA-1B 11.1M mixed
ImageNet-21K 13.1M mixed
Open Images V7 7.8M mixed
Places365 6.5M mixed
BDD100K 8.2M outdoor driving
LSUN 9.8M indoor
Google Landmarks 4.1M outdoor
Objects365 1.7M mixed

B. Extra Experiments

  • Semantic segmentation transfer (Table 8): The V2 encoder transfers strongly to segmentation — the largest variant reaches 85.6 mIoU on Cityscapes and 58.6 mIoU on ADE20K, without needing extra pre-training data like Mapillary or COCO, suggesting the depth pre-training yields broadly useful visual features, not just depth-specific ones.

  • Per-dataset contribution (Tables 9–10): Indoor synthetic sets (Hypersim, IRS) contribute outsized generalization benefit relative to their size. VKITTI2, while weaker on raw metrics, meaningfully boosts fine-grained sharpness thanks to its abundance of thin/complex structures. Each unlabeled real dataset adds complementary value (e.g. LSUN helps NYU-D-style indoor performance most).

  • Diversity vs. repetition (Table 11): Training only on SA-1B (11M images) for as many iterations as the full 62M-image mixture underperforms the full mixture — confirming that scene diversity, not just total iteration count, drives generalization; you cannot substitute more epochs on one dataset for more datasets.

  • NTIRE 2024 Transparent Surface Challenge (Table 12): Zero-shot, V2 reaches δ₁ = 0.836 versus V1’s 0.535 and MiDaS’s 0.259 — a dramatic jump specifically on transparent/reflective surfaces, the exact failure mode V2’s synthetic-data strategy targets. With challenge-specific fine-tuning, V2 reaches 0.912, close to the competition’s first-place 0.917.

  • Encoder comparison (Table 13): Among candidate backbones (BEiT, SAM, SynCLR, DINOv2 variants) at ViT-L scale, “DINOv2 serial is remarkably superior to all other encoders” for this task — validating the backbone choice. Interestingly, a DINOv2-G-with-registers variant underperforms the original DINOv2-G, so the authors stick with the original.

  • Gradient matching loss ablation: Increasing the \(\mathcal{L}_{gm}\) weight from 0.5 → 4.0 progressively sharpens depth at boundaries and thin structures — but only when using clean synthetic labels; the same loss brings little benefit on noisy real labels, since there’s no reliable gradient signal to match against in noisy ground truth.

    Depth Anything V2

    Figure 10 — Effect of the gradient matching loss in terms of fine-grained details.

Figure 10 — “Effect of the gradient matching loss in terms of fine-grained details.” (source: ar5iv mirror).

  • Test-time resolution scaling: Because the model is fully convolutional/transformer-based without a fixed-resolution assumption baked in, running inference at 2× or 4× the training resolution (518px) yields progressively sharper depth maps without any retraining — a practically useful, “free” quality lever at deployment time.

    Depth Anything V2

    Figure 11 — Test-time resolution scaling up can further improve the prediction sharpness.

Figure 11 — “Test-time resolution scaling up can further improve the prediction sharpness.” (source: ar5iv mirror).

  • Real-label contamination check: Adding just one noisy real labeled dataset (HRWSI) back into training — even at only ~5% of the data mix — measurably degrades the model’s fine-grained sharpness, despite HRWSI having been useful in V1’s recipe. This is presented as direct evidence supporting the decision to exclude all real labeled data from teacher training in V2.

    Depth Anything V2

    Figure 12 — Adding real training dataset will ruin the original fine-grained depth predictions.

Figure 12 — “Adding real training dataset will ruin the original fine-grained depth predictions.” (source: ar5iv mirror).

C. DA-2K Benchmark — Extra Detail

Reiterates the dual-pipeline construction (§6.2): automatic SAM-mask-based candidate mining with 4-expert-model voting and human tie-breaking, plus a manual hard-case-mining pipeline, with every final annotation triple-checked. The authors again stress DA-2K is a supplement to, not a replacement for, dense benchmarks — sparse relative-depth pairs are much cheaper to verify precisely, but they cannot by themselves validate dense 3D reconstruction quality.

D. Limitations

The paper’s stated limitations center on the flip side of its own design choices: the synthetic-to-real distribution gap is mitigated but not eliminated by the pseudo-labeling bridge; synthetic scene coverage, while supplemented by unlabeled real images, is still ultimately bounded by what the five synthetic datasets contain; and DA-2K’s sparse relative-depth annotations, while precise, are not a substitute for dense metric ground truth in applications (like 3D reconstruction) that need it — the authors frame DA-2K as a useful prerequisite check rather than a complete evaluation solution, and suggest it may also be useful for evaluating multimodal LLMs’ spatial reasoning in the future.


11. Glossary

  • Monocular depth estimation (MDE): Predicting a per-pixel depth map from a single 2D image (no stereo pair, no LiDAR).
  • Affine-invariant depth: A depth prediction that is correct only up to an unknown global scale and shift — i.e., the model gets relative depth relationships right, but not absolute real-world distances, unless separately calibrated.
  • Metric depth: Depth predictions in real physical units (e.g. meters), as opposed to affine-invariant/relative depth.
  • AbsRel: Mean absolute relative error between predicted and ground-truth depth — lower is better.
  • δ₁ (delta-1): The percentage of pixels where max(pred/gt, gt/pred) < 1.25 — i.e., prediction is within 25% of ground truth — higher is better.
  • DINOv2: A family of self-supervised vision transformer encoders (from Meta AI) used here as the backbone for both teacher and student depth models.
  • DPT (Dense Prediction Transformer): A transformer-based decoder architecture for turning encoder features into dense per-pixel outputs like depth maps.
  • Scale- and shift-invariant loss (\(\mathcal{L}_{ssi}\)): A regression loss (from MiDaS) robust to the unknown affine ambiguity in relative depth prediction.
  • Gradient matching loss (\(\mathcal{L}_{gm}\)): A multi-scale loss encouraging predicted depth gradients (edges) to match ground-truth gradients — drives sharpness at boundaries/thin structures.
  • Pseudo-labeling: Using a trained model’s own predictions as training labels for further training (here: teacher’s depth predictions become student training targets).
  • Knowledge distillation: Broadly, transferring knowledge from a large “teacher” model to a smaller “student” model; this paper uses prediction-level pseudo-labeling rather than classic feature/logit distillation.
  • SAM (Segment Anything Model): A foundation model for promptable image segmentation, used here to generate candidate object masks for DA-2K’s keypoint sampling.
  • ZoeDepth: A prior metric depth estimation pipeline the authors reuse (swapping in their own encoder) to produce metric depth models in §7.3.

12. Key Takeaways

  • Don’t trust real depth labels blindly — sensors, stereo, and SfM all have structural blind spots (mirrors, glass, thin structures), and a model trained directly on them inherits those blind spots.
  • Synthetic data gives you noise-free labels but bounded scene diversity; large-scale unlabeled real data, relabeled by a strong synthetic-trained teacher, gives you the missing diversity without reintroducing label noise.
  • A big capacity gap between teacher and student (1.3B → 25M here) is better bridged by prediction-level pseudo-labeling than by classic feature/logit distillation.
  • Filtering out the highest-loss (likely mislabeled) regions during training, and weighting a gradient-matching loss heavily, both directly target fine-detail sharpness.
  • If your benchmark is noisy, your evaluation is measuring the wrong thing — DA-2K exists because conventional benchmarks structurally cannot reward exactly the improvements V2 makes.
  • The resulting models are both more accurate on a cleaner benchmark and more than 10× faster than diffusion-based competitors, at model sizes as small as ~25M parameters — a rare case of not having to trade off speed against quality.