راهنمای تقسیم بندی تصویر

وظیفه MediaPipe Image Segmenter به شما امکان می دهد تصاویر را بر اساس دسته های از پیش تعریف شده به مناطق تقسیم کنید. می توانید از این قابلیت برای شناسایی اشیاء یا بافت های خاص استفاده کنید و سپس جلوه های بصری مانند محو کردن پس زمینه را اعمال کنید. این کار شامل چندین مدل است که به طور خاص برای تقسیم‌بندی افراد و ویژگی‌های آنها در داده‌های تصویر آموزش داده شده‌اند، از جمله:

  • شخص و پیشینه
  • فقط موی شخص
  • مو، صورت، پوست، لباس و لوازم جانبی فرد

این وظیفه بر روی داده های تصویری با مدل یادگیری ماشینی (ML) با تصاویر تک یا یک جریان ویدیویی پیوسته عمل می کند. بسته به مدلی که انتخاب می‌کنید، فهرستی از مناطق تقسیم‌بندی شده را به نمایش می‌گذارد که اشیا یا نواحی را در یک تصویر نشان می‌دهد.

آن را امتحان کنید!

شروع کنید

استفاده از این کار را با دنبال کردن یکی از این راهنماهای پیاده سازی برای پلتفرم هدف خود شروع کنید. این راهنماهای مخصوص پلتفرم شما را از طریق اجرای اساسی این کار، از جمله یک مدل توصیه شده، و نمونه کد با گزینه های پیکربندی توصیه شده، راهنمایی می کنند:

جزئیات کار

این بخش قابلیت ها، ورودی ها، خروجی ها و گزینه های پیکربندی این کار را شرح می دهد.

ویژگی ها

  • پردازش تصویر ورودی - پردازش شامل چرخش تصویر، تغییر اندازه، عادی سازی و تبدیل فضای رنگی است.
ورودی های وظیفه خروجی های وظیفه
ورودی می تواند یکی از انواع داده های زیر باشد:
  • تصاویر ثابت
  • فریم های ویدئویی رمزگشایی شده
  • فید ویدیوی زنده
Image Segmenter داده‌های تصویر بخش‌بندی شده را خروجی می‌دهد، که بسته به گزینه‌های پیکربندی که تنظیم می‌کنید، می‌تواند شامل یکی یا هر دو مورد زیر باشد:
  • CATEGORY_MASK : لیستی حاوی یک ماسک قطعه بندی شده به عنوان یک تصویر با فرمت uint8. هر مقدار پیکسل نشان می دهد که آیا بخشی از یک دسته بندی خاص است که توسط مدل پشتیبانی می شود.
  • CONFIDENCE_MASK : فهرستی از کانال‌های حاوی یک ماسک قطعه‌بندی شده با مقادیر پیکسل در قالب float32. هر مقدار پیکسل میزان اطمینان را نشان می دهد که بخشی از یک دسته خاص است که توسط مدل پشتیبانی می شود.

گزینه های پیکربندی

این کار دارای گزینه های پیکربندی زیر است:

نام گزینه توضیحات محدوده ارزش مقدار پیش فرض
running_mode حالت اجرا را برای کار تنظیم می کند. سه حالت وجود دارد:

IMAGE: حالت برای ورودی های تک تصویر.

VIDEO: حالت برای فریم های رمزگشایی شده یک ویدیو.

LIVE_STREAM: حالت پخش زنده داده های ورودی، مانند دوربین. در این حالت، 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 Metadata Writer API می‌توانید برچسب‌های محلی را به ابرداده یک مدل سفارشی اضافه کنید. کد محلی en
result_callback شنونده نتیجه را طوری تنظیم می‌کند که وقتی قطعه‌ساز تصویر در حالت LIVE_STREAM است، نتایج تقسیم‌بندی را به صورت ناهمزمان دریافت کند. فقط زمانی قابل استفاده است که حالت اجرا روی LIVE_STREAM تنظیم شده باشد N/A N/A

مدل ها

Image Segmenter را می توان با بیش از یک مدل ML استفاده کرد. اکثر مدل‌های تقسیم‌بندی زیر برای انجام بخش‌بندی با تصاویر افراد ساخته و آموزش داده شده‌اند. با این حال، مدل DeepLab-v3 به عنوان یک قطعه‌ساز تصویر با هدف عمومی ساخته شده است. مدلی را انتخاب کنید که برای برنامه شما مناسب است.

مدل تقسیم بندی سلفی

این مدل می تواند پرتره یک فرد را تقسیم بندی کند و می تواند برای جایگزینی یا تغییر پس زمینه در یک تصویر استفاده شود. خروجی مدل دو دسته است، پس‌زمینه در شاخص 0 و شخص در شاخص 1. این مدل دارای نسخه‌هایی با اشکال ورودی مختلف از جمله نسخه مربعی و نسخه افقی است که ممکن است برای برنامه‌هایی که ورودی همیشه آن شکل است، مانند تماس‌های ویدیویی، کارآمدتر باشد. .

نام مدل شکل ورودی نوع کوانتیزاسیون مدل کارت نسخه ها
SelfieSegmenter (مربع) 256×256 شناور 16 اطلاعات آخرین
SelfieSegmenter (منظره) 144 x 256 شناور 16 اطلاعات آخرین

مدل تقسیم بندی مو

این مدل از یک فرد تصویر می‌گیرد، موهای سر او را مشخص می‌کند و یک نقشه تقسیم‌بندی تصویر را برای موهای او ارائه می‌کند. از این مدل می توانید برای رنگ آمیزی مجدد مو یا اعمال سایر افکت های مو استفاده کنید. این مدل دسته بندی های زیر را خروجی می دهد:

0 - background
1 - hair
نام مدل شکل ورودی نوع کوانتیزاسیون مدل کارت نسخه ها
HairSegmenter 512 x 512 هیچکدام (float32) اطلاعات آخرین

مدل تقسیم‌بندی سلفی چند کلاسه

این مدل از یک فرد تصویر می گیرد، نواحی مختلف مانند مو، پوست و لباس را مشخص می کند و برای این آیتم ها یک نقشه تقسیم بندی تصویر به بیرون می دهد. شما می توانید از این مدل برای اعمال افکت های مختلف بر روی افراد در تصاویر یا ویدئو استفاده کنید. این مدل دسته بندی های زیر را خروجی می دهد:

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
نام مدل شکل ورودی نوع کوانتیزاسیون مدل کارت نسخه ها
SelfieMulticlass (256 x 256) 256×256 هیچکدام (float32) اطلاعات آخرین

مدل DeepLab-v3

این مدل بخش‌هایی را برای تعدادی از دسته‌ها، از جمله پس‌زمینه، شخص، گربه، سگ و گیاه گلدانی شناسایی می‌کند. این مدل از ادغام هرم فضایی آتروس برای گرفتن اطلاعات برد بلندتر استفاده می کند. برای اطلاعات بیشتر، DeepLab-v3 را ببینید.

نام مدل شکل ورودی نوع کوانتیزاسیون نسخه ها
DeepLab-V3 257×257 هیچکدام (float32) آخرین

معیارهای وظیفه

در اینجا معیارهای کار برای کل خط لوله بر اساس مدل های از پیش آموزش دیده بالا آمده است. نتیجه تأخیر، متوسط ​​تأخیر پیکسل 6 با استفاده از CPU / GPU است.

نام مدل تأخیر CPU تاخیر GPU
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 میلی‌ثانیه