इमेज एम्बेड करने से जुड़ी टास्क गाइड

आइसक्रीम कोन की दो इमेज, जिनमें ऐरे के तौर पर इमेज के अंकों को एम्बेड किया गया है

MediaPipe Image Embedder टास्क की मदद से, किसी इमेज को अंकों के तौर पर दिखाया जा सकता है. यह टास्क, एमएल (मशीन लर्निंग) पर आधारित इमेज से जुड़े अलग-अलग टास्क को पूरा करने में मददगार होता है. इस सुविधा का इस्तेमाल, अक्सर दो इमेज की तुलना करने के लिए किया जाता है. इसके लिए, कोसाइन सिमिलैरिटी जैसी गणितीय तुलना करने की तकनीकों का इस्तेमाल किया जाता है. यह टास्क, स्टैटिक डेटा या लगातार चलने वाली स्ट्रीम के तौर पर, मशीन लर्निंग (एमएल) मॉडल के साथ इमेज डेटा पर काम करता है. साथ ही, इमेज डेटा की संख्यात्मक जानकारी को, ज़्यादा डाइमेंशन वाले फ़ीचर वैक्टर की सूची के तौर पर दिखाता है. इन्हें एम्बेडिंग वैक्टर भी कहा जाता है. यह सूची, फ़्लोटिंग-पॉइंट या क्वांटिज़्ड फ़ॉर्मैट में होती है.

इसे आज़माएं!

शुरू करें

अपने टारगेट प्लैटफ़ॉर्म के लिए, लागू करने से जुड़ी इनमें से किसी एक गाइड का पालन करके, इस टास्क का इस्तेमाल शुरू करें. प्लैटफ़ॉर्म के हिसाब से बनी ये गाइड, सुझाए गए मॉडल का इस्तेमाल करके, इस टास्क को लागू करने के बुनियादी तरीके के बारे में बताती हैं. साथ ही, सुझाए गए कॉन्फ़िगरेशन के विकल्पों के साथ कोड के उदाहरण भी देती हैं:

टास्क की जानकारी

इस सेक्शन में, इस टास्क की सुविधाओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.

सुविधाएं

  • इनपुट इमेज प्रोसेसिंग - प्रोसेसिंग में इमेज को घुमाना, उसका साइज़ बदलना, सामान्य करना, और कलर स्पेस बदलना शामिल है.
  • दिलचस्पी का इलाका - इससे पूरी इमेज के बजाय, इमेज के किसी हिस्से को एम्बेड किया जाता है.
  • एम्बेडिंग मिलती-जुलती वैल्यू का हिसाब लगाना - दो फ़ीचर वैक्टर के बीच कोसाइन मिलती-जुलती वैल्यू का हिसाब लगाने के लिए, पहले से मौजूद यूटिलिटी फ़ंक्शन
  • क्वांटाइज़ेशन - फ़ीचर वेक्टर के लिए स्केलर क्वांटाइज़ेशन की सुविधा देता है.
टास्क के इनपुट टास्क के आउटपुट
इनपुट इनमें से किसी भी तरह का डेटा हो सकता है:
  • स्टिल इमेज
  • डिकोड किए गए वीडियो फ़्रेम
  • लाइव वीडियो फ़ीड
इमेज एम्बेडर, एम्बेड की गई इमेज की सूची दिखाता है. इसमें ये शामिल हैं:
  • एम्बेड करना: फ़्लोटिंग-पॉइंट फ़ॉर्म या स्केलर-क्विंटाइज़्ड में, फ़ीचर वेक्टर.
  • हेड इंडेक्स: उस हेड का इंडेक्स जिसने यह एम्बेडिंग जनरेट किया.
  • हेड का नाम (ज़रूरी नहीं): उस हेड का नाम जिसने यह एम्बेड किया है.

कॉन्फ़िगरेशन के विकल्प

इस टास्क के लिए, कॉन्फ़िगरेशन के ये विकल्प उपलब्ध हैं:

