Deep Learning দিয়ে Image Classification প্রজেক্ট

বাস্তব উদাহরণ এবং ডেমো - এইচ২ও (H2O) - Machine Learning

324

Image Classification হল একটি জনপ্রিয় Deep Learning সমস্যা, যেখানে মডেলটি একটি চিত্রের মধ্যে বস্তু বা শ্রেণী চিহ্নিত করতে সক্ষম হয়। এই প্রজেক্টে আমরা একটি সাধারণ Convolutional Neural Network (CNN) ব্যবহার করে একটি Image Classification প্রজেক্ট তৈরি করব।

এখানে আমরা Keras এবং TensorFlow ব্যবহার করে একটি Image Classification মডেল তৈরি করব, যা একটি পপুলার ডেটাসেট যেমন CIFAR-10 বা MNIST ডেটাসেট ব্যবহার করবে।


১. প্রজেক্টের উদ্দেশ্য

এই প্রজেক্টের উদ্দেশ্য হলো একটি Image Classification মডেল তৈরি করা, যা একটি চিত্রের শ্রেণী চিহ্নিত করবে। আমরা এই মডেলটিকে Deep Learning এর মাধ্যমে প্রশিক্ষণ দিব, যেখানে CNN ব্যবহার করা হবে।


২. প্রয়োজনীয় প্যাকেজ ইনস্টলেশন

এই প্রজেক্টে TensorFlow এবং Keras লাইব্রেরি ব্যবহার করা হবে। প্রথমে এই লাইব্রেরিগুলি ইনস্টল করুন:

pip install tensorflow

৩. ডেটাসেট লোড করা

আমরা CIFAR-10 ডেটাসেট ব্যবহার করব, যা ১০টি শ্রেণীতে বিভক্ত ৬০,০০০ চিত্র নিয়ে গঠিত। আমরা এই ডেটাসেটটি Keras থেকে সরাসরি লোড করব।

import tensorflow as tf
from tensorflow.keras.datasets import cifar10

# ডেটাসেট লোড করা
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

# ডেটার স্কেল পরিবর্তন করা (0-255 থেকে 0-1)
x_train, x_test = x_train / 255.0, x_test / 255.0

এখানে x_train এবং x_test চিত্রের ডেটা, এবং y_trainy_test তাদের শ্রেণী ট্যাগ।


৪. মডেল তৈরি করা (CNN)

এখন আমরা একটি Convolutional Neural Network (CNN) তৈরি করব, যা ইমেজ ক্লাসিফিকেশন কাজের জন্য খুবই কার্যকর। আমরা এখানে ২টি কনভলিউশনাল লেয়ার এবং ডেন্স লেয়ার ব্যবহার করব।

from tensorflow.keras import layers, models

# মডেল তৈরি করা
model = models.Sequential([
    # প্রথম কনভলিউশনাল লেয়ার
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    layers.MaxPooling2D((2, 2)),

    # দ্বিতীয় কনভলিউশনাল লেয়ার
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),

    # তৃতীয় কনভলিউশনাল লেয়ার
    layers.Conv2D(64, (3, 3), activation='relu'),

    # ফ্ল্যাট লেয়ার
    layers.Flatten(),
    layers.Dense(64, activation='relu'),

    # আউটপুট লেয়ার (১০টি শ্রেণী)
    layers.Dense(10)
])

# মডেল সংক্ষেপ দেখুন
model.summary()

৫. মডেল কম্পাইল করা

এখন আমাদের মডেল কম্পাইল করতে হবে। আমরা Sparse Categorical Crossentropy লস ফাংশন এবং Adam Optimizer ব্যবহার করব।

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

৬. মডেল প্রশিক্ষণ (Training the Model)

এখন আমরা আমাদের CNN মডেলটি ট্রেনিং করব। আমরা ১০টি ইপোকের জন্য ট্রেনিং করব।

history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

এটি আমাদের মডেলটি ট্রেনিং করবে এবং প্রতি ইপোক শেষে পরীক্ষামূলক ডেটার উপর মূল্যায়ন করবে।


৭. মডেল মূল্যায়ন (Model Evaluation)

মডেল প্রশিক্ষণ শেষে, আমরা পরীক্ষা ডেটাসেট ব্যবহার করে মডেলটির পারফরম্যান্স মূল্যায়ন করব।

test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print(f'\nTest accuracy: {test_acc}')

এটি পরীক্ষা ডেটাসেটের উপর মডেলটির একিউরেসি পরিমাপ করবে এবং স্কোর দেখাবে।


৮. পূর্বাভাস তৈরি (Making Predictions)

আপনি মডেলটি প্রশিক্ষণ দেওয়ার পর, নতুন চিত্রের জন্য পূর্বাভাস তৈরি করতে পারেন।

predictions = model.predict(x_test)

# পূর্বাভাস দেখানো (প্রথম ৫টি চিত্র)
print(predictions[:5])

এটি predictions তালিকায় প্রথম ৫টি পূর্বাভাস দেখাবে, যেখানে প্রতিটি পূর্বাভাস একটি ভেক্টর হবে যা বিভিন্ন শ্রেণীর জন্য আউটপুট স্কোর প্রদান করবে।


৯. মডেল সংরক্ষণ (Saving the Model)

প্রশিক্ষিত মডেলটি সংরক্ষণ করা যাবে, যাতে ভবিষ্যতে পুনরায় ব্যবহার করা যায়।

model.save('image_classification_model.h5')

এটি একটি image_classification_model.h5 ফাইল তৈরি করবে, যা আপনি পরে লোড এবং ব্যবহার করতে পারবেন।


১০. সারাংশ

এই প্রজেক্টে আমরা একটি সাধারণ Convolutional Neural Network (CNN) ব্যবহার করে Image Classification প্রজেক্ট তৈরি করেছি। H2O.ai বা TensorFlow/Keras ব্যবহারের মাধ্যমে সঠিকভাবে টিউন করা মডেলগুলি, বিশেষ করে CNN মডেলগুলো ইমেজ ক্লাসিফিকেশনে অত্যন্ত কার্যকরী।

এটি একটি খুব সহজ Image Classification প্রজেক্ট উদাহরণ ছিল যা CIFAR-10 ডেটাসেট ব্যবহার করেছে, তবে আপনি অন্য যেকোনো ডেটাসেটও ব্যবহার করতে পারেন একই প্রক্রিয়া অনুসরণ করে।

Content added By
Promotion

Are you sure to start over?

Loading...