AutoML Vision Edge সহ একটি ইমেজ লেবেলিং মডেলকে প্রশিক্ষণ দিন

একটি ইমেজ লেবেলিং মডেলকে প্রশিক্ষণ দেওয়ার জন্য, আপনাকে AutoML Vision Edge-কে ছবি এবং সংশ্লিষ্ট লেবেলের একটি সেট প্রদান করতে হবে। AutoML Vision Edge এই ডেটাসেটটি ব্যবহার করে ক্লাউডে একটি নতুন মডেলকে প্রশিক্ষণ দেয়, যা আপনি আপনার অ্যাপে ডিভাইসে ইমেজ লেবেলিং করার জন্য ব্যবহার করতে পারেন। (এই বৈশিষ্ট্য সম্পর্কে সাধারণ তথ্যের জন্য ওভারভিউ দেখুন।)

অটোএমএল ভিশন এজ একটি গুগল ক্লাউড পরিষেবা। পরিষেবাটি ব্যবহার করা গুগল ক্লাউড প্ল্যাটফর্ম লাইসেন্স চুক্তি এবং পরিষেবা নির্দিষ্ট শর্তাবলীর সাপেক্ষে এবং সেই অনুযায়ী বিল করা হয়। বিলিং তথ্যের জন্য, অটোএমএল মূল্য পৃষ্ঠাটি দেখুন।

শুরু করার আগে

১. আপনার প্রশিক্ষণের তথ্য সংগ্রহ করুন

প্রথমে, আপনাকে লেবেলযুক্ত চিত্রগুলির একটি প্রশিক্ষণ ডেটাসেট একত্রিত করতে হবে। নিম্নলিখিত নির্দেশিকাগুলি মনে রাখবেন:

  • ছবিগুলি অবশ্যই নিম্নলিখিত ফর্ম্যাটগুলির মধ্যে একটিতে হতে হবে: JPEG, PNG, GIF, BMP, ICO।

  • প্রতিটি ছবি অবশ্যই 30MB বা তার চেয়ে ছোট হতে হবে। মনে রাখবেন যে অটোএমএল ভিশন এজ প্রি-প্রসেসিংয়ের সময় বেশিরভাগ ছবির স্কেল কমিয়ে দেয়, তাই খুব উচ্চ রেজোলিউশনের ছবি প্রদানের ক্ষেত্রে সাধারণত কোনও নির্ভুলতার সুবিধা থাকে না।

  • প্রতিটি লেবেলের কমপক্ষে ১০টি, এবং সম্ভবত ১০০টি বা তার বেশি উদাহরণ অন্তর্ভুক্ত করুন।

  • প্রতিটি লেবেলের জন্য একাধিক কোণ, রেজোলিউশন এবং পটভূমি অন্তর্ভুক্ত করুন।

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

  • অটোএমএল ভিশন এজ দ্বারা তৈরি মডেলগুলি বাস্তব জগতের বস্তুর ছবির জন্য অপ্টিমাইজ করা হয়েছে। এক্স-রে, হাতের অঙ্কন, স্ক্যান করা নথি, রসিদ ইত্যাদির জন্য এগুলি ভালোভাবে কাজ নাও করতে পারে।

    এছাড়াও, মডেলগুলি সাধারণত এমন লেবেলগুলি ভবিষ্যদ্বাণী করতে পারে না যা মানুষ নির্ধারণ করতে পারে না। সুতরাং, যদি কোনও মানুষ ১-২ সেকেন্ডের জন্য ছবিটি দেখে লেবেল নির্ধারণ করতে না পারে, তবে মডেলটিকে সম্ভবত এটি করার জন্য প্রশিক্ষিত করা যাবে না।

যখন তোমার প্রশিক্ষণের ছবিগুলো প্রস্তুত থাকবে, তখন সেগুলো Firebase-এ আমদানি করার জন্য প্রস্তুত করো। তোমার কাছে তিনটি বিকল্প আছে:

বিকল্প ১: স্ট্রাকচার্ড জিপ আর্কাইভ

আপনার প্রশিক্ষণের ছবিগুলিকে ডিরেক্টরিতে সাজান, প্রতিটির নাম একটি লেবেলের নামে রাখা হবে এবং সেই লেবেলের উদাহরণ হিসেবে ব্যবহৃত ছবিগুলি থাকবে। তারপর, ডিরেক্টরি কাঠামোটি একটি জিপ আর্কাইভে সংকুচিত করুন।

