অধ্যায়Phase 1 · ফাউন্ডেশন
1.1 12 মিনিট পড়া

Computer Vision কী এবং কেন

Introduction

মেশিন কীভাবে ছবি দেখে এবং বোঝে।

🎬 গল্প দিয়ে শুরু
কল্পনা করুন — ঢাকা শহরের একটি ব্যস্ত ট্রাফিক সিগন্যাল। হাজারো গাড়ি, রিকশা, মানুষ। একজন ট্রাফিক পুলিশ চোখ দিয়ে দেখেন, মস্তিষ্ক দিয়ে বোঝেন, এবং সিদ্ধান্ত নেন। এখন প্রশ্ন — একটি ক্যামেরাকে কি এমনভাবে শেখানো সম্ভব যাতে সে নিজেই গাড়ি গুনতে পারে, ভুল লেন শনাক্ত করতে পারে, এমনকি দুর্ঘটনার পূর্বাভাস দিতে পারে?

এই “মেশিনের চোখ ও মস্তিষ্ক”-কে সম্ভব করার বিজ্ঞানই — Computer Vision

Computer Vision আসলে কী?

Computer Vision (CV) হলো Artificial Intelligence-এর একটি শাখা যেখানে আমরা কম্পিউটারকে শেখাই কীভাবে ছবি বা ভিডিও থেকে অর্থপূর্ণ তথ্য (meaningful information) বের করতে হয়।

সহজ ভাষায়: যেমন মানুষ চোখ দিয়ে দেখে এবং মস্তিষ্ক দিয়ে চিনতে পারে যে “এটা একটা বিড়াল”, ঠিক তেমনি একটি Computer Vision সিস্টেম pixel-এর সমুদ্র থেকে বুঝতে পারে — এটা বিড়াল, কুকুর, গাড়ি বা মানুষ।

মূল সংজ্ঞা
Computer Vision = ছবি/ভিডিও → অর্থ (meaning) বের করার বিজ্ঞান। এটি একইসাথে গণিত (linear algebra, calculus), প্রোগ্রামিং (Python, C++) এবং AI (deep learning)-এর সমন্বয়।

কেন এটি গুরুত্বপূর্ণ?

২০২৫ সালে এসে আমাদের চারপাশের প্রায় সব smart system-এর পেছনে কাজ করছে Computer Vision। কয়েকটি বাস্তব উদাহরণ —

  • Facebook/Google আপনার ছবিতে অটো-ট্যাগ করে — face recognition দিয়ে।
  • bKash/Nagad eKYC-তে NID যাচাই করে — OCR + face matching দিয়ে।
  • Tesla-এর self-driving গাড়ি — multi-camera object detection দিয়ে।
  • হাসপাতালে X-Ray/MRI বিশ্লেষণ — medical image segmentation দিয়ে।
  • Amazon/Daraz warehouse-এ barcode-হীন product scan — visual recognition দিয়ে।
  • ঢাকার নতুন smart traffic camera সিস্টেম — vehicle counting + plate recognition দিয়ে।
বাংলাদেশ context
বাংলাদেশে CV-based startup ও chakri-র সংখ্যা দ্রুত বাড়ছে — agritech (ফসলের রোগ শনাক্ত), fintech (eKYC), retail (queue analytics) এবং surveillance খাতে।

ভেতরে কীভাবে কাজ করে?

একটি সাধারণ Computer Vision pipeline-এ ৪টি ধাপ থাকে:

  1. Image Acquisition — ক্যামেরা/ফাইল থেকে ছবি নেওয়া।
  2. Preprocessing — resize, denoise, color correction।
  3. Feature Extraction / Model Inference — edge, corner, বা neural network feature বের করা।
  4. Decision / Output — classification, detection, segmentation, বা action।
মনে রাখার সহজ analogy
ছবি = কাঁচামাল (raw material) → preprocessing = পরিষ্কার করা → model = মস্তিষ্ক → output = সিদ্ধান্ত।

Visual Intuition

