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

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

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

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

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

facebook face recognition

نام این تکنولوژی تشخیص چهره است .الگوریتم فیس بوک بعد از این که دوستانتان تک شدند  در کمترین زمان آنها را شناسایی می کند.این یک تکنولوژی  شگفت انگیز است که با دقت 98% چهره را شناسایی می کند تقریبا همانند یک انسان.

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

ویل فرل ( Will Farrell ) بازیگر  معروف و چاد اسمیت ( آهنگ ساز راک )،در زیر از هم جدا شده اند

این دو عکس از ویل فارل و چاد اسمیت است

یکی ازین ها ویل فارل و دیگری چاد اسمیت است .. باور کنید دو نفر جدا اند!

چگونه در حالات  بسیار پیچیده از  ماشین یادگیری چهره استفاده کنیم

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

۲-دوما روی تک تک چهره ها تمرکز کند و حتی در شرایطی که زاویه و نور میزان و درست نبود،همچنان چهره را تشخیص دهد
۳-سوما قادر باشد تا با تشخیش خصوصیات یگانه در صورت ،مانند اینکه مثلا بگوید چشم هایش چقدر درشت و درازی صورتش چقدر است.
۴- بلاخره تشخیص افرادی ک میشناسد و معلوم کردن نام آن ها از طریق مقایسه ی ویژگی های خاص و یگانه ی چهره افراد.
به عنوان یک انسان ،مغز شما قادر است در لحظه تمام این کار ها را ب طور خودکار انجام‌دهد .
درواقع انسان ها در تمیز دادن چهره ی افراد از یک دیگر بسیار عالی هستند.

یک ماشین مزدا

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

شناسایی اجزای چهره و مثقایسه

شناخت چهره قدم‌به قدم:

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

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

مرحله ۱ : پیدا کردن تمام چهره ها

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

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

سپس به تک تک نقاط روی تصویر نگاه می کنیم ، برای هر نقطهی تصویر ، نگاهی به پیرامون آن خواهیم انداخت .

بررسی همه پیکسل های اطراف

هدفمان این است که تمییز دهیم یک نقطه ی تصویر در مقایسه با نقاط پیرامونش چقدر تاریک است. سپس با یک فلش به سمتی اشاره می کنیم که نقاطش تاریکتر می شود.

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

ادامه این مطلب...

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

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

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

درج دیدگاه