এই জিপ আর্কাইভে থাকা ডিরেক্টরির নামগুলি সর্বোচ্চ ৩২টি ASCII অক্ষর পর্যন্ত দীর্ঘ হতে পারে এবং এতে কেবল আলফানিউমেরিক অক্ষর এবং আন্ডারস্কোর অক্ষর ( _ ) থাকতে পারে।

উদাহরণস্বরূপ:

my_training_data.zip
  |____accordion
  | |____001.jpg
  | |____002.jpg
  | |____003.jpg
  |____bass_guitar
  | |____hofner.gif
  | |____p-bass.png
  |____clavier
    |____well-tempered.jpg
    |____well-tempered (1).jpg
    |____well-tempered (2).jpg

বিকল্প ২: CSV সূচক সহ Cloud Storage

আপনার প্রশিক্ষণের ছবিগুলি Google Cloud Storage এ আপলোড করুন এবং প্রতিটি ছবির URL এবং ঐচ্ছিকভাবে, প্রতিটি ছবির জন্য সঠিক লেবেল সহ একটি CSV ফাইল প্রস্তুত করুন। খুব বড় ডেটাসেট ব্যবহার করার সময় এই বিকল্পটি সহায়ক।

উদাহরণস্বরূপ, আপনার ছবিগুলি Cloud Storage আপলোড করুন এবং নিম্নলিখিতটির মতো একটি CSV ফাইল প্রস্তুত করুন:

gs://your-training-data-bucket/001.jpg,accordion
gs://your-training-data-bucket/002.jpg,accordion
gs://your-training-data-bucket/003.jpg,accordion
gs://your-training-data-bucket/hofner.gif,bass_guitar
gs://your-training-data-bucket/p-bass.png,bass_guitar
gs://your-training-data-bucket/well-tempered.jpg,clavier
gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier
gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier

ছবিগুলো অবশ্যই এমন একটি বালতিতে সংরক্ষণ করতে হবে যা আপনার ফায়ারবেস প্রকল্পের সংশ্লিষ্ট Google Cloud প্রকল্পের অংশ।

CSV ফাইল প্রস্তুত করার বিষয়ে আরও তথ্যের জন্য ক্লাউড অটোএমএল ভিশন ডকুমেন্টেশনে আপনার প্রশিক্ষণ ডেটা প্রস্তুত করা দেখুন।

বিকল্প ৩: লেবেলবিহীন ছবি

আপনার প্রশিক্ষণের ছবিগুলি আপলোড করার পরে Firebase কনসোলে লেবেল করুন, হয় আলাদাভাবে অথবা একটি আনস্ট্রাকচার্ড জিপ ফাইলে। পরবর্তী ধাপটি দেখুন।

2. আপনার মডেলকে প্রশিক্ষণ দিন

