۱. مقدمه

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

این مسئله دو بخش دارد:

  • بخش آموزش: در این بخش شما افرادی را که می‌خواهید سیستم بشناسد با تصویر به اون می‌دهید.

  • بخش آزمایش: در این بخش اگر تصویری از یکی از افرادی که می‌شناسد را به سیستم بدهیم، سیستم باید او را به درستی به یاد بیاورد.

تصویر اول

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

این مسئله کاربردهای زیادی دارد. برای مثال اگر تعداد افرادی که آموزش می‌دهیم یک فرد باشد، می‌توان از این سیستم به عنوان جایگزین رمز عبور برای رایانه استفاده کرد.

تصویر دوم

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

تصویر سوم

یک سیستم تشخیص چهره متداول شامل سه مرحله زیر است :

  1. کشف چهره (Face Detection)

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

  3. تشخیص چهره (Face Recognition)

۱.۰.۱. چالش های پیش رو

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

۲. کارهای مرتبط

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

(1966) bledsoe اولین کسی بود که یک روش نیمه اتوماتیک برای تشخیص چهره ارائه کرد. در این روش چهره ها بر اساس ویژگی هایی که به وسیله ی انسان علامت زده شده بود دسته بندی می شدند. اندکی بعد با کارهای انجام شده در آزمایشگاههای bell یک بردار با بیش از 21 ویژگی(مثلاً عرض دهان, ضخامت لبها و ...) توسعه داده شد. ویژگی های انتخاب شده عمدتاً ناشی از ارزیابی های ذهن انسان بودند و اتوماتیک کردن آنها کار مشکلی بود.

(1989)Kirby and Sirovich یک روش جبری برای محاسبه ساده ی eigenface ها ارائه کردند.

(1991)Turk and Pentland اثبات کردند که خطای مانده هنگام کدینگ eigenface ها می تواند برای دو منظوراستفاده شود:

  1. تشخیص وجود چهره در یک عکس

  2. تعیین محل تقریبی چهره در عکس

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

در مقاله ای از Rajkiran Gottumukkal, Vijayan K.Asari روشی به نام Modular PCA ارائه شده است. با مقایسه ی این روش با روش PCA متداول, مشخص می شود که این روش با وجود تغییرات زیادی در جهت تابش نور وحالت چهره, نرخ بازشناسی بیشتری نسبت به PCA دارد. در این روش عکسها به دو دسته کوچکتر تقسیم می شوند و PCA روی هرکدام از این دو مجموعه به طور جداگانه اعمال می شود. این موضوع باعث می شود که تغییرات چهره از جمله تغییر در جهت تابش نور و حالت چهره, باعث تغییر ویژگی های موضعی چهره یک فرد نشود.

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

سیستم تشخیص چهره در دو حالت کار می کند : تمرین و دسته بندی.

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

در حالت دسته بندی,عکسهای جدید به نتایج حاصل از حالت تمرین اضافه می شوند. روش ترکیب کننده, روی نتایج بخش تمرین اعمال می شوند تاعکسهای جدید برحسب کلاسهای ایجاد شده دسته بندی شوند.

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

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

در مقاله ای از داود ساریخانی, روشی با استفاده از الگوریتم های PCA, LDA و شبکه های عصبی پیشنهاد شده است.روش ارایه شده دارای چهارقسمت پردازشی زیراست:

بخش پیش پردازش شامل یکنواخت سازی هیستوگرام و نرمالیزه کردن تصاویر

بخش کاهش بعد فضا به کمک PCA

استخراج ویژگیها با استفاده از LDA برای جداسازی کلاس ها و تفکیک پذیری چهره ها

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

الگوریتمهای مختلفی برای تشخثص چهره وجود دارند که معمول ترین آنها عبارتند از: PCA - ICA - LFDA - EBGM - SVM - ...

الگوریتم مورد پیاده سازی ما برای این پروژه PCA خواهد بود.

۲.۰.۱. الگوریتم Principal Component Analysis) PCA):

