কীভাবে একটি কাস্টম শ্রেণিবদ্ধ অ্যান্ড্রয়েড অ্যাপ তৈরি করবেন Build

ফ্লটার এবং অটোএমএল ভিশন এজ ব্যবহার করা হচ্ছে

চার্লস অন আনস্প্ল্যাশ-এর ​​ছবি

সুতরাং, আপনি একটি শ্রেণিবদ্ধ তৈরি করতে চান এবং আপনি এটি দ্রুত করতে চান। হতে পারে আপনার একটি শখ রয়েছে যার জন্য কোনও শ্রেণিবদ্ধকারী কার্যকর হতে পারে, বা আপনার ইতিমধ্যে এমন একটি চিত্র রয়েছে যা আপনি একটি অ্যাপে রূপান্তর করতে চান, বা আপনি কেবল নতুন কিছু নির্মাণের চেষ্টা করতে চান - এর বিভিন্ন কারণ রয়েছে।

এই পোস্টটি আপনাকে গুগলের ফ্লাটার এবং অটোএমএল ভিশন এজ পরিষেবা ব্যবহার করে অ্যান্ড্রয়েড ডিভাইসগুলির জন্য একটি শ্রেণিবদ্ধ অ্যাপ তৈরির প্রক্রিয়াটির জন্য গাইড করবে।

কেন তোলপাড়?

তাদের নিজস্ব কথায়:

"একক কোডবেস থেকে মোবাইল, ওয়েব এবং ডেস্কটপের জন্য সুন্দর, স্থানীয়ভাবে সংকলিত অ্যাপ্লিকেশন তৈরির জন্য গুঞ্জন হ'ল গুগলের ইউআই টুলকিট।"

ফ্লুর্ট ডার্ট ব্যবহার করে যা একটি দ্রুত, স্বজ্ঞাত, কিছুটা বিরল ভাষা। তবে জাভাস্ক্রিপ্টের চেয়ে যাকে জাভা ব্যবহারে বেশি ব্যবহার করা হয়েছে তাই আমি ঠিক ঘরে বসে অনুভব করেছি এবং খুব দ্রুত র‌্যাম্প আপ করতে সক্ষম হয়েছি।

এর গরম পুনরায় লোড বৈশিষ্ট্য সহ, ইউআইতে পুনরাবৃত্তি হ'ল বাতাস। খুব দ্রুত বর্ধমান সম্প্রদায় সহায়ক ব্যক্তি এবং সংস্থান দ্বারা পূর্ণ।

মোবাইল এবং পিডাব্লুএ সহ যতগুলি সম্ভব প্ল্যাটফর্মগুলিতে যতটা সম্ভব আপনার অ্যাপ্লিকেশনটি যত তাড়াতাড়ি চালু করতে চান আপনি যদি তেজস্ক্রিয় হ'ল সঠিক পছন্দ। ফ্লাটার ওয়েব দ্রুত ট্র্যাকশন লাভ করছে এবং গুগল এটি নিয়মিত উন্নতি ও আপডেট করতে প্রতিশ্রুতিবদ্ধ বলে মনে হচ্ছে।

অটোমেল ভিশন এজ কেন?

গুগলের অটোএমএল ভিশন এজ পরিষেবাটি ফায়ারবেসের মাধ্যমে অ্যাক্সেস করা যেতে পারে এবং এর জন্য প্রচুর সুবিধা রয়েছে। এটি আপনাকে কোনও কোডিং ছাড়াই শ্রেণিবদ্ধতা এমএল মডেলগুলি তৈরি করতে দেয়।

আপনার যা করা দরকার তা হ'ল প্রশিক্ষণের ডেটা সরবরাহ করা, তারপরে গুগল এটিতে একটি মডেলকে প্রশিক্ষণ দেবে। আপনি মডেলটির জন্য তিনটি অপ্টিমাইজেশনের একটি বেছে নিতে পারেন: বিলম্বিতা, নির্ভুলতা বা এই দুজনের মধ্যে ভারসাম্য।

