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

एक आदमी की क्लोज़-अप फ़ोटो के बगल में, उस आदमी के आकार को दिखाने वाले इमेज मास्क के उदाहरण

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

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

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

इसे आज़माएं!

शुरू करें

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

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

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

सुविधाएं

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

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

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

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

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

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

LIVE_STREAM: कैमरे से मिले इनपुट डेटा की लाइव स्ट्रीम के लिए मोड. इस मोड में, नतीजे असींक्रोनस तरीके से पाने के लिए, एक listener सेट अप करने के लिए, resultListener को कॉल करना होगा.
{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 मेटाडेटा राइटर एपीआई का इस्तेमाल करके, कस्टम मॉडल के मेटाडेटा में स्थानीय भाषा के लेबल जोड़े जा सकते हैं स्थानीय भाषा का कोड en
result_callback जब इमेज सेगमेंटर LIVE_STREAM मोड में हो, तब सेगमेंटेशन के नतीजे पाने के लिए, रिज़ल्ट लिसनर को असिंक्रोनस तरीके से सेट करता है. इसका इस्तेमाल सिर्फ़ तब किया जा सकता है, जब रनिंग मोड को LIVE_STREAM पर सेट किया गया हो लागू नहीं लागू नहीं

मॉडल

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

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

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

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

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

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

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

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

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

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

DeepLab-v3 मॉडल

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

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

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

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

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