AutoML Vision Edge দিয়ে একটি অবজেক্ট ডিটেকশন মডেলকে প্রশিক্ষণ দিন

একটি বস্তু সনাক্তকরণ মডেল একটি চিত্র লেবেলিং মডেলের অনুরূপ, তবে সম্পূর্ণ চিত্রগুলিতে লেবেল বরাদ্দ করার পরিবর্তে, এটি চিত্রের অঞ্চলগুলিতে লেবেল বরাদ্দ করে। আপনি একটি চিত্রের মধ্যে বস্তু সনাক্ত করতে এবং সনাক্ত করতে বা চিত্রের একটি সিরিজ জুড়ে একটি বস্তুর গতিবিধি ট্র্যাক করতে বস্তু সনাক্তকরণ মডেল ব্যবহার করতে পারেন।

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

শুরু করার আগে

  • যদি আপনার কাছে ইতিমধ্যেই কোন Firebase প্রকল্প না থাকে, তাহলে Firebase কনসোলে একটি তৈরি করুন।

  • ইনক্লুসিভ এমএল গাইড - অটোএমএল - এ উপস্থাপিত নির্দেশিকাগুলির সাথে নিজেকে পরিচিত করুন।

  • যদি আপনি কেবল AutoML Vision Edge ব্যবহার করে দেখতে চান, এবং আপনার নিজস্ব প্রশিক্ষণ ডেটা না থাকে, তাহলে নিম্নলিখিতগুলির মধ্যে একটির মতো একটি নমুনা ডেটাসেট ডাউনলোড করুন:

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

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

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

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

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

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

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

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

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

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

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

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

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

gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

ছবিতে অবজেক্ট বাউন্ডিং বাক্সগুলি আপেক্ষিক স্থানাঙ্ক হিসাবে নির্দিষ্ট করা হয়েছে। প্রশিক্ষণ ডেটা CSV ফর্ম্যাট করা দেখুন।

ছবিগুলো অবশ্যই us-central1 অঞ্চলে থাকা একটি বালতিতে সংরক্ষণ করতে হবে এবং আপনার Firebase প্রকল্পের সংশ্লিষ্ট Google Cloud প্রকল্পের অংশ হতে হবে।

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

আপনার প্রশিক্ষণের ছবিগুলিকে লেবেল করুন এবং আপলোড করার পর Google Cloud Console-এ অবজেক্টের সীমানা আঁকুন। এটি শুধুমাত্র ছোট ডেটাসেটের জন্য সুপারিশ করা হয়। পরবর্তী ধাপটি দেখুন।

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

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

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

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

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

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

  5. যদি আপনি CSV আপলোড না করে থাকেন, তাহলে প্রতিটি ছবির জন্য, আপনি যে বস্তুগুলিকে চিনতে চান তার চারপাশে বাউন্ডিং বাক্স আঁকুন এবং প্রতিটি বস্তুকে লেবেল করুন।

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

    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 অ্যাপগুলিতে মডেলটি কীভাবে ব্যবহার করবেন তা শিখুন।