পরিচিতি
মেশিন লার্নিং বা এআই মডেলে কোনো ছবি দেখে সেটা কার ছবি তা শনাক্ত করার আগে কিছু প্রস্তুতিমূলক কাজ করতে হয়। আমরা গত ভিডিওগুলোতে ছবিগুলো ক্রপ (crop) বা কেটে ছোট করে নিয়েছিলাম। এই ভিডিওতে আমরা শিখব কীভাবে সেই ছবিগুলো থেকে গুরুত্বপূর্ণ তথ্য বা ফিচার (feature) বের করে আনা যায়। মূলত, কম্পিউটারের জন্য ছবির প্রতিটি পিক্সেলকে এমনভাবে তৈরি করা যাতে সে সহজেই মুখমন্ডলের বৈশিষ্ট্য (যেমন চোখ, নাক, ঠোঁট) বুঝতে পারে। এই প্রক্রিয়াকেই বলে 'ফিচার ইঞ্জিনিয়ারিং'।
ওয়েভলেট ট্রান্সফর্ম কী?
ভিডিও লিঙ্ক: https://www.youtube.com/watch?v=sWAPtaBZKBQ [00:07]
ওয়েভলেট ট্রান্সফর্ম (Wavelet Transform) হলো একটি গাণিতিক পদ্ধতি, যা ব্যবহার করে ছবির গুরুত্বপূর্ণ অংশগুলো আলাদা করা যায়। সাধারণ রঙিন ছবিতে অনেক রঙের শেড থাকে, যা কম্পিউটার সহজে বুঝতে পারে না। ওয়েভলেট ট্রান্সফর্ম ছবিটিকে একটি বিশেষ ব্ল্যাক-অ্যান্ড-হোয়াইট ফরম্যাটে নিয়ে আসে, যেখানে চোখের কোণ, নাক বা ঠোঁটের মতো অংশগুলো খুব স্পষ্টভাবে ফুটে ওঠে। কম্পিউটারের জন্য এই তথ্যগুলোই আসল 'ফিচার'।
সহজ ব্যাখ্যা: চিন্তা করুন একটি জটিল রান্না করা খাবার (ছবি), আর তার আসল উপকরণগুলো (চোখ, নাক, ঠোঁট) আলাদা করা। ওয়েভলেট ট্রান্সফর্ম অনেকটা সেই মশলাপাতি বা উপাদানের মতো যা একটি সাধারণ ছবিকে ভেঙে তার মূল গঠন স্পষ্ট করে দেয়।
ইমেজ প্রসেসিং ও কোডিং
আমরা এখন পাইথন কোড ব্যবহার করে ছবিগুলো প্রসেস করব। এখানে আমরা দুই ধরণের ডেটা নিচ্ছি: ১. মূল ছবি (Raw Image): এর সাধারণ বৈশিষ্ট্য বোঝার জন্য। ২. ওয়েভলেট ট্রান্সফর্ম করা ছবি: এর সূক্ষ্ম বৈশিষ্ট্য বোঝার জন্য।
এই দুই ধরণের ছবিকে আমরা উপর-নিচ করে জোড়া (Vertical Stacking) দেব, যাতে মডেল একই সাথে উভয় ধরণের তথ্য পায়।
Python
# একটি কাল্পনিক কোড স্নীপেট যা ভিডিওর ধারণার ওপর ভিত্তি করে তৈরি
import numpy as np
import cv2
import pywt
def w2d(img):
# এটি ওয়েভলেট ট্রান্সফর্ম করার একটি ফাংশন
coeffs = pywt.wavedec2(img, 'db1', level=2)
# প্রসেসিং করার পর নতুন ছবি রিটার্ন করবে
return processed_img
# ছবি প্রসেসিং ও স্ট্যাকিং
combined_img = np.vstack((scaled_raw_img, scaled_wavelet_img))
কোড ব্যাখ্যা:
-
pywt.wavedec2: এটি ওয়েভলেট ট্রান্সফর্ম করার প্রধান ফাংশন। -
np.vstack: এটি দুটি ছবিকে লম্বালম্বিভাবে একসাথে জোড়া দেয় (Vertical Stacking)। এর ফলে মডেলের কাছে ইনপুট হিসেবে অনেক বেশি শক্তিশালী ডেটা যায়।
মডেলের জন্য ডেটা সেট তৈরি (X ও Y)
মেশিন লার্নিং মডেলকে শেখানোর জন্য আমাদের দুটি জিনিস লাগে— X এবং Y।
-
X (Features): আমাদের প্রসেস করা ছবিগুলো (ছবিগুলোকে সংখ্যায় রূপান্তর করা হয়েছে)।
-
Y (Labels): ছবিগুলো কোন ব্যক্তির, সেই নামের একটি সংখ্যাবাচক কোড (যেমন: মেসি = ০, অন্য খেলোয়াড় = ১)।
ভিডিওটিতে দেখা গেছে কীভাবে for লুপ ব্যবহার করে প্রতিটি ছবিকে প্রসেস করে এই X এবং Y ডেটা সেট তৈরি করা হয়েছে। [10:17]
বিশ্লেষণ ও উপলব্ধি
এই পুরো প্রক্রিয়ার মূল উদ্দেশ্য হলো ডেটাকে এমন পর্যায়ে নিয়ে আসা যাতে মেশিন লার্নিং অ্যালগরিদম খুব কম ভুল করে।
আমার চিন্তা ও পরামর্শ: ১. বাস্তবসম্মত ধারণা: বাস্তবে সব ছবি সবসময় পরিষ্কার থাকে না। তাই ভালো মানের ডেটাসেট তৈরির জন্য ছবিগুলো সঠিকভাবে ক্রপ করা এবং নয়েজ (অপ্রয়োজনীয় অংশ) দূর করা খুব জরুরি। ২. বিকল্প উপায়: ওয়েভলেট ট্রান্সফর্ম ছাড়াও বর্তমানে অনেক উন্নত 'ডিপ লার্নিং' (যেমন CNN - Convolutional Neural Networks) পদ্ধতি আছে যা ছবি থেকে নিজেই ফিচার শিখে নিতে পারে। তবে প্রাথমিক পর্যায়ের শেখার জন্য ওয়েভলেট ট্রান্সফর্ম বুঝতে পারা খুবই কার্যকর একটি ভিত্তি। ৩. পরবর্তী পদক্ষেপ: এখন যেহেতু আমাদের X ও Y রেডি, পরবর্তী ধাপে এই ডেটা দিয়ে মডেল ট্রেইনিং করা হবে। মডেল ট্রেইনিং করার সময় ডেটা যদি পরিষ্কার বা ক্লিন না থাকে, তবে মডেল ভালো রেজাল্ট দেবে না। তাই এই ধাপটি পুরো প্রকল্পের হৃদপিণ্ডস্বরূপ।
আপনি যদি ডেটা সায়েন্স নিয়ে নতুন কাজ শুরু করেন, তবে ওয়েভলেট ট্রান্সফর্মের পেছনের গণিতটা বিস্তারিত না বুঝলেও সমস্যা নেই, এর প্রয়োগটা বুঝতে পারলেই চলবে। সময়ের সাথে সাথে এই কনসেপ্টগুলো আপনার কাছে আরও সহজ মনে হবে।
[
Data Science & Machine Learning Project - Part 4 Feature Engineering | Image Classification
codebasics · 62K views
](http://www.youtube.com/watch?v=sWAPtaBZKBQ)

মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d