احراز هویت بر اساس چهره

تغییرات پروژه از تاریخ 1393/11/14 تا حالا
هدف از انجام این پروژه طراحی و پیاده سازی یک سیستم است که تصویر دو چهره ورودی که برای احراز هویت به آن داده میشود را با هم مقایسه کرده و عددی را به عنوان میزان تشابه آن دو چهره برگرداند. سپس برای پذیرش احراز هویت، یک آستانه را برای میزان شباهت تعیین کند که اگر میزان شباهت از آن مقدار بیشتر بود، سیستم آن مقایسه را به عنوان تطبیق بپذیرد و در غیر اینصورت آن را رد کند. این حد آستانه باید به گونه ای باشد که خطا روی پایگاه داده آزمون، کمترین میزان باشد. منظور از خطا، جمع مقدار FAR[^False Accept Rate] و  FRR[^False Reject Rate] می‌باشد.

* برای دریافت داده‌های آموزش و آزمون لطفا به آزمایشگاه دکتر آنالویی مراجعه نمایید.

# مقدمه
تشخیص هویت همواره از اهمیت زیادی بین انسان ها برخوردار بوده و است. استفاده از روش هایی مانند داشتن پسورد و پین کد برای تشخیص هویت با خطر فراموشی و مبادله بین افراد مواجه اند، امروزه برای تشخیص هویت با قابلیت اطمینان بالا از سیستم های بیومتریک[^bimetric] استفاده می شود. واژه بیومتریک از زبان یونانی می آید و برگرفته از دو واژه بیو[^bio] به معنی زندگی و متریک[^metric] به معنی اندازه گیری است. بیومتریک فناورى و علم اندازه گیرى و تحلیل خصوصیات بدن انسان مانند اثرانگشت، شبکیه چشم،الگوى رگ ها،عنبیه،الگوهاى صوتى،الگوهاى چهره است که به منظور تشخیص هویت انجام مى پذیرد. بنابراین در سیستم های بیومتریک، شناسایی افراد با تشخیص "این افراد که هستند" به جای "این افراد چه می دانند" صورت می گیرد ، زیرا پسورد و پین کد ممکن است فراموش شوند یا بین افراد مبادله شوند اما در مورد ویژگی های فیزیولوژیکی این امکان وجود ندارد.[1]


**چند نمونه ازسیستم های بیومتریک:**[1]
1.	بازشناسی چهره[^Face recognition]
2. عنبیه[^Iris]
3. 	اثر انگشت[^Finger print]
4.	رگ انگشت[^Finger vein]
5. بازشناسی لب[^lip recogniton]
6. بازشناسی صوت[^Voice recognition]

 جدول زیر به مقایسه سیستم های بیومتریک نام برده شده می پردازد.
