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

YOLO — এক ধাপে detection

YOLO — You Only Look Once, single-pass detection
৮ মিনিট পড়া মাঝারি · Intermediate Ultralytics কোড

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

  • YOLOv1-এর single-pass detection idea
  • YOLO loss function components
  • YOLO version evolution
  • Ultralytics-এ practical fine-tune

১ · YOLOv1 — single-pass insight

Joseph Redmon (২০১৬, CVPR) — "You Only Look Once: Unified, Real-Time Object Detection". R-CNN-এর প্রায় opposite philosophy.

Idea: ছবিকে $7 \times 7$ grid-এ ভাগ। Each cell — predict $B$ bounding box (typical 2) + class probability.

  • Each cell output: $B \times 5 + C$ value.
  • 5 = $(x, y, w, h, \text{confidence})$।
  • $C$ = class probabilities (PASCAL VOC = 20).
  • Total output: $7 \times 7 \times 30 = 1470$।
কেন্দ্রীয় ধারণা

Detection = pixel-to-grid regression. কোনো proposal, কোনো region pooling — just look at the image once. এটাই YOLO-র revolutionary contribution.

২ · YOLOv1 architecture

  • 24 conv layer + 2 FC layer (GoogLeNet-inspired).
  • Input 448×448 → output 7×7×30.
  • Final FC reshape করে grid output.
  • ~63M parameter, 45 FPS.

৩ · YOLO loss function

Multi-component loss — bbox + objectness + class.

$$\mathcal{L} = \lambda_{\text{coord}} \mathcal{L}_{\text{box}} + \mathcal{L}_{\text{obj}} + \lambda_{\text{noobj}} \mathcal{L}_{\text{noobj}} + \mathcal{L}_{\text{cls}}$$

  • $\lambda_{\text{coord}} = 5$ — box localization weight high.
  • $\lambda_{\text{noobj}} = 0.5$ — empty cell-এ confidence loss less.
  • Width/height-এ square root — small box-এ relative error matter.

৪ · YOLO evolution timeline

  • YOLOv1 (২০১৬): 7×7 grid, 2 box per cell, FC layer.
  • YOLOv2 (২০১৭, YOLO9000): anchor box, batch norm, multi-scale, 9000+ class.
  • YOLOv3 (২০১৮): Darknet-53 backbone, FPN-style multi-scale, 3 detection head.
  • YOLOv4 (২০২০, Bochkovskiy): CSPDarknet, PAN, mosaic augmentation.
  • YOLOv5 (২০২০, Ultralytics): PyTorch-native, easy training.
  • YOLOv6 (২০২২, Meituan): industry-focused, RepVGG block.
  • YOLOv7 (২০২২): E-ELAN, SOTA.
  • YOLOv8 (২০২৩, Ultralytics): anchor-free, modern, segmentation included.
  • YOLOv9, v10 (২০২৪): programmable gradient information.
  • YOLO11 (২০২৪-২০২৫): latest Ultralytics.

৫ · YOLOv8 architecture (modern)

  • Backbone: CSPDarknet — efficient feature extraction.
  • Neck: PAN-FPN — multi-scale aggregation.
  • Head: decoupled (separate cls + reg branches).
  • Anchor-free: v8 থেকে — direct center prediction.
  • Variants: n (nano) → x (extra-large).

৬ · YOLOv8 size variants

VariantParamsmAP@COCOFPS (T4)
YOLOv8n3.2M37.3280
YOLOv8s11.2M44.9170
YOLOv8m25.9M50.290
YOLOv8l43.7M52.960
YOLOv8x68.2M53.940
R-CNN = "study every region individually then verdict". YOLO = "glance at whole picture, mark all objects at once". Speed gap massive, accuracy gap shrunk over years.
YOLO — grid-based single-shot detection cat Image (7×7 grid) CNN single forward pass Output tensor 7 × 7 × 30 Per cell: 2 box × (x,y,w,h,conf) + 20 class probs all detections at once! No proposal · No multi-stage · 45+ FPS Speed primary, accuracy comparable to two-stage
YOLO — image → 7×7 grid → CNN → tensor output. প্রতি cell predict bbox + class. Single forward.