এরপর, আপনার ছবি ব্যবহার করে একটি মডেলকে প্রশিক্ষণ দিন:

  1. Google Cloud কনসোলে ভিশন ডেটাসেটস পৃষ্ঠাটি খুলুন। অনুরোধ করা হলে আপনার প্রকল্পটি নির্বাচন করুন।

  2. নতুন ডেটাসেট ক্লিক করুন, ডেটাসেটের জন্য একটি নাম দিন, আপনি যে ধরণের মডেল প্রশিক্ষণ দিতে চান তা নির্বাচন করুন এবং ডেটাসেট তৈরি করুন এ ক্লিক করুন।

  3. আপনার ডেটাসেটের "ইমপোর্ট" ট্যাবে, আপনার প্রশিক্ষণের ছবিগুলির একটি জিপ আর্কাইভ অথবা আপনার আপলোড করা Cloud Storage অবস্থানগুলি সম্বলিত একটি CSV ফাইল আপলোড করুন। আপনার প্রশিক্ষণের ডেটা একত্রিত করুন দেখুন।

  4. আমদানির কাজ শেষ হওয়ার পর, প্রশিক্ষণের তথ্য যাচাই করতে এবং লেবেলবিহীন যেকোনো ছবি লেবেল করতে ছবি ট্যাব ব্যবহার করুন।

  5. ট্রেন ট্যাবে, প্রশিক্ষণ শুরু করুন ক্লিক করুন।

    1. মডেলটির নাম দিন এবং এজ মডেলের ধরণ নির্বাচন করুন।

    2. নিম্নলিখিত প্রশিক্ষণ সেটিংস কনফিগার করুন, যা তৈরি মডেলের কর্মক্ষমতা নিয়ন্ত্রণ করে:

      এর জন্য মডেলটি অপ্টিমাইজ করুন... ব্যবহারের জন্য মডেল কনফিগারেশন। কম ল্যাটেন্সি বা ছোট প্যাকেজ আকার গুরুত্বপূর্ণ হলে আপনি দ্রুত, ছোট মডেলগুলিকে প্রশিক্ষণ দিতে পারেন, অথবা নির্ভুলতা সবচেয়ে গুরুত্বপূর্ণ হলে ধীর, বড় মডেলগুলিকে প্রশিক্ষণ দিতে পারেন।
      নোড ঘন্টা বাজেট

      মডেলটিকে প্রশিক্ষণ দিতে গণনার সময় সর্বাধিক কত সময় লাগে। বেশি প্রশিক্ষণের সময় সাধারণত আরও সঠিক মডেল তৈরি করে।

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

      সাধারণ প্রশিক্ষণের সময়
      খুব ছোট সেট ১ ঘন্টা
      ৫০০টি ছবি ২ ঘন্টা
      ১,০০০টি ছবি ৩ ঘন্টা
      ৫,০০০টি ছবি ৬ ঘন্টা
      ১০,০০০ ছবি ৭ ঘন্টা
      ৫০,০০০ ছবি ১১ ঘন্টা
      ১০০,০০০ ছবি ১৩ ঘন্টা
      ১,০০০,০০০ ছবি ১৮ ঘন্টা

৩. আপনার মডেল মূল্যায়ন করুন

প্রশিক্ষণ শেষ হলে, মডেলের কর্মক্ষমতা মেট্রিক্স দেখতে আপনি মূল্যায়ন ট্যাবে ক্লিক করতে পারেন।

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

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

রিকল হলো সঠিকভাবে লেবেল করা ছবির সংখ্যা এবং মডেলটির লেবেল করার জন্য উপযুক্ত কন্টেন্ট থাকা ছবির সংখ্যার অনুপাত। যখন একটি মডেলের রিকল বেশি থাকে, তখন এটি কম ঘন ঘন কোনও লেবেল বরাদ্দ করতে ব্যর্থ হয় (কম মিথ্যা নেতিবাচক)।

আপনি নির্ভুলতার জন্য অপ্টিমাইজ করবেন নাকি প্রত্যাহার করবেন তা আপনার ব্যবহারের ক্ষেত্রে নির্ভর করবে। আরও তথ্যের জন্য অটোএমএল ভিশন বিগিনারস গাইড এবং ইনক্লুসিভ এমএল গাইড - অটোএমএল দেখুন।

যখন আপনি এমন একটি আত্মবিশ্বাসের থ্রেশহোল্ড খুঁজে পান যা আপনার জন্য উপযুক্ত মেট্রিক্স তৈরি করে, তখন এটি নোট করুন; আপনি আপনার অ্যাপে মডেলটি কনফিগার করার জন্য আত্মবিশ্বাসের থ্রেশহোল্ড ব্যবহার করবেন। (আপনি যেকোনো সময় একটি উপযুক্ত থ্রেশহোল্ড মান পেতে এই টুলটি ব্যবহার করতে পারেন।)

৪. আপনার মডেল প্রকাশ বা ডাউনলোড করুন

আপনি যদি মডেলটির পারফরম্যান্সে সন্তুষ্ট হন এবং এটি একটি অ্যাপে ব্যবহার করতে চান, তাহলে আপনার কাছে তিনটি বিকল্প আছে, যেখান থেকে আপনি যেকোনো সমন্বয় বেছে নিতে পারেন: অনলাইন ভবিষ্যদ্বাণীর জন্য মডেলটি স্থাপন করুন, Firebase-এ মডেলটি প্রকাশ করুন, অথবা মডেলটি ডাউনলোড করুন এবং আপনার অ্যাপের সাথে এটি বান্ডেল করুন।

মডেলটি স্থাপন করুন

