एक ऑब्जेक्ट डिटेक्शन मॉडल एक इमेज लेबलिंग मॉडल के समान है, लेकिन पूरी इमेज को लेबल असाइन करने के बजाय, यह इमेज के क्षेत्रों को लेबल असाइन करता है। आप किसी छवि में वस्तुओं को पहचानने और उनका पता लगाने के लिए या छवियों की एक श्रृंखला में किसी वस्तु की गतिविधियों को ट्रैक करने के लिए ऑब्जेक्ट डिटेक्शन मॉडल का उपयोग कर सकते हैं।
ऑब्जेक्ट डिटेक्शन मॉडल को प्रशिक्षित करने के लिए, आप ऑटोएमएल विज़न एज को संबंधित ऑब्जेक्ट लेबल और ऑब्जेक्ट सीमाओं के साथ छवियों का एक सेट प्रदान करते हैं। AutoML Vision Edge क्लाउड में एक नए मॉडल को प्रशिक्षित करने के लिए इस डेटासेट का उपयोग करता है, जिसका उपयोग आप ऑन-डिवाइस ऑब्जेक्ट डिटेक्शन के लिए कर सकते हैं।
शुरू करने से पहले
यदि आपके पास पहले से कोई Firebase प्रोजेक्ट नहीं है, तो Firebase कंसोल में एक बनाएं।
समावेशी ML मार्गदर्शिका - AutoML में प्रस्तुत दिशानिर्देशों से स्वयं को परिचित करें।
यदि आप केवल AutoML Vision Edge को आज़माना चाहते हैं, और आपके पास अपना स्वयं का प्रशिक्षण डेटा नहीं है, तो निम्न में से कोई एक नमूना डेटासेट डाउनलोड करें:
- TensorFlow के अनुशंसित डेटासेट में से एक।
- कागल पर होस्ट किया गया डेटासेट।
1. अपने प्रशिक्षण डेटा को इकट्ठा करें
सबसे पहले, आपको लेबल की गई छवियों के प्रशिक्षण डेटासेट को एक साथ रखना होगा। निम्नलिखित दिशानिर्देशों को ध्यान में रखें:
छवियों को निम्न स्वरूपों में से एक में होना चाहिए: जेपीईजी, पीएनजी, जीआईएफ, बीएमपी, आईसीओ।
प्रत्येक छवि 30 एमबी या उससे छोटी होनी चाहिए। ध्यान दें कि ऑटोएमएल विजन एज प्रीप्रोसेसिंग के दौरान अधिकांश छवियों को डाउनस्केल करता है, इसलिए आमतौर पर बहुत उच्च रिज़ॉल्यूशन वाली छवियां प्रदान करने के लिए कोई सटीकता लाभ नहीं होता है।
प्रत्येक लेबल के कम से कम 10, और अधिमानतः 100 या अधिक उदाहरण शामिल करें।
प्रत्येक लेबल के लिए एकाधिक कोण, संकल्प और पृष्ठभूमि शामिल करें।
प्रशिक्षण डेटा उस डेटा के जितना संभव हो उतना करीब होना चाहिए जिस पर भविष्यवाणियां की जानी हैं। उदाहरण के लिए, यदि आपके उपयोग के मामले में धुंधली और कम-रिज़ॉल्यूशन वाली छवियां शामिल हैं (जैसे सुरक्षा कैमरे से), तो आपका प्रशिक्षण डेटा धुंधली, कम-रिज़ॉल्यूशन वाली छवियों से बना होना चाहिए।
AutoML Vision Edge द्वारा जनरेट किए गए मॉडल वास्तविक दुनिया में वस्तुओं की तस्वीरों के लिए ऑप्टिमाइज़ किए गए हैं। हो सकता है कि वे एक्स-रे, हैंड ड्रॉइंग, स्कैन किए गए दस्तावेज़, रसीद आदि के लिए ठीक से काम न करें।
साथ ही, मॉडल आमतौर पर उन लेबलों की भविष्यवाणी नहीं कर सकते हैं जिन्हें मनुष्य असाइन नहीं कर सकते हैं। इसलिए, यदि कोई व्यक्ति 1-2 सेकंड के लिए छवि को देखकर लेबल नहीं दे सकता है, तो संभवतः मॉडल को ऐसा करने के लिए प्रशिक्षित नहीं किया जा सकता है।
जब आपके पास अपनी प्रशिक्षण छवियां तैयार हों, तो उन्हें Google क्लाउड में आयात करने के लिए तैयार करें। आपके पास दो विकल्प हैं:
विकल्प 1: सीएसवी इंडेक्स के साथ क्लाउड स्टोरेज
अपनी प्रशिक्षण छवियों को Google क्लाउड स्टोरेज पर अपलोड करें और प्रत्येक छवि के URL को सूचीबद्ध करने वाली एक CSV फ़ाइल तैयार करें, और, वैकल्पिक रूप से, प्रत्येक छवि के लिए सही ऑब्जेक्ट लेबल और बाउंडिंग क्षेत्र। बड़े डेटासेट का उपयोग करते समय यह विकल्प मददगार होता है।
उदाहरण के लिए, अपनी छवियों को क्लाउड स्टोरेज पर अपलोड करें, और निम्न की तरह एक 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 क्लाउड प्रोजेक्ट का हिस्सा है।
विकल्प 2: बिना लेबल वाली छवियां
अपनी प्रशिक्षण छवियों को लेबल करें और उन्हें अपलोड करने के बाद Google क्लाउड कंसोल में ऑब्जेक्ट सीमाएं बनाएं। यह केवल छोटे डेटासेट के लिए अनुशंसित है। अगला चरण देखें।
2. अपने मॉडल को प्रशिक्षित करें
अगला, अपनी छवियों का उपयोग करके एक मॉडल को प्रशिक्षित करें:
Google क्लाउड कंसोल में विज़न डेटासेट पेज खोलें। संकेत मिलने पर अपना प्रोजेक्ट चुनें।
नए डेटासेट पर क्लिक करें, डेटासेट के लिए एक नाम प्रदान करें, उस मॉडल के प्रकार का चयन करें जिसे आप प्रशिक्षित करना चाहते हैं, और डेटासेट बनाएं पर क्लिक करें।
अपने डेटासेट के आयात टैब पर, अपनी प्रशिक्षण छवियां, अपनी प्रशिक्षण छवियों का एक ज़िप संग्रह या आपके द्वारा उन्हें अपलोड किए गए क्लाउड स्टोरेज स्थानों वाली CSV फ़ाइल अपलोड करें। अपने प्रशिक्षण डेटा को इकट्ठा करें देखें।
आयात कार्य पूरा होने के बाद, प्रशिक्षण डेटा को सत्यापित करने के लिए इमेज टैब का उपयोग करें।
यदि आपने प्रत्येक छवि के लिए CSV अपलोड नहीं किया है, तो उन वस्तुओं के चारों ओर बाउंडिंग बॉक्स बनाएं जिन्हें आप पहचानना चाहते हैं और प्रत्येक ऑब्जेक्ट को लेबल करें।
ट्रेन टैब पर, प्रशिक्षण शुरू करें पर क्लिक करें।
मॉडल को नाम दें और एज मॉडल प्रकार चुनें।
निम्न प्रशिक्षण सेटिंग कॉन्फ़िगर करें, जो जनरेट किए गए मॉडल के प्रदर्शन को नियंत्रित करती हैं:
इसके लिए मॉडल को ऑप्टिमाइज़ करें... उपयोग करने के लिए मॉडल कॉन्फ़िगरेशन। जब कम विलंबता या छोटे पैकेज का आकार महत्वपूर्ण हो, या धीमे, बड़े, मॉडल जब सटीकता सबसे महत्वपूर्ण हो, तो आप तेज़, छोटे मॉडल को प्रशिक्षित कर सकते हैं। नोड घंटे का बजट मॉडल के प्रशिक्षण में लगने वाला अधिकतम समय, संगणना घंटों में। अधिक प्रशिक्षण समय आम तौर पर अधिक सटीक मॉडल का परिणाम होता है।
ध्यान दें कि प्रशिक्षण निर्दिष्ट समय से कम समय में पूरा किया जा सकता है यदि सिस्टम निर्धारित करता है कि मॉडल अनुकूलित है और अतिरिक्त प्रशिक्षण सटीकता में सुधार नहीं करेगा। आपको केवल वास्तव में उपयोग किए गए घंटों के लिए बिल भेजा जाता है।
विशिष्ट प्रशिक्षण समय बहुत छोटे सेट 1 घंटा 500 छवियां 2 घंटे 1,000 छवियां 3 घंटे 5,000 छवियां 6 घंटे 10,000 छवियां 7 गंटे 50,000 छवियां 11 घंटे 100,000 छवियां 13 घंटे 1,000,000 छवियां 18 घंटे
3. अपने मॉडल का मूल्यांकन करें
जब प्रशिक्षण पूरा हो जाता है, तो आप मॉडल के प्रदर्शन मेट्रिक्स देखने के लिए मूल्यांकन टैब पर क्लिक कर सकते हैं।
इस पृष्ठ का एक महत्वपूर्ण उपयोग आत्मविश्वास सीमा निर्धारित करना है जो आपके मॉडल के लिए सबसे अच्छा काम करता है। कॉन्फिडेंस थ्रेशोल्ड वह न्यूनतम कॉन्फिडेंस है जो किसी इमेज को एक लेबल असाइन करने के लिए मॉडल के पास होना चाहिए। कॉन्फिडेंस थ्रेशोल्ड स्लाइडर को स्थानांतरित करके, आप देख सकते हैं कि विभिन्न थ्रेशोल्ड मॉडल के प्रदर्शन को कैसे प्रभावित करते हैं। मॉडल के प्रदर्शन को दो मैट्रिक्स का उपयोग करके मापा जाता है: सटीक और रिकॉल ।
छवि वर्गीकरण के संदर्भ में, परिशुद्धता उन छवियों की संख्या का अनुपात है जिन्हें सही ढंग से लेबल की गई छवियों की संख्या के लिए मॉडल को चयनित थ्रेशोल्ड दिया गया है। जब एक मॉडल में उच्च परिशुद्धता होती है, तो यह गलत तरीके से कम बार (कम गलत सकारात्मक) लेबल प्रदान करता है।
रिकॉल उन छवियों की संख्या का अनुपात है जिन्हें सही ढंग से लेबल किया गया था और उन छवियों की संख्या का अनुपात है जिनमें सामग्री को मॉडल को लेबल करने में सक्षम होना चाहिए था। जब किसी मॉडल की याद अधिक होती है, तो वह कम बार (कम झूठे नकारात्मक) किसी भी लेबल को निर्दिष्ट करने में विफल रहता है।
चाहे आप सटीकता के लिए अनुकूलन करें या रिकॉल आपके उपयोग के मामले पर निर्भर करेगा। अधिक जानकारी के लिए AutoML Vision शुरुआती मार्गदर्शिका और समावेशी ML मार्गदर्शिका - AutoML देखें।
जब आप एक आत्मविश्वास सीमा पाते हैं जो मेट्रिक्स उत्पन्न करता है जिसके साथ आप सहज हैं, तो इसे नोट करें; आप अपने ऐप में मॉडल को कॉन्फ़िगर करने के लिए कॉन्फिडेंस थ्रेशोल्ड का उपयोग करेंगे। (उपयुक्त सीमा मान प्राप्त करने के लिए आप किसी भी समय इस उपकरण का उपयोग कर सकते हैं।)
4. अपना मॉडल प्रकाशित या डाउनलोड करें
यदि आप मॉडल के प्रदर्शन से संतुष्ट हैं और इसे किसी ऐप में उपयोग करना चाहते हैं, तो आपके पास तीन विकल्प हैं, जिनमें से आप कोई भी संयोजन चुन सकते हैं: मॉडल को ऑनलाइन भविष्यवाणी के लिए तैनात करें, मॉडल को फायरबेस पर प्रकाशित करें, या मॉडल को डाउनलोड करें और इसे बंडल करें आपके ऐप के साथ।
मॉडल तैनात करें
अपने डेटासेट के परीक्षण और उपयोग टैब पर, आप अपने मॉडल को ऑनलाइन भविष्यवाणी के लिए परिनियोजित कर सकते हैं, जो आपके मॉडल को क्लाउड में चलाता है। यह विकल्प क्लाउड ऑटोएमएल डॉक्स में शामिल है। इस साइट पर दस्तावेज़ शेष दो विकल्पों से निपटते हैं।
मॉडल प्रकाशित करें
मॉडल को फायरबेस में प्रकाशित करके, आप नए ऐप संस्करण को जारी किए बिना मॉडल को अपडेट कर सकते हैं, और आप उपयोगकर्ताओं के विभिन्न सेटों को विभिन्न मॉडलों को गतिशील रूप से सेवा देने के लिए रिमोट कॉन्फिग और ए / बी परीक्षण का उपयोग कर सकते हैं।
यदि आप मॉडल को केवल Firebase के साथ होस्ट करके प्रदान करना चुनते हैं, और इसे अपने ऐप के साथ बंडल नहीं करते हैं, तो आप अपने ऐप के प्रारंभिक डाउनलोड आकार को कम कर सकते हैं। हालांकि, ध्यान रखें कि यदि मॉडल को आपके ऐप के साथ बंडल नहीं किया गया है, तो मॉडल से संबंधित कोई भी कार्यक्षमता तब तक उपलब्ध नहीं होगी जब तक कि आपका ऐप पहली बार मॉडल को डाउनलोड नहीं कर लेता।
अपने मॉडल को प्रकाशित करने के लिए, आप दो विधियों में से किसी एक का उपयोग कर सकते हैं:
- Google क्लाउड कंसोल में अपने डेटासेट के परीक्षण और उपयोग पृष्ठ से TF लाइट मॉडल डाउनलोड करें और फिर मॉडल को Firebase कंसोल के कस्टम मॉडल पृष्ठ पर अपलोड करें। यह आमतौर पर एकल मॉडल को प्रकाशित करने का सबसे आसान तरीका है।
- व्यवस्थापक SDK का उपयोग करके मॉडल को सीधे अपने Google क्लाउड प्रोजेक्ट से Firebase में प्रकाशित करें. आप कई मॉडलों को बैच प्रकाशित करने या स्वचालित प्रकाशन पाइपलाइन बनाने में सहायता के लिए इस विधि का उपयोग कर सकते हैं।
व्यवस्थापक SDK मॉडल प्रबंधन API के साथ मॉडल प्रकाशित करने के लिए:
मॉडल प्रकाशित करें।
आपको मॉडल के संसाधन पहचानकर्ता को निर्दिष्ट करने की आवश्यकता होगी, जो एक स्ट्रिंग है जो निम्न उदाहरण की तरह दिखती है:
projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
PROJECT_NUMBER
क्लाउड स्टोरेज बकेट का प्रोजेक्ट नंबर जिसमें मॉडल है। यह आपका Firebase प्रोजेक्ट या कोई अन्य Google क्लाउड प्रोजेक्ट हो सकता है। आप यह मान Firebase कंसोल या 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);
अपने ऐप के साथ मॉडल को डाउनलोड और बंडल करें
अपने मॉडल को अपने ऐप के साथ बंडल करके, आप यह सुनिश्चित कर सकते हैं कि फायरबेस द्वारा होस्ट किया गया मॉडल उपलब्ध नहीं होने पर भी आपके ऐप की एमएल सुविधाएं काम करती हैं।
यदि आप मॉडल प्रकाशित करते हैं और इसे अपने ऐप के साथ बंडल करते हैं, तो ऐप उपलब्ध नवीनतम संस्करण का उपयोग करेगा।
अपना मॉडल डाउनलोड करने के लिए, अपने डेटासेट के परीक्षण और उपयोग पेज पर TF लाइट पर क्लिक करें।
अगले कदम
अब जबकि आपने मॉडल को प्रकाशित या डाउनलोड कर लिया है, अपने iOS+ और Android ऐप्स में मॉडल का उपयोग करना सीखें।