৭ · Ultralytics — practical YOLO

Python · Ultralytics
# Install: pip install ultralytics
from ultralytics import YOLO

# Pretrained YOLOv8 nano
model = YOLO('yolov8n.pt')

# Inference on image
results = model('path/to/image.jpg')

# Or on video
# results = model('video.mp4', save=True)

# Each result
for r in results:
    print("Boxes:", r.boxes.xyxy)        # (N, 4) tensor
    print("Conf:", r.boxes.conf)         # (N,)
    print("Cls:", r.boxes.cls)           # (N,) class index
    print("Names:", r.names)             # dict {idx: name}

# Train on custom dataset (YOLO format)
# model.train(data='custom.yaml', epochs=100, imgsz=640)

    
Ultralytics — most user-friendly detection framework. 5 line-এ pretrained inference, 1 command-এ custom training.

৮ · YOLO custom training

Dataset format (YOLO):

# custom.yaml
path: /path/to/dataset
train: images/train
val: images/val

names:
  0: rickshaw
  1: cng
  2: bus
  3: pedestrian

Each label file (one per image, same name):

# images/train/IMG001.txt
0 0.5 0.6 0.2 0.3   # class x_center y_center width height (normalized)
2 0.8 0.5 0.1 0.4

৯ · YOLO-এর strength ও weakness

Strengths:

  • Realtime inference.
  • End-to-end training simple.
  • Mobile-friendly variants.
  • Big ecosystem (Ultralytics, Darknet).

Weaknesses:

  • Small object detection — historical weakness (improved in v3+).
  • Crowded scene — overlap struggle.
  • Custom annotation type — flexibility কম।

১০ · Modern competitors

  • RT-DETR (২০২৩): realtime DETR, NMS-free, similar speed.
  • YOLOX: anchor-free YOLO variant.
  • EfficientDet: Google-এর efficient detector.
  • D-FINE (২০২৪): latest realtime SOTA.
YOLO ecosystem — Ultralytics dominate, কিন্তু license commercial use-এ AGPL — paid plan লাগে। MIT alternative — ONNX models, TorchVision detection.

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

প্র ০১ YOLOv1-এর paper — Joseph Redmon ২০২০-এ research থেকে retire (military application concern). এই story-র ethical implication?

এটি AI ethics-এর সবচেয়ে personal case study.

Background:

  • Joseph Redmon — University of Washington PhD.
  • YOLOv1, v2, v3 author.
  • Darknet framework creator.
  • ২০২০ February — Twitter announcement: stopping CV research.

Reasons cited:

  • Military application — drone-based surveillance, autonomous weapon.
  • Privacy concerns — face recognition mass deployment.
  • "Can't stop people misusing my work".
  • YOLO real-time speed makes harmful application practical.

YOLOv4 (২০২০) onwards:

  • Different authors took over — Bochkovskiy, Wang.
  • YOLOv5 — Ultralytics company.
  • Redmon's name not on subsequent versions.

Ethical questions raised:

  • Researcher responsibility for downstream use?
  • Open-source vs restricted model?
  • Dual-use technology (civilian + military)?
  • Individual choice vs community progress?

Industry parallels:

  • OpenAI not releasing GPT-2 fully (২০১৯) — initially.
  • Anthropic Constitutional AI — alignment focus.
  • Stable Diffusion controversies — celebrity face generation.
  • Face recognition — Boston, San Francisco bans.

Counter-arguments:

  • If not Redmon, others would develop.
  • Civilian applications save lives (medical, accessibility).
  • Open research → safety research enabled.
  • Restricted research → undocumented harm.

Bangladesh context:

  • YOLO traffic management — civic value.
  • Border surveillance — political concern.
  • Privacy law immature.
  • Researcher voice in policy needed.

Personal ethics framework:

  • Dual-use awareness essential.
  • Avoid contributing to harmful military/surveillance specifically.
  • Civilian-focused application emphasize.
  • Public discourse engage.

মূল উপলব্ধি: Researcher = decision maker. Technology not neutral. Redmon's stance — moral leadership-এর rare example. Personal ethics + AI development = inseparable.

প্র ০২ YOLOv1-এ একটি grid cell দু'টি object আছে এমন situation handle কীভাবে? পরবর্তী version-এ কী fix?