این روش در سال 1991 توسط Turk & Pentland پیشنهاد شد که از تحلیل المانهای اصلی یا همان PCA برای کاهش بعد استفاده کرده‎ تا بتواند زیرفضایی با بردارهای متعامد پیدا کند که در آن زیرفضا پراکندگی داده ها را به بهترین حالت نشان دهد. این زیرفضا را هنگامی که بر روی داده های چهره اعمال شوند، فضای چهره میگویند. پس از مشخص شدن بردارها تمامی تصاویر به این زیر فضا منتقل می‏‏شوند تا وزنهایی که بیانگر تصویر در آن زیرفضا هستند بدست آیند. با مقایسه شباهت وزنهای موجود با وزن تصویر جدیدی که به این زیر فضا منتقل شده می‏‏توان تصویر ورودی را شناسایی کرد.

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

در این روش یک تصویر با ابعا n*m به یک بردار با nm مولفه تبدیل می شود. یعنی می توان عکس را به صورت نقطه ای در فضای nm بعدی تصور کرد.
هدف PCA یافتن بردارهایی است که به بهتر ین نحو ممکن کار شناسایی ز یر فضا را انجام دهند. این بردارها فضای چهره را تعریف می کنند. از آن جایی که این بردارها، بردار ویژه ی ماتر یس همبستگی مربوط به تصاویر چهره می باشند و به دلیل شباهت به چهره یانسان، آن ها را eigenface می نامند.

۲.۰.۲. محاسبه ی eigenface ها

اگر مجموعه ی عکس های ورودی را ماتریسهای I1, I2, ..., In در نظر بگیریم, میانگین چهره ها به صورت زیر محاسبه می شود:

A = (sum(In, n = 1 .. m))/M

تفاوت هر تصویر از میانگین به صورت زیر محاسبه می شود:

Phi[i] = Ii - A

for i = 1, 2, ..., M

بردار

U[k]
به نحوی انتخاب می شود که مقدار
λ[k]
ماکزیمم شود:

