MediaPipe Image Embedder टास्क से आपको किसी इमेज को संख्या में दिखाने की सुविधा मिलती है, जिससे ML-आधारित इमेज के अलग-अलग टास्क पूरे करने में मदद मिलती है. इस फ़ंक्शन का इस्तेमाल, अक्सर दो इमेज की समानता की तुलना करने के लिए किया जाता है. इसके लिए, कोसाइन समानता जैसी गणित की तुलना करने वाली तकनीकों का इस्तेमाल किया जाता है. यह टास्क, इमेज डेटा पर स्टैटिक डेटा या कंटिन्यूअस स्ट्रीम के तौर पर मशीन लर्निंग (एमएल) मॉडल पर काम करता है. साथ ही, हाई-डाइमेंशन वाले फ़ीचर वेक्टर की सूची के रूप में इमेज डेटा को संख्या में दिखाता है, जिसे फ़्लोटिंग पॉइंट या संख्या के मुताबिक फ़ॉर्म में एम्बेड करना वेक्टर भी कहा जाता है.
शुरू करें
अपने टारगेट प्लैटफ़ॉर्म के लिए, इनमें से किसी एक को लागू करने की गाइड का पालन करके इस टास्क का इस्तेमाल शुरू करें. ये प्लैटफ़ॉर्म गाइड, सुझाए गए मॉडल का इस्तेमाल करके इस टास्क को लागू करने की बुनियादी जानकारी देती हैं. साथ ही, सुझाए गए कॉन्फ़िगरेशन विकल्पों के साथ कोड के उदाहरण भी देती हैं:
- Android - कोड उदाहरण - गाइड
- Python - कोड का उदाहरण - गाइड
- वेब - कोड का उदाहरण - गाइड
टास्क की जानकारी
इस सेक्शन में इस टास्क की क्षमताओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.
सुविधाएं
- इनपुट इमेज प्रोसेसिंग - प्रोसेसिंग में, इमेज को घुमाना, उसका साइज़ बदलना, उसे नॉर्मलाइज़ेशन, और कलर स्पेस में बदलाव करना शामिल होता है.
- पसंद का क्षेत्र - पूरी इमेज के बजाय, इमेज के किसी हिस्से पर एम्बेड करता है.
- समानता की गणना एम्बेड करना - दो फ़ीचर वेक्टर के बीच कोसाइन समानता का पता लगाने के लिए, पहले से मौजूद यूटिलिटी फ़ंक्शन
- क्वांटाइज़ेशन - फ़ीचर वेक्टर के लिए स्केलर क्वांटाइज़ेशन की सुविधा काम करती है.
टास्क के इनपुट | टास्क के आउटपुट |
---|---|
इनपुट इस तरह का डेटा हो सकता है:
|
इमेज एम्बेडर, एम्बेड किए गए लिंक की एक सूची दिखाता है. इस सूची में ये शामिल हैं:
|
कॉन्फ़िगरेशन के विकल्प
इस टास्क में कॉन्फ़िगरेशन के ये विकल्प हैं:
विकल्प का नाम | ब्यौरा | वैल्यू रेंज | डिफ़ॉल्ट मान |
---|---|---|---|
running_mode |
टास्क के लिए, रनिंग मोड सेट करता है. इसके तीन मोड होते हैं: इमेज: सिंगल इमेज इनपुट के लिए मोड. वीडियो: वीडियो के डिकोड किए गए फ़्रेम का मोड. LIVE_STREAM: इनपुट डेटा की लाइव स्ट्रीम का मोड, जैसे कि कैमरे से स्ट्रीम किया जाने वाला मोड. इस मोड में, रिज़ल्ट पहचानकर्ता को लिसनर को सेट अप करने के लिए कॉल किया जाना चाहिए, ताकि वह एसिंक्रोनस तरीके से नतीजे पा सके. |
{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 | कोई नहीं (फ़्लोट32) | नए |
MobileNet-V3 (बड़ा) | 224 x 224 | कोई नहीं (फ़्लोट32) | नए |
टास्क के मानदंड
यहां पहले से ट्रेन किए गए मॉडल पर आधारित पूरी पाइपलाइन के लिए टास्क के मानदंड दिए गए हैं. इंतज़ार के समय का नतीजा यह पता चलता है कि Pixel 6 को सीपीयू / जीपीयू का इस्तेमाल करके औसतन इंतज़ार किया जा सकता है.
मॉडल का नाम | सीपीयू (CPU) के इस्तेमाल में होने वाला समय | जीपीयू इंतज़ार का समय |
---|---|---|
MobileNet-V3 (छोटा) | 3.94 मिलीसेकंड | 7.83 मि॰से॰ |
MobileNet-V3 (बड़ा) | 9.75 मि॰से॰ | 9.08 मि॰से॰ |