ऑटोएमएल विज़न एज के साथ ऑब्जेक्ट डिटेक्शन मॉडल को प्रशिक्षित करें

एक ऑब्जेक्ट डिटेक्शन मॉडल एक छवि लेबलिंग मॉडल के समान है, लेकिन संपूर्ण छवियों को लेबल निर्दिष्ट करने के बजाय, यह छवियों के क्षेत्रों को लेबल निर्दिष्ट करता है। आप किसी छवि में ऑब्जेक्ट को पहचानने और उसका पता लगाने के लिए या छवियों की श्रृंखला में किसी ऑब्जेक्ट की गतिविधियों को ट्रैक करने के लिए ऑब्जेक्ट डिटेक्शन मॉडल का उपयोग कर सकते हैं।

ऑब्जेक्ट डिटेक्शन मॉडल को प्रशिक्षित करने के लिए, आप ऑटोएमएल विज़न एज को संबंधित ऑब्जेक्ट लेबल और ऑब्जेक्ट सीमाओं के साथ छवियों का एक सेट प्रदान करते हैं। ऑटोएमएल विज़न एज इस डेटासेट का उपयोग क्लाउड में एक नए मॉडल को प्रशिक्षित करने के लिए करता है, जिसका उपयोग आप ऑन-डिवाइस ऑब्जेक्ट डिटेक्शन के लिए कर सकते हैं।

शुरू करने से पहले

  • यदि आपके पास पहले से कोई फायरबेस प्रोजेक्ट नहीं है, तो फायरबेस कंसोल में एक बनाएं।

  • समावेशी एमएल गाइड - ऑटोएमएल में प्रस्तुत दिशानिर्देशों से खुद को परिचित करें।

  • यदि आप केवल ऑटोएमएल विज़न एज को आज़माना चाहते हैं, और आपके पास अपना प्रशिक्षण डेटा नहीं है, तो निम्न में से कोई एक नमूना डेटासेट डाउनलोड करें:

1. अपना प्रशिक्षण डेटा इकट्ठा करें

सबसे पहले, आपको लेबल की गई छवियों का एक प्रशिक्षण डेटासेट एक साथ रखना होगा। निम्नलिखित दिशानिर्देशों को ध्यान में रखें:

  • छवियां निम्नलिखित प्रारूपों में से एक में होनी चाहिए: JPEG, PNG, GIF, BMP, ICO।

  • प्रत्येक छवि 30 एमबी या उससे छोटी होनी चाहिए। ध्यान दें कि ऑटोएमएल विज़न एज प्रीप्रोसेसिंग के दौरान अधिकांश छवियों को डाउनस्केल करता है, इसलिए बहुत उच्च रिज़ॉल्यूशन वाली छवियां प्रदान करने में आमतौर पर कोई सटीकता लाभ नहीं होता है।

  • प्रत्येक लेबल के कम से कम 10, और अधिमानतः 100 या अधिक उदाहरण शामिल करें।

  • प्रत्येक लेबल के लिए एकाधिक कोण, रिज़ॉल्यूशन और पृष्ठभूमि शामिल करें।

  • प्रशिक्षण डेटा उस डेटा के जितना संभव हो उतना करीब होना चाहिए जिस पर भविष्यवाणियां की जानी हैं। उदाहरण के लिए, यदि आपके उपयोग के मामले में धुंधली और कम-रिज़ॉल्यूशन वाली छवियां शामिल हैं (जैसे कि सुरक्षा कैमरे से), तो आपका प्रशिक्षण डेटा धुंधली, कम-रिज़ॉल्यूशन वाली छवियों से बना होना चाहिए।

  • ऑटोएमएल विज़न एज द्वारा तैयार किए गए मॉडल वास्तविक दुनिया में वस्तुओं की तस्वीरों के लिए अनुकूलित हैं। हो सकता है कि वे एक्स-रे, हाथ से बनाए गए चित्र, स्कैन किए गए दस्तावेज़, रसीदें इत्यादि के लिए ठीक से काम न करें।

    साथ ही, मॉडल आम तौर पर उन लेबलों की भविष्यवाणी नहीं कर सकते जिन्हें मनुष्य निर्दिष्ट नहीं कर सकते। इसलिए, यदि कोई मानव 1-2 सेकंड के लिए छवि को देखकर लेबल निर्दिष्ट नहीं कर सकता है, तो संभवतः मॉडल को ऐसा करने के लिए प्रशिक्षित भी नहीं किया जा सकता है।

