MediaPipe Image Embedder टास्क की मदद से, किसी इमेज को अंकों के तौर पर दिखाया जा सकता है. यह टास्क, एमएल (मशीन लर्निंग) पर आधारित इमेज से जुड़े अलग-अलग टास्क को पूरा करने में मददगार होता है. इस सुविधा का इस्तेमाल, अक्सर दो इमेज की तुलना करने के लिए किया जाता है. इसके लिए, कोसाइन सिमिलैरिटी जैसी गणितीय तुलना करने की तकनीकों का इस्तेमाल किया जाता है. यह टास्क, स्टैटिक डेटा या लगातार चलने वाली स्ट्रीम के तौर पर, मशीन लर्निंग (एमएल) मॉडल के साथ इमेज डेटा पर काम करता है. साथ ही, इमेज डेटा की संख्यात्मक जानकारी को, ज़्यादा डाइमेंशन वाले फ़ीचर वैक्टर की सूची के तौर पर दिखाता है. इन्हें एम्बेडिंग वैक्टर भी कहा जाता है. यह सूची, फ़्लोटिंग-पॉइंट या क्वांटिज़्ड फ़ॉर्मैट में होती है.
शुरू करें
अपने टारगेट प्लैटफ़ॉर्म के लिए, लागू करने से जुड़ी इनमें से किसी एक गाइड का पालन करके, इस टास्क का इस्तेमाल शुरू करें. प्लैटफ़ॉर्म के हिसाब से बनी ये गाइड, सुझाए गए मॉडल का इस्तेमाल करके, इस टास्क को लागू करने के बुनियादी तरीके के बारे में बताती हैं. साथ ही, सुझाए गए कॉन्फ़िगरेशन के विकल्पों के साथ कोड के उदाहरण भी देती हैं:
- Android - कोड का उदाहरण - गाइड
- Python - कोड का उदाहरण - गाइड
- वेब - कोड का उदाहरण - गाइड
टास्क की जानकारी
इस सेक्शन में, इस टास्क की सुविधाओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.
सुविधाएं
- इनपुट इमेज प्रोसेसिंग - प्रोसेसिंग में इमेज को घुमाना, उसका साइज़ बदलना, सामान्य करना, और कलर स्पेस बदलना शामिल है.
- दिलचस्पी का इलाका - इससे पूरी इमेज के बजाय, इमेज के किसी हिस्से को एम्बेड किया जाता है.
- एम्बेडिंग मिलती-जुलती वैल्यू का हिसाब लगाना - दो फ़ीचर वैक्टर के बीच कोसाइन मिलती-जुलती वैल्यू का हिसाब लगाने के लिए, पहले से मौजूद यूटिलिटी फ़ंक्शन
- क्वांटाइज़ेशन - फ़ीचर वेक्टर के लिए स्केलर क्वांटाइज़ेशन की सुविधा देता है.
टास्क के इनपुट | टास्क के आउटपुट |
---|---|
इनपुट इनमें से किसी भी तरह का डेटा हो सकता है:
|
इमेज एम्बेडर, एम्बेड की गई इमेज की सूची दिखाता है. इसमें ये शामिल हैं:
|
कॉन्फ़िगरेशन के विकल्प
इस टास्क के लिए, कॉन्फ़िगरेशन के ये विकल्प उपलब्ध हैं:
विकल्प का नाम | ब्यौरा | वैल्यू की रेंज | डिफ़ॉल्ट मान |
---|---|---|---|
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 मिलीसेकंड |