মেশিনের কাছে একটি রঙিন ছবি মানে — একটি 3D সংখ্যার ম্যাট্রিক্স (height × width × 3 channel)। আপনি যেটাকে “লাল গোলাপ” বলে চিনছেন, মেশিনের কাছে সেটা শুধু কতগুলো সংখ্যা — যেমন R=220, G=20, B=60। CV-এর কাজ হলো এই সংখ্যাগুলোকে অর্থে রূপান্তর করা।

প্রথম Python কোড — ছবিকে সংখ্যা হিসেবে দেখা

চলুন OpenCV দিয়ে দেখি একটি ছবি কম্পিউটারের কাছে কেমন দেখায়।

python
first_look.py
import cv2
import numpy as np

# Read an image from disk
image = cv2.imread("sample.jpg")

# Print shape: (height, width, channels)
print("Shape:", image.shape)
print("Data type:", image.dtype)
print("Top-left pixel (BGR):", image[0, 0])

# Show the image in a window
cv2.imshow("First Look", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
লাইন-বাই-লাইন ব্যাখ্যা
import cv2
OpenCV library import — image processing-এর জন্য primary tool।
import numpy as np
NumPy — ছবি আসলে একটি numpy array, তাই অপরিহার্য।
cv2.imread("sample.jpg")
ডিস্ক থেকে ছবি পড়ে। Return করে একটি 3D numpy array (BGR order, RGB নয়!)।
image.shape
(height, width, 3) — 3 মানে BGR channel।
image[0, 0]
প্রথম pixel-এর intensity value — [B, G, R] format-এ।
cv2.imshow(...)
একটি window-তে ছবি দেখায়। waitKey(0) মানে যেকোনো key চাপ পর্যন্ত wait।
সাধারণ ভুল
OpenCV ছবি পড়ে BGR order-এ, RGB-তে নয়। Matplotlib দিয়ে দেখালে রঙ উল্টো দেখায়। ঠিক করতে হবে: cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

বাস্তব উদাহরণ — বাংলাদেশ থেকে

🚦 ঢাকা ট্রাফিক ক্যামেরা

মিরপুর-১০ মোড়ে বসানো একটি CCTV ক্যামেরা প্রতি সেকেন্ডে ৩০টি frame ক্যাপচার করে। একটি CV সিস্টেম প্রতিটি frame-এ — গাড়ি detect করে, count করে, এবং signal timing dynamically ঠিক করে। ফলাফল: যানজট ১৫–২০% কমা সম্ভব।

🏥 হাসপাতালে X-Ray স্ক্রিনিং

ঢাকা মেডিকেল কলেজে একটি CV মডেল প্রতিদিন হাজারখানেক chest X-Ray-তে নিউমোনিয়ার চিহ্ন খুঁজে দেয় — radiologist-এর কাজ ৪০% দ্রুত করে।

Best Practices ও সাধারণ ভুল

  • সব সময় BGR vs RGB মনে রাখুন — OpenCV BGR, Matplotlib/PyTorch RGB।
  • ছবির dtype চেক করুন — uint8 (0–255) নাকি float32 (0.0–1.0)?
  • Production-এ কখনো hard-coded path দেবেন না — pathlib ব্যবহার করুন।
  • প্রথমেই deep learning দিয়ে শুরু করবেন না — classical CV ভিত্তি মজবুত করুন।
প্র্যাকটিস টাস্ক
  1. নিজের একটি ছবি লোড করে তার shape, dtype এবং প্রথম ১০টি pixel value print করুন।
  2. ছবিটিকে BGR থেকে RGB-তে রূপান্তর করে matplotlib দিয়ে দেখান।
  3. ছবির শুধু blue channel আলাদা করে gray image হিসেবে save করুন।

সারসংক্ষেপ

  • Computer Vision = মেশিনকে ছবি থেকে অর্থ বের করতে শেখানো।
  • এর pipeline: Acquisition → Preprocessing → Feature/Model → Output।
  • মেশিনের কাছে ছবি = সংখ্যার 3D matrix।
  • Python + OpenCV + NumPy — আমাদের core toolkit।
  • পরবর্তী অধ্যায়ে আমরা দেখব মানুষের দৃষ্টি বনাম মেশিন দৃষ্টির গভীর পার্থক্য।