কম্পিউটার টিউটোরিয়াল

পাইথন ব্যবহার করে কনভোলিউশনের পরিচিতি


এই নিবন্ধে আমরা পাইথন ৩.x-এ কনভোলিউশন নিয়ে আলোচনা করব। এই আর্টিকেল নিউরাল নেটওয়ার্ক এবং ফিচার এক্সট্রাকশনের অধীনে পড়ে।

পছন্দের IDE - Jupyter Notebook

পূর্বশর্ত - Numpy ইনস্টলড, Matplotlib ইনস্টলড

ইনস্টলেশন

>>> pip install numpy
>>> pip install matplotlib

কনভোলিউশন

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

এখন প্র্যাক্টিক্যাল বাস্তবায়নটি দেখা যাক।

উদাহরণ

import numpy as np
from matplotlib import pyplot

# ইমেজগুলো ইনিশিয়ালাইজ
img1 = np.array([np.array([100, 100]), np.array([80, 80])])
img2 = np.array([np.array([100, 100]), np.array([50, 0])])
img3 = np.array([np.array([100, 50]), np.array([100, 0])])

coordinates_horizontal = np.array([np.array([3, 3]), np.array([-3, -3])])
print(coordinates_horizontal, 'is a coordinates for detecting horizontal end points')

coordinates_vertical = np.array([np.array([3, -3]), np.array([3, -3])])
print(coordinates_vertical, 'is a coordinates for detecting vertical end points')

# এটি এলিমেন্ট-ওয়াইজ মাল্টিপ্লিকেশন ফলোড বাই অ্যাডিশন
def apply_coordinates(img, coordinates):
    return np.sum(np.multiply(img, coordinates))

# img1 ভিজ্যুয়ালাইজ
pyplot.imshow(img1)
pyplot.axis('off')
pyplot.title('sample 1')
pyplot.show()

# ইমেজ১-এ হরিজন্টাল এবং ভার্টিকাল ফিচার চেক
print('Horizontal end points features score:', apply_coordinates(img1, coordinates_horizontal))
print('Vertical end points features score:', apply_coordinates(img1, coordinates_vertical))

# img2 ভিজ্যুয়ালাইজ
pyplot.imshow(img2)
pyplot.axis('off')
pyplot.title('sample 2')
pyplot.show()

# ইমেজ২-এ হরিজন্টাল এবং ভার্টিকাল ফিচার চেক
print('Horizontal end points features score:', apply_coordinates(img2, coordinates_horizontal))
print('Vertical end points features score:', apply_coordinates(img2, coordinates_vertical))

# img3 ভিজ্যুয়ালাইজ
pyplot.imshow(img3)
pyplot.axis('off')
pyplot.title('sample 3')
pyplot.show()

# ইমেজ৩-এ হরিজন্টাল এবং ভার্টিকাল ফিচার চেক
print('Horizontal end points features score:', apply_coordinates(img3, coordinates_horizontal))
print('Vertical end points features score:', apply_coordinates(img3, coordinates_vertical))

আউটপুট

পাইথন ব্যবহার করে কনভোলিউশনের পরিচিতি

উপসংহার

এই নিবন্ধে আমরা পাইথন ৩.x-এ কনভোলিউশনের পরিচিতি এবং এর বাস্তবায়ন শিখেছি।

  1. জাভাস্ক্রিপ্ট array.values() মেথড

  2. জাভাস্ক্রিপ্ট array.flatMap() মেথড

  3. জাভাস্ক্রিপ্ট Array slice() মেথড

  4. C#-তে মাল্টিডাইমেনশনাল অ্যারে (Multidimensional Array)