পাঠ ২৪ · ৩৫-এর মধ্যে · মডিউল ৩

SAM — Segment Anything

Segment Anything Model — promptable foundation segmentation
৭ মিনিট পড়া উচ্চ · Advanced Python কোডসহ

এই পাঠে যা শিখবেন

  • SAM-এর foundation model approach
  • Prompt encoder, image encoder, mask decoder
  • SA-1B dataset construction
  • Practical use — annotation, interactive editing

১ · Foundation model in vision

LLM (GPT)-এর parallel — generic পাঠ থেকে specific task adapt. SAM CV-তে এই philosophy bring করেছে। "Single model for any segmentation".

Authors: Alex Kirillov, Eric Mintun, Nikhila Ravi, et al. (Meta AI Research, এপ্রিল ২০২৩)।

কেন্দ্রীয় ধারণা

SAM = "promptable" segmentation. User prompt (click, box, text) দেয় → model object segment করে। "Train once, segment any object".

২ · Three-component architecture

(ক) Image encoder — ViT-H

  • Vision Transformer Huge — 632M params.
  • MAE pretrained, then SA-1B fine-tuned.
  • Image → 64×64×256 embedding (dense feature map).
  • Heavy compute — but per-image once.

(খ) Prompt encoder

  • Point: positional embedding + foreground/background label.
  • Box: top-left + bottom-right corner embed.
  • Text: CLIP encoder.
  • Mask: dense — convolutional encode.

(গ) Mask decoder

  • Lightweight transformer — 4M params.
  • Cross-attention: image embedding ↔ prompt embedding.
  • Output: 3 masks (handle ambiguity) + IoU score.
  • Fast — 50 ms per prompt after image encode.

৩ · Training data — SA-1B

  • 11 million image, 1.1 billion mask.
  • Average 100 mask per image.
  • Largest segmentation dataset ever.
  • Released openly.

Data collection three-stage:

  1. Manual: 50K image, 4M mask — human annotator.
  2. Semi-automatic: SAM v0 helps annotator — speed 5x.
  3. Fully automatic: SAM v1 generates mask, ambiguous cases human review.

৪ · Prompt types

  • Point click: 1-2 click → object mask. Most common.
  • Bounding box: rough box → tight mask.
  • Text: "cat" → cat mask (via CLIP).
  • Mask: coarse mask → refined.
  • Mixed: click + box for finer control.

৫ · Ambiguity handling

Single click — ambiguous (whole person? face? eye?)। SAM output 3 masks at different granularity.

  • Mask 1: smallest (e.g., button on shirt).
  • Mask 2: medium (shirt).
  • Mask 3: largest (whole person).
  • User pick — interactive workflow.

৬ · Zero-shot capability

SAM-এর key feature — training-এ unseen class segment. Why?

  • Massive diverse training data.
  • Prompt-based — class-agnostic.
  • "What's the boundary here?" — generic question.
  • Tested: medical image, satellite, microscopy — all work zero-shot.
Mask R-CNN = "Trained chef who knows 80 recipes (COCO classes)". SAM = "Master who can cut any object given a point". Generic skill > specific knowledge.
SAM — promptable foundation segmentation 📷 Image 1024×1024 Image Encoder ViT-H (632M, slow) Image embedding 64×64×256 cached 🖱 Prompt point/box/text Prompt Encoder light, fast Mask Decoder 4M params, 50ms Mask 3 levels Image encoded once, prompt-mask pairs cheap Interactive — multiple click on same image fast
SAM — heavy image encoder once, lightweight prompt-decoder per click. Interactive use case ideal.

৭ · SAM use

Python · SAM
# Install: pip install segment-anything
from segment_anything import sam_model_registry, SamPredictor
import cv2
import numpy as np

# Download checkpoint: sam_vit_h_4b8939.pth
sam = sam_model_registry["vit_h"](checkpoint="sam_vit_h_4b8939.pth")
predictor = SamPredictor(sam)