{ {lambda[k]} = ({sum((U[k]^T}{Phi[n])^2} }

البته با فرض زیر:

بردارهای

} L[k]
, $$ { U

P(E) = {n \choose k} p^k (1-p)^{ n-k}

۳. آزمایش‌ها

۴. کارهای آینده

۵. مراجع

. Moon, P.J. Phillips, Computational and Performance aspects of PCA-based Face Recognition Algorithms, Perception, Vol.
30.2001

M. Turk, A. Pentland, Eigenfaces for Recognition, Journal of Cognitive Neurosicence, Vol. 3, No. 1, 1991

A. Pentland, B. Moghaddam, T. Starner, View-Based and Modular Eigenspaces for Face Recognition, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 21-23 June 1994, Seattle, Washington, USA

M.A. Turk, A.P. Pentland, Face Recognition Using Eigenfaces, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 3-6 June 1991, Maui, Hawaii, USA

ساریخانی مقدم، داود، 1390، تشخیص چهره به کمک الگوریتم های PCA LDA و شبکه های عصبی، دومین همایش سراسری فن آوری اطلاعات و ارتباطات، ملایر، دانشگاه آزاد اسلامی واحد ملایر، http://www.civilica.com/Paper-NCICT02-NCICT02_037.html

۵.۱. پیوندهای مفید

لطفا برای مشاهده صحیح فرمول‌ها، آخرین ویرایش پروژه را نگاه کنید.

تایید شده

دلایل امتیاز ۲/۵
۱.مشکلاتی در سبک نوشتار و استفاده نامناسب از کلمات.
۲.استفاده نادرست از markdown و نتیجه نا مناسب
۳.بیشتر کلیت موضوع و تاریخچه مورد بحث قرار گرفته و در مورد نحوه پیاده سازی اطلاعات خاصی وجود ندارد.
۴.بهتر بود تصاویری از نتیجه پروژه قرار داده میشد.

رد شده
تایید شده

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

  • کاش لینک پیاده‌سازی قرار داده می‌شد. در این صورت می‌توانستم‌ در مورد کد هم افاضاتی(!) کنم! من به خاطر همین موضوع‌(که نمی‌تونم بی‌خودی از کد‌هم ایراد بگیرم!) یک ستاره کم کردم!

  • چندین ایراد ریز در استفاده از صحیح از Markdown و نگارش دیده می‌شود. در صورتی که این نکات رعایت می‌شدند خواندن مطلب برای مخاطب راحت‌تر می‌شد.

  • به نظر می‌رسد منظور از قرار دادن این پروژه، تاکید بر بازشناسی چهره بوده و یافتن موقعیت چهره، پروژه دیگری است. به نظرم نیازی به توضیح یافتن موقعیت چهره نیست.

  • کاش از منابع جدیدتری استفاده می‌شد.

  • لطفا الگوریتم ‌PCA را با یک مثال توضیح دهید. درک آن الان به شدت سخت است! من به کمک ویکی هم نتونستم خیلی چیزی بفهمم! الان این الگوریتم به روشی که بیان کردید چهره رو تبدیل به بردار می‌کنه بعد برای این که بفهمیم دوتا چهره برای یک‌نفر هستند یا خیر بردار‌ها رو باید مقایسه کنیم؟!

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

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

با تشکر!

تایید شده

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

یاسر سوری

با سلام. من ارزیابی رو از روی آخرین ویرایش پروژه انجام می‌دم که به نظر می‌رسه بهبود‌هایی داشته است. موارد زیر به ذهن من می‌رسد:

  • «در این بخش شما افرادی را که می‌خواهید سیستم بشناسد با تصویر به اون می‌دهید.» آیا استفاده از «اون» کار درستی است؟!

  • «کارایی تشخیص چهره علاوه بر کاربردهای مرتبط با تعیین و مقایسه هویت نظیر کنترل دسترسی, امور قضایی, صدور مجوزها و مدارک هویتی و نظارت در زمینه هایی نظیر تعامل انسان و کامپیوتر, واقعیت مجازی بازیابی اطلاعات از پایگاه های داده, مالتی مدیا و سرگرمی های کامپیوتری به اثبات رسیده است.» جمله نا مفهموم است.

  • « تشخثص» غلط املایی.

  • «الگوریتمهای مختلفی برای تشخثص چهره وجود دارند که معمول ترین آنها عبارتند از: PCA - ICA - LFDA - EBGM - SVM - ...» این الگوریتم‌هایی که نام برده‌اید را اولا ارجاع دهید به مقالات مرتبط. دوما این‌ها الگوریتم‌های تشخیص چهره نیستند. برای مثال SVM یک الگوریتم برای کلاسه‌بندی است. PCA یک روش برای کاهش ابعاد داده است.

  • کلا شما و دوستانتان (آن‌هایی که من دیده‌ام) عادت ندارید که ارجاع بدهید به مقالات. برای مثال این جمله «تا قبل از ارائه ی PCA برای تشخیص چهره, بیشتر کارها روی شناسایی ویژگی های بخشهای صورت مانند چشمها, بینی, دهان و ... و تعریف روابط بین این اعضا متمرکز بود.» از کجا این حرف را می‌زنید؟!

  • یک استاندارد برای ارجاع دادن انتخاب کنید و آن را رعایت کنید. «[2] (1991)Turk and Pentland اثبات کردند که خطای مانده هنگام کدینگ eigenface ها می تواند برای دو منظوراستفاده شود:»

  • برای اسم‌های خاص از حروف بزرگ استفاده کنید. «(1966) bledsoe اولین کسی بود که یک روش نیمه اتوماتیک برای تشخیص چهره ارائه کرد. در این روش چهره ها بر اساس ویژگی هایی که به وسیله ی انسان علامت زده شده بود دسته بندی می شدند. اندکی بعد با کارهای انجام شده در آزمایشگاههای bell یک بردار ب....»

  • «سیستم تشخیص چهره در دو حالت کار می کند : تمرین و دسته بندی.» چه ربطی به کارهای مرتبط دارد؟

  • «تمرین داده می شوند» غلط است «آموزش داده می‌شوند» بهتر است.

  • کلا بخش کارهای مرتبط خوب بود. اگر از مقاله‌ای برای این بخش استفاده کرده‌اید ذکر کنید.

  • اشتباهات املایی و نگارشی نسبتا زیاد است. به نگارش صحیح فارسی مثل «می‌شود» دقت بیش‌تری کنید.

  • متأسفانه پیاده‌سازی انجام نشده است و گزارشی در این زمینه عرضه نشده است.

  • برخی از ارجاعات در متن استفاده نشده است! این نشانه‌ی خوبی نیست.