فیلتر های اپلیکیشن Snapchat تشخیص جهره

فیلتر های اپلیکیشن Snapchat چگونه چهره ی شما را تشخیص می دهند؟

در آن لحظاتی که حوصله تان سر رفته و با فیلترهای Snapchat بازی می کنید – زبان خود را بیرون می آورید، چهره ی خود را زیبا می کنید و سعی می کنید طوقه گل را دقیقاً روی سرتان خود قرار دهید، مطمئناً تعجب کرده اید که از نظر فنی چه اتفاقی در حال رخدادن هست؟ – Snapchat چگونه می تواند چهره شما را با انیمیشن ها مطابقت دهد؟

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

تکنولوژی به کار گرفته شده

این اپلیکیشن در یک شرکت استارت آپ اوکراینی به نام Looksery تولید شده است که برنامه ای است که به کاربران امکان می دهد ویژگی های صورت خود را هنگام گفتگوی ویدیویی و عکس گرفتن تغییر دهند. Snapchat این استارت آپ مستقر در Odesa را به قیمت ۱۵۰ میلیون دلار در سپتامبر ۲۰۱۵ خریداری کرد. گفته می شود این بزرگترین خرید حوزه ی فناوری در تاریخ اوکراین است.

بینایی رایانه ای

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

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

فیلتر های Snapchat چگونه کار می کنند؟

Looksery فرآیند مهندسی خود را محرمانه نگه داشته است، اما همه می توانند به صورت آنلاین به اختراع ثبت شده آن ها دسترسی پیدا کنند. حوزه ی خاصی در بینایی کامپیوتر که Snapchat در آن از فیلتر ها استفاده می کند پردازش تصویر نامیده می شود. پردازش تصویر ، تبدیل یک تصویر با انجام عملیات ریاضی بر روی هر یک از پیکسل های جداگانه تصویر است.

۱ – تشخیص چهره

در مرحله اول به این صورت عمل کنید: با دریافت یک تصویر ورودی یا فریم ویدئویی، تمام چهره های موجود انسان را پیدا کرده و کادر محصور کننده ( Bounding Box ) آن ها را استخراج کنید (یعنی مختصات مستطیل به شکل: X ، Y ، عرض و ارتفاع).

تشخیص چهره از اوایل دهه ۲۰۰۰ یک مسئله حل شده بود اما با چالش هایی از جمله شناسایی چهره های ریز، جزئی و چهره هایی که روبروی دوربین قرار ندارند مواجه بوده است. پرکاربردترین تکنیک، ترکیبی از هیستوگرام گرادیان های جهت دار ( به اختصار HOG ) و ماشین بردار پشتیبان ( SVM ) است که در صورت ارائه تصویری با کیفیت خوب، چهره ها را به نسبت خوبی تشخیص می دهد اما این روش حداقل در CPU در زمان واقعی قادر به تشخیص چهره ها نیست.

بینایی رایانه ای 2

نحوه کارکرد تشخیص گر HOG / SVM

با وارد کردن یک تصویر، نمایش هرمی آن تصویر را محاسبه کنید که در واقع هرمی از نسخه مقیاس بندی شده چند مقیاسی تصویر اصلی است. برای هر ورودی در هرم، از یک اسلاید کشویی استفاده می شود. مفهوم اسلاید کشویی کاملاً ساده است. با حلقه زدن روی تصویری با اندازه ثابت، وصله های تصویری کوچکی با اندازه ۶۴در ۱۲۸ پیکسل در مقیاس های مختلف استخراج می شوند. برای هر تکه، الگوریتم تصمیم می گیرد که حاوی صورت باشد یا نه. HOG برای پنجره فعلی محاسبه می شود و برای تصمیم گیری به طبقه بندی SVM (خطی یا نه) منتقل می شود (یعنی صورت تشخیص داده میشود یا نه). هنگامی که کار با هرم تمام می شود، معمولاً برای دور انداختن مستطیل های انباشته شده، یک عمل توقف سازی غیر حداکثری (به اختصار NMS) انجام می شود. می توانید اطلاعات بیشتر در مورد ترکیب HOG / SVM را در اینجا بخوانید.

۲ – لندمارک های چهره

این مرحله بعدی تجزیه و تحلیل ما می باشد که به شرح زیرانجام می گردد: برای هر چهره شناسایی شده، مختصات نقاط هر عضو یا ویژگی های چهره  را استخراج کنید. این کار شامل چشم، استخوان، لب، بینی، دهان و … است که معمولاً به صورت نقاط ( X ، Y ) خواهد بود.