তারপরে আপনি মডেলটির প্রশিক্ষণের জন্য কত ঘন্টা নির্দিষ্ট করতে হবে এবং এটি এখনই কাজ করবে। নোট করুন যে প্রশিক্ষণ চয়ন করা সময়ের সংখ্যার চেয়ে দ্রুত শেষ হতে পারে, কারণ গুগল একাধিক মেশিনে প্রশিক্ষণের সময় বিতরণ করে।

প্রশিক্ষণ শেষ হয়ে গেলে, আপনি মডেলটি ডাউনলোড করতে পারেন, এটি প্রকাশ করতে পারেন (এটি আপনার অ্যাপ্লিকেশন ব্যবহারের জন্য উপলব্ধ করার জন্য), গড় নির্ভুলতার মতো মূল্যায়ন পরিসংখ্যান দেখতে এবং এটি পরীক্ষা করতে পারেন।

পরিষেবাটির অন্য সুবিধাটি আপনার নতুন মডেলটি প্রান্ত ডিভাইসে সরাসরি চালানো যেতে পারে in এর দুটি প্রধান সুবিধা রয়েছে:

  • শ্রেণিবদ্ধকরণ করতে আপনার অ্যাপ্লিকেশনটির কোনও ইন্টারনেট সংযোগের প্রয়োজন হবে না।
  • শ্রেণিবিন্যাসগুলি খুব দ্রুত (0.1 সেকেন্ডেরও কম)।

সংমিশ্রণে, এই দুটি পয়েন্ট আপনার অ্যাপ্লিকেশনটিকে যে কোনও জায়গায় যে কোনও সময় শ্রেণিবদ্ধকরণ করার অনুমতি দেয়!

তথ্য সংগ্রহ

কীভাবে প্রশিক্ষণ ডেটা অর্জন করবেন আপনি যে শ্রেণিবদ্ধ তৈরি করতে চান তার উপর পৃথক হবে এবং এই নিবন্ধের আওতার বাইরে।

সম্ভবত আপনার ইতিমধ্যে একটি লেবেলযুক্ত ডেটা সেট রয়েছে, বা আপনি এমন একটি ওয়েব স্ক্র্যাপার তৈরি করেছেন যা চিত্রগুলি স্বয়ংক্রিয়ভাবে ডাউনলোড এবং লেবেল করে। যাইহোক, আপনার মডেল শালীনভাবে সঠিক হওয়ার জন্য, আপনি প্রতি লেবেলে কমপক্ষে 100 টি চিত্র চাইবেন। এর চেয়ে কম, এবং আপনার মডেলটি অবিশ্বস্ত হওয়ার ঝুঁকিটি চালান।

ইউআই নির্মাণ

আপনার অ্যাপ্লিকেশনটিতে মডেলকে সংহত করার কয়েকটি উপায় রয়েছে (নীচে তার আরও কিছু)। যেহেতু, এই পোস্টে, আপনি একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরির লক্ষ্যে রয়েছেন, তাই আমরা কিছু স্থানীয় জাভা কোড ব্যবহার করব।

নেপথ্য উপাদানটির সাথে কথা বলার জন্য ঝাঁকুনির জন্য, আপনাকে আপনার স্টেটফুল শ্রেণিবদ্ধকরণ উইজেটে একটি চ্যানেল এবং কিছু পদ্ধতির নাম উল্লেখ করতে হবে। আপনার .ডার্ট ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:

এর পরে, আপনাকে আপনার মডেলকে খাওয়ানোর জন্য কোনও চিত্র চয়ন করার জন্য ব্যবহারকারীকে একটি উপায় বাস্তবায়ন করতে হবে।

এটি অর্জন করতে, একটি ভাল বিকল্প হ'ল ফ্লার্ট ইমেজ পিকার প্যাকেজ। এটি আপনার পবস্পেক.আইএমএল ফাইলের নির্ভরতা বিভাগে যুক্ত করুন:

