1. ভূমিকা
মেশিন লার্নিংয়ে সাম্প্রতিক অগ্রগতি কম্পিউটারের জন্য ইমেজে বস্তু চিনতে তুলনামূলকভাবে সহজ করে দিয়েছে। এই কোডল্যাবে, আমরা আপনাকে একটি ইমেজ ক্লাসিফিকেশন মডেল তৈরির একটি এন্ড-টু-এন্ড যাত্রার মধ্য দিয়ে নিয়ে যাবো যা বিভিন্ন ধরনের বস্তুকে চিনতে পারে, তারপর মডেলটিকে Android এবং iOS অ্যাপে স্থাপন করতে পারে। এমএল কিট এবং অটোএমএল আপনাকে কোনও মেশিন লার্নিং দক্ষতা ছাড়াই স্কেলে মডেল তৈরি এবং স্থাপন করতে দেয়।
এমএল কিট কি?
ML Kit হল একটি মোবাইল SDK যা একটি শক্তিশালী কিন্তু সহজে ব্যবহারযোগ্য প্যাকেজে Android এবং iOS অ্যাপে Google-এর মেশিন লার্নিং দক্ষতা নিয়ে আসে। আপনি মেশিন লার্নিংয়ে নতুন বা অভিজ্ঞ হোন না কেন, আপনি কোডের কয়েকটি লাইনে আপনার প্রয়োজনীয় কার্যকারিতা সহজেই বাস্তবায়ন করতে পারেন। অনেকগুলি API আছে যা পাঠ্য, মুখ ইত্যাদি চিনতে পারে যা আপনি বাক্সের বাইরে ব্যবহার করতে পারেন। যাইহোক, যদি আপনি এমন বস্তুগুলিকে চিনতে চান যেগুলি API দ্বারা সমর্থিত নয়, যেমন একটি চিত্র থেকে বিভিন্ন ধরনের ফুল শনাক্ত করা, তাহলে আপনাকে আপনার নিজের মডেলকে প্রশিক্ষণ দিতে হবে। এখানেই AutoML আপনাকে সাহায্য করতে পারে।
AutoML কি?
ক্লাউড অটোএমএল হল মেশিন লার্নিং পণ্যগুলির একটি স্যুট যা সীমিত মেশিন লার্নিং দক্ষতার সাথে বিকাশকারীদেরকে Google-এর অত্যাধুনিক ট্রান্সফার লার্নিং এবং নিউরাল আর্কিটেকচার সার্চ প্রযুক্তির ব্যবহার করে তাদের ব্যবসার প্রয়োজনের জন্য নির্দিষ্ট উচ্চ-মানের মডেলগুলিকে প্রশিক্ষণ দিতে সক্ষম করে৷
এই কোডল্যাবে, আমরা ML কিটে অটোএমএল ভিশন এজ ব্যবহার করব ফুলের শ্রেণিবিন্যাস মডেলের প্রশিক্ষণ দিতে। মডেলটিকে ক্লাউডে প্রশিক্ষিত করা হয়, কিন্তু তারপরে ডিভাইসে সম্পূর্ণরূপে অনুমান চালানোর জন্য অ্যাপ দ্বারা বান্ডেল বা ডাউনলোড করা হয়।
আপনি কি শিখবেন
- এমএল কিটে অটোএমএল ভিশন এজ ব্যবহার করে একটি ইমেজ ক্লাসিফিকেশন মডেলকে কীভাবে প্রশিক্ষণ দেওয়া যায়।
- ML Kit SDK ব্যবহার করে একটি নমুনা Android বা iOS অ্যাপে কীভাবে এটি চালাবেন।
আপনি কি প্রয়োজন হবে
অ্যান্ড্রয়েড অ্যাপের জন্য
- অ্যান্ড্রয়েড স্টুডিওর একটি সাম্প্রতিক সংস্করণ (v3.4+)
- প্লে স্টোর সহ অ্যান্ড্রয়েড স্টুডিও এমুলেটর বা একটি শারীরিক অ্যান্ড্রয়েড ডিভাইস (v5.0+)
- কোটলিনে অ্যান্ড্রয়েড বিকাশের প্রাথমিক জ্ঞান
iOS অ্যাপের জন্য
- XCode এর একটি সাম্প্রতিক সংস্করণ (v10.2+)
- iOS সিমুলেটর বা একটি শারীরিক iOS ডিভাইস (v9.0+)
- কোকোপডস
- সুইফটে আইওএস ডেভেলপমেন্টের প্রাথমিক জ্ঞান
2. সেটআপ
কোড এবং প্রশিক্ষণ ডেটাসেট ডাউনলোড করুন
একটি জিপ সংরক্ষণাগার ডাউনলোড করুন যাতে এই কোডল্যাবের সোর্স কোড এবং একটি প্রশিক্ষণ ডেটাসেট রয়েছে৷ আপনার স্থানীয় মেশিনে সংরক্ষণাগার বের করুন.
ফায়ারবেস কনসোল প্রকল্প তৈরি করুন
- ফায়ারবেস কনসোলে যান।
- নতুন প্রকল্প তৈরি করুন নির্বাচন করুন এবং আপনার প্রকল্পের নাম দিন "এমএল কিট কোডল্যাব।"
অ্যান্ড্রয়েড অ্যাপ সেটআপ করুন
- Firebase প্রকল্পে আমাদের Android অ্যাপ যোগ করুন। অ্যান্ড্রয়েড প্যাকেজের নাম:
com.google.firebase.codelab.mlkit.automl
-
google-services.json
কনফিগারেশন ফাইলটি ডাউনলোড করুন এবংandroid/mlkit-automl/app/google-services.json
এ Android অ্যাপে রাখুন।
iOS অ্যাপ সেটআপ করুন
- Firebase প্রকল্পে আমাদের iOS অ্যাপ যোগ করুন। iOS বান্ডেল আইডি:
com.google.firebase.codelab.mlkit.automl
-
GoogleService-Info.plist
কনফিগার ফাইলটি ডাউনলোড করুন এবংios/mlkit-automl/GoogleService-Info.plist
এ iOS অ্যাপে রাখার নির্দেশাবলী অনুসরণ করুন।
3. প্রশিক্ষণ ডেটাসেট প্রস্তুত করুন
বিভিন্ন ধরনের বস্তু চিনতে একটি মডেলকে প্রশিক্ষণ দিতে, আপনাকে চিত্রগুলির একটি সেট প্রস্তুত করতে হবে এবং তাদের প্রতিটিকে লেবেল করতে হবে। এই কোডল্যাবে আপনার ব্যবহারের জন্য আমরা ক্রিয়েটিভ-কমন লাইসেন্সপ্রাপ্ত ফুলের ফটোগুলির একটি সংরক্ষণাগার তৈরি করেছি৷
ডেটাসেটটি flower_photos.zip
নামক একটি জিপ ফাইল প্যাকেজ করা হয়েছে যা আপনার পূর্ববর্তী ধাপে ডাউনলোড করা জিপ সংরক্ষণাগারে অন্তর্ভুক্ত রয়েছে।
ডেটাসেট অন্বেষণ করুন
আপনি যদি flower_photos.zip
ফাইলটি এক্সট্র্যাক্ট করেন, আপনি দেখতে পাবেন যে ডেটাসেটে 5 টি ফুলের ছবি রয়েছে: ড্যান্ডেলিয়ন, ডেইজি, টিউলিপস, সূর্যমুখী এবং গোলাপ যেগুলি ফুলের নামে ফোল্ডারে সংগঠিত হয়েছে। এটি AutoML-এ খাওয়ানোর জন্য একটি প্রশিক্ষণ ডেটাসেট তৈরি করার এবং একটি চিত্র শ্রেণিবিন্যাসের মডেলকে প্রশিক্ষণ দেওয়ার একটি সহজ উপায়।
এই প্রশিক্ষণ ডেটাসেটে প্রতিটি ফুলের প্রকারের জন্য 200টি ছবি রয়েছে। একটি মডেলকে প্রশিক্ষণ দেওয়ার জন্য আপনার শুধুমাত্র প্রতি ক্লাসে ন্যূনতম 10টি ছবি প্রয়োজন। যাইহোক, আরও প্রশিক্ষণের চিত্রগুলি সাধারণত আরও ভাল মডেলের দিকে পরিচালিত করবে।
4. একটি মডেল প্রশিক্ষণ
প্রশিক্ষণ ডেটাসেট আপলোড করুন
- Firebase কনসোল থেকে, আপনার তৈরি করা প্রকল্পটি খুলুন।
- ML Kit > AutoML নির্বাচন করুন।
- আপনি কিছু স্বাগত পর্দা দেখতে পারেন. যেখানে প্রযোজ্য সেখানে শুরু করুন নির্বাচন করুন।
- সেট আপের অগ্রগতি শেষ হওয়ার পরে, ডেটাসেট যোগ করুন নির্বাচন করুন এবং এটির নাম দিন "ফুল"।
- মডেলের উদ্দেশ্য , একক-লেবেল শ্রেণীবিভাগ চয়ন করুন, কারণ প্রশিক্ষণের ডেটাতে শুধুমাত্র প্রতি চিত্রের একটি লেবেল থাকে।
- তৈরি করুন নির্বাচন করুন।
- ফুল প্রশিক্ষণ ডেটাসেট আমদানি করতে আপনি পূর্ববর্তী ধাপে ডাউনলোড করেছেন এমন
flower_photos.zip
ফাইলটি আপলোড করুন। - আমদানি কাজ শেষ হওয়ার জন্য কয়েক মিনিট অপেক্ষা করুন।
- এখন আপনি নিশ্চিত করতে পারেন যে ডেটাসেট সঠিকভাবে আমদানি করা হয়েছে।
- যেহেতু প্রশিক্ষণ ডেটাসেটের সমস্ত চিত্র লেবেল করা হয়েছে, আপনি একটি মডেলকে প্রশিক্ষণ দিতে এগিয়ে যেতে পারেন।
একটি চিত্র শ্রেণীবিভাগ মডেল প্রশিক্ষণ
যেহেতু আমাদের মডেলটি সীমিত কম্পিউটিং শক্তি এবং সঞ্চয়স্থান সহ একটি মোবাইল ডিভাইসে চলবে, তাই আমাদের শুধুমাত্র মডেলটির সঠিকতা নয়, এর আকার এবং গতির বিষয়েও সচেতন হতে হবে। মডেলের নির্ভুলতা, লেটেন্সি (অর্থাৎ একটি চিত্রকে শ্রেণীবদ্ধ করতে কতক্ষণ লাগে) এবং মডেলের আকারের মধ্যে সর্বদা একটি ট্রেড অফ থাকে। সাধারণত উচ্চ নির্ভুলতা সহ একটি মডেলও বড় হয় এবং একটি চিত্রকে শ্রেণিবদ্ধ করতে বেশি সময় নেয়।
AutoML আপনাকে বেশ কয়েকটি বিকল্প প্রদান করে: আপনি নির্ভুলতার জন্য অপ্টিমাইজ করতে বা লেটেন্সি এবং মডেলের আকারের জন্য অপ্টিমাইজ করতে বা তাদের মধ্যে ভারসাম্য বজায় রাখতে বেছে নিতে পারেন। আপনি মডেলটিকে কতক্ষণ প্রশিক্ষণের অনুমতি দেবেন তাও চয়ন করতে পারেন। বড় ডেটাসেটগুলিকে দীর্ঘ সময়ের জন্য প্রশিক্ষণ দেওয়া দরকার।
আপনি যদি নিজেকে মডেলটি প্রশিক্ষণ দিতে চান তবে এখানে পদক্ষেপগুলি রয়েছে৷
- ট্রেন মডেল নির্বাচন করুন।
- সাধারণ উদ্দেশ্য বিকল্প এবং 1 গণনা ঘন্টা প্রশিক্ষণ সময় নির্বাচন করুন।
- প্রশিক্ষণ টাস্ক শেষ হওয়ার জন্য কিছু সময় (সম্ভবত কয়েক ঘন্টা) অপেক্ষা করুন।
- প্রশিক্ষণের কাজ শেষ হওয়ার পরে, আপনি প্রশিক্ষিত মডেলটি কীভাবে কাজ করছে তার মূল্যায়ন মেট্রিক্স দেখতে পাবেন।
5. মোবাইল অ্যাপে মডেলটি ব্যবহার করুন
প্রস্তুতি
- এই কোডল্যাবে Android এবং iOS উভয় নমুনা অ্যাপ রয়েছে যা প্রদর্শন করে যে কীভাবে আমরা একটি মোবাইল অ্যাপে আগে প্রশিক্ষিত ছবির শ্রেণীবিভাগ মডেলটি ব্যবহার করতে হয়। দুটি অ্যাপের একই বৈশিষ্ট্য রয়েছে। আপনি যে প্ল্যাটফর্মটির সাথে আরও পরিচিত তা বেছে নিতে পারেন।
- আপনি এগিয়ে যাওয়ার আগে, দয়া করে নিশ্চিত করুন যে আপনি নমুনা অ্যাপ্লিকেশনগুলি ডাউনলোড করেছেন এবং সেগুলিকে 2 ধাপে কনফিগার করেছেন৷
- অনুগ্রহ করে নিশ্চিত করুন যে আপনার স্থানীয় পরিবেশ আপনার নির্বাচিত প্ল্যাটফর্মের (Android/iOS) জন্য অ্যাপ তৈরি করতে সক্ষম হওয়ার জন্য সেট আপ করা হয়েছে।
ইমেজ শ্রেণীবিভাগ মডেল ডাউনলোড করুন
- আপনি যদি পূর্ববর্তী ধাপে একটি মডেলকে প্রশিক্ষণ দিয়ে থাকেন, তাহলে মডেলটি পেতে ডাউনলোড নির্বাচন করুন।
- আপনি যদি কোনও মডেলকে প্রশিক্ষণ না দেন বা আপনার প্রশিক্ষণের কাজটি এখনও শেষ না হয়, আপনি নমুনা অ্যাপগুলিতে অন্তর্ভুক্ত মডেলটি ব্যবহার করতে পারেন।
নমুনা অ্যাপ্লিকেশন(গুলি) মডেল যোগ করুন
আপনাকে শুধুমাত্র নমুনা অ্যাপগুলিতে মডেল যোগ করতে হবে এবং সেগুলি বাক্সের বাইরে কাজ করবে। কিভাবে আপনার অ্যাপে ML Kit AutoML সংহত করতে হয় তার সম্পূর্ণ গাইডের জন্য, অনুগ্রহ করে আমাদের ডকুমেন্টেশন দেখুন ( Android , iOS )। যে কোডটি ML Kit SDK-এর সাথে ইন্টারঅ্যাক্ট করে তা যথাক্রমে ImageClassifier.kt
এবং ImageClassifier.swift
ফাইলে রয়েছে, তাই অ্যাপগুলি কীভাবে কাজ করে তা অন্বেষণ করতে আপনি সেখান থেকে শুরু করতে পারেন।
মডেল স্থাপন করার জন্য দুটি বিকল্প রয়েছে: স্থানীয় এবং দূরবর্তী।
- স্থানীয় মডেলটি মূলত আপনার অ্যাপ বাইনারিতে ইমেজ ক্লাসিফিকেশন মডেল বান্ডিল করতে ব্যবহৃত হয়, যদিও কেউ স্থানীয় স্টোরেজে সংরক্ষিত একটি মডেলও প্রদান করতে পারে। বান্ডলিং সহ, মডেলটি আপনার ব্যবহারকারীরা অ্যাপ স্টোর / প্লে স্টোর থেকে আপনার অ্যাপ ডাউনলোড করার সাথে সাথেই তাদের কাছে উপলব্ধ হয় এবং এটি ইন্টারনেট সংযোগ ছাড়াই কাজ করবে।
- রিমোট মডেল মানে হল মডেলটি Firebase-এ হোস্ট করা হয়েছে এবং প্রথমবার প্রয়োজন হলেই শুধুমাত্র আপনার ব্যবহারকারীর ডিভাইসে ডাউনলোড করা হবে। এর পরে, মডেলটি অফলাইনেও কাজ করবে।
অ্যান্ড্রয়েড অ্যাপ
- অ্যান্ড্রয়েড স্টুডিও খুলুন।
-
android/mlkit-automl/
এর অধীনে Android অ্যাপ আমদানি করুন - (ঐচ্ছিক) আপনার ডাউনলোড করা মডেলটি এক্সট্র্যাক্ট করুন এবং নমুনা অ্যাপে অন্তর্ভুক্ত মডেলের উপর তার সামগ্রী কপি করুন।
- এখন রান ক্লিক করুন (
) অ্যান্ড্রয়েড স্টুডিও টুলবারে এবং যাচাই করুন যে বিভিন্ন ধরনের ফুল চিনতে পারে!
iOS অ্যাপ
- টার্মিনাল খুলুন এবং
ios/mlkit-automl/
ফোল্ডারে যান - Cocoapods এর মাধ্যমে নির্ভরতা ডাউনলোড করতে
pod install
চালান - Xcode-এ প্রোজেক্ট ওয়ার্কস্পেস খুলতে
open MLVisionExample.xcworkspace/
চালান। - (ঐচ্ছিক) আপনার ডাউনলোড করা মডেলটি বের করুন এবং
ios/ml-automl/Resources/automl/
এর অধীনে নমুনা অ্যাপে অন্তর্ভুক্ত মডেলের উপর তার সামগ্রী কপি করুন - এখন রান ক্লিক করুন (
) Xcode টুলবারে এবং যাচাই করুন যে বিভিন্ন ধরনের ফুল চিনতে পারে!
6. (ঐচ্ছিক) দূরবর্তী মডেল ব্যবহার করুন
ML Kit-এর রিমোট মডেল আপনাকে আপনার অ্যাপ বাইনারিতে Tensorflow Lite মডেলগুলি অন্তর্ভুক্ত না করার অনুমতি দেয় তবে প্রয়োজনে Firebase থেকে চাহিদা অনুযায়ী ডাউনলোড করতে পারে। স্থানীয় মডেলগুলির তুলনায় দূরবর্তী মডেলগুলির বেশ কয়েকটি সুবিধা রয়েছে:
- ছোট অ্যাপ বাইনারি
- অ্যাপ আপডেট না করেই মডেল আপডেট করতে সক্ষম হচ্ছে
- একটি মডেলের একাধিক সংস্করণ সহ A/B পরীক্ষা
এই ধাপে, আমরা একটি দূরবর্তী মডেল প্রকাশ করব এবং নমুনা অ্যাপগুলিতে এটি ব্যবহার করব। অনুগ্রহ করে নিশ্চিত করুন যে আপনি এই কোডল্যাবের ধাপ 4-এ আপনার মডেলের প্রশিক্ষণ শেষ করেছেন।
মডেল প্রকাশ করুন
- ফায়ারবেস কনসোলে যান।
- আপনি আগে তৈরি করা "ML Kit AutoML Codelab" প্রকল্পটি নির্বাচন করুন৷
- ML Kit > AutoML নির্বাচন করুন।
- আপনি আগে তৈরি করা "ফুল" ডেটাসেট নির্বাচন করুন।
- নিশ্চিত করুন যে প্রশিক্ষণ টাস্ক শেষ হয়েছে, তারপর মডেল নির্বাচন করুন।
- প্রকাশ নির্বাচন করুন এবং এটির নাম দিন "mlkit_flowers"।
দূরবর্তী মডেলের সাথে ফুল চিনুন
নমুনা অ্যাপগুলি উপলব্ধ থাকলে দূরবর্তী মডেল ব্যবহার করার জন্য কনফিগার করা হয়েছে। আপনি দূরবর্তী মডেল প্রকাশ করার পরে, আপনাকে শুধুমাত্র মডেল ডাউনলোড ট্রিগার করার জন্য অ্যাপ্লিকেশনগুলি পুনরায় চালাতে হবে৷ অ্যাপ স্ক্রিনের ফুটারে "উৎস" মান দেখে অ্যাপটি রিমোট মডেল ব্যবহার করছে কিনা তা আপনি যাচাই করতে পারেন। এটি কাজ না করলে নীচের "সমস্যা সমাধান" বিভাগটি দেখুন৷
সমস্যা সমাধান
যদি নমুনা অ্যাপটি এখনও স্থানীয় মডেল ব্যবহার করে, অনুগ্রহ করে যাচাই করুন যে দূরবর্তী মডেলের নাম কোডের ভিতরে সঠিকভাবে সেট করা আছে।
অ্যান্ড্রয়েড অ্যাপ
-
ImageClassifier.kt
এ যান এবং এই ব্লকটি খুঁজুন।
val remoteModel = FirebaseRemoteModel.Builder(REMOTE_MODEL_NAME).build()
- কোডে সেট করা মডেলের নামটি আপনার আগে Firebase কনসোলের মাধ্যমে প্রকাশিত মডেল নামের সাথে মিলেছে কিনা যাচাই করুন।
- এখন রান ক্লিক করুন (
) অ্যাপটি পুনরায় চালু করতে Android Studio টুলবারে।
iOS অ্যাপ
-
ImageClassifier.swift
এ যান এবং এই ব্লকটি খুঁজুন,
return RemoteModel(
name: Constant.remoteAutoMLModelName,
allowsModelUpdates: true,
initialConditions: initialConditions,
updateConditions: updateConditions
)
- কোডে সেট করা মডেলের নামটি আপনার আগে Firebase কনসোলের মাধ্যমে প্রকাশিত মডেল নামের সাথে মিলেছে কিনা যাচাই করুন
- এখন রান ক্লিক করুন (
) অ্যাপটি পুনরায় চালু করতে Xcode টুলবারে।
7. অভিনন্দন!
আপনি AutoML ব্যবহার করে আপনার নিজস্ব প্রশিক্ষণ ডেটা সহ একটি ইমেজ ক্লাসিফিকেশন মডেলের প্রশিক্ষণের একটি শেষ থেকে শেষ যাত্রার মধ্য দিয়ে গেছেন, এবং তারপরে ML কিট ব্যবহার করে একটি মোবাইল অ্যাপে মডেলটি ব্যবহার করুন৷
কিভাবে আপনার নিজের অ্যাপে ML Kit-এ AutoML Vision Edge একীভূত করতে হয় তা শিখতে অনুগ্রহ করে আমাদের ডকুমেন্টেশন দেখুন।
এছাড়াও আপনি Firebase ML Kit-এর অন্যান্য বৈশিষ্ট্য দেখতে আমাদের ML Kit নমুনা অ্যাপগুলি ব্যবহার করে দেখতে পারেন।
অ্যান্ড্রয়েড নমুনা
iOS নমুনা