surface_normal probe for dinov2_vits14

A trained probe head, not a backbone. It is the small module VisBench fits on top of frozen dinov2_vits14 features to measure what those features carry.

import visbench
from visbench.hub import load_probe_from_hub

backbone = visbench.get_backbone("dinov2_vits14")
probe = load_probe_from_hub("turhancan97/visbench-surface_normal-dinov2_vits14", backbone=backbone)

It only works with this backbone

These weights were fitted on features from dinov2_vits14, taken with pooling=mean and feature_mode=dense_only. Loading them against anything else is refused, because the failure is otherwise silent: a head fitted on one pooling and fed another has the right shapes and produces a plausible, wrong number.

backbone dinov2_vits14
backbone key dinov2/dinov2_vits14/224/7764ea0f912e
task surface_normal (mid_level)
pooling mean (requested mean)
feature mode dense_only
layers None

Reported scores

metric value
d1 0.2185
d2 0.4841
d3 0.6107
mean 29.4827
median 23.8327
rmse 36.4513

Reproducing it

Fitted with:

  • batch_size: 8
  • epochs: 10
  • head: linear
  • hidden_dim: 512
  • layers: None
  • lr: 0.0005
  • normal_source: None
  • optimizer: adamw
  • protocol: probe3d
  • uncertainty_aware: True
  • warmup_epochs: 1.5
  • weight_decay: 0.0001

Generated by VisBench.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including turhancan97/visbench-surface_normal-dinov2_vits14