استخراج لندمارک های چهره برای CPU با داشتن یک کادر محصور کننده (یعنی تصویر بریده شده از چهره هدف) عملیاتی نسبتاً راحت است اما اجرای آن برای برنامه نویس بسیار دشوار است مگر اینکه از برخی از روش های یادگیری ماشین نه چندان سریع مانند آموزش و اجرای کلاسه بند استفاده شود.

بینایی رایانه ای 3

برای کسب اطلاعات بیشتر در مورد استخراج لندمارک های چهره می توانید این آموزش را مطالعه کنید.

۳ – پردازش تصویر

اکنون که چهره شناسایی شده است، Snapchat می تواند با استفاده از پردازش تصویر ویژگی ها را به صورت کامل روی چهره اعمال کند. با این حال، سازندگان این نرم افزار ترجیح دادند یک قدم جلوتر بروند و می خواهند ابتدا ویژگی های چهره شما را پیدا کنند. این کار با کمک مدل Active Shape انجام می شود.

مدل Active Shape یک مدل شناسایی چهره است که با علامت گذاری دستی محدوده های مربوط به ویژگی های چهره بر روی صدها تا هزاران تصویر آموزش دیده است. از طریق یادگیری ماشین، یک “چهره واسط” ایجاد می شود و تصویر را با تصویر اصلی منطبق می کند. این چهره متوسط (که البته دقیقاً با چهره کاربر تناسب ندارد زیرا همه ما چهره های متفاوتی داریم)، پس از انطباق بر چهره، پیکسل های اطراف لبه “چهره واسط” بررسی می شوند تا تفاوت در طیف های مختلف بررسی شود. به دلیل آموزشی که الگوریتم پشت سر گذاشته است (فرآیند یادگیری ماشین) ، یک چهارچوب اساسی در مورد چگونگی به نظر رسیدن برخی ویژگی های چهره دارد ، بنابراین به دنبال الگویی مشابه در تصویر داده شده می گردد. حتی اگر برخی از تغییرات اولیه اشتباه باشد، با در نظر گرفتن موقعیت سایر نقاطی که ثابت شده اند، الگوریتم اشتباهاتی را که در مورد مکان های خاصی از چهره شما ایجاد کرده، اصلاح خواهد کرد. سپس این مدل یک شبکه را تنظیم کرده و ایجاد می کند (یک مدل سه بعدی که می تواند با صورت شما تغییر شکل داده و مقیاس بندی شود).

بینایی رایانه ای 4

تمام مراحل تشخیص چهره یا ویژگی های چهره، در همان لحظه ای که قبل از انتخاب فیلتر، شبکه سفیدی روی تصویر مشاهده می کنید، انجام می شود. سپس فیلتر ها با افزایش آن ها یا اضافه کردن چیزی روی قسمت های خاص چهره ، تغییرات لازم را اعمال می کنند.

از فیلتر ها تا گزینه ی Face-Swap

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

برنامه پس از تعیین همه ویژگی های چهره ی شما، یک مش ( Mesh ) در امتداد چهره شما ایجاد می کند که فریم به فریم به هر نقطه می چسبد. این مش اکنون می تواند هر طور که Snapchat بخواهد ویرایش و اصلاح شود.

بینایی رایانه ای 5

بعضی از لنزها با درخواست از شما برای بالا بردن ابرو یا باز کردن دهان، کارهای بیشتری روی چهره تان انجام می دهند. فکر کردن در مورد این موضوع شاید ساده به نظر برسد، اما به الگوریتم های بیشتری نیاز دارد.

  • داخل دهان نسبتاً تاریک است. پس نرم افزار از این طریق باز بودن دهان را تشخیص می دهد.
  • هنگامی که متوجه می شود کاربر ابروهای خود را بالا آورده است ، تغییرات روی ابرو را نسبت به سایر ویژگی های صورت در نظر می گیرد.

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

به همین دلیل است که اسنپ چت تصمیم گرفت که به جای اینکه پلتفرم اختصاصی خود را بسازد ۱۵۰ میلیون دلار به Looksery بپردازد.

امیدواریم که این مقاله توانسته باشد به سوالات شما راجب نرم افزار Snapchat پاسخ دهد. در انتها، می توانید اپلیکیشن Snapchat را از طریق لینک های زیر برای اندروید و IOS دانلود کنید.

دانلود اپلیکیشن Snapchat برای اندروید دانلود اپلیکیشن Snapchat برای IOS

بیشتر بخوانید:

منبع Medium

درباره‌ی علی قلی زاده

همچنین ببینید

راه اندازی TensorFlow Lite روی اندروید

راه اندازی TensorFlow Lite روی اندروید

در این مقاله، نحوه بارگذاری مدل .tflite روی اپلیکیشن های اندروید و استفاده از آن …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *