সরাসরি প্রধান সামগ্রীতে চলে যান

ইমেজ ক্লাসিফিকেশনের জন্য ফিচার ইঞ্জিনিয়ারিং (Feature Engineering)

ভূমিকা

আমাদের আগের ভিডিওগুলোতে আমরা শিখেছি কীভাবে ইমেজগুলো ক্রপ (crop) বা সাইজ অনুযায়ী কাটতে হয়। আজকের এই পর্বে আমরা শিখব ফিচার ইঞ্জিনিয়ারিং কী এবং কেন এটি ইমেজ ক্লাসিফিকেশনের জন্য জরুরি। সহজ কথায়, মেশিনের কাছে ছবিকে আরও অর্থবহ করে তোলার প্রক্রিয়াকেই আমরা এখানে ফিচার ইঞ্জিনিয়ারিং বলছি।


ওয়েভলেট ট্রান্সফর্ম (Wavelet Transform) কি এবং কেন ব্যবহার করব?

ভিডিও রেফারেন্স: [00:07] থেকে দেখুন কীভাবে ওয়েভলেট ট্রান্সফর্ম কাজ করে।

ওয়েভলেট ট্রান্সফর্ম এমন একটি কৌশল যা ছবির ভেতরের মূল ফিচারগুলো (যেমন: চোখ, নাক, ঠোঁট) আলাদা করতে সাহায্য করে। সাধারণ রঙিন ছবি কম্পিউটার বুঝতে হিমশিম খায়, কিন্তু যখন আমরা ছবির ওপর ওয়েভলেট ট্রান্সফর্ম করি, তখন সেটি দেখতে অনেকটা ব্ল্যাক অ্যান্ড হোয়াইট ছবির মতো হয়ে যায়। এই ছবিতে চোখের কোণা বা নাকের গঠন খুব স্পষ্ট বোঝা যায়, যা কম্পিউটারকে খুব সহজে বুঝতে সাহায্য করে যে ছবির ব্যক্তিটি কে।

সহজ ভাষায়:

  • ফিচার (Feature): ছবির ভেতরকার বিশেষ অংশ যেমন চোখ, মুখ বা নাকের আকৃতি।

  • মডেল (Model): এটি একটি ছোট প্রোগ্রামের মতো যা ডেটা দেখে শেখার চেষ্টা করে।

  • ওয়েভলেট ট্রান্সফর্ম: একটি গাণিতিক পদ্ধতি যা ছবির মূল অংশগুলোকে হাইলাইট করে এবং বাড়তি নয়েজ বা অপ্রয়োজনীয় তথ্য কমিয়ে দেয়।


ডেটা প্রিপারেশন এবং স্ট্যাকিং (Stacking)

মেশিন লার্নিং মডেলে ডেটা দেওয়ার আগে আমাদের ইমেজগুলোকে সুন্দর করে সাজাতে হয়। আমরা এখানে দুটি জিনিস করছি: ১. মূল রঙিন ছবি (Raw Image) ব্যবহার করছি। ২. ওয়েভলেট ট্রান্সফর্ম করা ছবি ব্যবহার করছি।

এই দুটিকে আমরা ওপর-নিচ করে জোড়া বা ভার্টিক্যালি স্ট্যাক (Vertically Stack) করছি। এতে মডেলটি একই সাথে ছবির সাধারণ গঠন এবং সূক্ষ্ম ফিচার—দুটোই একসাথে দেখতে পায়।

কোডিং কনসেপ্ট: নিচে দেখানো হয়েছে কীভাবে ছবিগুলোকে প্রসেস করে X (ইনপুট) এবং Y (আউটপুট/নাম) তৈরি করা হয়:

Python

import numpy as np
import cv2
import pywt

# ওয়েভলেট ট্রান্সফর্ম করার ফাংশন
def w2d(img, mode='haar', level=1):
    imArray = img
    # রঙিন ছবিকে গ্রেস্কেলে কনভার্ট করা
    imArray = cv2.cvtColor(imArray, cv2.COLOR_BGR2GRAY)
    imArray = np.float32(imArray)
    imArray /= 255
    # ওয়েভলেট ট্রান্সফর্ম প্রয়োগ করা
    coeffs = pywt.wavedec2(imArray, mode, level=level)
    coeffs_H = list(coeffs)
    coeffs_H[0] *= 0
    imArray_H = pywt.waverec2(coeffs_H, mode)
    imArray_H *= 255
    imArray_H = np.uint8(imArray_H)
    return imArray_H

# এটি ব্যবহার করে আমরা ইমেজগুলোকে প্রসেস করে একটি লিস্টে রাখছি
# এরপর numpy ব্যবহার করে সেগুলোকে স্ট্যাক (stack) করছি 

কোড ব্যাখ্যা:

  • cv2.cvtColor: রঙিন ছবিকে ধূসর বা ব্ল্যাক অ্যান্ড হোয়াইট করা হচ্ছে।

  • pywt.wavedec2: এটি ওয়েভলেট ট্রান্সফর্মের মূল লাইব্রেরি ফাংশন যা ছবি বিশ্লেষণ করে।

  • np.vstack: এটি আমাদের মূল ছবি এবং প্রসেস করা ছবিকে একটির ওপর আরেকটি বসিয়ে দিচ্ছে, যা মডেলের জন্য খুব উপকারী।


X এবং Y ডেটাসেট তৈরি

মেশিন লার্নিং মডেল কিন্তু মানুষের নাম বুঝতে পারে না, সে কেবল সংখ্যা বোঝে। তাই আমরা প্রতিটি সেলিব্রেটির নামকে একটি নির্দিষ্ট সংখ্যা (Class label) দিয়ে দিচ্ছি। সবশেষে আমরা X (ছবিগুলো) এবং Y (সংখ্যায় দেওয়া নামগুলো) প্রস্তুত করছি যা পরবর্তী ভিডিওতে মডেল ট্রেনিংয়ের জন্য ব্যবহার করা হবে।


বিশ্লেষণ এবং মতামত

এই ভিডিওটিতে ভিডিও ক্রিয়েটর খুব সুন্দরভাবে দেখিয়েছেন যে কেবল কাঁচা ছবি দিয়ে মেশিন লার্নিং মডেল ট্রেনিং না করে যদি ফিচার ইঞ্জিনিয়ারিং করা যায়, তবে মডেলের নির্ভুলতা (Accuracy) অনেক বেড়ে যায়।

  • বাস্তবতা: বাস্তবে ছবির আকার বা কোয়ালিটি সবসময় এক থাকে না, তাই cv2.resize() ব্যবহার করে সব ছবিকে একই সাইজে নিয়ে আসা খুব জরুরি।

  • পরামর্শ: যদি আপনার ছবির পরিমাণ খুব বেশি হয়, তবে কেবল ওয়েভলেট ট্রান্সফর্ম নয়, আরও উন্নত কম্পিউটার ভিশন পদ্ধতি যেমন CNN (Convolutional Neural Networks) ব্যবহার করার কথা ভাবতে পারেন। এটি বর্তমানে ইমেজের ফিচার নিজে থেকেই শিখতে পারে, ফলে ম্যানুয়ালি ফিচার ইঞ্জিনিয়ারিংয়ের প্রয়োজন কমে যায়।

এই প্রজেক্টটি যারা ডেটা সায়েন্সে নতুন, তাদের জন্য একটি দুর্দান্ত হাতে-কলমে শেখার সুযোগ। ধাপগুলো মনোযোগ দিয়ে অনুসরণ করলে আপনি নিজের ফেস ডিটেকশন মডেল তৈরি করতে পারবেন।

ভিডিও লিঙ্ক: https://www.youtube.com/watch?v=sWAPtaBZKBQ

[

Data Science & Machine Learning Project - Part 4 Feature Engineering | Image Classification

codebasics · 62K views

](http://www.youtube.com/watch?v=sWAPtaBZKBQ)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...