Python के लिए, इंटरैक्टिव इमेज सेगमेंटेशन गाइड

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

कोड का उदाहरण

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

सेटअप

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

पैकेज

MediaPipe इंटरैक्टिव इमेज सेगमेंटर टास्क के लिए mediapipe पैकेज की ज़रूरत होती है. आप इसे इंस्टॉल कर सकते हैं: निम्न कमांड के साथ आवश्यक निर्भरता:

$ python -m pip install mediapipe

आयात

इंटरैक्टिव इमेज सेगमेंटर टास्क फ़ंक्शन को ऐक्सेस करने के लिए, इन क्लास को इंपोर्ट करें:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

मॉडल

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

मॉडल चुनें और डाउनलोड करें, और फिर उसे अपनी प्रोजेक्ट डायरेक्ट्री में सेव करें:

model_path = '/absolute/path/to/model.tflite'

जैसा कि नीचे दिखाया गया है, model_asset_path पैरामीटर में मॉडल का पाथ तय करें नीचे दिया गया है:

base_options = BaseOptions(model_asset_path=model_path)

टास्क बनाएं

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

BaseOptions = mp.tasks.BaseOptions
InteractiveSegmenter = mp.tasks.vision.InteractiveSegmenter
InteractiveSegmenterOptions = mp.tasks.vision.InteractiveSegmenterOptions
VisionRunningMode = mp.tasks.vision.RunningMode

# Create a image segmenter instance with the image mode:
options = InteractiveSegmenterOptions(
    base_options=BaseOptions(model_asset_path='/path/to/model.task'),
    running_mode=VisionRunningMode.IMAGE,
    output_type=InteractiveSegmenterOptions.OutputType.CATEGORY_MASK)
with InteractiveSegmenter.create_from_options(options) as segmenter:
# segmenter is initialized and ready to use

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

इस टास्क में Python ऐप्लिकेशन के लिए, ये कॉन्फ़िगरेशन विकल्प मौजूद हैं:

विकल्प का नाम ब्यौरा मान की सीमा डिफ़ॉल्ट मान
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

डेटा तैयार करें

अपने इनपुट को इमेज फ़ाइल या नंपी अरे के तौर पर तैयार करें, फिर उसे mediapipe.Image ऑब्जेक्ट में बदलें.

# Load the input image from an image file.
mp_image = mp.Image.create_from_file('/path/to/image')

# Load the input image from a numpy array.
mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)
RegionOfInterest = vision.InteractiveSegmenterRegionOfInterest
# Perform image segmentation on the provided single image.
# The image segmenter must be created with the image mode.
roi = RegionOfInterest(format=RegionOfInterest.Format.KEYPOINT,
                          keypoint=NormalizedKeypoint(x, y))
segmented_masks = segmenter.segment(mp_image, roi)

इंटरैक्टिव इमेज सेगमेंटर के अनुमान चलाने के बेहतर उदाहरण के लिए, यहां देखें कोड का उदाहरण.

नतीजों को हैंडल करना और दिखाना

इंटरैक्टिव इमेज सेगमेंटर के लिए, आउटपुट में Image डेटा की सूची होती है और यह आपके सेट किए गए डेटा के आधार पर कैटगरी मास्क, कॉन्फ़िडेंस मास्क या दोनों का इस्तेमाल करें जब आपने टास्क को कॉन्फ़िगर किया हो. अगर आपने सेट किया है, तो output_category_mask से True तक, आउटपुट में ऐसी सूची है जिसमें सिंगल uint8 इमेज के तौर पर सेगमेंट किया गया मास्क. पिक्सल वैल्यू से पता चलता है कि यह ऑब्जेक्ट को ढूंढने के लिए. इनपुट इमेज की कैटगरी इंडेक्स की पहचान की गई. अगर आपने output_confidence_masks को True पर सेट किया जाता है, तो आउटपुट, चैनलों की सूची [0,1] रेंज में पिक्सल वैल्यू मौजूद हैं, जो कॉन्फ़िडेंस को दिखाती हैं दिलचस्पी की जगह पर ऑब्जेक्ट के पिक्सल का स्कोर.

इन सेक्शन में, इस टास्क से मिलने वाले डेटा के बारे में ज़्यादा जानकारी दी गई है:

श्रेणी मास्क

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

ओरिजनल इमेज और कैटगरी मास्क का आउटपुट. इमेज का सोर्स यहां से लिया गया: पास्कल वीओसी 2012 डेटासेट.

कॉन्फ़िडेंस मास्क

कॉन्फ़िडेंस मास्क के आउटपुट में, वैल्यू के तौर पर [0, 1] के बीच फ़्लोट वैल्यू शामिल होती हैं हर इमेज इनपुट चैनल पर. ज़्यादा वैल्यू से ज़्यादा भरोसे का पता चलता है. इमेज पिक्सल, दिलचस्पी वाली जगह पर मौजूद ऑब्जेक्ट का हिस्सा होता है.