Image Classification এবং Object Detection মডেল তৈরি করা

Computer Vision এবং Leonardo AI - লিওনার্দো এআই (Leonardo AI) - Latest Technologies

415

Image Classification এবং Object Detection হল কম্পিউটার ভিশন এর দুটি গুরুত্বপূর্ণ শাখা, যা বিভিন্ন অ্যাপ্লিকেশনে ব্যবহৃত হয়। এখানে উভয় ক্ষেত্রে মডেল তৈরি করার প্রক্রিয়া আলোচনা করা হলো।

১. Image Classification

কৌশল এবং পদ্ধতি

Image Classification মডেলটি একটি ইমেজকে নির্দিষ্ট শ্রেণীতে শ্রেণীবদ্ধ করতে ব্যবহৃত হয়। নিচে একটি সাধারণ Image Classification মডেল তৈরির ধাপগুলি আলোচনা করা হলো।

ধাপ ১: পরিবেশ প্রস্তুতি

pip install tensorflow keras numpy matplotlib

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

আপনার ক্লাসিফিকেশন কাজের জন্য একটি ডেটাসেট নির্বাচন করুন। উদাহরণস্বরূপ, আমরা CIFAR-10 ডেটাসেট ব্যবহার করতে পারি।

import tensorflow as tf
from tensorflow.keras import datasets

# CIFAR-10 ডেটাসেট লোড করুন
(X_train, y_train), (X_test, y_test) = datasets.cifar10.load_data()

# ডেটাকে 0-1 স্কেলে নিন
X_train = X_train.astype('float32') / 255.0
X_test = X_test.astype('float32') / 255.0

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

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# মডেল তৈরি করা
model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    MaxPooling2D(pool_size=(2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D(pool_size=(2, 2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')  # 10 শ্রেণীর জন্য
])

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

ধাপ ৪: মডেল প্রশিক্ষণ

# মডেল প্রশিক্ষণ করা
model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))

ধাপ ৫: মডেল মূল্যায়ন

# মডেল মূল্যায়ন
test_loss, test_acc = model.evaluate(X_test, y_test, verbose=2)
print('\nTest accuracy:', test_acc)

২. Object Detection

Object Detection হল একটি প্রক্রিয়া যা একটি ইমেজের মধ্যে বিভিন্ন অবজেক্ট শনাক্ত করে এবং তাদের সীমানা বক্সের মাধ্যমে চিহ্নিত করে।

কৌশল এবং পদ্ধতি

Object Detection এর জন্য সাধারণত প্রি-ট্রেইনড মডেলগুলি ব্যবহার করা হয়, যেমন YOLO (You Only Look Once), SSD (Single Shot Multibox Detector), অথবা Faster R-CNN।

ধাপ ১: পরিবেশ প্রস্তুতি

pip install tensorflow opencv-python

ধাপ ২: ডেটাসেট নির্বাচন

Object Detection-এর জন্য COCO বা Pascal VOC ডেটাসেট ব্যবহার করতে পারেন। এই ডেটাসেটগুলি সাধারণত সীমানা বক্স এবং লেবেল সহ ইমেজ ধারণ করে।

ধাপ ৩: মডেল লোড করা

এখানে আমরা TensorFlow এর Model Zoo থেকে একটি প্রি-ট্রেইনড YOLO মডেল ব্যবহার করব।

import cv2
import numpy as np

# YOLO মডেল লোড করা
model = cv2.dnn.readNet('yolov3.weights', 'yolov3.cfg')
layer_names = model.getLayerNames()
output_layers = [layer_names[i[0] - 1] for i in model.getUnconnectedOutLayers()]

ধাপ ৪: ইমেজ লোড এবং প্রিপ্রসেসিং

# ইমেজ লোড করা
image = cv2.imread('image.jpg')
height, width, _ = image.shape

# ইমেজের জন্য ব্লব তৈরি
blob = cv2.dnn.blobFromImage(image, 0.00392, (416, 416), (0, 0, 0), True, crop=False)
model.setInput(blob)

ধাপ ৫: অবজেক্ট ডিটেকশন

# আগত ডেটা নিয়ে অবজেক্ট ডিটেকশন করা
outs = model.forward(output_layers)

# ফলাফল প্রক্রিয়াকরণ
for out in outs:
    for detection in out:
        scores = detection[5:]
        class_id = np.argmax(scores)
        confidence = scores[class_id]

        if confidence > 0.5:  # থ্রেশহোল্ড
            # বক্সের তথ্য সংগ্রহ করা
            center_x = int(detection[0] * width)
            center_y = int(detection[1] * height)
            w = int(detection[2] * width)
            h = int(detection[3] * height)

            # সীমানা বক্সের কো-অর্ডিনেট
            x = int(center_x - w / 2)
            y = int(center_y - h / 2)

            # বক্স আঁকা
            cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
            cv2.putText(image, str(classes[class_id]), (x, y - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)

# ফলস্বরূপ ইমেজ দেখানো
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

উপসংহার

Image Classification এবং Object Detection হল কম্পিউটার ভিশনের দুটি গুরুত্বপূর্ণ এলাকা। প্রথমটি একটি ইমেজকে শ্রেণীবদ্ধ করতে ব্যবহৃত হয়, যখন দ্বিতীয়টি একটি ইমেজের মধ্যে বিভিন্ন অবজেক্ট শনাক্ত করে। উভয় প্রক্রিয়াই প্রশিক্ষণ, মডেল তৈরি, এবং মূল্যায়নের মাধ্যমে সম্পন্ন হয়, এবং এদের উদ্দেশ্য অনুযায়ী বিভিন্ন অ্যালগরিদম এবং টুলস ব্যবহার করা হয়।

Promotion

Are you sure to start over?

Loading...