Depth Anything V2 vs DINOv3
DepthWizard retained DINOv3 ViT-L/16 SAT-493M as its encoder. In the completed Depth Anything V2 Base experiment (DAV2_V1), DINOv3’s v4-modal configuration had lower overall GAMUS test RMSE with plain inference and TTA, and lower India validation RMSE. Its satellite pretraining also matches the imagery DepthWizard processes.
The advantage is modest and depends on the inference setting: GAMUS test TTA RMSE is 3.321 m for DINOv3 versus 3.396 m for DAv2, a 0.074 m (2.19%) reduction from the unrounded metrics. DAv2 wins with sliding-window TTA. The choice therefore reflects the deployment target and measured trade-offs, rather than a win on every metric.
What the experiment compared
Section titled “What the experiment compared”The DAv2 variant reused the v4 training and evaluation pipeline, retaining DepthWizard’s metric height, segmentation and normal heads. It kept DAv2’s pretrained encoder and DPT neck, removed its original relative-depth head, and fine-tuned for height above ground in metres (nDSM). Both variants predict metric heights after training; this is a comparison of adapted DepthWizard models.
| Property | Depth Anything V2 Base · DAV2/V1 | DINOv3 · v4-modal |
|---|---|---|
| Encoder | DINOv2 ViT-B/14 | DINOv3 ViT-L/16 SAT-493M |
| Encoder parameters, approximately | 86 M | 303 M |
| Pretraining emphasis | Monocular depth with synthetic labels and real pseudo-labels | Self-supervised satellite imagery |
| DPT neck at the start of training | Pretrained for depth | Randomly initialised |
| Patch / input tile | 14 px / 518 × 518 px | 16 px / 512 × 512 px |
| Decoder channels | 128 | 256 |
| Completed epochs | 40 | 30 |
| Unfrozen encoder blocks | All 12 | Top 16 of 24 |
| Layer-wise LR decay | 0.85 | 0.90 |
| Stratum weighting β / clip | 0.5 / 5.0 | 0.7 / 8.0 |
Architecture details come from DAV2_V1/README.md and models/dav2.py; the run settings above come from the completed metrics files. The upstream DAv2 model card describes its DINOv2/DPT architecture and depth training, while Meta’s DINOv3 model card records SAT-493M’s 493 million satellite images.
Measured RMSE differences
Section titled “Measured RMSE differences”Lower is better. Plain and TTA score the full 2,861-tile GAMUS test split; sliding-window TTA scores the first 400 test tiles. India is a separate 35-tile validation split, not an independent test split. TTA uses rotations/reflections and input scales of 1.0× and 1.25×.
/evidence/encoder-comparison.json; India from v3_vs_v4_vs_dav2.md| Split · inference | DAv2 RMSE (m) ↓ | DINOv3 RMSE (m) ↓ |
|---|---|---|
| GAMUS test · Plain | 3.424 | 3.373 |
| GAMUS test · TTA | 3.396 | 3.321 |
| GAMUS test · Sliding + TTA | 3.759 | 3.873 |
| India val · plain | 3.027 | 2.780 |
Best RMSE in each row is highlighted. India values are available only to three decimal places in the shared report. Source: /evidence/encoder-comparison.json
On GAMUS test, DINOv3 reduces plain RMSE by 0.051 m (1.48%) and TTA RMSE by 0.074 m (2.19%). On India validation, the reduction is 0.247 m (8.16%). DAv2 reduces sliding-window TTA RMSE by 0.114 m (2.95%) relative to DINOv3. No repeated-seed results or confidence intervals are recorded, so these are observed differences rather than established statistical significance.
Other metrics matter too
Section titled “Other metrics matter too”| GAMUS test metric | DAv2 · plain | DINOv3 · plain | DAv2 · TTA | DINOv3 · TTA |
|---|---|---|---|---|
| MAE (m) ↓ | 1.514 | 1.549 | 1.551 | 1.511 |
| Balanced RMSE (m) ↓ | 4.713 | 4.613 | 4.663 | 4.556 |
| Pearson r ↑ | 0.885 | 0.886 | 0.886 | 0.890 |
| δ1 ↑ | 0.646 | 0.627 | 0.607 | 0.629 |
Arrows show the preferred direction. Balanced RMSE gives each height band equal weight; δ1 is the shifted height-ratio accuracy defined on the Metrics page. Source: test_gamus_test_plain and test_gamus_test_tta in both completed metrics files
DAv2 has lower plain MAE (1.514 vs 1.549 m) and higher plain δ1 (0.646 vs 0.627) even though DINOv3 has lower plain RMSE. With TTA, DINOv3 leads on all four metrics above. See metric definitions for how RMSE, balanced RMSE and δ1 measure different aspects of height error.
Where the models differ by landscape
Section titled “Where the models differ by landscape”test_gamus_test_tta.per_landscape in /evidence/encoder-comparison.json| Landscape · TTA | DAv2 RMSE (m) ↓ | DINOv3 RMSE (m) ↓ |
|---|---|---|
| Urban | 3.525 | 3.506 |
| Sparse | 1.096 | 1.276 |
| Forested | 3.712 | 3.505 |
Source: /evidence/encoder-comparison.json
The largest landscape advantage for DINOv3 is forested tiles: 3.505 vs 3.712 m, a 5.58% RMSE reduction. Sparse tiles favour DAv2 (1.096 vs 1.276 m). For pixels with true height above 15 m, DINOv3 also has lower TTA RMSE (8.253 vs 8.591 m), though both underestimate tall structures on average (bias −3.052 vs −3.235 m).
Why DINOv3 was retained
Section titled “Why DINOv3 was retained”- Better overall accuracy in the principal test modes. The v4-modal DINOv3 configuration had lower GAMUS test RMSE in plain and TTA inference, lower balanced RMSE, and lower India validation RMSE. This favours DINOv3 when the goal is overall metric height accuracy under these settings.
- Pretraining matches the input domain. SAT-493M uses satellite imagery, whereas DAv2’s pretrained neck is specialised for monocular depth. Overhead height estimation depends on cues such as roof structure, shadows and canopy texture. Satellite pretraining is a plausible reason to prefer DINOv3’s features for this task; the experiment does not isolate or prove that mechanism.
- The test supports the project’s canopy and tall-height priorities. DINOv3 v4-modal had lower forested and tall-pixel TTA RMSE. The later v5 training choices continue this encoder while addressing canopy errors through data and loss changes. Those later v5 results are separate from this experiment.
DAv2 remains a credible alternative: its encoder is roughly 3.5× smaller, its neck starts with depth-specific weights, and it wins on sliding-window RMSE and sparse landscapes. Parameter count alone does not establish a latency or memory advantage in deployment; this comparison did not record a matched inference-speed benchmark.
The tested DAv2 Base weights also carry a CC-BY-NC-4.0 licence, as documented in the upstream repository. This is an additional deployment consideration. DINOv3 uses Meta’s DINOv3 licence; it should not be described as Apache-2.0. DAv2 Small has a different licence and was not the model tested here.
Evidence and scope
Section titled “Evidence and scope”- Completed DAv2 result:
Model_Traning/DAV2_V1/outputs/dav2-v1/metrics.json, 40 epochs.DAV2_V1/Logs/metrics.jsonis the earlier 24-epoch snapshot and is not used here. - DINOv3 comparator:
Model_Traning/V4_modal/Output/metrics.json, 30 epochs. The labels “v4” in the shared report and “v4-modal” on this page refer to this run. - Shared evaluation report:
Model_Traning/v3/outputs/v3_vs_v4_vs_dav2.md. India values come from this report; it contains no DAv2 DFC23 result, so no DAv2-versus-DINOv3 DFC23 comparison is claimed. - Download: metrics extract with source paths, SHA-256 hashes, run settings and pixel counts. The extract retains full precision from the GAMUS metrics files.
Regenerate the extract from the local experiment artefacts:
python3 scripts/extract_encoder_comparison.pyThe earlier DINOv3 v3 run achieved 2.605 m validation TTA RMSE, compared with DAv2’s 3.432 m and v4-modal’s 3.631 m. These validation results used different tile packings and were used for checkpoint selection. They are not the basis for the test graphs above. See Benchmarks and validation-set differences for context.