চিত্র শনাক্তকরণ অনেক সহজ পদ্ধতি যেমন লিনিয়ার রিগ্রেশন এবং মিলের তুলনা ব্যবহার করে করা হতো। ফলাফল স্পষ্টতই খুব ভাল ছিল না, এমনকি হাতে লেখা বর্ণমালা চেনার সহজ কাজটিও কঠিন প্রমাণিত হয়েছিল। কনভোলিউশন নিউরাল নেটওয়ার্ক (CNNs) একটি মানব মস্তিষ্কের স্নায়ু ক্রিয়াকলাপগুলিকে শিথিলভাবে অনুকরণ করার একটি গণনামূলক সস্তা পদ্ধতি অফার করে যা আমরা ঐতিহ্যগতভাবে করি তার থেকে একটি ধাপ উপরে বলে মনে করা হয় যখন এটি চিত্রগুলি উপলব্ধি করে৷
কনভোল্যুশনাল নিউরাল নেটওয়ার্ক ওভারভিউ
আমরা যেভাবে বিভিন্ন অবজেক্টকে চিনতে পারি তার অনুরূপ, কম্পিউটার অ্যালগরিদমগুলিকে লক্ষ লক্ষ ছবির মধ্য দিয়ে যেতে হবে আগে এটি ইনপুটকে সাধারণীকরণ করতে এবং ইমেজ সম্পর্কে বিচার করতে সক্ষম হয় যা এটি আগে কখনও দেখেনি৷
কম্পিউটার প্রতিটি চিত্রকে সংখ্যার 2D অ্যারে হিসাবে দেখে, যা পিক্সেল নামে পরিচিত। ইমেজে বস্তু শনাক্ত করতে, কম্পিউটার ব্যবহার করে বিশেষ ধরনের কৃত্রিম নিউরাল নেটওয়ার্ক:একটি কনভোল্যুশনাল নিউরাল নেটওয়ার্ক (CNN)। CNN থেকে আসে, নেটওয়ার্কের সবচেয়ে গুরুত্বপূর্ণ ক্রিয়াকলাপগুলির মধ্যে একটি:কনভোলিউশন৷
৷কনভোলিউশনাল নিউরাল নেটওয়ার্কে, প্রতিটি স্তর প্রস্থ, উচ্চতা এবং গভীরতায় সংগঠিত হয়। কনভল্যুশন যা CNN-এর প্রধান অংশ, দুটি ফাংশনকে একত্রিত করে একটি তৃতীয় ফাংশন তৈরি করে (তথ্যের দুটি সেট একত্রিত করুন)। এর অর্থ হল একটি (ছবি) কনভল্যুশন বিবেচনা করুন যেখানে আমরা কেবলমাত্র দুটি ম্যাট্রিক্সকে উপাদান-ভিত্তিক গুণ করি যার পরে একটি যোগফল।
একটি কনভল্যুশন হল ইমেজ প্রসেসিং -
তে একটি তিন ধাপের পদ্ধতি-
আমরা ইনপুট ইমেজ নিই।
-
কার্নেল ম্যাট্রিক্স যা আমরা ইনপুট ইমেজে প্রয়োগ করতে যাচ্ছি।
-
এবং ইনপুট ইমেজের আউটপুট সংরক্ষণ করার জন্য চূড়ান্ত চিত্রটি কার্নেলের সাথে জড়িত।
নীচে ওপেনসিভি ব্যবহার করে সোবেল ফিল্টারের ছোট বাস্তবায়ন করা হয়েছে যা প্রান্ত সনাক্তকরণের জন্য একটি চিত্র প্রক্রিয়াকরণ ফিল্টার৷
উদাহরণ কোড
import cv2 import numpy as np img = cv2.imread('beach.jpg') img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY).astype(float) edge_x = cv2.Sobel(img,cv2.CV_64F,1,0,ksize = 3) edge_y = cv2.Sobel(img,cv2.CV_64F,0,1,ksize = 3) edge = np.sqrt(edge_x ** 2 + edge_y ** 2) # image can be normalized to # fit into 0..255 color space cv2.imwrite('beach_convol.jpg', edge)
ইনপুট ছবি
আউটপুট চিত্র