এটি YOLOv1-এর fundamental limitation. Famous "two-cat-in-one-grid" problem.

YOLOv1 limitation:

  • Each grid cell predict 2 box, but same class.
  • Two different class object same cell-এ → only one detected.
  • Crowded scene — bird flock — many missed.
  • "YOLO weakness" — small densely packed objects.

YOLOv2 fixes:

  • Anchor box concept (Faster R-CNN-inspired).
  • 5 anchor per cell (different size/ratio).
  • Each anchor own class prediction.
  • Now 5 different objects/classes per cell possible.

YOLOv3 multi-scale:

  • 3 detection head (different feature map scale).
  • Small object — high-resolution head.
  • Large object — low-resolution head.
  • 3 anchor per scale × 3 scale = 9 anchor effective.

YOLOv4-v7 refinements:

  • PANet, FPN improvements.
  • Attention mechanism integration.
  • Better anchor matching (TaskAlignedAssigner).

YOLOv8 anchor-free:

  • Each cell predict 1 box directly (no anchor).
  • Distance from center — width/height (DFL distribution).
  • Crowded scene handling depends on grid density.

Modern crowded-scene approaches:

  • Soft-NMS: overlapping detection partially keep.
  • CrowdDet, RepPoints: custom head.
  • DETR: set prediction natively crowded scene OK.

Bangladesh use case:

  • Dhaka rush hour traffic — extremely crowded.
  • Vehicle count benchmark — important.
  • YOLOv8 + Soft-NMS pragmatic.
  • RT-DETR alternative — set prediction better.

Test:

  • OBB (Oriented Bounding Box) — rotated objects.
  • YOLOv8-OBB exists.
  • Aerial images, document scan — useful.

মূল উপলব্ধি: Architecture limitation — gradually solved through evolution. YOLOv1's bug → YOLOv8's solution. ML iteration discipline.

প্র ০৩ Ultralytics YOLOv8 — open source কিন্তু AGPL license. Bangladesh startup-এর জন্য কী মানে? Alternative কী?

Open-source AI-র legal landscape — দেখতে friendly, actually nuanced.

AGPL-3.0 explained:

  • Affero GPL — strictest open-source license.
  • "Network use" trigger — SaaS-এ source code expose obligation.
  • Modification public-এ ছাড়তে হয়।
  • Commercial use — যদি আপনার product source release করতে রাজি — free.
  • Closed-source SaaS — Ultralytics paid license চাই।

Pricing (Ultralytics):

  • Free for: research, education, open-source project.
  • Enterprise license — custom pricing (থেকে $1000/year-ও বেশি)।
  • Bangladesh startup-এর জন্য — significant cost.

Implications:

  • Internal use OK (no service to external user).
  • SaaS deployment — license obligation.
  • API exposed to customer — likely AGPL trigger.
  • Mobile app distribute — ambiguous, often safer to license.

Permissive alternatives:

  • YOLOv5 (পুরোনো): historically GPL, community fork MIT exist.
  • YOLOX (Apache 2.0): Megvii/Ultralytics-independent.
  • YOLO-NAS (Apache 2.0): Deci AI.
  • RT-DETR (Apache 2.0): Baidu.
  • D-FINE (Apache 2.0): latest.
  • torchvision detection (BSD): Faster R-CNN, FCOS.
  • MMDetection (Apache 2.0): OpenMMLab — vast collection.

Migration path for startup:

  • Prototype: YOLOv8 — quick development.
  • Pre-launch: migrate to RT-DETR বা YOLOX.
  • Train custom: any architecture, weight your own.
  • ONNX deployment: framework-agnostic inference.

Bangladesh-specific:

  • Many startup unaware of license.
  • Audit existing code.
  • Lawyer consult before commercial deploy.
  • Government project — Apache/MIT preferable.

Best practice:

  • License check first day of selecting library.
  • Track license changes (libraries update license).
  • Document open-source compliance.
  • SBOM (Software Bill of Materials) maintain.

মূল উপলব্ধি: "Open source" ≠ "free for any use". License awareness — engineer-এর responsibility. Bangladesh tech ecosystem — license literacy critical for sustainable business.

