وظیفه MediaPipe Interactive Image Segmenter مکانی را در یک تصویر می گیرد، مرزهای یک شی را در آن مکان تخمین می زند، و تقسیم بندی شی را به عنوان داده تصویر برمی گرداند. این دستورالعملها به شما نشان میدهند که چگونه از Segmenter تصویر تعاملی با زبان پایتون استفاده کنید. برای اطلاعات بیشتر در مورد قابلیتها، مدلها و گزینههای پیکربندی این کار، به نمای کلی مراجعه کنید.
نمونه کد
کد مثال برای Segmenter تصویر تعاملی، اجرای کامل این کار را در پایتون برای مرجع شما فراهم می کند. این کد به شما کمک می کند تا این کار را آزمایش کنید و شروع به ساخت برنامه تقسیم بندی تصویر تعاملی خود کنید. میتوانید کد نمونه Interactive Image Segmenter را فقط با استفاده از مرورگر وب خود مشاهده، اجرا و ویرایش کنید.
راه اندازی
این بخش مراحل کلیدی را برای راهاندازی محیط توسعه و پروژههای کد مخصوصاً برای استفاده از بخشبندی تصویر تعاملی توضیح میدهد. برای اطلاعات کلی در مورد تنظیم محیط توسعه خود برای استفاده از وظایف MediaPipe، از جمله الزامات نسخه پلت فرم، به راهنمای راه اندازی برای Python مراجعه کنید. می توانید کد منبع این مثال را در GitHub مرور کنید
بسته ها
وظیفه MediaPipe Interactive Image Segmenter به بسته mediapipe
نیاز دارد. می توانید وابستگی های مورد نیاز را با دستور زیر نصب کنید:
$ python -m pip install mediapipe
واردات
برای دسترسی به توابع تکلیف Interactive Image Segmenter کلاس های زیر را وارد کنید:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
مدل
وظیفه MediaPipe Interactive Image Segmenter به یک مدل آموزش دیده نیاز دارد که با این کار سازگار باشد. برای اطلاعات بیشتر در مورد مدلهای آموزشدیده موجود برای بخشبندی تصویر تعاملی، بخش مدلهای نمای کلی کار را ببینید.
مدل را انتخاب و دانلود کنید و سپس آن را در فهرست پروژه خود ذخیره کنید:
model_path = '/absolute/path/to/model.tflite'
مسیر مدل را در پارامتر model_asset_path
مانند شکل زیر مشخص کنید:
base_options = BaseOptions(model_asset_path=model_path)
کار را ایجاد کنید
وظیفه MediaPipe Interactive Image Segmenter از تابع 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
output_category_mask
True
تنظیم شود، خروجی شامل یک ماسک تقسیم بندی به عنوان یک تصویر uint8 است، که در آن هر مقدار پیکسل نشان می دهد که آیا پیکسل بخشی از شی واقع در ناحیه مورد نظر است یا خیر.True, False
}False
output_confidence_masks
True
تنظیم شود، خروجی شامل یک ماسک تقسیم بندی به عنوان یک تصویر مقدار شناور است، که در آن هر مقدار شناور نشان دهنده اطمینان است که پیکسل بخشی از شی واقع در ناحیه مورد نظر است.True, False
}True
display_names_locale
en
است. با استفاده از TensorFlow Lite Metadata Writer API میتوانید برچسبهای محلی را به ابرداده یک مدل سفارشی اضافه کنید.داده ها را آماده کنید
ورودی خود را به عنوان یک فایل تصویری یا یک آرایه numpy آماده کنید، سپس آن را به یک شی 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)