DETR — Detection Transformer
এই পাঠে যা শিখবেন
- DETR architecture — encoder-decoder transformer
- Object queries ও set prediction
- Hungarian matching loss
- DETR variants — Deformable, DINO, RT-DETR
১ · DETR-এর paradigm shift
Faster R-CNN, YOLO — heuristic-heavy: anchor design, NMS, IoU matching. Performance high but pipeline messy.
DETR — "Detection as set prediction". Transformer encoder-decoder. Fixed N output slot. Each slot → object বা "no object".
DETR detection-কে set prediction problem হিসেবে treat করে। Hungarian matching ensure unique prediction per ground-truth. NMS, anchor — সব heuristic বাদ।
২ · DETR architecture
(ক) CNN backbone
- ResNet-50/101 — feature extract.
- Output: $H/32 \times W/32 \times 2048$।
- Project to 256-D, flatten.
(খ) Transformer encoder
- 6 layer self-attention.
- Each spatial position attends all.
- Global context capture.
(গ) Transformer decoder
- 6 layer cross-attention.
- Input: N (e.g., 100) "object queries" (learnable).
- Each query → final embedding.
(ঘ) Prediction heads
- Classification: per query → class (or "no object").
- Bbox: per query → 4 coordinate.
৩ · Object queries
Each query = "slot" — ছবিতে একটি object look for. Learnable embedding.
- Initialized random — train-এ specialize.
- Empirical: each query learns "preferred location/size".
- Query 1 — left corner small object.
- Query 2 — center large object. Etc.
৪ · Hungarian matching
Training time — N predictions vs M ground-truth (N >> M). One-to-one matching:
- Bipartite graph: predictions × ground-truths.
- Edge cost: classification + bbox + IoU.
- Hungarian algorithm — minimum cost matching.
- Matched: predict GT.
- Unmatched: predict "no object".
৫ · Loss function
$$\mathcal{L} = \mathcal{L}_{\text{cls}} + \lambda \mathcal{L}_{\text{bbox}} + \mu \mathcal{L}_{\text{IoU}}$$
- $\mathcal{L}_{\text{cls}}$: matched class prediction.
- $\mathcal{L}_{\text{bbox}}$: L1 box coordinate.
- $\mathcal{L}_{\text{IoU}}$: generalized IoU loss.
- Unmatched query: "no object" classification only.
৬ · Slow convergence problem
- DETR original: 500 epoch on COCO.
- Faster R-CNN: 12 epoch.
- 40x slower train.
Why?
- No anchor prior — model search from scratch.
- Cross-attention slow to localize.
- Hungarian matching unstable early.
৭ · Deformable DETR (২০২১)
Zhu et al. — sparse attention.
- Each query attends only K (e.g., 4) reference point.
- Learnable offset.
- 10x faster convergence.
- Multi-scale feature support.
৮ · DINO-DETR (২০২৩)
Zhang et al. — current SOTA detection.
- Contrastive denoising training.
- Mixed query selection.
- Look-forward-twice update.
- COCO 63.3 mAP — top accuracy.
৯ · RT-DETR (২০২৩, Baidu)
Realtime DETR — YOLOv8 competitor.
- NMS-free → no NMS latency.
- Efficient hybrid encoder.
- 53% mAP, 100+ FPS.
- Apache 2.0 license — startup-friendly.
১০ · PyTorch DETR
# pip install transformers
from transformers import DetrImageProcessor, DetrForObjectDetection
from PIL import Image
import torch
processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-50")
model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50")
image = Image.open("photo.jpg")
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
# Convert to COCO API format
target_sizes = torch.tensor([image.size[::-1]])
results = processor.post_process_object_detection(
outputs, target_sizes=target_sizes, threshold=0.5
)[0]
print("Boxes:", results["boxes"].shape)
print("Scores:", results["scores"])
print("Labels:", results["labels"])
১১ · DETR-derived models
- Mask2Former: universal segmentation (semantic + instance + panoptic).
- OWL-ViT: open-vocabulary detection.
- Grounding DINO: text-prompted detection.
- SAM: not exactly DETR but similar set prediction.
ভাবনার প্রশ্ন
প্র ০১ DETR-এ "object queries" learnable. Visualize করলে কী দেখবেন? Each query কি specific?
DETR-এর interpretability surprise!
Empirical observation (paper-এ):
- Each query develop "preferred region".
- Some query — left side, large object.
- Some query — center, small object.
- Implicit specialization, despite no explicit supervision.
Visualization:
- Run DETR on COCO val set.
- For each query, plot center of all detections.
- Distinct clusters per query.
- Roughly matches "anchor" but learned.
Why specialize:
- Hungarian matching — query 5 mostly assigned to bottom-left objects.
- Gradient — query 5 specialize for that region.
- Self-organizing.
Number of queries:
- 100 default (DETR).
- 300 (Deformable DETR).
- 900 (DINO-DETR).
- More queries — more capacity, but slower.
Image content adaptation:
- Modern variants — content-aware query selection.
- "Mixed query" — encoder feature derive query.
- DINO-DETR-এর key innovation.
Practical implication:
- Crowded scene — more queries needed.
- Single object detection — small N enough.
- Tunable for use case.
মূল উপলব্ধি: Implicit anchor learning. DETR's queries equivalent to learned anchor — but more flexible, content-adaptive.
প্র ০২ Hungarian matching algorithm — combinatorial optimization. Differentiable কীভাবে? Backprop possible?
Hungarian matching itself non-differentiable — clever workaround.
Hungarian algorithm:
- Combinatorial assignment optimization.
- O(n^3) time complexity.
- Discrete output — assignment matrix.
- Cannot differentiate directly.
Workaround in DETR:
- Forward pass: compute cost matrix (cls + bbox + IoU).
- Run Hungarian — get assignment.
- Backward pass: use assignment as fixed labels.
- Standard cross-entropy + L1 loss on assigned pair.
- Gradient flows through cost computation, not algorithm.
Why this works:
- Assignment binary — gradient through doesn't help.
- Once assigned, treat as standard supervised learning.
- Gradient-based optimization on (matched pair) loss.
Practical implementation:
from scipy.optimize import linear_sum_assignment
# In forward
cost_matrix = compute_cost(predictions, targets)
row_ind, col_ind = linear_sum_assignment(cost_matrix.detach().cpu())
# Use assignment for loss compute
loss = cross_entropy(predictions[row_ind], targets[col_ind].class) + ...
Alternative — Sinkhorn:
- Soft Sinkhorn distance — differentiable approximation.
- Some recent papers use.
- DETR-এ Hungarian + detach standard.
Stability concern:
- Early training — assignment unstable.
- Same prediction may match different GT epoch-by-epoch.
- Slow convergence partial reason.
Modern solutions:
- Auxiliary losses — every decoder layer.
- Denoising training — stable matching.
- Many-to-one matching during training (Hybrid).
মূল উপলব্ধি: "Non-differentiable component + standard backprop on assigned pair" — common pattern in modern DL. RL-style assignment + supervised gradient.
প্র ০৩ RT-DETR YOLOv8-এর সমান speed-এ better mAP দাবি করে। ২০২৬-এ realtime detection-এ কোনটা winner?
২০২৩-পরবর্তী active battle.
Performance comparison:
- YOLOv8-l: 52.9 mAP, 60 FPS.
- RT-DETR-L: 53.0 mAP, 100 FPS.
- RT-DETR slightly faster, similar accuracy.
RT-DETR advantages:
- NMS-free — saves 2-5 ms post-process.
- Cleaner pipeline.
- Apache 2.0 license.
- Better small object.
YOLOv8 advantages:
- More mature ecosystem (Ultralytics).
- Easier finetune.
- Mobile deployment easier (ONNX, TFLite).
- Larger community resources.
Mobile reality:
- YOLOv8-nano — 280 FPS on T4.
- RT-DETR mobile — 30-50 FPS.
- YOLO mobile-friendlier still.
Bangladesh deployment:
- Server CCTV — RT-DETR (cleaner, faster).
- Mobile traffic — YOLOv8-nano.
- Custom small dataset — YOLOv8 (mature).
Newer competitors (2024-2025):
- D-FINE: claimed SOTA realtime.
- YOLO11 (Ultralytics 2024): latest YOLO.
- RTMDet: OpenMMLab competitor.
Verdict 2026:
- No clear winner — close race.
- Use case dictates choice.
- Track latest benchmark, not last year's.
মূল উপলব্ধি: Realtime detection mature field — incremental progress. Architecture choice tactical, ecosystem strategic.
প্র ০৪ Grounding DINO — text prompt-এ object detect. কীভাবে? CLIP + DETR-এর marriage?
Grounding DINO — open-vocabulary detection-এর breakthrough.
Idea:
- Closed-set detection: 80 COCO class.
- Open-vocabulary: any object describable by text.
- Text prompt → detection.
Architecture:
- Vision backbone (Swin, ViT).
- Text encoder (BERT/T5).
- Cross-attention modules — text-image fusion.
- DETR-style decoder.
- Output: bbox aligned with text query.
Training data:
- Existing detection dataset (COCO labels).
- Phrase grounding (Flickr30K).
- Image-text caption (LAION).
- Multi-source — vocabulary diversity.
Inference example:
prompt = "a green apple"
image = load("kitchen.jpg")
boxes = grounding_dino(image, prompt)
# Returns boxes around green apples (only)
Beyond detection:
- Combine with SAM → "segment anything described".
- Grounded-SAM — language-prompted segmentation.
- Annotation tool revolutionary.
Use cases:
- Image search — natural language query.
- Robot — "find the red mug".
- Content moderation — "weapon", "alcohol".
- Research — quick prototyping.
Limitations:
- Compositional reasoning weak.
- "Cat NOT on table" — negation struggle.
- Spatial relation occasional miss.
- Tail vocabulary inconsistent.
Bangladesh use:
- Bangla prompt — translate to English first.
- Custom finetune Bangladesh visual culture.
- Educational tool — student question search.
মূল উপলব্ধি: Detection-এর foundation model era. Grounding DINO + SAM — annotation/search/robotics revolution.
অনুশীলন
-
Hungarian cost: 3 prediction, 2 GT — cost matrix shape কী?
(3, 2) — predictions × ground-truth. Pad with "no object" for square matrix if needed.
-
Pretrained DETR: Hugging Face DETR inference example.
Code section ১০-এ। RT-DETR alternative:
PekingU/rtdetr_r50vdHugging Face. -
ভাবুন: Bangladesh traffic (rickshaw, CNG, bus) — DETR vs YOLO কোনটা?
Crowded — DETR/RT-DETR (no NMS issue). Realtime mobile — YOLOv8. Server processing — DINO-DETR for accuracy.
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ২৯ · Stable Diffusion পরবর্তী পাঠGenerative AI.
- পাঠ ২৭ · CLIP আগের পাঠMultimodal foundation.
- সব AI Courses দেখুন ABCL TECHসব কোর্স।