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

مقدمه


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

  • آیا تشخیص چهره در مغز انسان یک فرایند اختصاصی است؟
    در سال ۱۹۸۶ در این مورد چهار آزمایش انجام شد و دانش‌مندان به این نتیجه رسیدند که تشخیص چهره مانند بقیه‌ی پردازش تصویرهای دیگر در مغز انجام می‌شود و مهم‌ترین دلیل آن هم این بود که افرادی که بیماری پروزوپاگنوسیس (Prosopagnosis) دارند،‌ بیماری‌ای که افراد چهره‌ها را به خوبی تشخیص نمی‌دهند، در تشخیص تصاویر دیگر نیز مشکل دارند.
    ولی در سال‌های اخیر دانش‌مندان آزمایش‌هایی انجام داده‌اند و نتایج متفاوتی گرفته‌اند و معتقدند که قسمتی کاملا اختصاصی در مغز برای تشخیص چهره وجود دارد. البته این بحث هنوز هم در بین دانش‌مندان در جریان است.

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

  • آیا تقارن در پردازش چهره نقش مهمی دارد؟
    جواب به این سوال بله است و اثبات شده است که با در نظر گرفتن تقارن صورت مقدار قابل توجهی از ابعاد (در این باره بعداً توضیح داده خواهد شد) کاهش می‌یابد.

حال به بازشناسی چهره در سیستم‌ها می‌پردازیم. پردازش چهره در سیستم‌ها به طور کلی از دو مرحله تشکیل می‌شود.

  1. آموزش: تصویر افراد را به برنامه نشان می‌دهد.

  2. تشخیص: تصویر‌های جدید به سیستم داده می‌شود و انتظار می‌رود افرادی را که قبلاً آموزش دیده را بشناسد.

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

به عنوان قفل تصویری

برنامه‌های تشخیص چهره از سه بخش کلی تشکیل شده‌اند:

  1. تشخیص چهره(Face Detection)

  2. استخراج الگوها(Feature Extraction)

  3. بازشناسی چهره(Face Recognition)

کارهای مرتبط


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

۲-روش EigenFace تاثیر زیادی بر الگوریتم‌های پردازش تصویر گذاشت این روش در سال 1991 توسط ترک و پنتلند پیشنهاد شد. در این روش هدف این است که داده‏‌ها تا حد امکان غیروابسته شوند و به دنبال بردارهای متعامدی می‌گردد که تا حد امکان این خواسته را برآورده کنند و برای این کار از آنالیز المان‌های اصلی یا به اختصار PCA استفاده می‌‏کند.

۳-در یک مقاله‌ی دیگر روشی به نام Modular PCA آورده شده بود که مبحث اثر زاویه‌ی نور را در الگوریتم PCA ساده بهبود بخشیده بود، در این روش ابتدا عکس را به قسمت‌های کوچک‌تری تبدیل کرده و سپس روی هر قسمت این الگوریتم را استفاده می‌کند و به این ترتیب از زاویه‌ی تابش نور بر تغییر چهره‌ی فرد جلوگیری می‌کند.

۴-در مقاله ای از Trupti M. Kodinariya با ترکیب الگوریتم PCA با چند الگوریتم دیگر یک روش ترکیبی ارائه شده است. که در دو حالت کار می‌کند:

  • تمرین

  • دسته‌بندی
    حالت تمرین شامل نرمال سازی و استخراج ویژگی از تصاویر با استفاده از الگوریتم PCA, ICA می باشد. . سپس ویژگی های استخراج شده, با استفاده از BPNN ها (back propagation neural network) تمرین داده می شوند تا فضای ویژگی ها به کلاسهای متفاوت دسته بندی شوند.

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

برخی کار‌های مرتبط دیگر نیز در شرکت‌های مهمی انجام شده است که بعضی از آن‌ها را می‌آوریم.
گوگل: Google Cloud Vision که با استفاده Framework TensoFlow کار می‌کند و به کاربران این امکان را می‌دهد که این تصاویر در google جست‌و‌جو کنند.
آی‌بی‌ام: این برنامه که به عنوان بخشی از پروژه Watson Developer Cloud شناخته می‌شود، از امکانات پیش‌فرض خوب و کارآمدی برخوردار است. این برنامه نیز همچون رابط کاربری گوگل از سیستم OCR و تشخیص NSFW برخوردار است. Clarif.ai می‌گوید: این سرویس تازه‌ وارد به عرصه تشخیص تصاویر شده است که از رابط برنامه نویسی REST نیز پشتیبانی می‌کند. یکی از نکات جالب این برنامه، پشتیبانی از ماژول‌های مختلفی است که می‌توانند در ساخت الگوریتم‌هایی که قابلیت تشخیص شرایط مختلف از جمله جشن عروسی، مسافرت و غذا و رستوران را دارند، کمک کنند.

آزمایش‌ها


کارهای آینده


مراجع


  • Chiara Turati, Viola Macchi Cassia, F. S., and Leo, I. Newborns face recognition: Role of inner and outer facial features. Child Development 77, 2 (2006), 297–311.

  • Kanade, T. Picture processing system by computer complex and recognition of human faces. PhD thesis, Kyoto University, November 1973.

  • Brunelli, R., Poggio, T. Face Recognition through Geometrical Features. European Conference on Computer Vision (ECCV) 1992, S. 792–800.

  • M. Turk and A. Pentland, "Eigenfaces for Recognition", Journal of Cognitive Neuroscience, vol.3, no.1, pp.71-86, 1991, hard copy.

  • Trupti M. Kodinariya: Hybrid Approach to Face Recognition System using Principle component and Independent component with score based fusion process. CoRR abs/1401.0395 (2014).

  • Gottumukkal, Rajkiran and Asari, Vijayan K.. An improved face recognition technique based on modular PCA approach. . In Pattern Recognition Letters, (25) 4: 429-436, Year 2004 .

پیوندهای مفید


سعید عادل مهربان

سلام.
خسته نباشید.
براش شروع کارتون بد نبود. اینکه اشاره‌ای به تاریخچهٔ بحث کردید خیلی خوبه، اما به نظر می‌رسه جایی اون اواسط مسیر رو گم کردید. هر چند در اینجا هدف این نیست که شما دقیقاً مسیری که بهترین روش‌های فعلی در اون راستا حرکت می‌کنند رو انتخاب کنید، اما حرکت کردن در این مسیر باعث خواهد شد هم تحقیق پربارتری داشته باشید و هم راحت‌تر بتونید کار رو ادامه بدید. ضمن اینکه به جای پروژه‌های تجاری که خبر از پشت صحنه‌شون ندارید، روی مقاله‌ها و کتاب‌های علمی تمرکز کنید که به الگوریتم‌ها می‌پردازند. مثلاً به جای Google Cloud Vision، به مقالهٔ facenet گوگل بپردازید.
در آخرین پاراگراف‌ها هم به نظر می‌رسه به کلی از بحث بازشناسی چهره دور شدید.
برای مراحل بعدی بیشتر تلاش کنید.
موفق باشید.
پ.ن: در متن ارجاعی دیده نمی‌شه. لطفاً هر جا در مورد مقاله یا روشی صحبت می‌کنید، ارجاع بدید وگرنه لیست مراجع در انتهای متن چندان کارآمد نخواهد بود.