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

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

AutoML Vision Edge হল একটি Google ক্লাউড পরিষেবা। পরিষেবার ব্যবহার Google ক্লাউড প্ল্যাটফর্ম লাইসেন্স চুক্তি এবং পরিষেবা নির্দিষ্ট শর্তাবলী সাপেক্ষে এবং সেই অনুযায়ী বিল করা হয়৷ বিলিং তথ্যের জন্য, AutoML মূল্য নির্ধারণ পৃষ্ঠা দেখুন।

আপনি শুরু করার আগে

1. আপনার প্রশিক্ষণ তথ্য একত্রিত করুন

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

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

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

  • প্রতিটি লেবেলের উদাহরণ কমপক্ষে 10টি এবং পছন্দের 100টি বা তার বেশি অন্তর্ভুক্ত করুন।

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

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

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

    এছাড়াও, মডেলগুলি সাধারণত লেবেলগুলির পূর্বাভাস দিতে পারে না যা মানুষ বরাদ্দ করতে পারে না। সুতরাং, যদি একজন মানুষ 1-2 সেকেন্ডের জন্য চিত্রটি দেখে লেবেল বরাদ্দ করতে না পারে, তাহলে মডেলটিকে সম্ভবত এটি করার জন্য প্রশিক্ষিত করা যাবে না।

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

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

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

এই জিপ সংরক্ষণাগারের ডিরেক্টরির নামগুলি 32 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

বিকল্প 2: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      সর্বাধিক সময়, গণনা ঘন্টা, মডেল প্রশিক্ষণ ব্যয়. আরো প্রশিক্ষণ সময় সাধারণত একটি আরো সঠিক মডেল ফলাফল.

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

      সাধারণ প্রশিক্ষণের সময়
      খুব ছোট সেট 1 ঘন্টা
      500টি ছবি 2 ঘন্টা
      1,000 ছবি 3 ঘন্টা
      5,000 ছবি 6 ঘন্টা
      10,000 ছবি 7 ঘন্টা
      50,000 ছবি 11 ঘন্টা
      100,000 ছবি 13 ঘন্টা
      1,000,000 ছবি 18 ঘন্টা

3. আপনার মডেল মূল্যায়ন

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

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

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

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

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

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

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

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

মডেল স্থাপন

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

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

ফায়ারবেসে মডেলটি প্রকাশ করার মাধ্যমে, আপনি একটি নতুন অ্যাপ সংস্করণ প্রকাশ না করেই মডেলটি আপডেট করতে পারেন এবং আপনি ব্যবহারকারীদের বিভিন্ন সেটের কাছে গতিশীলভাবে বিভিন্ন মডেল পরিবেশন করতে 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 মডেলের ID, যা আপনি AutoML Cloud API থেকে পেয়েছেন।

    পাইথন

    # 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)
    

    Node.js

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