وظیفه MediaPipe Image Segmenter به شما امکان می دهد تصاویر را بر اساس دسته های از پیش تعریف شده به مناطق تقسیم کنید. می توانید از این قابلیت برای شناسایی اشیاء یا بافت های خاص استفاده کنید و سپس جلوه های بصری مانند محو کردن پس زمینه را اعمال کنید. این کار شامل چندین مدل است که به طور خاص برای تقسیمبندی افراد و ویژگیهای آنها در دادههای تصویر آموزش داده شدهاند، از جمله:
- شخص و پیشینه
- فقط موی شخص
- مو، صورت، پوست، لباس و لوازم جانبی فرد
این وظیفه بر روی داده های تصویری با مدل یادگیری ماشینی (ML) با تصاویر تک یا یک جریان ویدیویی پیوسته عمل می کند. بسته به مدلی که انتخاب میکنید، فهرستی از مناطق تقسیمبندی شده را به نمایش میگذارد که اشیا یا نواحی را در یک تصویر نشان میدهد.
شروع کنید
استفاده از این کار را با دنبال کردن یکی از این راهنماهای پیاده سازی برای پلتفرم هدف خود شروع کنید. این راهنماهای مخصوص پلتفرم شما را از طریق اجرای اساسی این کار، از جمله یک مدل توصیه شده، و نمونه کد با گزینه های پیکربندی توصیه شده، راهنمایی می کنند:
جزئیات کار
این بخش قابلیت ها، ورودی ها، خروجی ها و گزینه های پیکربندی این کار را شرح می دهد.
ویژگی ها
- پردازش تصویر ورودی - پردازش شامل چرخش تصویر، تغییر اندازه، عادی سازی و تبدیل فضای رنگی است.
ورودی های وظیفه | خروجی های وظیفه |
---|---|
ورودی می تواند یکی از انواع داده های زیر باشد:
| Image Segmenter دادههای تصویر بخشبندی شده را خروجی میدهد، که بسته به گزینههای پیکربندی که تنظیم میکنید، میتواند شامل یکی یا هر دو مورد زیر باشد:
|
گزینه های پیکربندی
این کار دارای گزینه های پیکربندی زیر است:
نام گزینه | توضیحات | محدوده ارزش | مقدار پیش فرض |
---|---|---|---|
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 میلیثانیه |