বর্তমান সময়ে সবচেয়ে বহুল ব্যবহৃত শব্দ মেশিন লার্নিং। হাতের স্মার্টওয়াচ থেকে শুরু করে ঘরের স্মার্টটিভি, সবকিছুতেই পাওয়া যায় মেশিন লার্নিং এর নিত্যনতুন প্রযুক্তির ছোঁয়া।
মেশিন লার্নিং ব্যবহার করে আপনি সহজেই অপটিক্যাল ক্যারেক্টার রিকগনিশনের (OCR) মাধ্যমে ছবি থেকে অক্ষর এবং অক্ষর থেকে শব্দ চিহ্নিত করতে পারবনে। এতে করে কিন্তু মোবাইলেই মেশিন লার্নিং ব্যবহার করে অফলাইনে বিদেশি ছবির বাংলা অর্থ বের করা ফেলা সম্ভব। শুধু তাই নয়, অফলাইন ট্রান্সলেশন, টেক্সট ক্লাসিফিকেশন থেকে শুরু করে ভয়েস সিনথেসিসসহ প্রয়োজনীয় আরও অনেক কিছুই এই মেশিন লার্নিংয়ের মাধ্যমে করা সম্ভব।
বইয়ের পাতায় বা ইন্টারনেটে সবাই হয়তো কম-বেশি মেশিন লার্নিং সম্পর্কে জেনেছেন বা পড়েছেন, কেউ কেউ হয়তো নিজের গবেষণার জন্য ব্যবহারও করেছেন। কিন্তু কেউ কি কখনো, বাস্তব জীবনের সমস্যা সমাধানের জন্য নিজের মোবাইলে মেশিন লার্নিং এলগরিদম প্রয়োগ করেছেন বা চেষ্টা করেছেন- কীভাবে আমরা মোবাইলে অ্যাপ্লিকেশনে মেশিন লার্নিং এলগরিদম নিয়ে কাজ করতে পারি। না করলেও কোনো সমস্যা নেই, আমার এই লেখাটি তাদের জন্যই বেশি প্রয়োজন, যারা মেশিন লার্নিংয়ের তাত্ত্বিক বিষয়গুলো খুব ভালোভাবে বুঝতে পারেন কিন্তু সঠিক নির্দেশনার অভাবে কখনো এই তাত্ত্বিক বিষয়গুলোর বাস্তব প্রয়োগ করতে পারেননি।
এজন্য, মেশিন লার্নিংকে শুধু বইয়ের মধ্যে সীমাবদ্ধ না রেখে, বাস্তবে এর ব্যবহার সবার মাঝে ছড়িয়ে দেওয়ার জন্য আমার এই ছোট প্রয়াস, আমি যার নাম দিয়েছি ‘মোবাইলে অ্যাপে মেশিন লার্নিং’। জেনে রাখা ভালো, মেশিন লার্নিং এলগরিদমগুলো কিন্তু অনেক জটিল গাণিতিক সমীকরণের সমন্বয়য়ে তৈরি। তবে হ্যাঁ, আমি কিন্তু কোনো জটিল সমীকরণের সূত্র আজ লিখবো না। যেহেতু, এটি সব পাঠকের জন্য লেখা, তাই আমি সর্বোচ্চ চেষ্টা করেছি যতটুকু সম্ভব আমার সহজ সরল লেখনীর মাধ্যমে বিষয়টি বোঝানো। তাহলে, শুরু করা যাক।
ভালো হয় যদি একটা গল্প দিয়ে শুরু করি, সম্প্রতি একটি কনফারেন্সে রিসার্চ পেপার উপস্থাপনার জন্য পর্তুগাল গিয়েছিলাম, সেখানে বেশ কিছু জায়গায় আমাকে তাদের ভাষা বুঝতে হোঁচট খেতে হয়েছে। স্বাভাবিকভাবেই রেস্তোরাঁ, ট্যাক্সি, রাস্তার লেন, এবং কিছু কিছু ক্ষেত্রে বিখ্যাত জায়গাগুলোর বিবরণ, আমাকে গুগলের সাহায্য নিয়ে বাংলা ভাষায় অনুবাদ করতে হয়েছিল। কিন্তু, এর জন্য আমাকে প্রতিটা মুহূর্তের ছবি প্রসেস করার জন্য গুগলের সার্ভারে পাঠাতে হয়েছে, যেটা ছিল বেশ সময়সাপেক্ষ এবং ব্যয়বহুল।
স্বাভাবিকভাবেই চিন্তা করলাম প্রতিবারে সম্পূর্ণ ছবিটাকে প্রসেস না করে যদি ছবির শব্দটাকে সার্ভারে পাঠানো যেত বা যদি আমার মোবাইলে পর্তুগিজ শব্দগুলোর বাংলা অর্থের ডেটাবেস থাকতো যেটি আমার লোকাল মেশিনে ইনটিগ্রেট করা থাকতো , তাহলে একইসঙ্গে মোবাইল ডেটা এবং প্রসেসিং টাইম দুটোরই প্রয়োজনীয়তা কমে আসতো। যেই ভাবনা সেই খোঁজা, খুঁজতে গিয়ে আবিষ্কার করলাম সম্প্রতি মেশিন লার্নিং ডেভেলপারদের জন্য গুগল উন্মুক্ত করেছে অতি কাঙ্ক্ষিত ML Kit for Firebase। যেখানে গুগল মোবাইল অ্যাপ ডেভেলপারদের জন্য একটি সুযোগ তৈরি করে দিয়েছে, যাতে করে তারা তাদের অ্যাপ্লিকেশনে মেশিন লার্নিং Mobile SDK (Software Development Kit) ব্যবহার করে বাস্তব সমস্যাগুলোর সমাধান করতে পারবে। এতে করে কিন্তু সবচেয়ে বড় উপকার গুগলেরই হয়েছে। কারণ, মানুষ যদি মোবাইলেই মেশিন লার্নিংয়ের কাজটা করে ফেলতে পারে তাহলে কিন্তু গুগলের সার্ভারের ওপর চাপ অনেকাংশে কমে আসবে। আর তাছাড়া, কিছু সংবেদনশীল তথ্য বা ছবি যা হয়তো আপনি কখনোই চাইবেন যে, আপনার মোবাইলের বাইরে কোথাও থেকে যাক। সেদিক থেকেও কিন্তু এটা বেশ কাজের।
সবচেয়ে মজার বিষয় হচ্ছে, মেশিন লার্নিংয়ে আপনার পূর্ব কোনো অভিজ্ঞতা না থাকলেও গুগলের এই প্যাকেজটি ব্যবহার করে আপনি খুব সহজেই নিজের বাস্তব সমস্যা সমাধানের জন্য মোবাইল আপ্লিকেশন তৈরি করতে পারবেন। তবে হ্যাঁ, মোবাইল অ্যাপ্লিকেশন তৈরি করাটা কিন্তু জানতে হবে।
কীভাবে কাজ করে
Google Cloud Vision API (Application Programming Interface), TensorFlow Lite, এবং Android Neural Networks API একত্রে একটি একক SDK হিসেবে কাজ করবে যেটি আপনার নিজস্ব অ্যাপ্লিকেশনে মেশিন লার্নিংয়ের বিভিন্ন মেথড অ্যাপ্লাই করতে সাহায্য করবে। সুবিধা হিসেবে আপনি একইসঙ্গে গুগলের ক্লাউড সার্ভিস, রিয়েল টাইমে মোবাইলে অপটিমাইজড অ্যাপ্লিকেশন ডেপলয়মেন্ট এবং কাস্টম TensorFlow Lite Models ব্যবহার করার সুযোগ পাবেন। কথাগুলো মনে হয় বেশ জটিল লাগছে, আচ্ছা সহজ করে বলছি। গুগলের তৈরি Machine Learning (ML) Kit-কে মূলত ব্যবহার উপযোগী API হিসেবে তৈরি করার জন্য বেশ কিছু বহুল নিত্যপ্রয়োজনীয় ফিচার যেমন: টেক্সট রিকগনেশন, ফেস ডিটেকশন, বারকোড স্ক্যানিং, ইমেজ লেবেলিং, ল্যান্ডমার্ক রিকগনেশন, ল্যাঙ্গুয়েজ রিকগনেশন, স্মার্ট রিপ্লাই এবং কাস্টম মডেল ইনফারেন্স অন্তর্ভুক্ত করা হয়েছে। উদাহরণ দিলে ব্যাপারটা আরও পরিষ্কার হবে আশা রাখছি। চলুন উদাহরণ দিয়ে প্রতিটা API সম্পর্কে বোঝার চেষ্টা করি।
টেক্সট রিকগনিশন
একটু ভেবে দেখুনতো আপনাকে হয়তো প্রায়ই ক্রেডিট কার্ড, জাতীয় পরিচয়পত্র, ব্যাংক রসিদ, বিজনেস কার্ড বা জন্ম নিবন্ধন নম্বর কোথাও না কোথাও ইনপুট দিতে হয়, কেমন হতো যদি শুধু মোবাইল অ্যাপ্লিকেশনের মাধ্যমে এই বিরক্তিকর কাজটি করা যেতো। আপনার এই সমস্যার সমধানের জন্যই গুগল তার মেশিন লার্নিং কিটটি ডিজাইন করেছে। Text Recognition API এর মাধ্যমে আপনি যেকোনো ল্যাটিন বেইসড ল্যাঙ্গুয়েজের টেক্সটকে রিকগনাইজ করতে পারবেন। পাশাপশি এর ক্লাউড বেইজ API এর মাধ্যমে ছবি থেকেও টেক্সট রিকগনাইজ করতে পারবেন। মজার বিষয় হলো, রিয়েল ওয়ার্ল্ড অবজেক্ট যেমন ধরুন, ট্রেনের গায়ে লিখিত নম্বরও আপনি এই API টি ব্যবহার করে বের করতে পারবেন। একটু একটু বোঝা যাচ্ছে মনে হচ্ছে।
ফেইস ডিটেকশন
আমরা যারা প্রচুর সেলফি এবং পোর্ট্রেট ছবি তুলতে পছন্দ করি তাদের জন্য গুগল নিয়ে এলো মোবাইল অ্যাপ্লিকেশনভিত্তিক ফেস ডিটেকশন API। এর মাধ্যমে খুব সহজেই আপনি ছবি থেকে আপনার কাঙ্ক্ষিত ফেইসটি খুঁজে বের করতে পারবেন, সঙ্গে সঙ্গে আপনি সেই ফেইসটির ফিচার এবং তার মুখমণ্ডলের পারিপার্শ্বিক গঠনও পেয়ে যাবেন। আকর্ষণীয় বিষয় হচ্ছে, গুগল তার ফেইস ডিটেকশন কিটটিকে এমনভাবে তৈরি করেছে যা খুব সহজেই রিয়েল টাইমে ভিডিও চ্যাট বা গেমস খেলার সময় ব্যবহারকারীর অভিব্যক্তি বা এক্সপ্রেশন ধারণ/ ডিটেক্ট করতে সক্ষম। পাশের ছবিটি দেখলেই আপনি পূর্ণ ধারণা পেয়ে যাবেন। আশা রাখছি পুরো বিষয়টি এখন আপনার কাছে বেশ পরিষ্কার হয়েছে।
বারকোড স্ক্যানিং
আপনি হয়তো খেয়াল করে থাকবেন, প্রায়ই আপনাকে হয়তো দোকানগুলোতে কিছু ক্রয়ের পরে বিকাশ, আই-পে, রকেট বা অন্য যে কোনো বিল পে সার্ভিসগুলোর সাহায্য নিয়ে বিল পে করতে হয়। আর এই বিল পে করতে গিয়ে আপনি তাদের QR (Quick Response) কোড স্ক্যান করে থাকেন, এমনকি কিছু কিছু ক্ষেত্রে ওয়াই-ফাই এক্সেস করতে গেলেও আপনাকে বারকোড (Bar Code) বা QR কোড স্ক্যান করার প্রয়োজন হয়। খুব স্বাভাবিকভাবেই মোবাইল অ্যাপের মাধ্যমে ছবি তুলে সার্ভারে পাঠিয়ে প্রসেস করা বেশ সময়সাপেক্ষ, তার থেকেও বড় সমস্যা আপনাকে সর্বদা ইন্টারনেটের সঙ্গে সংযুক্ত থাকতে হবে, সেটা সবসময় সম্ভব নাও হতে পারে। তাই এই সমস্যা সমাধানের জন্য QR কোডের মতো 2D ফরম্যাট এবং বারকোড স্ক্যান করার জন্য গুগলের বারকোড স্ক্যানিং API হতে পারে গ্রহণযোগ্য সমাধান, যা স্বয়ংক্রিয়ভাবে এই ডেটা শনাক্ত এবং পার্স করতে পারে, পাশাপাশি ব্যবহারকারী যখন বারকোড স্ক্যান করবে তখন বুদ্ধিমত্তার সহিত সাড়া দিতে পারে।
ইমেজ লেবেলিং
ইমেজ লেবেলিং API খুবই মজার এক আবিষ্কার গুগলের। একইসঙ্গে মোবাইল ডিভাইস এবং ক্লাউড, দুই ধরনের API এর সুবিধা রয়েছে এই ইমেজ লেবেলিং API-টিতে। ব্যবহারকারী খুব সহজেই একটি ছবি থেকে আলাদা আলাদাভাবে মানুষ, জায়গা, বস্তু, বিভিন্ন ধরনের অ্যাক্টিভিটি এবং আরও অনেক কিছু খুঁজে বের করতে সক্ষম হবে। উল্লেখ্য, লেবেলিং করার সঙ্গে সঙ্গে মোবাইল অ্যাপ প্রতিটি লেবেলে আপনাকে একটি স্কোর দেখাবে যেটি নির্দেশ করবে মেশিন লার্নিং মডেলটি কতটা সফলতার সঙ্গে লেবেল ডিটেক্ট করতে সক্ষম হয়েছে। ইন ডিভাইস API-টি যেখানে ৪০০ এর বেশি লেবেল সাপোর্ট করে সেখানে ক্লাউড APIটি ১০,০০০ এর বেশি লেবেল চিনতে সক্ষম। চলুন, একটি উদাহরণ দিয়ে বোঝার চেষ্টা করি। পাশের ছবিটিকে আমরা লেবেলিং করার চেষ্টা করেছিলাম, একইসঙ্গে ইন ডিভাইস এবং ক্লাউড এর মাধ্যমে API এর ফলাফল আপনারাই দেখুন।
ল্যান্ডমার্ক রিকগনেশন
আমাদের দেশের অন্যতম স্থাপত্য নিদর্শন হলো লালবাগ কেল্লা। স্বাভাবিকভাবেই দেশের ভেতর এবং বাহির থেকে বহু পর্যটক প্রতিনিয়ত এই অপরূপ নিদর্শন প্রত্যক্ষ করতে আসেন। পাঠক নিশ্চয়ই ভাবছেন, লালবাগ কেল্লার সঙ্গে ল্যান্ডমার্ক রিকগনেশনের কী সম্পর্ক? সম্পর্ক আছে বলেইতো লিখছি, গুগল তার ল্যান্ডমার্ক রিকগনেশন API-টির মাধ্যমে একটি ইমেজ থেকে বহুল পরিচিত স্থাপত্য বা নিদর্শন সমূহকে ল্যান্ডমার্ক বা ওই নির্দিষ্ট জায়গার বৈশিষ্ট্য হিসেবে চিহ্নিত করে। পাশাপাশি ওই জায়গাসমূহ থেকে ল্যান্ডমার্কটির ভৌগোলিক স্থানকে (Geographic Coordinate) এবং কোন এলাকায় ও কোন দেশে ল্যান্ডমার্কটি রয়েছে সেটিও ব্যবহারকারীকে নিমিষেই জানিয়ে দেয়। এখন পর্যন্ত ক্লাউড API হিসেবে এটি কাজ করছে, খুব শিগগির মোবাইল API হিসেবেও এটি কাজ শুরু করবে বলে জানিয়েছে গুগল।
ল্যাঙ্গুয়েজ আইডেনটিফিকেশন
১০০’র বেশি ভাষা সাপোর্ট নিয়ে গুগলের আরেকটি চমৎকার API হলো ল্যাঙ্গুয়েজ আইডেনটিফিকেশন। এর মাধ্যমে আপনি খুব সহজেই টেক্সট থেকে ভাষাকে আলাদা করতে পারবেন। রোমানাইজ টেক্সট যেমন অ্যারাবিক, বুল্গেরিয়ান, গ্রিক, জাপানিজ, রাশিয়ান এবং চাইনিজ টেক্সট থেকে ন্যাটিভের পাশাপাশি রোমানাইজ স্ক্রিপটেও টেক্সট শনাক্ত করতে সক্ষম। আমাদের সবার প্রিয় মাতৃভাষা বাংলাতেও কিন্তু আমরা টেক্সট থেকে ভাষা শনাক্ত করার সুযোগ পাচ্ছি। এজন্য গুগল কিন্তু একটা ধন্যবাদ পেতেই পারে।
স্মার্ট রিপ্লাই
মেশিন লার্নিংকে ব্যবহারকারীর কতোটা কাছে নিয়ে আসা যায় তার অন্যতম উদাহরণ হচ্ছে স্মার্ট রিপ্লাই। আপনি কি কখনো খেয়াল করছেন- জিমেইল কীভাবে তার ইউজারকে স্মার্ট রিপ্লাই সার্ভিস ব্যবহার করাচ্ছে? আপনি নিজেও হয়তো ব্যবহার করেছেন মনের অজান্তেই। আবার কেউ কেউ হয়তো জেনে-শুনেই ব্যবহার করেছেন। এবার গুগল সেই সার্ভিসকেই ব্যবহারকারীর আরও কাছাকছি নিয়ে আসার জন্য মোবাইল অ্যাপ্লিকেশনের মধ্যে নিয়ে এলো স্মার্ট রিপ্লাই। ML Kit's Smart Reply API এর মাধ্যমে স্বয়ংক্রিয়ভাবে আপনি আপনার জন্য আসা মেসেজের প্রাসঙ্গিক উত্তর প্রদান করতে পারবেন। এতে করে আপনার সময় বাঁচবে, পাশাপাশি কোন মেসেজের উত্তর কেমন হওয়া উচিত সেটা সম্পর্কেও ধারণা পেতে পারবেন। মেসেজের রিপ্লাই সাজেশন, অডিয়েন্স অনুযায়ী বেশ ভিন্নতা দেখতে পাবেন। বর্তমানে এটি শুধু ইংরেজি ভাষায়ই রিপ্লাই দিতে সক্ষম।
কাস্টম মডেল
টেক জায়ান্ট গুগল যে কতো কিছু রেখেছে আপনার জন্য, আপনি চিন্তাও করতে পারবেন না। আপনি যদি মনে করেন মেশিন লার্নিংয়ের পূর্ব নির্ধারিত মডেল নিয়ে কাজ করবেন না, তাহলে আপনি TensorFlow Lite মডেল নিয়েও কাজ করতে পারেন। হয়তো আপনি এটাই ভাবছেন, TensorFlow Lite মডেলটা আবার কী জিনিস। আগেই বলেছি, গুগল একের পর এক চমক রেখেছে আপনার জন্য। তো চলুন জেনে আসি, যারা ডিপ লার্নিং নিয়ে কাজ করেন তারা হয়তো জেনে থাকবেন টেনসর ফ্লো হল একটি ওপেন সোর্স ডিপ লার্নিং বেইজ ফ্রেমওয়ার্ক। স্বাভাবিকভাবেই ডিপ লার্নিংয়ে কাজের জন্য প্রচুর গাণিতিক হিসাবের প্রয়োজন হয়, পাশাপাশি দ্রুত প্রসেসিং ক্ষমতা এবং GPU/CPU (Graphics/Central Processing Unit) এর সাপোর্ট প্রয়োজন। এসব সুবিধা একত্রে প্রদান করার জন্য গুগল তৈরি করলো তাদের নিজস্ব ডিপ লার্নিং ফ্রেমওয়ার্ক টেনসর ফ্লো। কিন্তু তাহলে মোবাইলের জন্য কী হবে, মোবাইলেতো এতো মেমরি বা প্রসেসিং ক্ষমতা নেই, যে ভাবা সেই কাজ, সঙ্গে সঙ্গে গুগল তৈরি করলো TensorFlow মোবাইল ভার্সন, যার নাম দিলো TensorFlow Lite। এর প্রধান উদ্দেশ্য হচ্ছে লাইব্রেরির সাইজটিকে অনেক ছোট করে আনা, যেন অ্যাপগুলোতে সহজেই ব্যবহার করা যায়। আর লাইট দিয়ে কোনো অ্যাপ বানালে অ্যাপের সাইজ যেমন কমে আসবে, তেমনি অ্যাপ দ্রুতগতিরও হবে। পাঠক এখনো কিন্তু শেষ হয়নি, আপনাদের যদি না দেখাতে পারি কীভাবে TensorFlow Lite দিয়ে কাস্টম মডেল কাজ করে তাহলে এই লেখাটি কিন্তু বৃথা হয়ে যাবে।
TensorFlow Lite এর মাধ্যমে ইমেজ ক্লাসিফিকেশন
কেমন হতো যদি আপনি আপনার মোবাইলের ক্যামেরার মাধ্যমে রিয়েল টাইমে অসংখ্য ইমেজকে ক্লাসিফাই করতে পারতেন? যেখানে লাগতো না কোনো সার্ভারের সাহায্য বা ইন্টারনেট কানেকশন। আপনি আপনার মোবাইলের অ্যাপ্লিকেশানের মাধ্যমেই শনাক্ত করতে পারতেন সব ধরনের ইমেজ । নিশ্চয়ই ভাবছেন এও কি সম্ভব, আগে না দেখা কোন বস্তু কীভাবে আপনার মোবাইল অ্যাপ সঠিকভাবে শনাক্ত করতে পারে? বাম পাশের ছবিটি কিন্তু আমার নিজের মোবাইল থেকে তোলা। অবাক হচ্ছেন? মাউসটি কিন্তু আমার নিজেরই। আপনাদের দেখানোর জন্যই নিজেই TensorFlow Lite এর মাধ্যমে একটা অ্যাপের কাস্টম মডেল তৈরি করে ফেললাম। এভাবে আপনার নিজের ডিভাইসের ব্যাক ক্যামেরা ব্যবহার করে আপনি নিজেও ক্লাসিফাই করতে পারবেন এরকম অসংখ্য ছবিকে, আর TensorFlow Lite আপনাকে সাহায্য করবে এমন সব মোবাইল আপ্লিকেশন তৈরি করতে।
পরিশেষে বলবো, আমি মেশিন লার্নিং বিশেষজ্ঞ নই, আপনাদের মতো আমিও প্রতিদিন নতুন নতুন বিষয় শিখছি। বাংলা ভাষায় মেশিন লার্নিংয়ের বিষয়গুলো উদাহরণ দিয়ে আপনাদের সামনে তুলে ধরার একটাই কারণ, আপনারা যেন পরবর্তী সময়ে এই বিষয়গুলো বাস্তবে প্রয়োগ করতে পারেন এবং মেশিন লার্নিংয়ের সুফল সবার মাঝে ছড়িয়ে দিতে পারেন। আমার এই ক্ষুদ্র প্রয়াস তখনই সার্থক হবে যখন সাধারণ পাঠক এবং মেশিন লার্নিংয়ে আগ্রহী সবাই নিজেরদের প্রজেক্টে আমার লেখনীর বিষয়গুলো নিয়ে বাস্তব সমস্যার সমাধানে কাজ করবেন।
লেখক
সম্রাট কুমার দে
সিনিয়র প্রভাষক, কম্পিউটার সায়েন্স অ্যান্ড ইঞ্জিনিয়ারিং বিভাগ, ঢাকা ইন্টারন্যাশনাল ইউনিভার্সিটি
কাউন্সিলর, বাংলাদেশ কম্পিউটার সোসাইটি
ই-মেইল: [email protected]
বাংলাদেশ সময়: ১৫১৪ ঘণ্টা, জুলাই ৩১, ২০১৯
এইচএ/