जब आपके पास अपनी प्रशिक्षण छवियां तैयार हों, तो उन्हें Google क्लाउड में आयात करने के लिए तैयार करें। आपके पास दो विकल्प हैं:

विकल्प 1: सीएसवी इंडेक्स के साथ क्लाउड स्टोरेज

अपनी प्रशिक्षण छवियों को Google क्लाउड स्टोरेज पर अपलोड करें और एक CSV फ़ाइल तैयार करें जिसमें प्रत्येक छवि का URL और वैकल्पिक रूप से प्रत्येक छवि के लिए सही ऑब्जेक्ट लेबल और बाउंडिंग क्षेत्र सूचीबद्ध हों। बड़े डेटासेट का उपयोग करते समय यह विकल्प सहायक होता है।

उदाहरण के लिए, अपनी छवियों को क्लाउड स्टोरेज पर अपलोड करें, और निम्नलिखित की तरह एक 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,,

ऑब्जेक्ट बाउंडिंग बॉक्स छवि में सापेक्ष निर्देशांक के रूप में निर्दिष्ट हैं। प्रशिक्षण डेटा सीएसवी का प्रारूपण देखें।

छवियों को एक बकेट में संग्रहीत किया जाना चाहिए जो us-central1 क्षेत्र में है और आपके फायरबेस प्रोजेक्ट के संबंधित Google क्लाउड प्रोजेक्ट का हिस्सा है।

विकल्प 2: लेबल रहित छवियाँ

अपनी प्रशिक्षण छवियों को अपलोड करने के बाद उन्हें लेबल करें और Google क्लाउड कंसोल में ऑब्जेक्ट सीमाएँ बनाएं। यह केवल छोटे डेटासेट के लिए अनुशंसित है। अगला चरण देखें.

2. अपने मॉडल को प्रशिक्षित करें

इसके बाद, अपनी छवियों का उपयोग करके एक मॉडल को प्रशिक्षित करें:

  1. Google क्लाउड कंसोल में विज़न डेटासेट पृष्ठ खोलें। संकेत मिलने पर अपना प्रोजेक्ट चुनें.

  2. नया डेटासेट पर क्लिक करें, डेटासेट के लिए एक नाम प्रदान करें, उस मॉडल का प्रकार चुनें जिसे आप प्रशिक्षित करना चाहते हैं, और डेटासेट बनाएं पर क्लिक करें।

  3. अपने डेटासेट के आयात टैब पर, अपनी प्रशिक्षण छवियां, अपनी प्रशिक्षण छवियों का एक ज़िप संग्रह या एक सीएसवी फ़ाइल अपलोड करें जिसमें क्लाउड स्टोरेज स्थान शामिल हैं जहां आपने उन्हें अपलोड किया था। अपना प्रशिक्षण डेटा एकत्र करें देखें।

  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. अपना मॉडल प्रकाशित या डाउनलोड करें

यदि आप मॉडल के प्रदर्शन से संतुष्ट हैं और इसे किसी ऐप में उपयोग करना चाहते हैं, तो आपके पास तीन विकल्प हैं, जिनमें से आप कोई भी संयोजन चुन सकते हैं: मॉडल को ऑनलाइन भविष्यवाणी के लिए तैनात करें, मॉडल को फायरबेस पर प्रकाशित करें, या मॉडल डाउनलोड करें और इसे बंडल करें आपके ऐप के साथ.

मॉडल तैनात करें

अपने डेटासेट के परीक्षण और उपयोग टैब पर, आप अपने मॉडल को ऑनलाइन भविष्यवाणी के लिए तैनात कर सकते हैं, जो आपके मॉडल को क्लाउड में चलाता है। यह विकल्प क्लाउड ऑटोएमएल डॉक्स में शामिल है। इस साइट के दस्तावेज़ शेष दो विकल्पों से संबंधित हैं।

