Image Classification প্রজেক্ট উদাহরণ

কনভলিউশনাল নিউরাল নেটওয়ার্ক (CNN) - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) - Machine Learning

339

Image Classification হল একটি কম্পিউটার ভিশন সমস্যা যেখানে মডেলটি একটি ছবি অথবা ভিডিও ফ্রেম থেকে একটি নির্দিষ্ট ক্লাস বা ক্যাটাগরি চিহ্নিত করতে সক্ষম হয়। এই ধরনের সমস্যা সমাধানে Convolutional Neural Networks (CNNs) ব্যবহার করা হয়, যা ইমেজ ডেটার মধ্যে প্যাটার্ন এবং বৈশিষ্ট্য শিখে।

এখানে Python দিয়ে একটি Image Classification প্রজেক্ট উদাহরণ দেওয়া হলো, যেখানে TensorFlow এবং Keras লাইব্রেরি ব্যবহার করা হবে। আমরা CIFAR-10 ডেটাসেট ব্যবহার করব, যা ১০টি ভিন্ন ভিন্ন ক্লাসের ৬০,০০০ ছবি ধারণ করে। এই প্রজেক্টে আমরা একটি CNN মডেল তৈরি করব যা ছবির ক্লাসিফিকেশন করবে।

ধাপ ১: প্রজেক্টের জন্য প্রয়োজনীয় লাইব্রেরি ইনস্টলেশন

pip install tensorflow

ধাপ ২: ডেটাসেট লোড করা

CIFAR-10 ডেটাসেটটি TensorFlow এর মধ্যে অন্তর্ভুক্ত থাকে, এবং এটি সরাসরি keras.datasets থেকে লোড করা যায়।

import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras import layers, models

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

# ডেটার আকার দেখতে
print(X_train.shape)
print(X_test.shape)

ধাপ ৩: ডেটা প্রিপ্রসেসিং

এখানে ডেটাকে normalize (স্কেলিং) করা হবে, যাতে প্রতিটি পিক্সেল ভ্যালু ০ এবং ১ এর মধ্যে থাকে। এছাড়া, লেবেলগুলোকে one-hot encoding করা হবে।

# ডেটা নরমালাইজ করা (0-255 এর মধ্যে থেকে 0-1 রেঞ্জে নিয়ে আসা)
X_train, X_test = X_train / 255.0, X_test / 255.0

# লেবেলগুলোকে one-hot encoding এ রূপান্তর করা
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)

ধাপ ৪: CNN মডেল তৈরি করা

এখন আমরা একটি Convolutional Neural Network (CNN) তৈরি করব। এটি একটি সাধারণ CNN আর্কিটেকচার যেখানে কয়েকটি Conv2D লেয়ার, MaxPooling লেয়ার, এবং একটি Dense লেয়ার থাকবে।

# CNN মডেল তৈরি করা
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, activation='softmax')  # আউটপুট লেয়ার (10টি ক্লাসের জন্য)
])

# মডেল সংক্ষিপ্ত বিবরণ
model.summary()

ধাপ ৫: মডেল কম্পাইল করা

এখন মডেলটি compile করতে হবে, যাতে মডেলটি প্রশিক্ষণ শুরু করতে পারে। এখানে আমরা Adam optimizer, categorical crossentropy loss function, এবং accuracy মেট্রিক ব্যবহার করব।

model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

ধাপ ৬: মডেল ট্রেনিং করা

এখন আমরা মডেলটি train করব। ২০টি epoch এবং ব্যাচ সাইজ ৬৪ ব্যবহার করা হবে।

history = model.fit(X_train, y_train, epochs=20, batch_size=64, validation_data=(X_test, y_test))

ধাপ ৭: মডেল মূল্যায়ন করা

ট্রেনিং শেষে, মডেলটি test data দিয়ে মূল্যায়ন করা হবে। আমরা accuracy এবং loss মেট্রিক্স চেক করতে পারব।

test_loss, test_acc = model.evaluate(X_test, y_test)
print(f'Test accuracy: {test_acc}')

ধাপ ৮: ফলাফল ভিজ্যুয়ালাইজেশন

ট্রেনিং প্রক্রিয়ায় accuracy এবং loss এর পরিবর্তন চিত্রিত করা যেতে পারে।

import matplotlib.pyplot as plt

# accuracy গ্রাফ প্লট করা
plt.plot(history.history['accuracy'], label='accuracy')
plt.plot(history.history['val_accuracy'], label = 'val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.leg

# loss গ্রাফ প্লট করা
plt.plot(history.history['loss'], label='loss')
plt.plot(history.history['val_loss'], label='val_loss')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.legend(loc='upper right')
plt.show()

সারাংশ

এই উদাহরণে, আমরা CIFAR-10 ডেটাসেট ব্যবহার করে একটি Image Classification প্রজেক্ট তৈরি করেছি। Convolutional Neural Network (CNN) ব্যবহার করে আমরা একটি সিম্পল মডেল তৈরি করেছি এবং তা ট্রেনিং ও মূল্যায়ন করেছি। মডেলটি accuracy এবং loss সহ কিছু গুরুত্বপূর্ণ মেট্রিক্সের মাধ্যমে বিশ্লেষণ করা হয়েছে।

এটি একটি সাধারণ ইমেজ ক্লাসিফিকেশন প্রজেক্ট, যা TensorFlow এবং Keras লাইব্রেরি ব্যবহার করে সহজেই বাস্তবায়ন করা যেতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...