Argus

Argus is a multi-task vision model: task heads on a frozen EUPE-ViT-B backbone (Zhu et al., Meta FAIR, arXiv:2603.22387), 103M parameters in total, of which 17M are the heads.

Task Head Output Trained on Result
Classification Linear softmax on the L2-normalized CLS token 1,000 ImageNet classes ImageNet-1k 85.53% top-1, 97.69% top-5 (val)
Segmentation BatchNorm and 1×1 conv 150 ADE20K classes ADE20K 52.72 mIoU (val)
Depth DPT decoder on blocks 2, 5, 8 and 11, 256 bins over 0.001–10 m Metric depth NYU Depth V2 RMSE 0.452, abs rel 0.117, δ<1.25 0.852 (654-image Eigen test split, Eigen crop, evaluate.py)
Detection Cofiber pyramid with a CLIP-text-aligned cosine classifier, FCOS decoding 80 COCO classes COCO 2017 42.64 mAP (val2017)
Correspondence None: cosine matching of patch features Patch matches — 54.35 PCK@0.1 (SPair-71k test)

The detection head is documented in phanerozoic/cofiber-detection. Its class-agnostic AR@100 across 20 RF100-VL domains is 0.289, with the per-domain results in rf100vl_zero_shot_cross_domain_eval.json. Smaller variants are argus-lite (EUPE-ViT-S) and argus-edge (EUPE-ViT-T).

Usage

from PIL import Image
from transformers import AutoModel

model = AutoModel.from_pretrained("phanerozoic/argus", trust_remote_code=True)
image = Image.open("image.jpg").convert("RGB")

model.classify(image, top_k=5)          # [{"class_id", "class_name", "score"}, ...]
model.segment(image)                    # [H, W] ADE20K class indices
model.depth(image)                      # [H, W] depth in meters
model.detect(image, score_thresh=0.3)   # [{"box", "score", "label", "class_name"}, ...]
model.embed(image)                      # [768] L2-normalized CLS embedding
model.perceive(image)                   # classification, segmentation and depth
model.correspond(image, other_image)    # {"matches", "scores", "grid"}

Each method also takes a list of images and returns a list of results. Images are resized to the resolution of the head: 224 for classification and embedding, 512 for segmentation, 416 for depth and 768 for detection, which letterboxes the image. Segmentation and depth maps come back at each image's own height and width, and boxes in its pixel coordinates. segment() and depth() return per-pixel confidence and depth standard deviation with return_confidence=True, and model.seg_class_names names the segmentation indices. The depth head is trained on indoor scenes and predicts at most 10 m.

variant="bf16_backbone" loads the 241 MB model.bf16_backbone.safetensors in place of the 412 MB model.safetensors, into the same FP32 model. model.compile() compiles the backbone blocks and the heads with torch.compile, model.quantize_int8() applies INT8 weight-only quantization through torchao, and model.export_onnx(out_dir, verify=True) exports the backbone and the heads to ONNX and checks the graphs against PyTorch with ONNX Runtime.

evaluate.py scores the classification, segmentation, depth and detection heads on ImageNet-1k, ADE20K, NYU Depth V2 and COCO:

python evaluate.py imagenet --root imagenet/val
python evaluate.py ade20k --root ADEChallengeData2016
python evaluate.py nyu --root nyu_test
python evaluate.py coco --images val2017 --annotations instances_val2017.json

License

The EUPE-ViT-B weights are released under the FAIR Noncommercial Research License. The checkpoint contains them and is released under the same license; see LICENSE.

Citation

@misc{zhu2026eupe,
  title={Efficient Universal Perception Encoder},
  author={Zhu, Chenchen and Suri, Saksham and Jose, Cijo and Oquab, Maxime and Szafraniec, Marc and Wen, Wei and Xiong, Yunyang and Labatut, Patrick and Bojanowski, Piotr and Krishnamoorthi, Raghuraman and Chandra, Vikas},
  year={2026},
  eprint={2603.22387},
  archivePrefix={arXiv},
  primaryClass={cs.CV}
}
Downloads last month
87
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for phanerozoic/argus

Finetuned
(8)
this model
Finetunes
1 model

Datasets used to train phanerozoic/argus

Space using phanerozoic/argus 1

Paper for phanerozoic/argus