मॉडल प्रकाशित करें

मॉडल को फायरबेस पर प्रकाशित करके, आप नए ऐप संस्करण को जारी किए बिना मॉडल को अपडेट कर सकते हैं, और आप उपयोगकर्ताओं के विभिन्न समूहों को गतिशील रूप से विभिन्न मॉडल पेश करने के लिए रिमोट कॉन्फिग और ए/बी परीक्षण का उपयोग कर सकते हैं।

यदि आप मॉडल को केवल फायरबेस के साथ होस्ट करके प्रदान करना चुनते हैं, और इसे अपने ऐप के साथ बंडल नहीं करते हैं, तो आप अपने ऐप के प्रारंभिक डाउनलोड आकार को कम कर सकते हैं। हालाँकि, ध्यान रखें कि यदि मॉडल आपके ऐप के साथ बंडल नहीं किया गया है, तो मॉडल से संबंधित कोई भी कार्यक्षमता तब तक उपलब्ध नहीं होगी जब तक आपका ऐप पहली बार मॉडल डाउनलोड नहीं करता।

अपना मॉडल प्रकाशित करने के लिए, आप दो तरीकों में से किसी एक का उपयोग कर सकते हैं:

  • Google क्लाउड कंसोल में अपने डेटासेट के परीक्षण और उपयोग पृष्ठ से टीएफ लाइट मॉडल डाउनलोड करें, और फिर मॉडल को फायरबेस कंसोल के कस्टम मॉडल पृष्ठ पर अपलोड करें। यह आमतौर पर किसी एकल मॉडल को प्रकाशित करने का सबसे आसान तरीका है।
  • एडमिन एसडीके का उपयोग करके मॉडल को सीधे अपने Google क्लाउड प्रोजेक्ट से फायरबेस पर प्रकाशित करें। आप इस विधि का उपयोग कई मॉडलों को बैच प्रकाशित करने या स्वचालित प्रकाशन पाइपलाइन बनाने में सहायता के लिए कर सकते हैं।

मॉडल को एडमिन एसडीके मॉडल प्रबंधन एपीआई के साथ प्रकाशित करने के लिए:

  1. एसडीके स्थापित करें और प्रारंभ करें

  2. मॉडल प्रकाशित करें.

    आपको मॉडल के संसाधन पहचानकर्ता को निर्दिष्ट करने की आवश्यकता होगी, जो एक स्ट्रिंग है जो निम्न उदाहरण जैसा दिखता है:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER क्लाउड स्टोरेज बकेट का प्रोजेक्ट नंबर जिसमें मॉडल शामिल है। यह आपका फायरबेस प्रोजेक्ट या कोई अन्य Google क्लाउड प्रोजेक्ट हो सकता है। आप यह मान फ़ायरबेस कंसोल या Google क्लाउड कंसोल डैशबोर्ड के सेटिंग पृष्ठ पर पा सकते हैं।
    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);
    

मॉडल को अपने ऐप के साथ डाउनलोड करें और बंडल करें

अपने मॉडल को अपने ऐप के साथ बंडल करके, आप यह सुनिश्चित कर सकते हैं कि आपके ऐप की एमएल सुविधाएं तब भी काम करती हैं जब फायरबेस-होस्टेड मॉडल उपलब्ध नहीं है।

यदि आप दोनों मॉडल प्रकाशित करते हैं और उसे अपने ऐप के साथ बंडल करते हैं, तो ऐप उपलब्ध नवीनतम संस्करण का उपयोग करेगा।

अपना मॉडल डाउनलोड करने के लिए, अपने डेटासेट के परीक्षण और उपयोग पृष्ठ पर टीएफ लाइट पर क्लिक करें।

अगले कदम

अब जब आपने मॉडल प्रकाशित या डाउनलोड कर लिया है, तो जानें कि अपने iOS+ और Android ऐप्स में मॉडल का उपयोग कैसे करें।