খেতে খেতে খেতে খেতে হবে এর পরে, চিত্র পিকারের অ্যাসিঙ্ক্রোনাস পিক ইমেজ () প্রয়োগ করুন:

এই পদ্ধতিগুলি উদাহরণস্বরূপ, আপনার তৈরি বোতামগুলির হ্যান্ডলার হিসাবে নিবন্ধিত হতে পারে। আপনি কীভাবে এই বিকল্পগুলি ব্যবহারকারীর সামনে উপস্থাপন করবেন তা নির্ভর করে।

তারপরে আপনাকে ইমেজ ফাইলটি মডেলটিতে পাঠাতে হবে যা আপনার নেটিভ উপাদানগুলিতে চলে। এটি করতে, আগে নির্ধারিত চ্যানেল এবং পদ্ধতির নামগুলি ব্যবহার করুন:

চিত্রটি শ্রেণিবদ্ধ করার সময় আপনি কোনও স্পিনার দেখাতে চাইতে পারেন। তবে বেশিরভাগ ক্ষেত্রে শ্রেণিবিন্যাসটি এত তাড়াতাড়ি করা হয় যে কোনও স্পিনার দৃশ্যমান হবে না।

আপনার বাস্তবায়নের উপর নির্ভর করে, অ্যাপ্লিকেশনটি একটি রিমোট মডেল ব্যবহার করতে পারে, বা স্থানীয় মডেলটির আপডেটগুলি পরীক্ষা করতে পারে এবং আপনার কাছে থাকা সংস্করণটি যদি পুরানো হয় তবে এটি নতুন সংস্করণ ডাউনলোড করতে পারে।

সেক্ষেত্রে কোনও স্পিনার সেই স্বল্প সময়ের (ডিভাইসের ইন্টারনেট সংযোগ এবং মডেলের আকারের উপর নির্ভর করে দুই থেকে চার সেকেন্ড) coverাকতে বোধগম্য হতে পারে।

নোট করুন যে মডেলটি যখন আপনার চিত্রকে শ্রেণিবদ্ধ করে কাজ করা হয় তখন এর জন্য একটি কলব্যাকের প্রয়োজন হয় so সুবিধার্থে, এই উদাহরণস্বরূপ স্টোর ফলাফলগুলি ফলাফল লেবেলগুলিকে মানচিত্রের উত্থানের ক্রমে সাজানো তাদের আত্মবিশ্বাসের মান ম্যাপ করার জন্য একটি স্প্লেট্রিম্যাপ।

বাছাই করা মানচিত্রে ফলাফল সংরক্ষণের মাধ্যমে আপনি সহজেই আপনার ইউআই প্রথম, তিনটি ফলাফল দিয়ে আপডেট করতে পারবেন:

এবং এটি এটি কিছু বেসিক ইউআইয়ের জন্য! এর পরে, আপনাকে মডেলকে সংহত করতে হবে।

মডেল একীকরণ

আপনি যখন আপনার মডেলটি ডাউনলোড করেন, আপনার তিনটি ফাইল পাওয়া উচিত:

  • ডিক্ট টেক্সট - আপনার মডেলের লেবেলগুলি তালিকাভুক্ত করে।
  • manifest.json - এর মধ্যে কিছু মেটাডেটা রয়েছে।
  • Model.tflite - আসল মডেল।

আপনার এগুলি কোনও এন্ড্রয়েড / অ্যাড / এ্যাসেটস সাব-ডাইরেক্টরির মতো, কোথাও লাগাতে হবে / অ্যান্ড্রয়েড / অ্যাপ্লিকেশন / সম্পদ / মিলি-মডেল।

কীভাবে প্রকল্পটি কনফিগার করতে হয় তার আরও বিশদ ওভারভিউ- এবং অ্যাপ্লিকেশন-স্তরের বিল্ড.gradle ফাইলগুলি দয়া করে দস্তাবেজগুলি দেখুন।

এগুলি সব সেট হয়ে গেলে, Android / অ্যাপ / এসসিআর / প্রধান / জাভা / আপনার / প্যাকেজ / নামটিতে MainActivity.java খুলুন।

