इमेज सेगमेंटेशन गाइड

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

  • व्यक्ति और बैकग्राउंड
  • सिर्फ़ व्यक्ति के बाल
  • व्यक्ति के बाल, चेहरा, त्वचा, कपड़े, और ऐक्सेसरी

यह टास्क, मशीन लर्निंग (एमएल) मॉडल वाले इमेज डेटा पर काम करता है. इसमें एक इमेज या लगातार वीडियो स्ट्रीम होती है. यह आपके चुने हुए model के आधार पर, सेगमेंट में बांटी गई जगहों की सूची दिखाता है. किसी इमेज में ऑब्जेक्ट या एरिया को दिखाता है.

इसे आज़माएं!

शुरू करें

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

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

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

सुविधाएं

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

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

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

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

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

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

LIVE_STREAM: इनपुट डेटा की लाइव स्ट्रीम का मोड, जैसे कि कैमरे से स्ट्रीम किया जाने वाला मोड. इस मोड में, रिज़ल्ट पहचानकर्ता को लिसनर को सेट अप करने के लिए कॉल किया जाना चाहिए, ताकि वह एसिंक्रोनस तरीके से नतीजे पा सके.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
output_category_mask अगर इसे True पर सेट किया जाता है, तो आउटपुट में uint8 इमेज के तौर पर सेगमेंटेशन मास्क शामिल होता है. इसमें हर पिक्सल वैल्यू, विनिंग कैटगरी की वैल्यू को दिखाती है. {True, False} False
output_confidence_masks अगर इसे True पर सेट किया जाता है, तो आउटपुट में सेगमेंटेशन मास्क को फ़्लोट वैल्यू इमेज के तौर पर शामिल किया जाता है. इसकी हर फ़्लोट वैल्यू, कैटगरी का कॉन्फ़िडेंस स्कोर मैप दिखाती है. {True, False} True
display_names_locale अगर यह उपलब्ध हो, तो टास्क के मॉडल के मेटाडेटा में दिए गए डिसप्ले नेम के लिए, लेबल की भाषा सेट करता है. अंग्रेज़ी के लिए डिफ़ॉल्ट रूप से en है. TensorFlow Lite Metadata Writer API का इस्तेमाल करके, कस्टम मॉडल के मेटाडेटा में स्थानीय भाषा के हिसाब से लेबल जोड़े जा सकते हैं स्थान-भाषा का कोड en
result_callback जब इमेज सेगमेंटर लाइव स्ट्रीम मोड में होता है, तो यह सुविधा नतीजे के लिसनर को सेट करती है, ताकि सेगमेंट के नतीजों को एसिंक्रोनस तरीके से पाया जा सके. सिर्फ़ तब इस्तेमाल किया जा सकता है, जब रनिंग मोड LIVE_STREAM पर सेट हो लागू नहीं लागू नहीं

मॉडल

इमेज सेगमेंटर को एक से ज़्यादा एमएल मॉडल के साथ इस्तेमाल किया जा सकता है. नीचे दिए गए ज़्यादातर सेगमेंटेशन मॉडल, लोगों की इमेज के हिसाब से सेगमेंट करने के लिए बनाए और ट्रेनिंग दिए गए हैं. हालांकि, DeepLab-v3 मॉडल को अलग-अलग कामों के लिए इस्तेमाल किए जाने वाले इमेज सेगमेंटर के तौर पर बनाया गया है. वह मॉडल चुनें जो आपके ऐप्लिकेशन के लिए सबसे सही हो.

सेल्फ़ी सेगमेंटेशन मॉडल

यह मॉडल किसी व्यक्ति के पोर्ट्रेट को सेगमेंट कर सकता है और इसका इस्तेमाल किसी इमेज के बैकग्राउंड को बदलने या उसमें बदलाव करने के लिए किया जा सकता है. इस मॉडल में दो कैटगरी मिलती हैं, इंडेक्स 0 पर बैकग्राउंड और इंडेक्स 1 पर व्यक्ति. इस मॉडल में अलग-अलग इनपुट आकार वाले वर्शन हैं. इनमें स्क्वेयर वर्शन और लैंडस्केप वर्शन शामिल हैं. ऐसे ऐप्लिकेशन के लिए यह कारगर हो सकता है जहां इनपुट हमेशा उसी आकार में हो, जैसे कि वीडियो कॉल.

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप मॉडल कार्ड वर्शन
सेल्फ़ीसेगमेंटर (स्क्वेयर) 256 x 256 फ़्लोट 16 जानकारी नए
सेल्फ़ीसेगमेंटर (लैंडस्केप) 144 x 256 फ़्लोट 16 जानकारी नए

बालों का सेगमेंटेशन मॉडल

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

0 - background
1 - hair
मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप मॉडल कार्ड वर्शन
HairSegmenter 512 x 512 कोई नहीं (फ़्लोट32) जानकारी नए

सेल्फ़ी को अलग-अलग कैटगरी में बांटने का मॉडल

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

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप मॉडल कार्ड वर्शन
सेल्फ़ीमल्टीक्लास (256 x 256) 256 x 256 कोई नहीं (फ़्लोट32) जानकारी नए

DeepLab-v3 मॉडल

यह मॉडल कई कैटगरी के लिए सेगमेंट की पहचान करता है, जिनमें बैकग्राउंड, व्यक्ति, बिल्ली, कुत्ता, और गमले में लगा पौधा शामिल है. यह मॉडल लंबी दूरी की जानकारी इकट्ठा करने के लिए, एट्रस स्पेशल पिरामिड पूलिंग का इस्तेमाल करता है. ज़्यादा जानकारी के लिए, DeepLab-v3 देखें.

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप वर्शन
DeepLab-V3 257 x 257 कोई नहीं (फ़्लोट32) नए

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

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

मॉडल का नाम सीपीयू (CPU) के इस्तेमाल में होने वाला समय जीपीयू इंतज़ार का समय
सेल्फ़ीसेगमेंटर (स्क्वेयर) 33.46 मि॰से॰ 35.15 मि॰से॰
सेल्फ़ीसेगमेंटर (लैंडस्केप) 34.19 मि॰से॰ 33.55 मि॰से॰
HairSegmenter 57.90 मिलीसेकंड 52.14 मि॰से॰
सेल्फ़ीमल्टीक्लास (256 x 256) 217.76 मि॰से॰ 71.24 मि॰से॰
DeepLab-V3 123.93 मि॰से॰ 103.30 मिलीसेकंड