آموزش برنامه نویسی فناوری

تشخیص چهره چیست و چگونه عمل می کند-قسمت چهارم

امیرحسین عراقی
نوشته شده توسط امیرحسین عراقی

بخش سوم معرفی تشخیص چهره مدرن همراه با آموزش

ادامه  بخش سوم توضیح در مورد چگونگی عملکرد تشخیص چهره

روند پردازش این سلسله اندازه‌گیری‌ها با نگاهی به سه تصویر از چهره به طور همزمان انجام می شود:
١-بازیابی یا واکشی تصویر صورت شخصی که میشناسیم
٢ بازیابی یا واکشی یک تصویر دیگر از همان شخص
۳ بازیابی یا واکشی تصویری از یک شخص کاملا متفاوت
سپس الگوریتم نگاهی به اندازه گیری های انجام شده در مورد هر سه عکس جاری خواهد انداخت و شبکه عصبی را کمی می پیچاند یعنی می چرخاند تا اطمینان حاصل کند که حاصل اندازه گیری های بین عکس یک و دو کمی شبیه ترند تا عکس ٢ و ٣.

 

آموزش سه گانه تشخیص چهره
پس از میلیونها بار تکرار این مرحله برای میلیون‌ها تصویر، از هزاران شخص متفاوت ،شبکه عصبی می‌آموزد که به طور قابل اعتمادی ۱۲۸ کامل اندازه گیری برای هر فرد ایجاد کند.هر ده تصویر مختلف از یک شخص تقریبا باید اندازه گیری یکسانی به دهد.
اشخاصی که با ماشین آموزنده کار میکنند ۱۲۸ اجزای اندازه گیری هر چهره را نهفته می نامند ایده کاهش داده های خام پیچیده مثل یک عکس درون فهرستی از اعداد تولید شده توسط رایانه بسیار زیاد در ماشین آموزنده بالا میرود و افزایش می‌یابد (مخصوصاً در ترجمه یک زبان) راه حل دقیق برای چهره هایی که ما استفاده می کنیم در سال ۲۰۱۵ توسط محققان شرکت گوگل ابداع شد ضمن اینکه راه حل های دیگری نیز موجود است.

رمزگذاری تصویر صورتمان:

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

اما شبکه یک بار تغییر داده شده است پس می‌توانند برای هر چهره حتی برای آنهایی که هرگز پیش از این ندیده است شاخص‌های اندازه‌گیری تولید کند.پس این مرحله تنها یکبار می بایست انجام شود خوشبختانه عزیزانمان در گروه Open face از پیش این کار را کرده و چندین شبکه یادگیری را که اکنون ما می توانیم از آنها استفاده کنیم منتشر کرده اند . از همینجا از براندن آموس و گروهش تشکر می کنیم !
پس تمام کاری که ما باید انجام دهیم، این است که تصاویر چهره مان را از طریق شبکه از پیش آموزش‌دیده آنها اجرا کنیم تا بتوانیم ۱۲۸ شاخص اندازه گیری را برای هر صورت به دست آوردیم. اینجا یک نمونه برای تصویر آزمایشی ما هست:

 

۱۲۸ شاخص اندازه گیری را برای هر صورت
خوب این ۱۲۸ عدد اندازه گیری دقیق چه بخشهای از چهره را شامل می شوند؟
این نشان می‌دهد که ما هیچ ایده‌ای نداریم و واقعا برایمان بی معنی است تمام چیزی که برای ما اهمیت دارد این است که وقتی شبکه به دو تصویر متفاوت از یک شخص خاص نگاه می کند همواره اعداد یکسانی را تولید می کند .
اگر می خواهید این مرحله را خودتان انجام دهید open face یک کد از پیش نوشته شده است.

که نهفتگی تمام تصاویر را در درون یک شاخه (فولدر) تولید کرده و آنها را درون یک فایل csv میریزد . اگر می خواهید می توانید مانند اینجا تست کنید

مرحله ٤ : يافتن نام شخص از طريق كد گذارى

