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

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

इसे आज़माएं!

शुरू करें

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

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

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

सुविधाएं

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

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

इस टास्क में कॉन्फ़िगरेशन के ये विकल्प हैं:

विकल्प का नाम ब्यौरा वैल्यू रेंज डिफ़ॉल्ट मान
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 मि॰से॰