মডেলটি লোড করার ক্ষেত্রে, আপনার কাছে আপনার বিকল্পগুলির একগুচ্ছ বিকল্প রয়েছে যেমন স্থানীয় বনাম হোস্টেড মডেলটি কখন ব্যবহার করবেন, কখন স্থানীয় মডেল আপডেট করবেন ইত্যাদি

যাই হোক না কেন, আপনার .dart ফাইলে সংজ্ঞায়িত চ্যানেল এবং পদ্ধতির নামগুলির পাশাপাশি আপনার মডেলের নাম প্রয়োজন। এগুলি অবশ্যই মিলবে।

আপনি কোনও ন্যূনতম আত্মবিশ্বাসের প্রান্তিক সংজ্ঞাটিও সংজ্ঞায়িত করতে চাইতে পারেন যার নীচে কোনও ফলাফল ফিরে আসে না - নেটিভ কোডটির কতটা দায়িত্ব থাকতে হবে তা নির্ধারণ করা আপনার উপর নির্ভর করে:

আপনি এটি পড়ার সময়, নীচের সঠিক বাস্তবায়ন পরিবর্তিত হতে পারে, কারণ ফ্লাটার অবিচ্ছিন্নভাবে দেশীয় প্ল্যাটফর্মগুলির সাথে একীকরণের উন্নতি করে চলেছে।

লেখার সময়, যদিও, আপনার ডার্ট কোড দ্বারা যে ক্রিয়াকলাপটি আহ্বান করা হয়েছে তা এর মতো দেখাবে:

এরপরে, ফায়ারবেস শুরু করুন:

এই মুহুর্তে, আপনি একটি দূরবর্তী মডেল ব্যবহার করতে পারেন, স্থানীয় ব্যবহার করতে পারেন বা স্থানীয় মডেলটি আপডেট করার দরকার আছে কিনা তা পরীক্ষা করতে পারেন।

আপনি এই আরম্ভের টুকরাটি কতটা পরিশীলিত করতে চান তা আপনার উপর নির্ভর করে। বংশবৃদ্ধির জন্য, এই উদাহরণটি কেবলমাত্র স্থানীয় মডেল ব্যবহার করে যা আগে যুক্ত হয়েছিল এবং এটিও প্রাথমিকভাবে করা দরকার:

তারপরে আপনাকে আপনার চিত্র প্রস্তুত করতে হবে:

শেষ অবধি, মডেলটিকে চিত্রটির শ্রেণিবদ্ধকরণ করুন, এবং ফলাফলটিকে ফেরতলে ফিরিয়ে দিন:

এবং এটাই! আপনার এখন একটি কার্যকরী ফ্লটার অ্যাপ্লিকেশন থাকা উচিত যা কোনও চিত্র নিতে বা নির্বাচন করতে পারে, স্থানীয় মডেলটি ব্যবহার করে শ্রেণিবদ্ধ করতে পারে এবং ফলাফলগুলি প্রদর্শন করতে পারে।

উপসংহার

ঝাঁকুনি এবং অটোএমএল ভিশন এজ আপনাকে কোনও এমএল তত্ত্ব না জেনে বা কোনও এমএল কোড না লিখে, খুব অল্প সময়ের মধ্যে একটি দ্রুত, নির্ভুল (আপনার প্রশিক্ষণের ডেটার উপর নির্ভর করে) এবং ইন্টারনেট সংযোগ-স্বতন্ত্র শ্রেণিবদ্ধ অ্যাপ্লিকেশন তৈরি করতে সক্ষম করে।

আপনি এখন অতিরিক্ত বৈশিষ্ট্য এবং একটি আশ্চর্যজনক ইউআই তৈরিতে যে পরিমাণ সময় সাশ্রয় করেছেন সেগুলি এখন ব্যয় করতে পারবেন। শুভ কোডিং!

সম্পদ

  • ঝাপটানি
  • তোলা ছবি পিকার
  • গুগল অটোমেল ভিশন এজ