প্র ০৪ YOLO mobile-এ deploy করতে quantization, pruning, ONNX. Pipeline কী? Bangladesh-এর low-end Android-এ কোন config?

Mobile YOLO deployment — production engineering-এর core challenge.

Pipeline:

  1. Train YOLO PyTorch.
  2. Export ONNX format.
  3. Quantize INT8 (post-training).
  4. Convert TFLite/CoreML/NCNN.
  5. Mobile SDK integrate.
  6. Benchmark device-specific.

Step 1 — ONNX export:

from ultralytics import YOLO
model = YOLO('yolov8n.pt')
model.export(format='onnx', imgsz=320)  # 320 mobile-friendly

Step 2 — Quantization:

  • FP32 → INT8 — 4x size reduction, 2-3x speedup.
  • Calibration set — 100-1000 representative images.
  • Accuracy drop 1-3% typical.

Step 3 — Format conversion:

  • TFLite (Android): Google standard, NPU support.
  • CoreML (iOS): Apple Neural Engine optimize.
  • NCNN (Tencent): ARM CPU + GPU.
  • MNN (Alibaba): alternative.
  • SNPE (Qualcomm): Hexagon DSP.

Image size choice:

  • 640 — desktop default.
  • 416 — mobile high-end.
  • 320 — mid-range mobile.
  • 224 — low-end (accuracy drop).

Model variant for Bangladesh devices:

  • iPhone 12+: YOLOv8s, 416, FP16.
  • Mid-range Android (Snapdragon 7-series): YOLOv8n, 416, INT8.
  • Walton/Symphony low-end: YOLOv8n, 320, INT8 + heavy pruning.
  • Embedded (Raspberry Pi 4): YOLOv8n, 320, INT8.

Latency targets:

  • Realtime (30 FPS): <33 ms.
  • Acceptable interactive: <100 ms.
  • Batch processing: any.

Pruning:

  • Magnitude pruning — small weight zero.
  • Structured pruning — entire channel/filter remove.
  • 2-5x speedup possible, 5-10% accuracy cost.

Knowledge distillation:

  • Teacher (YOLOv8x) → Student (YOLOv8n).
  • Teacher's soft prediction guide student.
  • Student accuracy bump (~2-3%).

Bangladesh-specific challenges:

  • Battery life — power-efficient inference.
  • Background CPU usage tax.
  • Network — model download size.
  • Update strategy — over-the-air model.

Real example:

  • Pathao bike helmet detection — YOLOv8n quantized.
  • 10 Minute School OCR — YOLO + Tesseract pipeline.
  • Praava Health — medical sign detection mobile.

মূল উপলব্ধি: Mobile deployment — model architecture-এর সমান optimization-এ চাই। Bangladesh device diversity — multi-tier strategy. Engineer-এর full-stack skill — research থেকে edge.

অনুশীলন

  1. Output dimension: YOLOv1-এর 7×7 grid, 2 box, 20 class — output shape কী?

    $7 \times 7 \times (2 \times 5 + 20) = 7 \times 7 \times 30$।

  2. Train YOLOv8: custom Bangla traffic dataset-এ YOLOv8n train, 100 epoch — কোডটি লিখুন।
    from ultralytics import YOLO
    model = YOLO('yolov8n.pt')
    results = model.train(
        data='traffic.yaml',
        epochs=100,
        imgsz=640,
        batch=16,
        device=0,  # GPU
        project='runs/traffic',
        name='exp1'
    )
  3. ভাবুন: YOLOv8 vs Faster R-CNN — accuracy gap shrunk. YOLO কেন এখনো dominant production-এ?

    (1) Speed — realtime essential many use case. (2) Ecosystem — Ultralytics tooling. (3) Mobile-friendly variants. (4) Easy fine-tune. Faster R-CNN — research/medical/specialized.

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

কোড রানার কাজ না করলে? ব্রাউজারে কাজ না করলে Google Colab ব্যবহার করুন — Google-এর ফ্রি অনলাইন Python পরিবেশ, শুধু Gmail অ্যাকাউন্ট লাগে।
পূর্ববর্তী পাঠ
পাঠ ১৮ · R-CNN family