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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

বিকল্প 1: 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 প্রকল্পের অংশ৷

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

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

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

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

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

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

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

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

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

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

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