Semantic vs Instance segmentation
এই পাঠে যা শিখবেন
- তিন segmentation type-এর difference
- "Stuff" vs "thing" categories
- Architecture choice — encoder-decoder, Mask R-CNN, Mask2Former
- Bangladesh use case — medical, satellite, autonomous
১ · Semantic segmentation
প্রতিটি pixel-এ class label। দু'টি পাশের কুকুর — দু'জনই "dog" পিক্সেল। Instance distinguish হয় না।
Use case: autonomous driving (road, sidewalk, building), satellite (water, vegetation), medical (organ).
Architecture: FCN (২০১৪), U-Net (২০১৫), DeepLab (২০১৬), SegFormer (২০২১), Segformer-Mask2Former (২০২২)।
Metric: mIoU (mean Intersection over Union per class)।
২ · Instance segmentation
প্রতিটি object instance আলাদা mask। দু'টি কুকুর = দু'টি ভিন্ন mask।
Use case: robot grasping, cell counting, retail automation।
Architecture: Mask R-CNN (২০১৭), YOLACT, SOLO, Mask2Former।
Metric: AP (Average Precision over IoU thresholds)।
৩ · Panoptic segmentation
Kirillov et al. (২০১৯) — semantic + instance unified।
- "Stuff": uncountable — sky, road, grass। Semantic only।
- "Thing": countable — car, person, dog। Instance distinguish।
Metric: PQ (Panoptic Quality)।
Detection bounding box-এ অ-tight। Segmentation pixel-precise। Per-pixel decision — বিরাট annotation effort, accurate output, applications more demanding।
৪ · Architecture overview
FCN (Fully Convolutional Network)
- FC layer remove → all conv।
- Upsample (transpose conv) — original resolution।
- Output: per-pixel class probabilities।
Encoder-decoder
- Encoder: downsample, abstract features (ResNet/VGG)।
- Decoder: upsample, refine to pixel level।
- Skip connections — fine detail preserve।
- Examples: U-Net, SegNet, LinkNet।
Atrous/Dilated convolution
- Receptive field বাড়ায় without downsample।
- DeepLab — atrous spatial pyramid pooling (ASPP)।
- Multi-scale context capture।
Transformer-based
- Mask2Former, SegFormer — universal segmentation।
- SAM — promptable segmentation।
৫ · Loss functions
- Cross-entropy: per-pixel classification।
- Dice loss: $1 - \frac{2|A \cap B|}{|A|+|B|}$ — class imbalance handle।
- Focal loss: hard example focus।
- Lovász loss: directly optimize IoU।
- Combined: CE + Dice — robust।
৬ · Pretrained model use
import torch
from torchvision.models.segmentation import deeplabv3_resnet50, DeepLabV3_ResNet50_Weights
# Pretrained DeepLab v3 — 21-class semantic segmentation (Pascal VOC)
w = DeepLabV3_ResNet50_Weights.COCO_WITH_VOC_LABELS_V1
model = deeplabv3_resnet50(weights=w)
model.eval()
x = torch.rand(1, 3, 480, 480)
with torch.no_grad():
out = model(x)['out']
print("Output:", out.shape) # (1, 21, 480, 480)
# Per-pixel class
mask = out.argmax(dim=1) # (1, 480, 480)
print("Pixel class range:", mask.min().item(), mask.max().item())
print("Unique classes:", torch.unique(mask).tolist())
৭ · Datasets
- PASCAL VOC: 21 class, 11K train। Classic benchmark।
- Cityscapes: 19 class, 5K image, autonomous driving।
- ADE20K: 150 class, 20K image, scene parsing।
- COCO-Stuff: 172 class (80 thing + 92 stuff)।
- Mapillary Vistas: 124 class, street view।
৮ · Applications
- Medical: tumor, organ segment। U-Net dominant।
- Autonomous driving: drivable area, lane।
- Satellite: land use, deforestation।
- Agriculture: crop area, weed map।
- Manufacturing: defect localize।
- AR/VR: background remove, virtual try-on।
- Photography: portrait mode bokeh।
ভাবনার প্রশ্ন
প্র ০১ "Stuff" (sky, road) ও "thing" (car, person) distinction segmentation-এর philosophy কেন matter?
এই terminology Heitz & Koller (২০০৮) থেকে। CV community-র formal নাম।
"Things" — countable, bounded:
- Car, person, dog — discrete instances।
- Each instance separate identity।
- Bounding box natural।
- Detection task fits।
"Stuff" — uncountable, amorphous:
- Sky, road, water, grass — boundary fluid।
- "How many sky?" meaningless।
- Per-pixel class natural।
- Semantic segmentation fits।
Why categorize:
- Annotation strategy ভিন্ন।
- Loss function ভিন্ন (instance-aware vs not)।
- Architecture optimize ভিন্ন।
Edge cases:
- Crowd of people — "thing" but instance unclear।
- Forest of trees — single tree "thing", forest "stuff"?
- Skin — "thing" of person বা "stuff" surface?
Panoptic unification:
- Both treated under unified framework।
- Single model output both।
- Mask2Former — universal architecture।
Application implications:
- Autonomous driving: car (thing) count, road (stuff) area।
- Medical: tumor (thing) instance, healthy tissue (stuff)।
- Satellite: building (thing), forest (stuff)।
মূল উপলব্ধি: Computer vision-এর ontology — natural language-এ borrow। Linguistic distinction (count vs mass noun) → CV task design influence।
প্র ০২ Segmentation annotation extremely expensive। Weak supervision, semi-supervised — কী options?
Pixel-level annotation cost — segmentation-এর primary blocker। Solutions evolving।
Annotation cost reality:
- Cityscapes: average 1.5 hr per image।
- Medical (radiologist): $50-200/image।
- 5000 image dataset → multi-million dollar।
Weakly supervised:
- Image-level label only: "this image contains cat"। CAM (Class Activation Map) — region inference।
- Bounding box only: easier to annotate। Predict mask within box।
- Scribble: few brush strokes — extend to mask।
- Point clicks: 1-2 points per object।
Semi-supervised:
- Small labeled + large unlabeled।
- Self-training: pseudo-label confident prediction।
- Consistency regularization: same image augmented prediction match।
Foundation models:
- SAM (Segment Anything): click → mask। Annotation tool revolutionary।
- SAM2 (২০২৪): video extension।
- Annotation 10x speedup।
Synthetic data:
- 3D simulation (Unreal, Carla) — perfect annotation।
- Domain gap challenge।
- Sim-to-real transfer technique mature হচ্ছে।
Bangladesh-specific:
- Local annotation team build।
- Crowdsourcing platform (Toloka, Scale AI)।
- Active learning — most informative sample priority।
- SAM-assisted annotation workflow।
মূল উপলব্ধি: Annotation = bottleneck। Smart annotation strategy data scientist priority। Foundation model era — annotation cost dramatically dropping।
প্র ০৩ mIoU ও PQ — segmentation-এর primary metric। কীভাবে compute, কী trade-off ধরে?
Metric design — segmentation evaluation-এর foundation।
IoU (per class):
$\text{IoU}_c = \frac{|P_c \cap G_c|}{|P_c \cup G_c|}$
- $P_c$ = predicted pixel of class c।
- $G_c$ = ground-truth।
- 1.0 perfect, 0 no overlap।
mIoU:
- $\text{mIoU} = \frac{1}{C} \sum_c \text{IoU}_c$।
- Class-balanced — rare class equal weight।
- Per-class breakdown important।
Pixel accuracy (alternative):
- Total correct / total pixel।
- Class imbalance hide — sky 90% pixel — high accuracy easy।
- Naive baseline।
PQ (Panoptic Quality):
$\text{PQ} = \frac{\sum_{(p,g) \in TP} \text{IoU}(p, g)}{|TP| + 0.5|FP| + 0.5|FN|}$
- TP = matched prediction (IoU > 0.5)।
- FP = unmatched prediction।
- FN = unmatched ground-truth।
- Two factor: matching quality (numerator) + recognition quality (denominator)।
Decomposition:
- $\text{PQ} = \text{SQ} \times \text{RQ}$।
- $\text{SQ}$ — average IoU of matched।
- $\text{RQ}$ — F1-like score।
Per-task metric:
- Semantic: mIoU।
- Instance: AP (COCO-style)।
- Panoptic: PQ।
Trade-offs:
- mIoU — class equal weight (good for imbalance)।
- Pixel acc — fast, intuitive but imbalance-blind।
- PQ — comprehensive but complex।
Practical use:
- Production tracking — pixel accuracy + per-class breakdown।
- Research — mIoU/PQ standard।
- Domain-specific: Dice (medical), F1 (binary)।
মূল উপলব্ধি: Single metric oversimplify। Multiple lens-এ deeply understand। Per-class analysis critical।
প্র ০৪ Segmentation-এ class imbalance severe (background dominant)। Loss function কীভাবে handle? Dice vs Focal vs CE।
Class imbalance — segmentation-এর central problem। 99% background, 1% tumor — naive CE useless।
Cross-entropy (vanilla):
- Per-pixel CE।
- Background dominant gradient।
- Foreground often missed।
- Used যখন balance acceptable।
Weighted CE:
- Per-class weight inverse to frequency।
- $w_c = 1 / N_c$ or median frequency balance।
- Hyperparameter sensitive।
Focal loss (Lin et al., 2017):
$\text{FL} = -\alpha (1 - p)^\gamma \log p$
- $(1-p)^\gamma$ — confident prediction-এ loss reduce।
- Hard example focus।
- $\gamma = 2$ typical।
- Originally object detection।
Dice loss:
$\mathcal{L}_{\text{Dice}} = 1 - \frac{2 \sum p_i g_i}{\sum p_i + \sum g_i}$
- Class imbalance robust — ratio-based।
- Direct IoU-like optimization।
- Medical imaging gold standard।
- Single value per class।
Tversky loss:
- Dice generalization — FP/FN weight asymmetric।
- $\alpha, \beta$ — false positive/negative weight।
- Clinical recall priority — $\beta > \alpha$।
Combined approach (best practice):
- $\mathcal{L} = \mathcal{L}_{\text{CE}} + \mathcal{L}_{\text{Dice}}$।
- CE — pixel-level confidence।
- Dice — class balance robust।
- Most modern segmentation networks।
Lovász loss:
- Direct IoU surrogate।
- Submodular optimization।
- Cityscapes top performer।
Dataset-specific:
- Cityscapes (balanced) — CE OK।
- Medical tumor (imbalanced) — Dice + Tversky।
- Boundary refinement — boundary loss।
Practical recipe:
- Start: CE + Dice weighted।
- Imbalance severe → Focal added।
- Boundary issue → boundary loss component।
মূল উপলব্ধি: Loss function design — segmentation-এ critical। Single CE often fails। Domain-aware combination essential।
অনুশীলন
-
IoU calc: Predicted mask 90 pixel, ground-truth 100 pixel, intersection 80 — IoU?
Union = $90 + 100 - 80 = 110$. IoU = $80/110 ≈ 0.73$।
-
Pretrained: SegFormer থেকে ADE20K pretrain inference example।
from transformers import SegformerForSemanticSegmentation model = SegformerForSemanticSegmentation.from_pretrained( "nvidia/segformer-b0-finetuned-ade-512-512" ).eval() # inputs through SegformerImageProcessor -
ভাবুন: Bangladesh agriculture — drone থেকে field crop area measure (rice, jute, vegetable)। Semantic, instance, না panoptic?
Semantic — crop type "stuff", area-of-interest (not individual plant)। Instance over-engineered। Panoptic if both crop type ও individual tree (e.g., orchard)।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ২২ · U-Net পরবর্তী পাঠ Semantic segmentation-এর icon।
- পাঠ ২০ · Anchor & NMS আগের পাঠ Detection-এর foundation।
- পাঠ ২৪ · SAM এগিয়ে Segment anything foundation model।
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।