![مقایسه سیستم های بیومتریک](http://upload7.ir/imgs/2014-11/34182663850880048032.png)

**روش های بیومتریک جدید و در حال ظهور :**[1]
1.	بازشناسی عطر انسان[^Human scent recognition]
2.	بیومتریک EEG[^ electroencephalogram]
3.	طیف سنجی پوست[^Skin spectroscopy]
4.	بافت بند انگشت[^Knuckles texture]
5.	بازشناسی ناخن[^Finger nail recognition]

در این پروژه به بررسی سیستم بیومتریک مبتنی بر بازشناسی چهره پرداخته می شود.

# بازشناسی چهره
بازشناسی چهره عملی است که ما انسان ها به طور معمول در زندگی روزانه خود انجام می دهیم.  افزایش روزافزون رایانه های خانگی، سیستم های ارزان قیمت روی میزی باعث شده تا توجه زیادی روی پردازش های خودکار بر روی تصاویر شامل احراز هویت بیومتریک، بازشناسی ها، تعامل انسان و کامپیوتر و مدیریت چند رسانه ای جلب شود. پژوهش ها و توسعه هایی در زمینه بازشناسی چهره نیز به همین دلایل در حال انجام و گسترش است.
بازشناسی چهره نسبت به دیگر روش های بیومتریک نظیر تشخیص اثر انگشت و عنبیه مزایایی دارد. در کنار طبیعی بودن و غیر قابل بروز بودن این نوع بازشناسی، مهم ترین مزیت بازشناسی چهره این است که صورت می تواند در هر فاصله ای گرفته شود و پوشش داده شود. بازشناسی چهره به عنوان یکی از قدرتمند ترین تکنولوژی های بیومتریک در پیشرفت هایی در دستگاههای عکس برداری، ذخیره سازی حجم زیادی از تصاویر در حافظه و یا وب و افزایش امنیت نقش بسیار مهمی را ایفا کرده است.[2]

**وظایف بازشناسی چهره**[3]
1. تایید[^Verification] چهره : در برنامه های کاربردی مورد نیاز است که دارای تعامل با کاربر به صورت ادعای هویت می باشند و به آن تطبیق یک به یک[^one-to-one] هم گویند.
تست تایید با تقسیم افراد به 2 گروه انجام می شود:
     1. مشتریها[^clients] : افرادی که تلاش می کنند با هویت خودشان دسترسی پیدا کنند.
     2. وانمود کنندگان[^imposters] : افرادی که در تلاشند تا با یک هویت اشتباه دسترسی پیدا کنند مثلا با هویتی که برای سیستم شناخته شده است اما متعلق به آن فرد نیست.
         در این میان تعدادی از وانمود کنندگان موفق می شوند تا دسترسی پیدا کنند که درصدشان محاسبه و به عنوان نرخ پذیرش اشتباه (FAR ) گزارش می شود و  تعدادی از مشتری ها رد شده و نمی توانند دسترسی پیدا کنند که درصدشان   به عنوان نرخ رد کردن اشتباه (FRR) گزارش می شود.
2. شناسایی چهره[^Identification] : عمل شناسایی بیشتر در برنامه های کاربردی مورد نیاز است که بر اساس تعامل کار نمی کنند و به آن تطبیق یک به چند[^one-to-many] نیز گویند. مانند برنامه های کاربردی نظارت. تست شناسایی با توجه به در نظر داشتن این فرض است که تمامی چهره های موجود در تست متعلق به افراد شناخته شده اند و به درصد درست شناسایی چهره ، نرخ شناسایی صحیح (CIR[^Correct Identification Rate]) و به درصد اشتباه شناسایی چهره ، نرخ شناسایی اشتباه (FIR[^False Identification Rate]) گویند.
3. لیست مراقبت[^Watch List] : تعمیمی است از شناسایی چهره که شامل افراد ناشناخته هم می شوند.  تست لسیت مراقبت هم مانند تست شناسایی CIR و  FIR را گزارش می دهد اما می تواند  FRR و FAR مربوط به خودش را هم داشته باشد تا میزان حساسیت  لیست مراقبت را نشان دهد مثلا به این معنی که چه مقدار از افراد ناشناخته به عنوان در دسته افراد در لیست مراقبت قرار می گیرند( FAR )

**مراحل سیستم بازشناسی چهره:**[4]
روند بازشناسی چهره به طور معمول دارای چهار مرحله وابسته به هم می باشد:
1. کشف چهره[^Face detection]
2. نرمال سازی[^Normalization] چهره
3. استخراج ویژگی[^Feature extraction]
4. بازشناسی چهره

که مراحل فوق را به طور مختصر شرح می دهم:
 اولین گام در روند بازشناسی چهره گرفتن عکس از چهره می باشد، این کار معمولاً با استفاده از یک دوربین صورت می گیرد.
1. کشف چهره: در این مرحله تصمیم گرفته می شود که کدام یک از پیکسل ها  بخشی از چهره می باشند و کدام یک نمی باشند و به  این ترتیب فضای چهره[^Face space] را از پس زمینه اش جدا می کند. در حالتی که بازشناسی چهره در یک ویدئو مورد بررسی قرار می گیرد، چهره ای که تشخیص داده شده است باید در بین چندین فریم[^frame] به صورت پیوسته پیگیری شود . به طور معمول، روش هایی که به نشانه گذاری[^landmark] چهره می پردازد، روش هایی که به یافتن رنگ چشم در ناحیه دایره ای می پردازند و همچنین روش هایی که از الگوی ویژگی استفاده می کنند در  کشف چهره مورد استفاده قرار می گیرند.
2. نرمال سازی چهره: زمانی که چهره کشف شد و از پس زمینه اش جدا شد، باید نرمال شود، به این معنی که چهره باید از لحاظ اندازه، زاویه، نور پردازی و غیره استاندارد شود که این امر به تصاویر موجود در پایگاه داده ای که از آن استفاده می شود وابسته است. برای نرمال سازی تصویر ، نشانه گذاری های کلیدی چهره باید به صورت کاملاً دقیق انجام شود. با استفاده از این نشانه گذاری ها الگوریتم نرمال سازی می تواند تصویر را برای اعمال تغییرات اندکی میزان کند. 
3. استخراج ویژگی: بعد از اتمام فرایند  نرمال سازی نوبت به مرحله استخراج ویژگی می رسد. در این مرحله  یک نمایش ریاضی که به آن الگوی بیومتریک یا مرجع بیومتریک گفته می شود تولید می گردد و در پایگاه داده ذخیره شده و پایه و اساس هر عمل بازشناسی را تشکیل می دهد.
4. بازشناسی چهره: در آخرین مرحله، از الگوی بیومتریک تولید شده در مرحله قبل استفاده می شود به این صورت که برای  سیستم های بازشناسی یک به یک، الگوی بیومتریک دو چهره با هم مقایسه شده و خروجی به صورت بله و خیر می باشد و در سیستم های بازشناسی یک به چند، الگوی بیومتریک چهره مورد نظر با الگوی بیومتریک  سایر چهره های موجود در پایگاه داده مقایسه می شود و خروجی به گونه ایست که یک شناسه و یک سطح اطمینان را به سیستم بازمی گرداند. چالش برانگیز ترین قسمت در این سطح پیدا کردن یک پارامتر خوب برای میزان شباهت بین تصاویر است.

تصویر زیر مراحل یک سیستم بازشناسی چهره را نشان می دهد.
![مراحل سیستم بازشناسی چهره](http://upload7.ir/imgs/2014-11/17424502696231545517.png)
**چالش های یک سیستم بازشناسی چهره **[4]
1. کیفیت تصویر[^Image Quality] : مهم ترین انتظاری که از یک سیستم بازشناسی چهره می توان داشت این است که  از تصاویر با کیفیت بالا استفاده کند و یک تصویر با کیفیت، تصویریست که تحت شرایط دلخواه ما گرفته شده باشد. کیفیت تصویر برای استخراج ویژگی بسیار مهم است. اگر کیفیت تصویر خوب نباشد، حتی بهترین الگوریتم های بازشناسی چهره نیز بد عمل می کنند.
2. نور پردازی[^Illumination Problem] : یک چهره با تغییر  میزان نور متفاوت به نظر می رسد. عکس زیر تصویر چهره در نورپردازی های متفاوت را نشان می دهد.
![تصویر چهره در نورپردازی های متفاوت](http://upload7.ir/imgs/2014-11/69324157479422818725.png)
3. زوایای متفاوت[^Pose Variation] : معمولاً داده های آموزشی که در یک سیستم بازشناسی تصویر استفاده می شود، چهره از روبه رو می باشد، زیرا تصویر از رو به رو  نسبت به زوایای دیگر شامل اطلاعات مهمتری می باشد. مشکل زمانی پیش می آید که سیستم بخواهد  یک تصویر زاویه دار را با استفاده از پایگاه داده ای از تصاویری از رو به رو  شناسایی کند، بنابراین باید در پایگاه داده از هر چهره، تصاویری از زوایای متفاوت نگه داری شود. تصویر زیر پایگاه داده ای از  چهره یک فرد در زوایای  مختلف را نشان می دهد.
![پایگاه داده ای از  چهره یک فرد در زوایای  مختلف](http://upload7.ir/imgs/2014-11/37629542209988154676.png)

**الگوریتم های بازشناسی چهره**[5]
در این قسمت به معرفی اجمالی تعدادی از الگوریتم های بازشناسی چهره پرداخته می شود:
1. الگوریتم تحلیل اجزای اصلی(PCA[^Principal Component Analysis] ): الگوریتم PCA که به نام روش Karhunen-Loeve نیز شناخته می شود، یکی از محبوب ترین روش ها برای انتخاب ویژگی و کاهش ابعاد می باشد. بازشناسی چهره انسان با استفاده از PCA اولین بار توسط Turk and Pentland انجام شد. این روش بازشناسی که به نام روش چهره ویژه نیز شناخته می شود یک فضای ویژگی معرفی می کند که ابعاد فضای داده را کاهش می دهد و از این فضای داده کاهش یافته برای بازشناسی استفاده می شود. قدرت متمایز سازی ضعیف در کلاس و همچنین محاسبات بالا، از معایب رایج و شناخته شده PCA محسوب می شوند. این معایب توسط الگوریتم LDA برطرف شد.
2. الگوریتم تحلیل جدا سازی خطی (LDA[^Linear Discriminant Analysis] ): الگوریتم LDA یکی از برجسته ترین الگوریتم های استخراج ویژگی است، اما بسیاری از سیستم های بازشناسی چهره ای که از این الگوریتم استفاده می کنند، ابتدا با استفاده از PCA ابعاد را کاهش می دهند سپس از LDA برای افزایش قدرت جداسازی استفاده می کنند. علت این است که LDA مشکل کوچک بودن سایز نمونه را دارد در حالیکه برای جداسازی خوب ویژگی های انتخاب شده نیاز است که از هر کلاس تعداد زیادی نمونه داشته باشیم، بنابراین اگر بخواهیم مستقیماً از LDA استفاده کنیم، جداسازی ضعیفی صورت می گیرد.
3. الگوریتم SVM[^Support Vector Machine] : این الگوریتم یکی از مفیدترین تکنیک ها در مساله دسته بندی به شمار می آیدکه یک مثال روشن آن بازشناسی چهره می باشد. به هر حال زمانی که بردار ویژگی هایی که نمونه ها را مشخص می کند اطلاعات مربوط به یک سری از ورودی ها را از دست می دهد نمی توان از SVM استفاده کرد.
4. الگوریتم تحلیل اجزای مستقل (ICA[^Independent Component Analysis] ): الگوریتم ICA روشی است برای یافتن فاکتورها و اجزای اصلی از داده های آماری چند بعدی. برای تصاویر چهره ای که دارای زاویه است و یا از نظر شدت نور شرایط متفاوتی دارد، استفاده از الگوریتم ICA مفید است زیرا نتایج بهتری را نسبت به سایر سیستم های موجود می دهد. آنچه ICA را از سایر الگوریتم ها متمایز می سازد این است که ICA به دنبال اجزاییست که هم از نظر آماری مستقل باشند و هم غیر گاوسی باشند.
5. الگوریتم شبکه عصبی مصنوعی (ANN[^Artificial Neural Network] ): پرسپترون چند لایه (MLP[^Multi-Layer Perceptron] ) با الگوریتم یادگیری فید فوروارد[^Feed Forward] به دلیل سادگی و قابلیت اش در تطابق الگوی با ناظر، برای این سیستم ها انتخاب شده است. 

# کارهای مرتبط
بعد از اینکه با هدف بازشناسی چهره، وظایف، مراحل، چالش ها و برخی از الگوریتم های آن آشنا شدیم به بررسی کارهای مرتبطی که در این زمینه انجام شده است می پردازیم.
در [3] علاوه بر مطرح کردن وظایف بازشناسی چهره، به معرفی یک الگوریتم پیاده سازی نیز پرداخته است که با استفاده از بردارهای ویژه می باشد. همانطور که می دانیم وظیفه بازشناسی چهره این است که سیگنال های ورودی ( داده های تصویر ) را  با تقسیم به چند کلاس از هم متمایز سازد. سیگنال های ورودی دارای نویز بسیاری هستند، با این حال تصاویر ورودی کاملاً تصادفی نیستند و با وجود تفاوت هایشان الگوهایی وجود دارد که در هر سیگنال ورودی اتفاق می افتد. این الگو ها که ممکن است در همه سیگنال ها دیده شوند، می تواند در حوزه بازشناسی چهره قرار گیرد. بعضی از اجزا ( مانند چشم، دهان و بینی ) در صورت و همچنین فاصله نسبی بین این اجزا جزء ویژگی های مهم به شمار می رود. این ویژگی ها در حوزه بازشناسی چهره، چهره ویژه ( یا به طور کلی اجزا اصلی ) نامیده می شوند. این ویژگی ها به وسیله یک ابزار ریاضی که تحلیل اجزا اصلی نامیده می شوند از داده های تصاویر اصلی استخراج می شوند. به وسیله PCA می توان هر تصویر اصلی موجود در مجموعه آموزشی را  به چهره ویژه متناظر با آن تبدیل کرد. ویژگی مهم PCA این است که می توان هر تصویر اصلی را با ترکیب کردن چهره های ویژه  دوباره ساخت. هر چهره ویژه، تنها ویژگی های اصلی هر چهره را نمایش می دهد که این ویژگی ها ممکن است در تصویر اصلی  موجود باشد یا نباشد. اگر ویژگی در تصویر اصلی موجود باشد، سهم بردار ویژه متناظر با آن در مجموع چهره های ویژه باید بیشتر باشد و برعکس اگر آن ویژگی خاص در تصویر اصلی موجود نباشد، آنگاه چهره ویژه متناظر باید مشارکت کمتری در جمع چهره های ویژه داشته باشد یا اینکه اصلاً نقشی نداشته باشد. بنابراین برای ساخت دوباره ی چهره اصلی از روی چهره های ویژه، باید جمع وزن داری از همه چهره های  ویژه موجود را حساب کرد که در آن هر چهره ویژه وزن مشخصی دارد.
از نظر ریاضی، الگوریتم با استفاده از ماتریس کوواریانس مربوط به مجموعه تصاویر چهره، بردار های ویژه  را محاسبه می کند، این بردار ها اختلاف بین تصاویر را مشخص می کند. وقتی ما این بردار های ویژه را نمایش می دهیم به آن چهره ویژه گوییم. هر چهره می تواند با ترکیب خطی چند چهره ویژه نمایش داده شود. به هر حال ما می توانیم تعداد چهره های ویژه را به یک عدد کاهش دهیم اما با ارزش بیشتر که کارامدتر خواهد بود.
ایده اصلی الگوریتم پیشنهادی این مقاله تولید سیستمی است که نه تنها تصاویر، بلکه وزن های ویژگی را با هم مقایسه می کنند. الگوریتم را می توان به مراحل زیر خلاصه کرد:
1.	بدست آوردن پایگاه داده ای از تصاویر چهره، محاسبه چهره های ویژه و تعیین فضای چهره با استفاده از همه آن ها
2.	محاسبه مجموعه وزن های تصویر جدید دریافتی
3.	تعیین اینکه تصویر جدید دریافتی یک چهره است یا خیر، برای این کار باید بررسی کنیم که آیا به اندازه کافی به فضای چهره نزدیک است یا نه
4.	و سر انجام باید تشخیص داده شود که آیا تصویر مشابه یکی از تصاویر موجود در پایگاه داده است یا خیر
مراحل الگوریتم:
الگوریتم  به 2 بخش تقسیم می شود:
اولین بخش بررسی می کند که آیا تصویر چهره است یا خیر و دومین بخش مربوط می شود به توصیف بازشناسی که آیا کاربر مورد تایید است یا خیر.
مراحل الگوریتم به شکل زیر طرح ریزی شده است:
1.	آماده سازی مجموعه آموزشی که شامل تصویر Fi است
2.	بدست اوردن ماتریس میانگین و کم کردن حاصل از چهره اصلی
$$M=\frac { 1 }{ { F }_{ m } } \sum _{ n-1 }^{ { F }_{ m } }{ Fi } $$
$$FR=Fi-M$$
3.	محاسبه ماتریس کوواریانس C
$$C=\frac { 1 }{ { F }_{ m } } \sum _{ n-1 }^{ { F }_{ m } }{ { F }_{ R } } { F }_{ R }^{ T }$$
4.	محاسبه مقدارهای ویژه و بردارهای ویژه  ماتریس کوواریانس
5.	محاسبه وزن هر تصویر موجود در مجموعه آموزشی و ذخیره آن در مجموعه W
6.	محاسبه وزن برای تصویر مجهول و ذخیره آن در بردار Wx
7.	مقایسه Wx با w  و محاسبه فاصله بین آن ها با استفاده از Euclidian distance 
8.	اگر فاصله میانگین از threshold بیشتر شود چهره نیست
9.	مقایسه فاصله بین تصویر ورودی و تصاویر موجود در مجموعه آموزشی
10.	اگر فاصله min و وزن max  باشد، آنگاه تصویر ورودی یک چهره شناخته شده است در غیر این صورت چهره نا شناخته است

در [6] که بازشناسی چهره با استفاده از چهره ویژه[^Eigenface] است از روشی برای بازشناسی چهره استفاده شده که بر مبنای کد گذاری و کد گشایی تصویر چهره می باشد. این روش شامل دو مرحله می باشد: استخراج ویژگی با استفاده از الگوریتم PCA و بازشناسی با استفاده از شبکه عصبی back propagation. روش چهره ویژه  از الگوریتم PCA  استفاده می کند که راه کارامدی را برای داشتن فضای ابعاد کمتر در اختیار ما قرار می دهد. در [7] نیز از روش PCA استفاده می شود با این تفاوت که سیستمی پیاده سازی می شود که از فیلتر log gabor برای استخراج ویژگی استفاده می کند و همچنین برای کاهش تعداد ویژگی های انتخاب شده نیز از الگوریتم پنجره کشویی استفاده می شود. معماری این سیستم به صورت زیر می باشد:
![ معماری سیستم](http://s6.uplod.ir/i/00523/lrk9dmm8c41q.png)

و الگوریتم آن مختصراً به شرح زیر است:
مرحله 1: عکس توسط دوربین گرفته می شود و سپس تصویر پویا به تصویر ایستا تبدیل شده و در پایگاه داده ذخیره می شود.
مرحله 2: پیش پردازش
مرحله 3: استخراج ویژگی با استفاده از فیلتر Log gabor
مرحله 4: کاهش تعداد ویژگی های انتخاب شده با استفاده از الگوریتم پنجره کشویی
مرحله 5: ساخت دوباره تصویر با استفاده از الگوریتم PCA
[8] نیز بررسی روش PCA می باشد که در آدامه به پیاده سازی آن روی مجموعه ای از داده ها با استفاده از متلب می پردازد.

در [9] برای استخراج ویژگی، روش تحلیل مولفه های مستقل از هم، به عنوان جایگزینی برای الگوریتم تحلیل مولفه های اصلی که بسیار زیاد در بازشناسی چهره به کار گرفته شده است، مطرح می شود . ICA ویژگی هایی از چهره را استخراج می کند که برای احراز هویت مناسب و کارامد است که این امر منجر به این می شود که نرخ موفقیت بهبود پیدا کند.

در [10] به مقایسه روش تحلیل مولفه های اصلی و روش تحلیل مولفه های مستقل از هم پرداخته می شود که علت این مقایسه ادعاهای ضد و نقیضی بود که تا آن زمان مطرح می شد. در نهایت با آزمایش های مختلفی که انجام می شود نشان می دهد که الگوریتم PCA عملکرد خوبی دارد اما نه به اندازه ICA. در [11] نیز Kyungim Baek ،Bruce A. Draper ،J. Ross Beveridge و Kai She به مقایسه PCA و ICA پرداخته اند و آزمایش های خود را روی مجموعه داده  FERET انجام دادند. آنها نشان دادند زمانی که یک معیار فاصله مناسب استفاده شود، PCA به طرز قابل ملاحظه ای بهتر از ICA عمل می کند. [12] مقایسه دو الگوریتم PCA و LDA می باشد.
مقاله [13] یک تکنیک جدید برای بازشناسی چهره معرفی می کند که در آن از تبدیل گابور ویولت[^gabor wavelet] و شبکه انتشار به عقب[^back propagation] استفاده می شود. در روشی که مطرح می شود، ویژگی های تصویر چهره مورد پرسش و تصاویر چهره موجود در پایگاه داده، از طریق تبدیل گابور استخراج می شود و همچنین با استفاده از الگوریتم BPN آموزش داده می شود.هدف اصلی سیستم پیشنهادی، ایجاد سیستم تشخیص چهره کارا، با بهبود کارایی سیستم های تشخیص چهره موجود می باشد. این سیستم برای بهبود کارایی بر حسب دقت و درستی ایجاد شده است. برای پایگاه داده ای شامل 100 تصویر، دقت 100% بهبود یافته و متوسط نرخ فراخوانی نیز تا 97% رسیده است. راندمان این سیستم 100% بدست آمده است.
معماری ایجاد شده برای بازشناسی چهره  مبتنی بر ویژگی در شکل نشان داده شده است. 
![معماری ایجاد شده برای بازشناسی چهره  مبتنی بر ویژگی](http://upload7.ir/imgs/2014-12/03372094549952495322.png)

استخراج ویژگی و بازشناسی چهره از بخش های مهم این معماری می باشند. چهره مورد پرسش، جهت محاسبه  ویژگی ها و فاصله دو چشم و بینی به شکل مثلث پردازش می شود. در این سیستم از سه ویژگی اصلی یعنی دو چشم و بینی استفاده می شود. فاصله بین دو چشم تا بینی، برای تصویر چهره مورد پرسش محاسبه شده است. 
چهره هایی که به ویژگی های تصویر مورد پرسش شباهت دارند به عنوان خروجی داده می شوند. تصویر چهره ورودی مورد پرسش، به تبدیل گابور داده می شود و سه ویژگی از آن استخراج می شود، این ویژگی ها توسط BPN آموزش داده می شوند. این سیستم پیشنهادی این قابلیت را دارد که ویژگی های مشابه را در گروهی از تصاویر که شامل 59 چهره می باشند شناسایی کند. تصویر مورد پرسش و تصویری که به وسیله این تصویر شناسایی شد کاملاً مشابه اند. از اندازه فاصله برای مقایسه استفاده می شود، تصاویر چهره با ویژگی های مشابه نمایش داده می شوند. تصاویر چهره خروجی به عنوان تصاویر مرتبط با تصویر ورودی مورد پرسش شناسایی می شوند.
تبدیل گابور ویولت:
فیلتر گابور به دلیل روابط بیولوژیکی و ویژگی های تکنیکی اش برای پردازش تصاویر چهره انتخاب شده است.  نمایش ویولت که در معادله زیر نشان داده شده است برای تحلیل ویژگی در مسائل بینایی مفید است زیرا تئوری مربوط به آن نتایج قدرتمندی چون الگوریتم هایی برای تشخیص نقطه غالب و تجزیه و تحلیل الگوی پریودیک محلی را دارد. 
$$y[n]=(x*g)[n]\sum _{ k=-\infty  }^{ +\infty  }{ x[k]g[n-k] }$$

تکنیک های تحلیل با چندین وضوح، سیگنال را به مولفه هایی با چندین مولفه تجزیه می کنند به طوریکه مولفه هایی با مقیاس بزرگ حامل اطلاعات کلی است در حالی که مولفه هایی با مقیاس کوچک شامل طلاعات جزئی می باشند. علاوه بر این برخی از مدل های روانشناسی اخیر به این موضوع اشاره می کند که سیستم بینایی انسان اطلاعات تصاویر را با درجات وضوح متفاوتی پردازش و تجزیه و تحلیل می کند.
همچنین 2D-DWT فرایندی است که با عبور دادن سیگنالی که شامل یک سری از نمونه های رقمی است، از دو فیلتر پایین گذر[^low pass]( L ) و بالا گذر [^high pass]( H ) ،آن سیگنال را تجزیه می کند.
معادله مربوط به فیلتر پایین گذر:
$${ y }_{ low }=\sum _{ k=-\infty  }^{ +\infty  }{ x[k]g[2n-k] } $$

معادله مربوط به فیلتر بالا گذر:
$${ y }_{ high }=\sum _{ k=-\infty  }^{ +\infty  }{ x[k]h[2n-k] }  $$
شبکه عصبی:
شبکه عصبی به عنوان یک سیستم بازیابی انطباقی استفاده می شود که قابلیت بازیابی را  با ماژول شبکه ترکیب می کند به طوری که وزن شبکه قابلیت انطباق را نشان می دهد. این روش یادگیری مزایای زیادی را نسبت به روش های بازیابی سنتی دارد.
سیستم پیشنهادی بر اساس شبکه های عصبی انتشار به عقب می باشد. سه لایه از شبکه BPN شامل لایه ورودی، لایه خروجی و لایه مخفی در شکل زیر نشان داده شده است. 
![سه لایه از شبکه](http://s6.uplod.ir/i/00523/jdu95q77zdkq.png)
لایه ورودی بردارهای ویژگی را به هر یک از نود های لایه میانی می رساند. لایه میانی مقدار خروجی را محاسبه می کند و آن را به لایه خروجی می فرستد، نودهای لایه خروجی شبکه را برای برداره ویژگی خاص محاسبه می کند.
از آنجایی که وزن های شبکه به صورت تصادفی مقدار دهی اولیه می شوند، بعید است که خروجی قبل از آموزش قابل قبول باشد. با انتشار به  عقب خطای خروجی در طول شبکه وزن ها را تنظیم می کنیم تا خطا کاهش یابد. مقدار خطا برای هر نود در لایه خروجی محاسبه می شود. مقدار خطا برای نودهای لایه میانی محاسبه می شود.
الگوریتم آموزش BPN:
1. آموزش ویژگی ها به شبکه عصبی
2. مقایسه خروجی شبکه با خروجی دلخواه بر اساس ویژگی ها
3. محاسبه خطا در هر نرون خروجی
4. محاسبه اینکه خروجی هر بردار ویژگی چگونه تغییر کند تا مطابق خروجی دلخواه ما شود.( برای هر نرون )
5. تنظیم وزن هر نرون برای کاهش خطای محلی
6. تکرار مرحله 3 تا 5، تا زمانی که خروجی بدست بیاید.

در [14] می بینیم که مساحت، مقیاس و جهت تصاویر با هم می توانند اطلاعات ارزشمندی را در اختیار ما قرار دهند که استفاده از هر کدام از آنها به طور جداگانه این امر را ممکن نمی سازد.. ابتدا توسط فیلتر گابور تصویر چهره به مقیاس ها و جهت های مختلفی تجزیه می شود، سپس تحلیل الگوی باینری محلی را با گابور ترکیب می کنیم که این کار منجر به تفسیر خوبی از چهره برای بازشناسی می شود. سپس دسته بندی مان را بر اساس فاصله هیستوگرام میانگین انجام می دهیم. تصاویر چهره معمولاً تحت تاثیر حالات، زوایا، نور پردازی و جفت شدگی های متفاوت قرار می گیرد که روش های موجود ممکن است تحت شرایط مطمئن خوب عمل کنند اما جفت شدگی هنوز به عنوان یک چالش برای آن ها محسوب می شود . روش پیشنهادی فاصله هیستوگرام میانگین به این مساله می پردازد. به این طریق، اطلاعات بدست آمده از حوزه های مختلف گرد هم می آیند تا تفسیر خوبی از چهره برای بازشناسی حاصل شود.

مرجع[15] یک روش مبتنی بر مولفه و دو روش عمومی برای بازشناسی چهره را معرفی می کند. در سیستم مبتنی بر مولفه ابتدا مولفه های چهره مشخص و استخراج می شوند، سپس با یک بردار ویژگی که توسط یک ماشین پشتیبانی از بردار دسته بندی شده، ترکیب می شوند، دو سیستم عمومی، با دسته بندی یک بردار ویژگی که شامل اطلاعاتی از کل تصویر چهره است به بازشناسی چهره می پردازد. در سیستم عمومی اولیه  برای هر فرد موجود در پایگاه داده، SVM آموزش داده می شود. دومین سیستم عمومی، شامل مجموعه ای از SVM ها می باشند و ممکن است در طول آموزش با خوشه بندی[^Clustering] مواجه شوند.



در ا[16] الگوریتم پیشنهادی برنامه نویسی ویژگی های سیگنال مونوژنیک توضیح داده شده است که شامل 2 بخش می باشد: کدنویسی اختلاف محلی مونوژنیک و کد نویسی چگالی محلی مونوژنیک. بخش اول اختلاف بین پیکسل مرکزی و پیکسل های اطراف آن را کد می کندو بخش دوم مقدار خود پیکسل مرکزی را. واضح است که این 2 بخش کامل کننده یکدیگر می باشند.

**1.کدینگ دودویی اختلاف محلی مونوژنیک**

![فرایند کدنویسی اختلاف محلی](http://s6.uplod.ir/i/00523/6ieu914pqvjw.png)

همانطور که در شکل بالا دیده می شود، یک کد نویسی اختلاف محلی شامل 3 مرحله می باشد: تعریف دودوی، تولید دنباله دودویی و تبدیل دنباله دودویی به مقدار دهدهی که در کد نویسی اختلاف محلی، دو مرحله  تولید دنباله دودویی و تبدیل دنباله دودویی به مقدار دهدهی  مراحل مشترک در  بیشتر روشهای کدینگ الگوی دودویی است. مقدار دسیمال کد دودویی به صورت زیر حساب می شود:
$$C({ z }_{ c })={ [{ C }_{ N },{ C }_{ N-1 },...,{ C }_{ 1 }] }_{ binary }={ [\sum _{ i=1 }^{ N }{ { 2 }^{ i-1 } } .{ C }_{ i }] }_{ decimal }$$
2.**کدینگ محلی چگالی مونوژنیک**
در همه روش ها اختلاف اطلاعات یک ناحیه برای بازشناسی الگو کد می شود به جز پیکسل مرکزی که در ناحیه محلی حذف می گردد. در واقع اطلاعات پیکسل مرکز اطلاعات منمایز کننده ای است اما ممکن است در اختلاف محلی لحاظ نگردد. برای مصال دو پیکسل با الگوی اختلاف محلی یکسان ممکن است چگالی های متفاوتی داشته باشند.

**کدینگ دودویی مونوژنیک**
با توجه به روند کد نویسی گفته شده در بالا، برای هر یک از مولفه های دامنه، مرحله و جهت سیگنال مونوژنیک، می توانیم یک نگاشت کد دودویی مونوژنیک داشته باشیم که آن را MBC گویند. نگاشت کد برای دامنه، فاز و جهت را به ترتیب با MBC-P، MBC-A و MBC-O مشخص می کنند. در هر بخش، MBC-P، MBC-A و MBC-O از ترکیب کد چگالی محلی و کد اختلاف محلی بدست می آید. در هر مکان MBC-P، MBC-A و MBC-O از ترکیب کدینگ چگالی محلی و  کدینگ اختلاف محلی شکل می گیرد:

$$MBC-A({ Z }_{ c })={[{ C }_{ x }^{ I }({ Z }_{ c }),{ C }_{ y }^{ I }({ Z }_{ c }),{ C }_{ A }({ Z }_{ c })]}_{ binary }$$
$$MBC-A({ Z }_{ c })={[{ C }_{ x }^{ I }({ Z }_{ c }),{ C }_{ y }^{ I }({ Z }_{ c }),{ C }_{ P }({ Z }_{ c })]}_{ binary }$$
$$MBC-A({ Z }_{ c })={[{ C }_{ x }^{ I }({ Z }_{ c }),{ C }_{ y }^{ I }({ Z }_{ c }),{ C }_{ O }({ Z }_{ c })]}_{ binary }$$

جدول زیر  تعداد الگوها  زمانی که 8 نزدیکترین پیکسل در کدینگ نقش دارند را در روش های MBC-X و LBP و روش های کدینگ  مربوط به گابور نشان می دهد.
![تعداد الگوها ](http://s6.uplod.ir/i/00523/hhy0mtvcl43t.png)

همانطور که دیده می شود وقتی 8 تا از نزدیکترین همسایه های یک پیکسل برای کدنویسی اختلاف محلی به کار گرفته می شود، هر الگوی MBC، ده کد خواهد داشت. تعداد الگوهای ممکن برای هر MBC معادل 1024 عدد می شود که از سایر روش های کدینگ که قبل از این استفاده می شده مانند LBP بیشتر می باشد. تعداد الگوهای بیشتر، دقت بیشتری را در پی دارد، همچنین هیستوگرام تولید شده را در هر زیر ناحیه به صورت پراکنده تر می سازد. این هیستوگرام پراکنده می تواند قابلیت کافی و یا حتی بیشتری را داشته باشد و یک سیستم بازشناسی چهره کارا را نتیجه دهد. سه نگاشت MBC-P، MBC-A و MBC-O که در بالا به آن ها اشاره شد را می توان به صورت تنها به عنوان ویژگی برای دسته بندی استفاده کرد. همچنین می توانند با هم برای بهبود کارایی بازشناسی چهره استفاده شوند که در ادامه توضیح داده می شوند.

**بازشناسی چهره با استفاده از سیستم کد باینری مونوژنیک:**

**بازشناسی چهره با MBC:**

اطلاعات آماری از مناطق محلی می تواند توسط هیستوگرام محلی توصیف شود که در برابر اختلاف زاویه، حالت و نویز مقاوم است.بعد از محاسبه MBC ها ی مربوط به تصویر چهره، می توانیم 3 هیستوگرام  زیر را از طریق مراحلی که اشاره می شود بسازیم:
$${ H }_{ MBC-A }\quad ,\quad { H }_{ MBC-P }\quad ,\quad { H }_{ MBC-O }$$

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

$${ H }_{ t }=({ h }_{ t }(r,s),\quad r=1,...,l;\quad s=\quad 1,2,3)$$
که L تعداد زیر ناحیه های هر مقیاس، S شاخص مقیاس و { h }_{ t }(r,s) هیستوگرام نگاشت ویژگی t در r امین زیر ناحیه با مقیاس s می باشد.

شباهت بین 2 هیستوگرام به عنوان اشتراک معرفی می شود.
$${ S }_{ h }({ h }_{ a },{ h }_{ b })=\sum _{ i=1 }^{ M }{ min({ h }_{ a }^{ i },{ h }_{ b }^{ i }) } $$
که در آن M تعداد بین ها در هیستوگرام است،
$${ h }_{ a }^{ i },{ h }_{ b }^{ i }$$به ترتیب تعداد iامین دور را نشان می دهد. با محاسبه اشتراک هیستوگرام، ویژگی ها و تصاویر مورد بررسی می توانند برای دسته بندی محاسبه شوند.

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

نگاشت ویژگی MBC در ابتدا به 2 بلوک تقسیم می شود و سپس هر بلوک خود به دو زیر ناحیه تبدیل می شود. در هر زیر ناحیه هیستوگرام نگاشت ویژگی در هر مقیاس به شیوه ای که گفته شد ساخته می شود.هسیتوگرام ویژگی هر بلوک نیز ترکیب همه هیستوگرام های زیر ناحیه هایش است. سپس برای هیستوگرام ویژگی هر بلوک از الگوریتم LDA استفاده می شود تا یک ماتریس طرح ریز را از مجموعه آموزشی یاد بگیرد و سپس ابعاد ویژگی هیستوگرام را  با استفاده از این ماتریس هیستوگرام،کاهش بدهد. همچنین$$ F_{ t }^{ p }{ (i) } و F_{ t }^{ g }{ (i) }$$ به ترتیب ویژگی های کاهش یافته { H }_{ t }را در iامین بلوک تصویر مورد بررسی و گالری تصاویر نشان می دهد. از آنجایی که$$  F_{ t }^{ p }{ (i) } و F_{ t }^{ g }{ (i) }$$ویژگی های هیستوگرام نیستند، میزان شباهت آن ها را با استفاده از فاصله کسینوسی محاسبه می کنیم:

$${ S }_{ t }(F_{ t }^{ p }{ (i) }وF_{ t }^{ g }{ (i) })=\quad \frac { <F_{ t }^{ p }{ (i) }وF_{ t }^{ g }{ (i) }> }{ ||F_{ t }^{ p }{ (i) }||||F_{ t }^{ g }{ (i) }|| }  $$

فاصله کسینوسی به طور گسترده ای در بازشناسی چهره استفاده می شود. همچنین استفاده از فاصله اقلیدسی باعث مقایسه عادلانه می شود. شباهت بین تصویر مورد بررسی و تصویر گالری به صورت زیر محاسبه می شود:
$${ S }_{ MBC-F }=(1-2.w){ S }_{ MBC-A }+w{ S }_{ MBC-P }+w{ S }_{ MBC-O }$$
که w در ان وزن می باشد.
در معادله بالا به $${ S }_{ MBC-P } و { S }_{ MBC-O } $$مقدار یکسانی را نسبت می  دهیم زیرا فاز و جهت محلی در پایگاه داده های متفاوت کارایی یکسانی دارد.  بنابراین تنها یک پارامتر وزن یعنی w را دارد و با امتیاز شباهت$$ { S }_{ MBC-F } $$معرفی می شود  و به همین صورت به MBC ترکیبی،  MBC-F گفته می شود.

در شکل زیر منحنی  نرخ بازشناسی  در مقابل تعداد مقیاس ها برای روش های مختلف MBC در نظر گرفته شده است. 

![توضیح تصویر](http://8pic.ir/images/gkjmaa9od08ovqx0492w.png)

**آزمایش روی پایگاه داده FERET**
در شکل زیر نمونه ای از تصاویر چهره نرمال شده  از پایگاه داده FERET دیده می شود:
![توضیح تصویر](http://8pic.ir/images/sfjq8yvr77xy4tnpqbac.png)

پایگاه داده FERET اغلب برای اعتبار سنجی  موثر بودن یک الگوریتم استفاده می شود، زیرا شامل تصاویر متفاوت فراوانی می باشد. زیر مجموعه Fa را به عنوان گالری تصاویر و  زیر مجموعه Fb و  Fc را که دارای حالات و نورپردازی های متفاوت است به عنوان تصویر مورد بررسی در نظر می گیریم. DUPI و DUPII شامل تصاویری می باشند که در زمان های متفاوت گرفته شده است. برای بعضی از افراد تفاوت زمانی عکس موجود در  گالری با DUPI و DUPII بیش از 2 سال می باشد. بخش چهره هر تصویر  بر اساس مکان چشم جدا شده است. تصویر چهره جدا شده به 130 * 150  پیکسل نرمالسازی می شود. 

جدول زیر  نرخ بازشناسی  را با استفاده از کد اختلاف محلی و همچنین با استفاده از کد اختلاف و چگالی محلی نشان می دهد:
![توضیح تصویر](http://8pic.ir/images/dy177vqgkj97bigjyv3p.png)

جدول زیر نرخ بازشناسی  با استفاده از روش MBC گفته شده روی مجموعه  FERET را نشان می دهد:
![توضیح تصویر](http://8pic.ir/images/seqnzl276udr9cbvn3om.png)

جدول زیر نرخ بازشناسی با استفاده از  روش های مختلف روی پایگاه داده تصاویر FERET را نشان می دهد:
![توضیح تصویر](http://8pic.ir/images/vwy2f656x51p9uhk8xi8.png)



# آزمایش‌ها و بهبود

برای انجام آزمایش به پیاده سازی الگوریتم PCA پرداخته می شود. برای این پیاده سازی از [17] استفاده می کنیم که در آن از روش گفته شده توسط Turk و Pentland استفاده شده است. به الگوریتم بردار S بعدی که بیانگر هر یک از M تصویر موجود در مجموعه آموزشی است، داده می شود و PCA یک زیر فضای t بعدی پیدا می کند که بردارهای پایه اش متعلق به بیشترین مسیر واریانس در فضای تصویر اصلی است. این زیر فضای جدید قاعدتاً بعد کمتری دارد(t<s). بردارهای پایه جدید یک زیر فضا از تصاویر چهره که فضای چهره نام دارد را مشخص می کند. همه تصاویر از چهره شناخته شده، به فضای چهره تبدیل می شوند تا مجموعه وزن هایی که به توصیف هر بردار می پردازد را پیدا کند. برای تشخیص یک تصویر ناشناس، آن تصویر نیز به فضای چهره تبدیل می شود تا مجموعه وزن ها بدست بیاید. با مقایسه یک مجموعه از وزن های متعلق به چهره ناشناخته با مجموعه وزن های چهره شناخته شده، چهره می تواند شناسایی شود. اگر المان های تصویر به عنوان متغیر های تصادفی در نظر گرفته شود، بردارهای پایه PCA، به عنوان بردارهای ویژه ماتریس scatter مشخص می شود:
$${ S }_{ T }=\sum _{ i=1 }^{ M }{ ({ x }_{ i }-\mu ) } .{ ({ x }_{ i }-\mu ) }^{ T }$$

که  $$\mu$$ میانگین همه تصاویر موجود در مجموعه آموزشی می باشد.در شکل زیر که یک سیستم تشخیص  چهره مبتنی بر ظاهر می باشد،  تصویر میانگینن دیده می شود.
![توضیح تصویر](http://s6.uplod.ir/i/00524/l429tsyz4sxo.png)

همچنین Xi تصویر iام به همراه ستون هایش که در یک بردار الحاق شده است می باشد. ماتریس طرح ریزی Wpca از t بردار ویژه ساخته شده است که این t بردار ویژه متعلق به t بزرگترین مقدار ویژه می باشد. بنابراین فضای چهره t بعدی ساخته می شود.  از آنجایی که این بردارهای ویژه( بردارهای پایه PCA ) شبیه چهره های اشباح می باشند، چهره های ویژه نام دارند. چهره های ویژه در شکل زیر نشان داده شده ند.
![توضیح تصویر](http://s6.uplod.ir/i/00524/h1amznp7mpa6.png)

**اندازه گیری فاصله** 
در این پیاده سازی از چهار معیار اندازه گیری متفاوت برای فاصله استفاده می شود: L1 ، L2 ، زاویه کسینوسی و فاصله MAH. 
به طور کلی برای دو بردار x و y، این معیارهای اندازه گیری به صورت زیر تعیین می شود: 
$${ d }_{ L1 }(x,y)=\left| x-y \right| $$
$${ d }_{ L2 }(x,y)={ \left\| x-y \right\|  }^{ 2 }$$
$${ d }_{ cos }(x,y)=-\frac { x.y }{ \left\| x \right\| .\left\| y \right\|  }  $$
$${ d }_{ MAH }(x,y)=\sqrt { (x-y){ v }^{ -1 }{ (x-y) }^{ T } } $$

که V ماتریس کوواریانس است.  

**متدولوژی** 
داده: از مجموعه داده های استاندارد FERET استفاده می شود که شامل چند مجموعه داده برای تست می باشد. چهار زیر مجموعه تصویر برای جستجو وجود دارد: fb و fc و dup1 و dup2
مجموعه fb شامل 1195 تصویر از افراد که همزمان با تصاویر موجود در گالری تصاویر گرفته شده است بدون هیچ فرقی در شرایط تا فقط حالت متفاوت چهره در نظر گرفته شود.
مجموعه fc شامل 194 تصویر از افراد می باشد که در شرایط نور پردازی متفاوت گرفته شده است
مجموعه dup1 شامل 722 تصویر می باشد که در فاصله زمانی بین 1 دقیقه تا 1031 روز بعد از گرفته شدن تصاویر موجود در گالری تصاویر گرفته شده است.
مجموعه dup2 نیز زیر مجموعه ای از dup1 است که حداقل 18 ماه پس ازتهیه تصاویرموجود در مجموعه تصاویر، گرفته شده است. 
سایز تمامی این تصاویر 256*384 می باشد.

**پیش پردازش**
الگوریتم در محیط متلب پیاده سازی شده است. در ابتدا تصاویر اصلی FERET از نظر مکانی تبدیل می شوند( تا چشم ها در نقاط ثابتی در تصویر بدست آیند )این کار بر اساس یک فایل درست از مختصات قرار گیری چشم های مربوط به داده های اصلی FERET بدست می آید. بعد از آن همه تصاویر از طریق مشابه به یکدیگر جدا می شوند( بر اساس مختصات چشم ) تا بتوان در حدی که امکان دارد تصویر پشت چهره را حذف کرد. بعد از برش، تصاویر تغییر سایز می دهند و 50*60  می شوند که این کار توسط تابع imresize صورت می گیرد و سرانجام با استفاده از تابع histeq مقادیر پیکسل تصویر با بازه 0 تا 255  معادل می شود.

**آموزش**
برای آموزش الگوریتم PCA از زیر مجموعه ای از کلاس ها استفاده می کنیم به طوری که برای هر کلاس دقیقاً 3 تصویر وجود دارد. در مجموعه داده های FERET تعداد کلاس ها( اشخاص متفاوت ) 255 می باشد بنابراین مجموعه آموزشی ما شامل 255*3 یعنی 675 تصویر می باشد.

**نتایج آزمایش**
نتیجه آزمایش در جدول و شکل زیر مشا هده می شود:
جدولی که مشاهده می شود در واقع کارایی الگوریتم را در rank1 نشان می دهد(نرخ تشخیص بهترین تطابق) و منحنی نرخ تطبیق انباشته ( CMS ) نتایج انباشته را برای rank1 و بالاتر نشان می دهد. نکته جالب این است که در بعضی مواقع به هنگام مقایسه الگوریتم ها و بررسی اینکه کدام یک بهتر عمل می کنند، وجود اختلاف در پاسخ rank1 و CMS می باشد. همچنین ماتریسی که بهترین نتایج را در rank1 نشان می دهد، همیشه بهترین نتیجه را در rankهای بالاتر نمی دهد. 
![توضیح تصویر](http://s6.uplod.ir/i/00524/os6e90zlqkm0.png)

و 
![توضیح تصویر](http://s6.uplod.ir/i/00524/sksyiiyx0m8b.png)

![توضیح تصویر](http://s6.uplod.ir/i/00524/nf0648u51r8z.png)

![توضیح تصویر](http://s6.uplod.ir/i/00524/s1s2dypewgfa.png)

کد پیاده سازی را می توانید در [اینجا](https://github.com/Maral-Ebrahimzadeh/facerecpca/tree/master) ببینید.
برای اجرای کد باید دستورات زیر را به ترتیب اجرا کرد:

1. load trainList.mat
با اجرای این دستور trainlist بارگذاری می شود:
![توضیح تصویر](http://s6.uplod.ir/i/00524/zkaggeq0nxbm.jpg)
2. pca ('C:/FERET_Normalised/', trainList, 200);
با اجرای این دستور 
![توضیح تصویر](http://s6.uplod.ir/i/00524/f0896bc53o32.jpg)

سپس دستورهای زیر اجرا می شود:
3. pcaDistMatCos = createDistMat(pcaProj, 'COS');
4. pcaResultsCOS = feret(pcaDistMatCos, 50);
5. pcaResultsCOS.fb
بعد از اجرای این دستور خواهیم داشت:
![توضیح تصویر](http://s6.uplod.ir/i/00524/4dscwgybcczl.jpg)

به طور مشابه برای دستور pcaResultsCOS.fc زیر خواهیم داشت:
![توضیح تصویر](http://s6.uplod.ir/i/00524/74evcgu5hhtm.jpg)

به همین ترتیب می توان نتایج rank1 مربوط به مجموعه داده های dup1 و dup2 را بدست آورد.
6. plot(pcaResultsL1.cms)

بعد از اجرای دستور فوق نیز منحنی های CMS نمایش داده می شوند.

**بهبود**
برای بهبود در نتایج حاصل از PCA، تصویر چهره به چند بخش تقسیم می شود و PCA روی تک تک آن ها اعمال می شود. به این ترتیب تغییر در قسمتی از تصویر منجر به تغییر بردار مربوط به همان قسمت می شود. از آنجایی که با تغییر نورپردازی، زاویه و حالت چهره ویژگی های محلی به ندرت تغییر می کند انتظار می رود جواب دقیق تری داشته باشد. این بهبود برای حالتی رخ می دهد که نورپردازی، تغییر زاویه و یا تغییر حالت چهره داریم.[18]


# کارهای آینده

# مراجع
[1] Rupinder Saini , Narinder Rana, Comparison of various biometric methods, International Journal of Advances in Science and Technology (IJAST)Vol 2 Issue I (March 2014)
[2] Stan, Z. Li, and K. Jain Anil. "Handbook of face recognition." (2005).
[3] Prashant Kumar, Sini Shibu. Authorization of Face Recognition Technique Based on Eigen Faces, International Journal of Advanced Research in Computer and Communication Engineering Vol. 3, Issue 9, September 2014
[4] Ambika Ramchandra, Ravindra Kumar, Overview Of Face Recognition System Challenges, International Journal of Scientific & Technology Research vol.2, Issue 8, August 2013
[5] Sujata G. Bhele and V. H. Mankar, A Review Paper on Face Recognition Techniques, International Journal of Advanced Research in Computer Engineering & Technology (IJARCET) Volume 1, Issue 8, October 2012
[6] Prof. V.P. Kshirsagar, M.R.Baviskar, M.E.Gaikwad, Face Recognition Using Eigenfaces, Dept. of CSE, Govt. Engineering College, Aurangabad (MS), India.
[7] Sarala A. Dabhade, Mrunal S. Bewoor, Face Recognition using Principle Component Analysis, Emerging Trends in Computer Science and Information Technology -2012, Proceedings published in International Journal of Computer Applications
[8] Liton Chandra Paul , Lakshman Saha, Abdulla Al Suman, Md. Najim Uddin Mondal, Methodological Analysis of Principal
Component Analysis Method, International Journal of Scientific & Engineering Research Volume 4, Issue3, March-2013
[9] C. Havran, L. Hupet, J. Czyz, J. Lee, L. Vandendorpe, M. Verleysen, Independent Component Analysis for face authentication, KES'2002 proceedings - Knowledge-Based Intelligent Information and Engineering Systems, Crema (Italy), 16-18 September 2002
[10] Bruce A. Draper, Kyungim Baek, Marian Stewart Bartlett, and J. Ross Beveridgea, Recognizing faces with PCA and ICA, Computer Vision and Image Understanding 91 (2003) 115–137
[11] Kyungim Baek, Bruce A. Draper, J. Ross Beveridge, Kai She, PCA vs. ICA: A comparison on the FERET data set, Department of Computer Science Colorado State University
[12] Abhishek Bansal, Kapil Mehta, Sahil Arora, Face Recognition PCA & LDA algorithms, 2012 Second International Conference on Advanced Computing & Communication Technologies
[13] V. Balamurugan, Mukundhan Srinivasan, Vijayanarayanan.A, A New Face Recognition Technique using Gabor Wavelet Transform with Back Propagation Neural Network, International Journal of Computer Applications (0975 – 8887) Volume 49– No.3, July 2012
[14] S.Kalaimagal, M.Edwin Jaya Singh, Face Recognition Using Gabor Volume Based Local Binary Pattern, International Journal of Advanced Research in Computer Science and Software Engineering, Volume 2, Issue 6, June 2012
[15]Bernd Heisele, Purdy Ho, Tomaso Poggio, Face Recognition with Support Vector Machines: Global versus Component-based Approach, Center for Biological and Computational Learning
[16]Meng Yang, Student Member, IEEE, Lei Zhang, Member, IEEE, Simon C. K. Shiu, Member, IEEE, and David Zhang, Fellow, IEEE, Monogenic Binary Coding: An Efficient Local Feature Extraction Approach to Face Recognition,Dept. of Computing, The Hong Kong Polytechnic University, Hong Kong, China
[17]Kresimir Delac, Mislav Grgic, Sonja Grgic, Independent Comparative Study of PCA, ICA, and LDA on the FERET Data Set, University of Zagreb, FER, Unska 3/XII, Zagreb, Croatia, Received 28 December 2004; accepted 27 February 2006
[18]Rajkiran Gottumukkal, Vijayan K.Asari, An improved face recognition technique based on modular PCA approach, VLSI Systems Laboratory, Department of Electrical and Computer Engineering, Old Dominion University,231Kaufman Hall, Norfolk, VA 23529-0246, USA


# پیوندهای مفید
+ [Biometric System Laboratory](http://biolab.csr.unibo.it)
+ [Biometrics Research Group](http://biometrics.cse.msu.edu)