# Load image
img = cv2.imread('photo.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
predictor.set_image(img)              # encode once

# Click point on cat (e.g., 500, 300)
input_point = np.array([[500, 300]])
input_label = np.array([1])           # 1 = foreground

masks, scores, logits = predictor.predict(
    point_coords=input_point,
    point_labels=input_label,
    multimask_output=True,            # 3 masks
)

print("Masks shape:", masks.shape)    # (3, H, W)
print("Scores:", scores)
best = masks[scores.argmax()]
print(f"Best mask area: {best.sum()} pixels")

    
Click → 3 mask + IoU score. User best-fit choose. Interactive annotation tool-এর foundation.

৮ · SAM use cases

  • Annotation acceleration: 10x faster mask annotation.
  • Image editing: Photoshop-like object selection.
  • Medical: radiologist click → tumor mask.
  • Robotics: grasp planning — object mask.
  • AR/VR: object isolation.
  • Video editing: SAM 2-এ track-and-mask.
  • Pre-processing for fine-tune: bootstrap labeled data.

৯ · SAM variants

  • SAM (২০২৩): original, ViT-H/L/B.
  • SAM 2 (২০২৪): video, memory mechanism.
  • MobileSAM, FastSAM: efficient inference.
  • SAM-Med2D, SAM-Med3D: medical-specific finetune.
  • HQ-SAM: high-quality refinement.
  • Grounded SAM: SAM + DINO — text-prompted detection + mask.

১০ · Limitations

  • Slow image encoder: ViT-H — 600 ms per image GPU.
  • No native classification: "what is this?" answer না।
  • Domain gap: medical, satellite — out-of-distribution case occasional miss.
  • Tiny object: single click for sub-10px object struggle.
  • No video native (SAM 1): SAM 2 fixes.
SAM revolutionary annotation. কিন্তু classification তৈরি করে না — separate model দরকার class পেতে। Often: object detection (class) + SAM (mask) hybrid.

ভাবনার প্রশ্ন

প্র ০১ SAM-এর "promptable" paradigm — segmentation-এ revolutionary. NLP-এর GPT-এর সাথে কী similarity?

SAM Vision foundation model — Meta-র explicit goal NLP-এর GPT-style. Parallels deep.

Foundation model definition:

  • Massive data, generic pretrain.
  • Adaptable downstream.
  • Few-shot / zero-shot capability.

GPT vs SAM:

  • GPT: text prompt → text output.
  • SAM: visual prompt (click) → mask output.
  • Both: training task generic (LM next-token / promptable mask).

"In-context learning" parallel:

  • GPT — few example in prompt → task adapt.
  • SAM — point click examples → object disambiguation.

Architecture echo:

  • Both transformer-based.
  • Both pretrain on massive data.
  • Both interactive use.

Difference:

  • GPT generative (text).
  • SAM discriminative (mask).
  • SAM no language reasoning native.
  • GPT no spatial vision native.

Research trajectory:

  • GPT-1 (২০১৮) → GPT-4 (2023) — 5 years.
  • SAM (২০২৩) → SAM 2 (২০২৪) — 1 year.
  • Vision foundation pace accelerating.

Future hybrid:

  • GPT-4V — vision input + language output.
  • Gemini — multimodal native.
  • Possibly: "SAM + GPT" multimodal foundation.

মূল উপলব্ধি: Foundation model paradigm — domain-agnostic. Vision lagging NLP, catching up. Bangladesh — multilingual + vision foundation needed.

প্র ০২ SA-1B dataset 1B mask — annotation কীভাবে সম্ভব? Cost ও quality trade-off?

SA-1B annotation — engineering marvel. 3-stage hybrid human-AI.

Stage 1 — Manual (4M masks):

  • Professional annotator.
  • Browser-based tool.
  • 14 sec average per mask.
  • 50K image.
  • Cost: ~$1M.

Stage 2 — Semi-automatic (5M masks):

  • SAM v0 trained on Stage 1 data.
  • Annotator: SAM proposes mask, human refines.
  • Speed 2x — 7 sec average.
  • Cost similar to Stage 1 per mask.

Stage 3 — Fully automatic (1B masks):

  • SAM v1 fine-tuned on Stage 1+2.
  • Generate mask candidates per grid point.
  • Filter low-quality (predicted IoU).
  • Spot-check 0.1% mask.
  • Cost: only compute (negligible per mask).

Image source:

  • Licensed photo (paid).
  • 11M images.
  • Cost 11M × $0.05 = $550K.

Quality measures:

  • Stage 3 — model self-confidence.
  • Boundary smoothness check.
  • Stability across crops.
  • ~94% mask quality (vs full manual annotation).

Total project cost:

  • Estimate $5-10M (image + annotation + compute).
  • Compare: ImageNet $14M (২০০৯)।
  • Massive scale possible due to AI-assist.

Open license:

  • Apache 2.0 model.
  • Image — research only.
  • Substantial community gift.

মূল উপলব্ধি: Modern ML — data engineering primary cost, compute secondary. AI-assisted labeling — exponential scale enabled.

প্র ০৩ SAM medical imaging-এ zero-shot accuracy decent কিন্তু not SOTA. কেন? Domain-specific fine-tune (SAM-Med) কীভাবে gap close করে?

SAM domain transfer — interesting case study.

Zero-shot medical performance:

  • Natural image — 80%+ IoU click prompt.
  • Medical (CT, MRI) — 60-70%.
  • Microscopy cells — 40-60%.
  • Significant gap.

Why gap:

  • Domain shift: medical image grayscale, low contrast, anatomical structure ভিন্ন।
  • Boundary semantics ভিন্ন: "tumor edge" subjective, natural object edge clear.
  • Label noise tolerance: medical pixel-level perfect annotation rare.
  • Modality: 3D (CT/MRI), DICOM not natural RGB.

SAM-Med2D approach:

  • SAM-এর image encoder freeze (general feature).
  • Prompt encoder + mask decoder finetune medical data.
  • 20+ medical dataset compiled.
  • +10-20% IoU improvement.

SAM-Med3D:

  • 3D extension — volumetric data.
  • Per-slice SAM unstable.
  • Cross-slice attention added.
  • CT, MRI volume-level segment.

MedSAM (Wang et al., 2024):

  • Specifically medical bounding box prompt.
  • 1.5M medical mask training.
  • Nature Communications paper.
  • FDA-pathway potential.

Adaptation strategy:

  • Light: few-shot prompt — same SAM, multiple click.
  • Medium: mask decoder finetune, encoder freeze.
  • Heavy: full finetune on domain data.

Bangladesh medical AI:

  • BIRDEM, ICDDR,B research projects.
  • SAM + Bengali radiologist clicks → annotation pipeline.
  • SAM-Med2D as baseline.

মূল উপলব্ধি: Foundation model — strong baseline, not always optimal. Domain-specific finetune still essential. Zero-shot promise + targeted improvement = practical pipeline.

প্র ০৪ Bangladesh annotation team-এ SAM use — workflow কী হবে? Cost saving estimate?

Real Bangladesh-এর use case.

Traditional annotation cost:

  • Bangladesh annotator: $0.50-2/hour.
  • Mask annotation: 30-60 sec per object.
  • 1000 image × 5 object × 45 sec = 62 hour = $30-120.
  • Quality check + revision: 2x time.

SAM-assisted workflow:

  1. Annotator click on object.
  2. SAM 3 mask propose.
  3. Annotator pick best (1 sec).
  4. Refine if needed (5-10 sec).
  5. Total: 5-15 sec per object.

Speedup: 4-6x

Cost save:

  • 1000 image task: $30-120 → $5-25.
  • Per million mask: $30K-120K → $5K-25K.
  • Massive saving for big project.

Quality:

  • SAM mask often higher quality than rushed manual.
  • Boundary precision better.
  • Annotator focus on edge cases.

Required infrastructure:

  • GPU server (RTX 3060 sufficient): $300-1000.
  • Web tool (e.g., labelme, VIA, CVAT).
  • SAM checkpoint (~2.5 GB).
  • Internet acceptable (no continuous cloud need).

Challenges:

  • Bangla-specific image — domain gap possible.
  • Annotator training on tool.
  • Edge case (overlap, transparent) — manual still.

Recommendation:

  • Hybrid pipeline: SAM proposal + human verify.
  • 2-stage: SAM auto + spot check.
  • Active learning: difficult cases priority.

Bangladesh CV company:

  • Annotation export competitive — local rate + AI-assist.
  • Global ML company (Scale AI competitor) — Bangladesh-based potential.
  • Skill: Python + image annotation + SAM operate.

মূল উপলব্ধি: SAM = Bangladesh annotation industry democratizer. Local tech-savvy team can offer global-quality service at competitive price.

অনুশীলন

  1. SAM install + run: SAM checkpoint download করে একটি image-এ click prompt.

    Download sam_vit_b_01ec64.pth (smaller, 375 MB). Code পাঠের section ৭-এ।

  2. Multiple click: Foreground + background click combine — exclusion test.
    points = np.array([[500, 300], [600, 400]])  # foreground, then background
    labels = np.array([1, 0])                     # 1=fg, 0=bg
    masks, _, _ = predictor.predict(point_coords=points, point_labels=labels)
  3. ভাবুন: Bangla street sign annotation — SAM ব্যবহার করে annotation team-এর efficiency কত বাড়বে?

    Sign mostly square — SAM single click 95%+ accurate. 4-6x speedup. 1000 sign annotation: 8 hour → 2 hour.

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

কোড রানার কাজ না করলে? Google Colab use করুন।
পূর্ববর্তী পাঠ
পাঠ ২৩ · Mask R-CNN