در واقع اين مرحله از ميان تمام مراحل ، آسان ترين است . تمام چيزى را كه بايد انجام دهيم اين است كه شخص را از ميان پايگاه اطلاعاتى افراد شناخته شده اى كه نزديك ترين اعداد اندازه گيرى شده به تصوير آزمايشى ما را دارند را بياييم
شما ميتوانيد آن كار را با استفاده از الگوريتم هاى ساده و اصاى دسته بندى ماشين آموزنده انجام دهيد. نياز به هيچ گونه دوز و كلك خيال انگيز براى ياد گيرى نيست. ما از يك دسته بندى كننده خطى SVM استفاده خواهيم كرد اما ضمنا الگوريتم هاى دسته بندى بسيار ديگرى نيز كار ميكنند.
تمام كارى را كه بايد بكنيم اين است كه به يك دسته بندى كننده ياد بدهيم كه از اعداد به دست آمده از يك تصوير جديد را گرفته و با اشخاص از پيش شناخته شده مطابقت داده و بگويد شبيه ترين فرد كيست.
انجام اين كار در كسرى از ثانيه صورت ميگيرد و نتيجه اش مشخص شدن نام شخص است.
سپس اجازه دهيد اين سيستم را آزمايش كنيم نخست من به يك دسته بندى كننده ٢٠ عكس كه هر يك مربوط به ويل فرد ، چاد اسميت و جيمى فالن بودند را دادم .

سپس دسته بندى كننده را روى هر يك از كليپ معروف ويديويى در youtube كه در باره همين سه شخص مذكور بود و دوتا از آن ها قصد داشتند تا خود را جاى ديگرى جا بزنند ( در برنامه جيمى فالن) اجرا كردم .

تشخیص چهره ویل فارل و جان اسمیت

تشخیص چهره ویل فارل و جان اسمیت

اون كاركرد ، و چقدر هم خوب روى دو چهره متفاوت با حالت مختلف كار كرد ! حتى روى چهره نيم رخ!

خودتان امتحان کنید

بگذاريد مراحلى را كه گذرانديم مرور كنيد

١- با استفاده از الگوريتم HOG براى ايجاد ساده ترين شكل تصوير ، كد گذارى ميكنيم. با استفاده از اين تصوير ساده شده بخش هايى از تصوير را كه به كد هاى توليد شده از يك تصوير به وسيله الگوريتم HOG شبيه ترين هستند را پيدا ميكنيم.
٢-حالت و زاويه چهره را با يافتن ويژگى هاى خاص اصلى درون صورت حل ميكنيم . از قبل آن نشانه ها را يافته و از آنها براى پيچاندن و چرخاندن تصوير استفاده ميكنيم. به طورى كه چشم ها و دهان در يك مركز قرار بگيرند.
٣- تصوير در مركز قرار گرفته را از ميان يك شبكه عصبى كه ميداند چطور ويژگى هاى صورت را اندازه گيرى كند ، عبور ميدهيم. يعنى آن ١٢٨ ويژگى چهره را ذخيره ميكند.
٤- با نگاهوى به تمامى چهره هايى كه در گذشته اندازه گيرى كرده ايم مقايسه ميكنيم كدام شخص ، به اندازه گيرى چهره شبيه ترين است.
حالا كه ميدانيم تمام اين روند چگونه عكل ميكند دستورالعمل هايى هستند كه آغاز تا پايان نشان ميدهند كه چطور چارچوب كلى فناورى شناخت چهره ، روى كامپيوترتان اجرا ميشود.

حالا كه ميدانيد تمام اين ها چگونه كار ميكنند ، دستورالعمل هايى از شروع تا پايان داريم كه چگونگى اجراى تمام چارچوب فناورى تشخيص چهره را روى رايانه ى خودتان نشان ميدهد.
همچنین ميتوانيد مراحل زير را جهت استفاده از Open Face دنيال كنيد. هرچند اينجانب نسخه كتاب خانه ى جديدى از فناورى تشخيص چهره بر پايه ى زبان پايتون نوشته ام كه نصب و استفاده آن بسيار ساده تر است. بنابراين به جاى ادامه دادن مطالب پيش رو ، ابتدا توصيه ميكنم كه نسخه ى تشخيص چهره اى را كه خودم نوشته ام امتحان كنيد.
من حتى از قبل بك سيستم مجازى از پيش پيكربندى شده مجهز به برنامه خودم ، Open CV ، Tensor flow و كلى ديگر از ابزار هاى يادگيرى عميق آماده كرده ام. شما ميتوانيد به راحتى آن را دانلود كرده و روى رايانه خود به راحتى اجرا كنيد.
از اين ماشين مجازى ، يك عكس تهيه كنيد اگر نميخواهيد تمام اين كنابخانه ها را خودتان نصب كنيد.

دستورالعمل هاى Open Face :

قبل از شروع مطمین شويد كه open face , dlib و پايتون را نصب كرده ايد.شما ميتوانيد هم از روش دستى استفاده كنيد و هم از يك ماشين مجازى از پيش آماده شده بهره بردارى كنيد.

 

قبل از شروع
مراحل

منبع : Medium

[تعداد رای:7]

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

امیرحسین عراقی

امیرحسین عراقی

Web Developer
Asp.net MVC

4 دیدگاه

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