আপনার ডেটাসেটের " পরীক্ষা ও ব্যবহার" ট্যাবে, আপনি অনলাইন ভবিষ্যদ্বাণীর জন্য আপনার মডেলটি স্থাপন করতে পারেন, যা ক্লাউডে আপনার মডেলটি চালায়। এই বিকল্পটি ক্লাউড অটোএমএল ডক্সে অন্তর্ভুক্ত। এই সাইটের ডক্স বাকি দুটি বিকল্প নিয়ে কাজ করে।

মডেলটি প্রকাশ করুন

Firebase-এ মডেলটি প্রকাশ করে, আপনি নতুন অ্যাপ সংস্করণ প্রকাশ না করেই মডেলটি আপডেট করতে পারবেন এবং আপনি Remote Config এবং A/B Testing ব্যবহার করে বিভিন্ন ব্যবহারকারীদের বিভিন্ন মডেলকে গতিশীলভাবে পরিবেশন করতে পারবেন।

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

আপনার মডেল প্রকাশ করতে, আপনি দুটি পদ্ধতির যেকোনো একটি ব্যবহার করতে পারেন:

  • Google Cloud কনসোলে আপনার ডেটাসেটের পরীক্ষা ও ব্যবহার পৃষ্ঠা থেকে TF Lite মডেলটি ডাউনলোড করুন এবং তারপর Firebase কনসোলের কাস্টম মডেল পৃষ্ঠায় মডেলটি আপলোড করুন। এটি সাধারণত একটি একক মডেল প্রকাশ করার সবচেয়ে সহজ উপায়।
  • অ্যাডমিন SDK ব্যবহার করে আপনার Google Cloud প্রজেক্ট থেকে সরাসরি Firebase-এ মডেলটি প্রকাশ করুন। আপনি এই পদ্ধতিটি ব্যবহার করে একাধিক মডেলের ব্যাচ প্রকাশ করতে পারেন অথবা স্বয়ংক্রিয় প্রকাশনা পাইপলাইন তৈরি করতে সাহায্য করতে পারেন।

অ্যাডমিন SDK মডেল ম্যানেজমেন্ট API দিয়ে মডেলটি প্রকাশ করতে:

  1. SDK ইনস্টল এবং আরম্ভ করুন

  2. মডেলটি প্রকাশ করুন।

    আপনাকে মডেলের রিসোর্স আইডেন্টিফায়ার নির্দিষ্ট করতে হবে, যা একটি স্ট্রিং যা দেখতে নিম্নলিখিত উদাহরণের মতো:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER মডেলটি ধারণকারী Cloud Storage বাকেটের প্রজেক্ট নম্বর। এটি আপনার ফায়ারবেস প্রজেক্ট অথবা অন্য কোনও Google Cloud প্রজেক্ট হতে পারে। আপনি এই মানটি Firebase কনসোলের সেটিংস পৃষ্ঠায় অথবা Google Cloud কনসোল ড্যাশবোর্ডে খুঁজে পেতে পারেন।
    MODEL_ID মডেলের আইডি, যা আপনি অটোএমএল ক্লাউড এপিআই থেকে পেয়েছেন।

    পাইথন

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    নোড.জেএস

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

আপনার অ্যাপের সাথে মডেলটি ডাউনলোড করে বান্ডেল করুন।

আপনার মডেলটিকে আপনার অ্যাপের সাথে বান্ডেল করে, আপনি নিশ্চিত করতে পারেন যে Firebase-হোস্টেড মডেলটি উপলব্ধ না থাকলেও আপনার অ্যাপের ML বৈশিষ্ট্যগুলি এখনও কাজ করছে।

যদি তোমরা দুজনেই মডেলটি প্রকাশ করো এবং এটিকে তোমার অ্যাপের সাথে যুক্ত করো, তাহলে অ্যাপটি সর্বশেষ সংস্করণটি ব্যবহার করবে।

আপনার মডেলটি ডাউনলোড করতে, আপনার ডেটাসেটের পরীক্ষা ও ব্যবহার পৃষ্ঠায় TF Lite-এ ক্লিক করুন।

পরবর্তী পদক্ষেপ

এখন আপনি মডেলটি প্রকাশ বা ডাউনলোড করেছেন, আপনার iOS+ এবং Android অ্যাপগুলিতে মডেলটি কীভাবে ব্যবহার করবেন তা শিখুন।