ডিফল্ট হিসেবে, ML Kit-এর API, Google-এর প্রশিক্ষণপ্রাপ্ত মেশিন লার্নিং মডেল ব্যবহার করে। এইসব মডেল বিভিন্ন ধরনের অ্যাপ্লিকেশন কভার করার জন্য ডিজাইন করা হয়েছে। তবে, কিছু ব্যবহারের ক্ষেত্রে আরও টার্গেট করা মডেলের প্রয়োজন হয়। সেই কারণেই, কিছু ML Kit API এখন আপনাকে কাস্টম LiteRT মডেলের সাথে ডিফল্ট মডেল পরিবর্তন করার অনুমতি দেয়।
ইমেজ লেবেলিং ও অবজেক্ট ডিটেকশন ও ট্র্যাকিং API, দু'টিই কাস্টম ইমেজ ক্লাসিফিকেশন মডেলের জন্য সহায়তা প্রদান করে। এগুলি TensorFlow Hub-এ উপলভ্য বাছাই করা উচ্চ-কোয়ালিটির প্রি-ট্রেনিং দেওয়া মডেল বা TensorFlow বা AutoML-এর মাধ্যমে ট্রেনিং দেওয়া আপনার নিজস্ব কাস্টম মডেলের সাথে মানানসই।
অন্যান্য ডোমেন বা ব্যবহারের ক্ষেত্রে কাস্টম সমাধানের প্রয়োজন হলে, ডিভাইস-মধ্যস্থ মেশিন লার্নিংয়ের জন্য Google-এর সব সমাধান ও টুল সম্পর্কে নির্দেশিকা পেতে ডিভাইস-মধ্যস্থ মেশিন লার্নিং পৃষ্ঠা দেখুন।
কাস্টম মডেলের সাথে ML Kit ব্যবহার করার সুবিধা
ML Kit-এর সাথে কাস্টম ইমেজ ক্লাসিফিকেশন মডেল ব্যবহার করার সুবিধাগুলি হল:
- সহজে ব্যবহারযোগ্য হাই-লেভেল API - লো-লেভেল মডেল ইনপুট/আউটপুট, ইমেজ প্রি-/পোস্ট-প্রসেসিং বা প্রসেসিং পাইপলাইন তৈরি করার প্রয়োজন নেই।
- লেবেল ম্যাপ করা নিয়ে আপনাকে চিন্তা করতে হবে না, ML Kit, LiteRT মডেল মেটাডেটা থেকে লেবেল এক্সট্র্যাক্ট করে এবং আপনার হয়ে ম্যাপ করে দেয়।
- বিভিন্ন ধরনের সোর্স থেকে কাস্টম মডেল কাজ করে, যেমন TensorFlow Hub-এ প্রকাশিত প্রি-ট্রেন করা মডেল থেকে TensorFlow বা AutoML-এর মাধ্যমে ট্রেনিং দেওয়া নতুন মডেল।
- Android-এর ক্যামেরা API-এর সাথে ইন্টিগ্রেশনের জন্য অপ্টিমাইজ করা হয়েছে।
এবং, বিশেষ করে অবজেক্ট ডিটেকশন ও ট্র্যাকিং-এর জন্য:
- প্রথমে অবজেক্ট লোকেট করে এবং শুধুমাত্র সম্পর্কিত ছবির অংশে ক্লাসিফায়ার রান করিয়ে ক্লাসিফিকেশন অ্যাকুরেসি উন্নত করুন।
- রিয়েল-টাইম ইন্ট্যার্যাক্টিভ অভিজ্ঞতা প্রদান করুন, এর জন্য আপনার ব্যবহারকারীদের অবজেক্ট শনাক্ত ও শ্রেণীবদ্ধ করার সাথে সাথেই সেগুলির ব্যাপারে তাৎক্ষণিক মতামত দিন।
প্রি-ট্রেনড ইমেজ ক্লাসিফিকেশন মডেল ব্যবহার করা
আপনি আগে থেকে ট্রেনিং দেওয়া LiteRT মডেল ব্যবহার করতে পারবেন, তবে সেগুলিকে নির্দিষ্ট কিছু মাপকাঠি পূরণ করতে হবে। TensorFlow Hub-এর মাধ্যমে আমরা Google বা অন্যান্য মডেল ক্রিয়েটরদের যাচাই করা মডেলের একটি সেট অফার করছি - যা এই মাপকাঠি পূরণ করে।
TensorFlow Hub-এ প্রকাশিত মডেল ব্যবহার করা
TensorFlow Hub-এ বিভিন্ন মডেল ক্রিয়েটরের তৈরি করা প্রি-ট্রেনড ইমেজ ক্লাসিফিকেশন মডেলের বিস্তৃত রেঞ্জ রয়েছে - যা ইমেজ লেবেলিং এবং অবজেক্ট ডিটেকশন ও ট্র্যাকিং API-এর সাথে ব্যবহার করা যেতে পারে। এইসব ধাপ অনুসরণ করুন।
- ML Kit-এর সাথে মানানসই মডেলের কালেকশন থেকে একটি মডেল বেছে নিন।
- মডেলের বিবরণ পৃষ্ঠা থেকে .tflite মডেল ফাইল ডাউনলোড করুন। যেখানে উপলভ্য, মেটাডেটা সহ মডেল ফর্ম্যাট বেছে নিন।
- আপনার প্রোজেক্টের সাথে মডেল ফাইল কীভাবে বান্ডেল করবেন এবং আপনার Android বা iOS অ্যাপ্লিকেশনে এটি কীভাবে ব্যবহার করবেন সেই সম্পর্কে ইমেজ লেবেলিং API বা অবজেক্ট ডিটেকশন এবং ট্র্যাকিং API-এর জন্য আমাদের নির্দেশিকা অনুসরণ করুন।
আপনার নিজের ইমেজ ক্লাসিফিকেশন মডেলকে ট্রেনিং দেওয়া
কোনও প্রি-ট্রেনড ইমেজ ক্লাসিফিকেশন মডেল আপনার প্রয়োজন পূরণ করতে না পারলে, আপনার নিজস্ব LiteRT মডেলকে ট্রেনিং দেওয়ার বিভিন্ন উপায় আছে, যার মধ্যে কয়েকটি নিচের বিভাগে আরও বিস্তারিতভাবে আলোচনা করা হয়েছে।
| আপনার নিজের ইমেজ ক্লাসিফিকেশন মডেলকে প্রশিক্ষণ দেওয়ার বিকল্প | |
|---|---|
| AutoML |
|
| TensorFlow মডেলকে LiteRT-তে কনভার্ট করা |
|
AutoML
ইমেজ লেবেলিং এবং অবজেক্ট ডিটেকশন ও ট্র্যাকিং API API-তে কাস্টম মডেলের মাধ্যমে AutoML ব্যবহার করে ট্রেনিং দেওয়া ইমেজ ক্লাসিফিকেশন মডেল কাজ করে। এছাড়াও, এই APIগুলি Cloud Storage-এ হোস্ট করা মডেল ডাউনলোড করার সুবিধা দেয়।
আপনার Android ও iOS অ্যাপে AutoML-এর মাধ্যমে ট্রেন করা মডেল কীভাবে ব্যবহার করবেন সেই সম্পর্কে আরও জানতে, আপনার ব্যবহারের কেস অনুযায়ী প্রতিটি API-এর জন্য কাস্টম মডেল গাইড ফলো করুন।
LiteRT কনভার্টার ব্যবহার করে তৈরি করা মডেল
আপনার কাছে আগে থেকে থাকা TensorFlow ইমেজ ক্লাসিফিকেশন মডেল থাকলে, আপনি LiteRT কনভার্টার ব্যবহার করে সেটি কনভার্ট করতে পারবেন। তৈরি করা মডেলটি নিম্নলিখিত কম্প্যাটিবিলিটি সংক্রান্ত প্রয়োজনীয়তা পূরণ করছে কিনা তা নিশ্চিত করুন।
আপনার Android ও iOS অ্যাপে কীভাবে LiteRT মডেল ব্যবহার করবেন সেই সম্পর্কে আরও জানতে, আপনার ব্যবহারের ক্ষেত্রের উপর নির্ভর করে ইমেজ লেবেলিং API অথবা অবজেক্ট শনাক্তকরণ ও ট্র্যাকিং API-এর জন্য আমাদের নির্দেশিকা অনুসরণ করুন।
LiteRT মডেল কম্প্যাটিবিলিটি
আপনি যেকোনও প্রি-ট্রেনড LiteRT ইমেজ ক্লাসিফিকেশন মডেল ব্যবহার করতে পারেন, তবে সেটিকে এইসব প্রয়োজনীয়তা পূরণ করতে হবে:
টেন্সর
- মডেলটিতে নিম্নলিখিত সীমাবদ্ধতা সহ শুধুমাত্র একটি ইনপুট টেনসর থাকতে হবে:
- ডেটা RGB পিক্সেল ফর্ম্যাটে আছে।
- ডেটা UINT8 বা FLOAT32 ধরনের। ইনপুট টেনসর টাইপ FLOAT32 হলে, Metadata অ্যাটাচ করে NormalizationOptions নির্দিষ্ট করতে হবে।
- টেনসরের ৪টি ডাইমেনশন আছে : BxHxWxC, যেখানে:
- B হল ব্যাচের সাইজ। এটি ১ হতে হবে (বড় ব্যাচে ইনফারেন্স কাজ করে না)।
- W ও H হল ইনপুট প্রস্থ ও উচ্চতা।
- C হল প্রত্যাশিত চ্যানেলের সংখ্যা। এটি ৩ হতে হবে।
- মডেলটিতে অবশ্যই N ক্লাস সহ অন্তত একটি আউটপুট টেনসর এবং ২
বা ৪টি ডাইমেনশন থাকতে হবে:
- (1xN)
- (1x1x1xN)
- শুধুমাত্র সিঙ্গেল-হেড মডেল সম্পূর্ণভাবে কাজ করে। মাল্টি-হেড মডেল অপ্রত্যাশিত ফলাফল দেখাতে পারে।
মেটাডেটা
আপনি LiteRT ফাইলে মেটাডেটা যোগ করতে পারবেন, যেমনটি LiteRT মডেলে মেটাডেটা যোগ করা নিবন্ধে ব্যাখ্যা করা হয়েছে।
FLOAT32 ইনপুট টেনসর সহ কোনও মডেল ব্যবহার করতে, আপনাকে মেটাডেটাতে NormalizationOptions উল্লেখ করতে হবে।
এছাড়াও, আমরা সাজেস্ট করি যে আপনি এই মেটাডেটা আউটপুট টেনসর TensorMetadata-এর সাথে অ্যাটাচ করুন:
- প্রতিটি আউটপুট ক্লাসের নাম উল্লেখ করা একটি লেবেল ম্যাপ, যা AssociatedFile হিসেবে TENSOR_AXIS_LABELS টাইপের (অন্যথায়, শুধুমাত্র সংখ্যাগত আউটপুট ক্লাস ইনডেক্স রিটার্ন করা যেতে পারে)
- একটি ডিফল্ট স্কোর থ্রেশহোল্ড যার নিচে ফলাফলকে রিটার্ন করার জন্য খুব কম কনফিডেন্স হিসেবে বিবেচনা করা হয়, ScoreThresholdingOptions সহ ProcessUnit হিসেবে