विकल्प का नाम ब्यौरा वैल्यू की रेंज डिफ़ॉल्ट मान
running_mode टास्क के लिए रनिंग मोड सेट करता है. इसके तीन मोड हैं:

IMAGE: एक इमेज इनपुट के लिए मोड.

वीडियो: किसी वीडियो के डिकोड किए गए फ़्रेम के लिए मोड.

LIVE_STREAM: कैमरे से मिले इनपुट डेटा की लाइव स्ट्रीम के लिए मोड. इस मोड में, नतीजे असींक्रोनस तरीके से पाने के लिए, एक listener सेट अप करने के लिए, resultListener को कॉल करना होगा.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
l2_normalize लौटाए गए फ़ीचर वेक्टर को L2 नॉर्म के साथ सामान्य करना है या नहीं. इस विकल्प का इस्तेमाल सिर्फ़ तब करें, जब मॉडल में पहले से कोई नेटिव L2_NORMALIZATION TFLite Op न हो. ज़्यादातर मामलों में, ऐसा पहले से ही होता है और इसलिए, L2 नॉर्मलाइज़ेशन को TFLite इंफ़रेंस की मदद से हासिल किया जाता है. इसके लिए, इस विकल्प की ज़रूरत नहीं होती. Boolean False
quantize स्केलर क्वांटाइज़ेशन की मदद से, दिखाए गए एम्बेड को बाइट में क्वांटाइज़ किया जाना चाहिए या नहीं. एम्बेड को यूनिट-नॉर्म माना जाता है और इसलिए, किसी भी डाइमेंशन की वैल्यू [-1.0, 1.0] के बीच होनी चाहिए. अगर ऐसा नहीं है, तो l2_normalize विकल्प का इस्तेमाल करें. Boolean False
result_callback जब इमेज एम्बेडर लाइव स्ट्रीम मोड में हो, तब एम्बेड करने के नतीजे, एक साथ न मिलने पर भी उन्हें पाने के लिए, नतीजे सुनने वाले को सेट करता है. इसका इस्तेमाल सिर्फ़ तब किया जा सकता है, जब रनिंग मोड को LIVE_STREAM पर सेट किया गया हो लागू नहीं सेट नहीं है

मॉडल

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

MobileNetV3 मॉडल

यह मॉडल फ़ैमिली, MobileNet V3 आर्किटेक्चर का इस्तेमाल करती है. साथ ही, इसे ImageNet डेटा का इस्तेमाल करके ट्रेन किया गया है. यह मॉडल, सटीक नतीजे और इंतज़ार के समय के बीच के समझौते को बेहतर बनाने के लिए, कॉन्वोल्यूशनल लेयर में डेप्थ (सुविधाओं की संख्या) के लिए 0.75 के मल्टीप्लायर का इस्तेमाल करता है. साथ ही, नेटवर्क को कम या ज़्यादा संसाधन के इस्तेमाल के उदाहरणों के हिसाब से अडैप्ट करने के लिए, MobileNet V3 दो अलग-अलग साइज़ में आता है: छोटा और बड़ा.

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप वर्शन
MobileNet-V3 (छोटा) 224 x 224 कोई नहीं (float32) हाल ही के अपडेट
MobileNet-V3 (बड़ा) 224 x 224 कोई नहीं (float32) हाल ही के अपडेट

टास्क के मानदंड

यहां पूरी पाइपलाइन के लिए टास्क के मानदंड दिए गए हैं. ये मानदंड, ऊपर दिए गए पहले से ट्रेन किए गए मॉडल पर आधारित हैं. इंतज़ार का समय, सीपीयू / जीपीयू का इस्तेमाल करके Pixel 6 पर औसत इंतज़ार का समय होता है.

मॉडल का नाम सीपीयू के इंतज़ार का समय जीपीयू में इंतज़ार का समय
MobileNet-V3 (छोटा) 3.94 मिलीसेकंड 7.83 मिलीसेकंड
MobileNet-V3 (बड़ा) 9.75 मिलीसेकंड 9.08 मिलीसेकंड