تأخذ مهمة أداة تقسيم الصور التفاعلية MediaPipe موقعًا في صورة، وتقدر حدود كائن في هذا الموقع، ويؤدي إلى إرجاع تجزئة الكائن كصورة البيانات. توضح لك هذه التعليمات كيفية استخدام أداة تقسيم الصور التفاعلية مع لغة بايثون . لمزيد من المعلومات حول الإمكانات والنماذج والإعدادات الخيارات لهذه المهمة، راجع نظرة عامة.
مثال على الرمز البرمجي
يقدم الرمز النموذجي لأداة تقسيم الصور التفاعلية تنفيذًا كاملاً المهمة في لغة بايثون كمرجع لك. يساعدك هذا الرمز في اختبار هذه المهمة والحصول على بدأت في إنشاء تطبيقك التفاعلي الخاص بتقسيم الصور. يمكنك عرض وتشغيل وتعديل "أداة تقسيم الصور التفاعلية" مثال على الرمز باستخدام متصفح الويب فقط.
ضبط إعدادات الجهاز
يصف هذا القسم الخطوات الرئيسية لإعداد بيئة التطوير برمجة المشروعات خصيصًا لاستخدام أداة تقسيم الصور التفاعلية. للحصول على معلومات عامة عن إعداد بيئة التطوير الخاصة بك لاستخدام مهام 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
خيارات الإعداد
تشتمل هذه المهمة على خيارات الإعداد التالية لتطبيقات بايثون:
اسم الخيار | الوصف | نطاق القيمة | القيمة الافتراضية |
---|---|---|---|
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 |
تجهيز البيانات
قم بإعداد الإدخال كملف صورة أو صفيفة 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)
للحصول على مثال أكثر اكتمالاً لتشغيل استنتاجات أداة تقسيم الصور التفاعلية، راجع مثال الرمز البرمجي.
التعامل مع العملاء وعرض النتائج
نتائج المخرجات لأداة تقسيم الصور التفاعلية هي قائمة تضم بيانات Image
، وقد
تضمين قناع الفئة أو أقنعة الثقة أو كليهما بناءً على ما تم ضبطه
عند ضبط المهمة. في حال ضبط
من output_category_mask
إلى True
، يكون الناتج قائمة تحتوي على قيمة واحدة
قناع مقسَّم كصورة uint8. تشير قيمة البكسل إلى ما إذا كان جزءًا من
الكائن في المنطقة محط الاهتمام. فهرس الفئة المحددة للصورة المدخلة. في حال حذف
عندما ضبطت output_confidence_masks
على True
، ستحصل على قائمة بالقنوات
تحتوي على قيم بكسل ضمن النطاق [0,1]
الذي يمثل الثقة
درجة وحدة البكسل التي تنتمي إلى العنصر في المنطقة محط الاهتمام.
توضح الأقسام التالية بيانات الإخراج من هذه المهمة بشكل أكبر:
قناع الفئة
تعرض الصور التالية تصورًا لمخرجات المهمة لفئة ما
قناع قيمة مع تحديد منطقة نقطة اهتمام. كل بكسل هو uint8
تشير إلى ما إذا كانت وحدة البكسل جزءًا من الكائن الموجود في منطقة
معين. تشير الدائرة البيضاء والأسود في الصورة الثانية إلى الصورة المحددة
محط الاهتمام.
إخراج قناع الصورة الأصلي والفئة: صورة المصدر من Pascal VOC 2012 مجموعة البيانات
قناع الثقة
يحتوي ناتج قناع الثقة على قيم عائمة بين [0, 1]
لـ
كل قناة إدخال صورة. تشير القيم الأعلى إلى زيادة ثقة
بكسل الصورة هو جزء من الكائن الموجود في المنطقة محل الاهتمام.