SQuID DINOv3 + Mask2Former segmenter
The segmentation model behind QASR-C in the SQuID paper. A frozen DINOv3 ViT-L/16 (SAT-493M weights) feeds a ViT-Adapter and a Mask2Former head trained on EarthVQA (8 classes: background, building, road, water, barren, forest, agriculture, playground). It reaches 57.6% mIoU on the EarthVQA validation split, which was also used to select the checkpoint and holds the SQuID EarthVQA images.
This repository holds only the trained adapter and head (model.safetensors). The frozen backbone loads from facebook/dinov3-vitl16-pretrain-sat493m, a gated repository whose license must be accepted on Hugging Face first.
Usage
git clone https://github.com/PeterAMassih/SQuID && cd SQuID
pip install -r requirements.txt
pip install git+https://github.com/facebookresearch/dinov3@76c051f5732cb4500bff5c23ac3c54a3695f15ff
from evaluation.dinov3_model import load_segmenter
model = load_segmenter("PeterAM4/SQuID-DINOv3-Mask2Former")
To run QASR-C on SQuID, use DINOV3_CHECKPOINT=PeterAM4/SQuID-DINOv3-Mask2Former python benchmark/benchmark_agent.py --model gpt-5. This model then serves forest, agriculture, barren land, water and roofs. Urban, grass and solar panels come from the ConvNeXt-UNet server, which is not released.
License and citation
Released under the DINOv3 License. Built with DINOv3.
@misc{massih2026squidbenchmarkquantitativespatial,
title = {SQuID: A Benchmark for Quantitative Spatial Reasoning on Satellite Imagery},
author = {Peter A. Massih and Eric Cosatto and Martin Renqiang Min},
year = {2026},
eprint = {2601.13401},
archivePrefix = {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2601.13401}
}
Model tree for PeterAM4/SQuID-DINOv3-Mask2Former
Base model
facebook/dinov3-vit7b16-pretrain-sat493m