zhoubolei/scene_parse_150
Updated • 994 • 31
A linear ADE20K semantic segmentation probe on frozen DINOv3 ViT-B/16 features at 128 px, a passive-vision reference for CanViT, trained with the paper's probing protocol.
CanViT, the Canvas Vision Transformer, is an active-vision foundation model: it sees a scene through a sequence of glimpses and remembers it on a scene-wide canvas.
Paper (NeurIPS 2026) · Code · Project page · All checkpoints
pip install "canvit-pytorch>=0.2"
import torch
from PIL import Image
from canvit_pytorch.preprocess import preprocess
from canvit_pytorch.probes import SegmentationProbe
from canvit_pytorch.teacher import load_teacher
dinov3 = load_teacher("facebook/dinov3-vitb16-pretrain-lvd1689m", torch.device("cpu"))
probe = SegmentationProbe.from_pretrained("canvit/probe-ade20k-40k-dv3b-128px").eval()
scene = preprocess(128)(Image.open("scene.jpg").convert("RGB")).unsqueeze(0) # [1, 3, 128, 128]
with torch.inference_mode():
patches = dinov3(scene).patches.unflatten(1, (8, 8)) # [1, 8, 8, 768]
logits = probe(patches) # [1, 150, 8, 8]
| Features | facebook/dinov3-vitb16-pretrain-lvd1689m patch features of 128 px images |
| Probe | dropout, BatchNorm, 1 × 1 convolution |
| Training steps | 40,000, batch size 16 |
| Optimizer | AdamW, peak learning rate 0.0003, weight decay 0.001 |
| Schedule | 1,500-step linear warmup, then cosine decay |
| Augmentation | random crops of scale 0.5 to 2, horizontal flips |
| Dropout | 0.1 |
| Precision | bfloat16 autocast |
@article{berreby2026canvit,
title={CanViT: Toward Active-Vision Foundation Models},
author={Berreby, Yoha{\"i}-Eliel and Du, Sabrina and Durand, Audrey and Krishna, B. Suresh},
year={2026},
eprint={2603.22570},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2603.22570}
}
This repository's files for canvit-pytorch 0.1 remain at revision canvit-pytorch-0.1:
with canvit-pytorch<0.2, pass revision="canvit-pytorch-0.1" to from_pretrained.
Base model
facebook/dinov3-vit7b16-pretrain-lvd1689m