
وظیفه تشخیص چهره MediaPipe به شما امکان میدهد چهرهها را در یک تصویر یا ویدیو تشخیص دهید. میتوانید از این وظیفه برای مکانیابی چهرهها و ویژگیهای صورت در یک فریم استفاده کنید. این وظیفه از یک مدل یادگیری ماشین (ML) استفاده میکند که با تصاویر تکی یا جریان پیوستهای از تصاویر کار میکند. این وظیفه مکان چهرهها را به همراه نکات کلیدی صورت زیر خروجی میدهد: چشم چپ، چشم راست، نوک بینی، دهان، انحراف چشم چپ و انحراف چشم راست.
شروع کنید
با دنبال کردن یکی از این راهنماهای پیادهسازی برای پلتفرم مورد نظر خود، استفاده از این وظیفه را شروع کنید. این راهنماهای مختص پلتفرم، شما را در پیادهسازی اولیه این وظیفه، شامل یک مدل پیشنهادی و نمونه کد با گزینههای پیکربندی پیشنهادی، راهنمایی میکنند:
جزئیات وظیفه
این بخش قابلیتها، ورودیها، خروجیها و گزینههای پیکربندی این وظیفه را شرح میدهد.
ویژگیها
- پردازش تصویر ورودی - پردازش شامل چرخش تصویر، تغییر اندازه، نرمالسازی و تبدیل فضای رنگ است.
- آستانه امتیاز - نتایج را بر اساس امتیازات پیشبینی فیلتر کنید.
| ورودیهای وظیفه | خروجیهای وظیفه |
|---|---|
تشخیص چهره، ورودی یکی از انواع دادههای زیر را میپذیرد:
| خروجی تشخیص چهره به صورت زیر است:
|
گزینههای پیکربندی
این وظیفه گزینههای پیکربندی زیر را دارد:
| نام گزینه | توضیحات | محدوده ارزش | مقدار پیشفرض |
|---|---|---|---|
running_mode | حالت اجرا را برای وظیفه تنظیم میکند. سه حالت وجود دارد: تصویر: حالت ورودیهای تک تصویر. ویدئو: حالتی برای فریمهای رمزگشاییشدهی یک ویدئو. LIVE_STREAM: حالتی برای پخش زنده دادههای ورودی، مثلاً از یک دوربین. در این حالت، باید resultListener فراخوانی شود تا یک شنونده برای دریافت نتایج به صورت غیرهمزمان تنظیم شود. | { IMAGE, VIDEO, LIVE_STREAM } | IMAGE |
min_detection_confidence | حداقل امتیاز اطمینان برای تشخیص چهره که موفقیتآمیز تلقی شود. | Float [0,1] | 0.5 |
min_suppression_threshold | حداقل آستانهی غیرحداکثریِ سرکوب برای تشخیص چهره که باید همپوشانی در نظر گرفته شود. | Float [0,1] | 0.3 |
result_callback | شنونده نتیجه را طوری تنظیم میکند که وقتی تشخیصدهنده چهره در حالت پخش زنده است، نتایج تشخیص را به صورت غیرهمزمان دریافت کند. فقط زمانی قابل استفاده است که حالت اجرا روی LIVE_STREAM تنظیم شده باشد. | N/A | Not set |
مدلها
مدلهای تشخیص چهره میتوانند بسته به موارد استفاده مورد نظرشان، مانند تشخیص برد کوتاه و برد بلند، متفاوت باشند. مدلها همچنین معمولاً بین عملکرد، دقت، وضوح و منابع مورد نیاز، تعادل برقرار میکنند و در برخی موارد، ویژگیهای اضافی را نیز شامل میشوند.
مدلهای ذکر شده در این بخش، انواعی از BlazeFace هستند، یک آشکارساز چهره سبک و دقیق که برای استنتاج GPU موبایل بهینه شده است. مدلهای BlazeFace برای کاربردهایی مانند تخمین نقاط کلیدی چهره سهبعدی، طبقهبندی حالت چهره و تقسیمبندی ناحیه چهره مناسب هستند. BlazeFace از یک شبکه استخراج ویژگی سبک مشابه MobileNetV1/V2 استفاده میکند.
بلیزفیس (برد کوتاه)
یک مدل سبک برای تشخیص چهرههای تکی یا چندگانه در تصاویر سلفی مانند از دوربین گوشی هوشمند یا وبکم. این مدل برای تصاویر دوربین جلوی گوشی در برد کوتاه بهینه شده است. معماری مدل از تکنیک شبکه کانولوشنی آشکارساز تک شات (SSD) با یک رمزگذار سفارشی استفاده میکند. برای اطلاعات بیشتر، به مقاله تحقیقاتی در مورد آشکارساز چند جعبهای تک شات مراجعه کنید.
| نام مدل | شکل ورودی | نوع کوانتیزاسیون | کارت مدل | نسخهها |
|---|---|---|---|---|
| بلیزفیس (برد کوتاه) | ۱۲۸ در ۱۲۸ | شناور ۱۶ | اطلاعات | جدیدترینها |
بلیزفیس (تمام برد)
یک مدل نسبتاً سبک برای تشخیص چهرههای تکی یا چندگانه در تصاویر دوربین یا وبکم گوشیهای هوشمند. این مدل برای تصاویر با برد کامل، مانند تصاویر گرفته شده با دوربین پشتی گوشی، بهینه شده است. معماری مدل از تکنیکی مشابه شبکه کانولوشنی CenterNet با یک رمزگذار سفارشی استفاده میکند.
| نام مدل | شکل ورودی | نوع کوانتیزاسیون | کارت مدل | نسخهها |
|---|---|---|---|---|
| بلیزفیس (تمام برد) | ۱۲۸ در ۱۲۸ | شناور ۱۶ | اطلاعات | جدیدترینها |
BlazeFace Sparse (تمام برد)
یک نسخه سبکتر از مدل BlazeFace معمولی با برد کامل، تقریباً ۶۰٪ کوچکتر. این مدل برای تصاویر با برد کامل، مانند تصاویر گرفته شده با دوربین پشتی تلفن، بهینه شده است. معماری مدل از تکنیکی مشابه شبکه کانولوشن CenterNet با یک رمزگذار سفارشی استفاده میکند.
| نام مدل | شکل ورودی | نوع کوانتیزاسیون | کارت مدل | نسخهها |
|---|---|---|---|---|
| BlazeFace Sparse (تمام برد) | ۱۲۸ در ۱۲۸ | شناور ۱۶ | اطلاعات | جدیدترینها |
معیارهای وظیفه
در اینجا معیارهای وظیفه برای کل خط لوله بر اساس مدلهای از پیش آموزشدیده فوق آمده است. نتیجه تأخیر، میانگین تأخیر در Pixel 6 با استفاده از CPU/GPU است.
| نام مدل | تأخیر پردازنده | تأخیر پردازنده گرافیکی |
|---|---|---|
| بلیزفیس (برد کوتاه) | ۲.۹۴ میلیثانیه | ۷.۴۱ میلیثانیه |