Views
No views yet
| Component | Model/Backbone | Purpose |
|---|---|---|
| Teacher Models | SAM (Segment Anything Model) | Foundation for image-level encoder distillation |
| SAM2 | Temporal memory and video tracking distillation | |
| SAM3 | Promptable Concept Segmentation (PCS) capabilities | |
| Datasets | SA-1B | Image segmentation dataset |
| SA-V | Video object segmentation dataset | |
| SA-Co/Gold | Promptable concept segmentation benchmark | |
| Recap-DataComp-1B | Large-scale image-text dataset for text encoder distillation | |
| Student Backbones (Image) | RepViT (M0.9, M1.1, M2.3) | Mobile-optimized Vision Transformer for highest throughput |
| TinyViT (5M, 11M, 21M) | Balanced efficiency and performance | |
| EfficientViT (B0, B1, B2) | Ultra-lightweight architectures for minimal latency | |
| Student Backbones (Text) | MobileCLIP S0 | Lightweight text encoder (42.57M params) |
| MobileCLIP S1 | Balanced text encoder (63.56M params) | |
| MobileCLIP2 L | Larger text encoder (123.6M params) |
1git clone https://github.com/SimonZeng7108/efficientsam3.git
2cd efficientsam3
3
4conda create -n efficientsam3 python=3.12 -y
5conda activate efficientsam3
6
7pip install --upgrade pip
8pip install torch==2.7.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
9
10# Install repo dependencies via the root pyproject (brings in SAM3 + Stage-1 extras)
11pip install -e ".[stage1]"
12
13# Note: the Stage-1 extra includes the SAM1 package dependency
14# (PyPI name: segment-anything, import name: segment_anything).
15# If your environment cannot resolve it from PyPI, install the vendored repo instead:
16# pip install -e ./segment-anything
1from sam3.model_builder import build_efficientsam3_image_model
2from sam3.model.sam3_image_processor import Sam3Processor
3
4# Load model
5model = build_efficientsam3_image_model(
6 checkpoint_path="efficient_sam3_efficientvit_s.pt",
7 backbone_type="efficientvit",
8 model_name="b0",
9 enable_inst_interactivity=True,
10)
11
12# Process image and predict
13processor = Sam3Processor(model)
14inference_state = processor.set_image(image)
15
16# Single positive point prompt (x, y) in pixels
17points = [[image.size[0] / 2, image.size[1] / 2]]
18labels = [1]
19masks, scores, _ = model.predict_inst(
20 inference_state,
21 point_coords=points,
22 point_labels=labels
23)
1from sam3.model_builder import build_efficientsam3_image_model
2from sam3.model.sam3_image_processor import Sam3Processor
3
4# Load model with text encoder
5model = build_efficientsam3_image_model(
6 checkpoint_path="efficient_sam3_tinyvit_m_mobileclip_s1.pt",
7 backbone_type="tinyvit",
8 model_name="11m",
9 text_encoder_type="MobileCLIP-S1"
10)
11
12# Process image and predict with text prompt
13processor = Sam3Processor(model)
14inference_state = processor.set_image(image)
15inference_state = processor.set_text_prompt(prompt="shoe", state=inference_state)
16masks = inference_state["masks"]
17scores = inference_state["scores"]
18print(len(scores), scores)1from sam3.model_builder import build_sam3_image_model
2from sam3.model.sam3_image_processor import Sam3Processor
3
4# Build SAM3-LiteText model
5# Supported text_encoder_type: "MobileCLIP-S0", "MobileCLIP-S1", "MobileCLIP2-L"
6# Supported text_encoder_context_length: 16, 32, or 77
7model = build_sam3_image_model(
8 checkpoint_path="efficient_sam3_image_encoder_mobileclip_s1_ctx32.pt",
9 load_from_HF=False,
10 text_encoder_type="MobileCLIP-S1",
11 text_encoder_context_length=16,
12 device='cuda',
13)
14
15# Run inference
16processor = Sam3Processor(model, device='cuda', confidence_threshold=0.4)
17state = processor.set_image(image)
18state = processor.set_text_prompt("shoe", state)
19masks = state["masks"]
20scores = state["scores"]stage1_geometry_finetune branch.python eval/eval_coco.py --coco_root data/coco --output_dir output1python eval/eval_text_encoder_similarity.py \
2 --student-ckpt /path/to/student_text_encoder_1.pth /path/to/student_text_encoder_2.pth \
3 --np-json data/sa-v-text/sa-co-veval/saco_veval_noun_phrases.json \
4 --device cuda
5# Optional: override teacher checkpoint
6# --teacher-ckpt /path/to/sam3_teacher_checkpoint.ptdata/download_*.sh) covering COCO, DAVIS, LVIS, SA-1B, SA-V, LVOS, MOSE, and YouTube-VOS, see:| Model Name | Backbone | Parameters | Stage 1 Weights (Encoder Distilled) | Stage 2 Weights (Memory Module Trained) | Stage 3 Weights (End-to-End Fine-Tuned) |
|---|---|---|---|---|---|
| ES-RV-S | RepViT-M0.9 | 4.72M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-RV-M | RepViT-M1.1 | 7.77M | HF (ft: HF) | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-RV-L | RepViT-M2.3 | 22.40M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-TV-S | TinyViT-5M | 5.07M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-TV-M | TinyViT-11M | 10.55M | HF (ft: HF) | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-TV-L | TinyViT-21M | 20.62M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-EV-S | EfficientViT-B0 | 0.68M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-EV-M | EfficientViT-B1 | 4.64M | HF (ft: HF) | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-EV-L | EfficientViT-B2 | 14.98M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
Note (2025/12/02): The current Stage 1 image encoder weights are distilled on 1% of the SA-1B dataset.
Note (2026/01/11): The fine-tuned (ft) models use geometry-prompt fine-tuning on the same 1% subset of SA-1B; see training details in thestage1_geometry_finetunebranch.
| Model Name | Backbone | Parameters | Stage 1 Weights (Encoder Distilled) | Stage 2 Weights (Memory Module Trained) | Stage 3 Weights (End-to-End Fine-Tuned) |
|---|---|---|---|---|---|
| ES-RV-S-MC-S1 | RepViT-M0.9 & MobileCLIP-S1 | 4.72M + 63.56M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-RV-M-MC-S1 | RepViT-M1.1 & MobileCLIP-S1 | 7.77M + 63.56M | HF (ft: HF) | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-RV-L-MC-S1 | RepViT-M2.3 & MobileCLIP-S1 | 22.40M + 63.56M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-TV-S-MC-S1 | TinyViT-5M & MobileCLIP-S1 | 5.07M + 63.56M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-TV-M-MC-S1 | TinyViT-11M & MobileCLIP-S1 | 10.55M + 63.56M | HF (ft: HF) | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-TV-L-MC-S1 | TinyViT-21M & MobileCLIP-S1 | 20.62M + 63.56M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-EV-S-MC-S1 | EfficientViT-B0 & MobileCLIP-S1 | 0.68M + 63.56M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-EV-M-MC-S1 | EfficientViT-B1 & MobileCLIP-S1 | 4.64M + 63.56M | HF (ft: HF) | $$\text{Planned}$$ | $$\text{Planned}$$ |
| ES-EV-L-MC-S1 | EfficientViT-B2 & MobileCLIP-S1 | 14.98M + 63.56M | HF | $$\text{Planned}$$ | $$\text{Planned}$$ |
Note (2025/12/08): The current Stage 1 text encoder weights are distilled on 1% of the Recap-DataComp-1B dataset combined with all 9 image encoder variants. We notice a performance degradation, this is expected as the text encoder are not aligning with the light image encoders in stage1. We will release the stage1+ fine-tuned weights in the future.
Note (2025/12/08): We have also uploaded standalone text encoder weights trained on 1% Recap-DataComp-1B dataset: MobileCLIP-S1 and MobileCLIP2-L. You can merge with stage 1 trained image encoder weights to get the full model.
Note (2026/01/11): The fine-tuned (ft) text encoder models are fine-tuned on SA-Co Gold+Silver text annotations. Standalone fine-tuned text encoder weights: MobileCLIP-S0, MobileCLIP-S1, and MobileCLIP2-L.
| Model | Text Encoder | Ctx | Text Params | Weights |
|---|---|---|---|---|
| SAM3-LiteText-S0-16 | MobileCLIP-S0 | 16 | 42.54M | HF |
| SAM3-LiteText-S1-16 | MobileCLIP-S1 | 16 | 63.53M | HF |
| SAM3-LiteText-L-16 | MobileCLIP2-L | 16 | 123.80M | HF |
All models use the SAM3 ViT-H image encoder (353.72M vision params). The text encoder parameters shown represent the distilled student replacing the original 353.72M text encoder, achieving up to 88% parameter reduction.
| Model Name | Backbone | Parameters | COCO mIoU | Test Time (s) |
|---|---|---|---|---|
| ES-RV-S | RepViT-M0.9 | 4.72M | 64.80% | 407.23 |
| ES-RV-M | RepViT-M1.1 | 7.77M | 65.28% (ft 65.60%) | 413.38 |
| ES-RV-L | RepViT-M2.3 | 22.40M | 65.53% | 466.66 |
| ES-TV-S | TinyViT-5M | 5.07M | 65.51% | 430.52 |
| ES-TV-M | TinyViT-11M | 10.55M | 65.45% (ft 65.69%) | 443.45 |
| ES-TV-L | TinyViT-21M | 20.62M | 66.29% | 452.14 |
| ES-EV-S | EfficientViT-B0 | 0.68M | 61.62% | 419.57 |
| ES-EV-M | EfficientViT-B1 | 4.64M | 64.82% (ft 64.94%) | 434.45 |
| ES-EV-L | EfficientViT-B2 | 14.98M | 66.30% | 450.36 |
Note: The evaluation is done with a single NVIDIA 4070 Ti.
| Model Name | Text Backbone | Avg Cos Similarity | Eval Set |
|---|---|---|---|
| ES-MC-S0 (Recap-DC1B 1% pt) | MobileCLIP-S0 | 0.864846 | 5184 noun phrases |
| ES-MC-S1 (Recap-DC1B 1% pt) | MobileCLIP-S1 | 0.854405 | 5184 noun phrases |
| ES-MC2-L (Recap-DC1B 1% pt) | MobileCLIP2-L | 0.850976 | 5184 noun phrases |
| Model Name | Text Backbone | Avg Cos Similarity | Eval Set |
|---|---|---|---|
| ES-MC-S0 (SA-Co ft) | MobileCLIP-S0 | 0.938915 | 5184 noun phrases |
| ES-MC-S1 (SA-Co ft) | MobileCLIP-S1 | 0.947152 | 5184 noun phrases |
| ES-MC2-L (SA-Co ft) | MobileCLIP2-L | 0.952901 | 5184 noun phrases |
Note: Evaluation is done with eval_text_encoder_similarity.py usingdata/sa-v-text/sa-co-veval/saco_veval_noun_phrases.json. Pretrained models are trained on Recap-DataComp-1B (1%), and fine-tuned models are trained on SA-Co Gold+Silver text annotations.
| Model | Ctx | MetaClip | SA1B | Crowd | Food | SptEq | Attr | Wiki | Avg F1 | MCC | pmF1 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| gDino-T | - | 2.9 | 3.1 | 0.28 | 0.96 | 1.1 | 13.8 | 0.70 | 3.3 | 0.15 | 16.2 |
| OWLv2 | - | 12.2 | 9.8 | 8.9 | 24.4 | 24.4 | 25.9 | 15.4 | 17.3 | 0.46 | 36.8 |
| LLMDet-L | - | 4.5 | 5.3 | 2.4 | 5.5 | 4.4 | 22.2 | 1.2 | 6.5 | 0.21 | 27.3 |
| APE-D | - | 12.6 | 2.2 | 7.2 | 22.7 | 31.8 | 26.7 | 11.6 | 16.4 | 0.40 | 36.9 |
| DINO-X | - | 17.2 | 19.7 | 12.9 | 30.1 | 28.4 | 31.0 | 9.7 | 21.3 | 0.38 | 55.2 |
| Gemini 2.5 | - | 9.9 | 13.1 | 8.2 | 19.6 | 15.1 | 18.8 | 6.5 | 13.0 | 0.29 | 46.1 |
| SAM3 | 77 | 47.3 | 53.7 | 61.1 | 53.4 | 65.5 | 54.9 | 42.5 | 54.1 | 0.82 | 66.1 |
| SAM3-LiteText-S0 | 16 | 47.06 | 53.42 | 60.58 | 52.18 | 65.05 | 54.86 | 42.12 | 53.61 | 0.81 | 65.54 |
| SAM3-LiteText-S1 | 16 | 47.18 | 53.58 | 60.76 | 52.43 | 65.28 | 55.02 | 42.35 | 53.80 | 0.81 | 65.72 |
| SAM3-LiteText-L | 16 | 47.24 | 53.66 | 60.88 | 52.65 | 65.49 | 55.19 | 42.54 | 53.95 | 0.81 | 65.87 |
Note: This table shows performance of the released ctx-16 models, which were trained with a more extensive dataset mixture compared to the models reported in the paper. As a result, performance may differ slightly from the values in the associated publication.
1@misc{zeng2025efficientsam3progressivehierarchicaldistillation,
2 title={EfficientSAM3: Progressive Hierarchical Distillation for Video Concept Segmentation from SAM1, 2, and 3},
3 author={Chengxi Zeng and Yuxuan Jiang and Aaron Zhang},
4 year={2025},
5 eprint={2511.15833},
6 archivePrefix={arXiv},
7 primaryClass={cs.CV},
8 url={https://arxiv.org/abs/2511.15833},
9}1@misc{zeng2026sam3litetextanatomicalstudysam3,
2 title={SAM3-LiteText: An Anatomical Study of the SAM3 Text Encoder for Efficient Vision-Language Segmentation},
3 author={Chengxi Zeng and Yuxuan Jiang and Ge Gao and Shuai Wang and Duolikun Danier and Bin Zhu and Stevan Rudinac and David Bull and Fan Zhang},
4 year={2026},
5 eprint={2602.12173},
6 archivePrefix={arXiv},
7 primaryClass={cs.AI},
8 url={https://arxiv.org/abs/2602.12173},
9}
![]() European Space Agency |
Note: If you're using EfficientSAM3 in your work, please acknowledge us in your publications or projects. We're happy to promote your work here! Contact us to be featured in this section.