page-vits / README.md
Octopus1's picture
Pin transformers==5.6.2 in install notes
70cb870 verified
|
Raw
History Blame Contribute Delete
3.15 kB
metadata
license: mit
library_name: transformers
tags:
  - gaze-estimation
  - gaze-target-estimation
  - dinov3
pipeline_tag: image-feature-extraction

PaGE ViT-S Distill

Small / fast distilled student. Part of the PaGE gaze target estimation family.

  • Backbone: DINOv3 ViT-S (derivative of DINOv3, full-parameter trained)
  • Params: ~25M
  • Scene input: 512×512, Head input: 256×256, Heatmap output: 64×64
  • Source checkpoint: vits_distill.pt

Self-contained weights

This checkpoint includes the full DINOv3 backbone weights in its safetensors files. No external DINOv3 weights are downloaded — the DINOv3 model structure is provided by transformers==5.6.2 (built-in dinov3_vit), and the backbone weights here are derivative weights from full-parameter training of DINOv3. The model code (modeling_page.py) is loaded automatically from Octopus1/PaGE via auto_map when you pass trust_remote_code=True.

Installation

pip install torch torchvision timm "transformers==5.6.2" safetensors pillow

Tested with transformers 5.6.2.

Usage

from transformers import AutoModel, AutoImageProcessor
from PIL import Image
import torch

repo = "Octopus1/page-vits"
model = AutoModel.from_pretrained(repo, trust_remote_code=True).eval()
processor = AutoImageProcessor.from_pretrained(repo, trust_remote_code=True)

scene = Image.open("scene.jpg").convert("RGB")
head = Image.open("head.jpg").convert("RGB")

inputs = processor(scene, head_crops=[head], bboxes=[[(0.10, 0.10, 0.30, 0.40)]])

with torch.no_grad():
    out = model(inputs)

heatmap = out["heatmap"][0]   # [Np, 64, 64]
inout   = out["inout"][0]     # [Np]

Inputs / Outputs

See the family README for the full spec.

  • Input dict: images (list of [B,3,512,512]), head_images (list of [sum(Np),3,256,256]), bboxes (per-image list of (xmin,ymin,xmax,ymax) in [0,1]).
  • Output dict: heatmap (list of [Np,64,64], sigmoid), inout (list of [Np], sigmoid).

License

  • The PaGE decoder and gaze heads are released under the MIT License (see LICENSE).
  • The DINOv3 backbone is a derivative work of DINOv3 (facebook/dinov3). The backbone was initialized from the public DINOv3 self-supervised weights and then trained in full (all parameters updated) as part of PaGE training — i.e. the backbone weights here are derivative weights produced by full-parameter training of DINOv3, not the original DINOv3 weights verbatim.
  • DINOv3 is released by Meta AI under the Meta DINO License (see DINOv3_LICENSE.md). Under its Section 1.b.i, derivative works of DINOv3 (including these backbone weights) are distributed under the DINO License terms, and DINOv3_LICENSE.md must accompany any redistribution.
  • By using or redistributing this model you agree to the DINO License for the DINOv3-derived portions.

See the family README for full license details.