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

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


1.مقدمه

تشخیص هویت انسان بر اساس چهره 3یکی از مسایل مهمی است که از پنجاه سال گذشته ذهن بشر را به خود مشغول کرده است.ما هر روز این کار را بار ها و بار ها تکرار می کنیم و از این روند در تشخیص اطرافیانمان استفاده می کنیم.
امروزه با پیشرفت روز افزون فناوری اطلاعات 4 و گسترش آن در بین مردم نیاز به روشی برای تشخیص هویت افراد توسط یک ماشین به جای انسان و با استفاده از ویژگی های بیومتریک5 به امری حیاتی تبدیل شده است.اساس این روش ها یکتا بودن بعضی ویژگی های انسان مثل چهره , اثر انگشت , طرز راه رفتن , نحوه تایپ کیبورد , DNA و بسیاری از صفات دیگر است.اما فراگیر بودن استفاده از چهره برای تشخیص هویت به این علت است که ما نسبت به روش های دیگر داده های مورد نیازمان را به مراتب راحت تر بدست می آوریم, و عموم روش های تشخیص چهره از دقت نسبتا مناسبی برخوردارند.[1]

1.1تعریف مساله

ما در پژوهش قصد داریم برنامه ای را پیاده سازی کنیم تا با استفاده از آن میزان شباهت دو تصویر ورودی را دریافت کنیم و با تست داده های یک مجموعه داده6 مقدار آستانه شباهت برای اینکه دو تصویر متعلق به یک نفر باشد را تعیین کنیم.همچنین سرعت این برنامه نیز برای ما معیار نسبتا مهمی است چراکه ممکن است روی مجموعه داده ی بزرگی تست شود.[2]

سیستم باید در ازای دو تصویر پاسخ دهد که آیا این تصاویر متعاق به یک نفر است؟!

1.2کاربرد ها

احراز هویت هر فرد توسط یک ماشین میتواند کاربرد های زیادی در زمینه های امنیتی داشته باشد.
با استفاده از این روش مشکلاتی از قبیل دزدیده شدن کلمه عبور یا فراموشی آن [3] و یا سرقت تلفن همراه [4] کمتر به وجود می آیند.همچنین قابلیت مدل کردن یک چهره ی خاص و تمیز دادن آن از یک تعداد فراوان از مدل های چهره ی ذخیره شده ،فرآیند شناسایی مجرمان را به صورت گسترده ای بهبود خواهد بخشید.[5]

1.3 چالش های پیش رو [6]

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

تفاوت نور در تصاویر

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

5.فراهم کردن یک مجموعه داده مناسب می تواند زمان نسبتا زیادی را از ما بگیرد.

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

در ادامه به چند مورد از روش هایی که هم اکنون وجود دارد اشاره می کنیم:
Eigenface:از تبدیل Karhunen_Loeves's جهت تولید یکسری بردار ویژه ولی با بعد بسیار کمتر از بعد ماتریس کوواریانس اصلی استفاده می شود.هدف اصلی
تعریف تصاویر اولیه با یک ترکیب خطی از ماتریس های Eigenface ها از Projection تصاویر اصلی بر روی بردار های ویژه انتخاب شده بدست می آیند.قابلیت
مهم سیستم سرعت اجزا و پیچیدگی پیاده سازی می باشد ولی در مورد تغییرات شدت نور و زاویه چهره بسیار ضعیف است.
[8,7]
LDA 7 : در این روش با استفاده از ساخت ماتریس پراکندگی درون کلاسی اقدام به یکپارگی درون کلاسی و بیرون کلاسی و کاهش فاصله درون کلاسی و افزایش فاصله بین کلاسی اقدام به یکپارچه سازی توزیع داده در زیر فضای بدست آمده نسبت به حالت Eigenfaceانجام می شود از مزیت های این سیستم به توانایی یادگیری دامنه تغییرات درون کلاسی با مهیا سازی تصاویر با تغییرات ویژگی متناظر نام برد ولی برای پیاده سازی یک سیستم متناسب بر این اساس احتیاج به حجم وسیعی از تصاویر بوده که همواره نمی توان تمامی تغییرات را ثبت کرد.
[12]
ICA: در این مدل اقدام به یافتن بردار پایه ای نموده که تصاویر پس از projection بر روی آنها از لحاظ آماری بی اشتراک بوده که این امر با ماکسیمم سازی
وابستگی درجه دوم و درجه های بالاتر بدست می آید.
[10]
EBGM: چهره با یک گراف نمایش داده شده که نقاط آن با استفاده از ضرایب wavelet گابور آن نقطه تعریف می گردند.
[10]
AAM:یک مدل دستی از نقاط مهم و ویژگی های مهم تصویر چهره ساخته شده و سیستم برای شناسایی اقدام به Fit کردن مدل ساخته شده بر روی تصاویر
ورودی می کند.مدل ساخته شده با استفاده از تصاویر درون گروه آموزش Deform شده و ویژگی نهایی برای کلاس بندی فاصله و دقت در مرحله Fit و سوار کردن
مدل بر روی چهره می باشد.از مدل معروف Lucas canade برای این مرحله استفاده می شود.
[10]
LEM : این الگوریتم یک تکنیک جدید را بر روی نقشه های لبه خط برای انجام تشخیص چهره توضیح می دهد. از ویژگی های فیزیکی دهان, بینی و چشم ها
به عنوان کاراکتر های ویژه استفاده می کنند.
[10]
EP:از ویژگی های برجسته چهره فرد مانند گوش بزرگ , ابرو شکسته و ... برای شناسایی استفاده می کند. شبکه عصبی:هویت چهره را با استفاده از الگوریتم های
شبکه عصبی از جمله MLP و RBF شناسایی می کند.
[10]
ماشین ارتجاعی:ابتدا یک تصویر شناخته شده را درخواست می کند.تصویر باید به اندازه کوچک نرمال شود.از چشم ها و دهان که در جایش واقع شده به عنوان نقاط مرجع برای نرمال کردن استفاده می شود و یک تصویر به صورت استاندارد حاصل می شود.
[11]

3.مراحل انجام آزمایش

روشی که در اینجا برای احراز هویت استفاده می کنیم روش چهره ویژه ها 8 با استفاده از الگوریتم تحلیل مولفه های اصلی 9 است.].چهره ویژه ها در واقع همان بردارهای ویژه هستند که در مسایل احراز هویت با این نام شناخته می شوند[14].
روش استفاده از چهره ویژه ها برای تشخیص هویت ابتدا توسط کیربی10 و سیروویچ11 در سال ۱۹۸۷ توسعه یافت و توسط پنتلند12 و تورک 13 جهت کلاسبندی چهره ها به کار رفت.[13]
در این روش ابتدا مراحل پیش پردازش را روی تصاویر اجرا می کنیم و ماتریس تصاویر را می سازیم.سپس کوواریانس14 ماتریس تصاویر را بدست آورده و با کمک آن مقادیر ویژه15 و بردارهای ویژه16 را تعیین می کنیم.در مرحله آزمایش هم تصاویر داده شده را با چهره ویژه ها مقایسه می کنیم تا ببینیم کدام چهره ویژه ها تصویر داده شده را بهتر توصیف می کنند.
قبل از توضیح کامل این روش مختصری درباره داده های آزمایش و آزمون توضیح می دهیم.

3.1داده های آزمایش

در این آزمایش برای ساخت چهره ویژه ها نیاز به یک مجموعه داده مناسب است که برای اینکار از پایگاه داده FERET استفاده شده است.پایگاه داده FERET یک مجموعه داده مناسب برای سیستم های احراز هویت است.این پایگاه داده در سال های ۱۹۹۳ تا ۱۹۹۶ گردآوری شد[15].
در این پایگاه داده ۵ نوع تصویر وجود دارند : fa و fb و fc و dup1 و dup 2.
معمولا fa را به عنوان کتابخانه تصاویر استفاده میکنند.fb و fc در شرایطی نسبتا متفاوت جمع آوری شده اند.(مثل نور پردازی متفاوت)اما دو زیر مجموعه dup1 و dup2 در زمانهای متفاوت گردآوری شده اند.(این تفاوت زمانی بیش از ۲ سال است).
ما نیز در این آزمایش ۴۰ تصویر از زیر مجموعه fa را صرفا برای مرحله یاد گیری و ساخت چهره ویژه ها به کار می بریم و برای تست سیستم از زیرمجموعه های دیگر استفاده می کنیم.

3.2 توضیح روش انجام آزمایش

3.2.1 پیش پردازش :

برای اینکه تصاویر اولیه آماده پردازش شوند باید اعمالی روی آنها صورت گیرد.
۱.اندازه تصاویر :‌در گام اول باید کاری کرد تا تمام تصاویر اندازه یکسانی داشته باشند.
۲.هم ترازی تصاویر : به منظور بهبود کیفیت خروجی باید تصاویر هم تراز17 باشند.به عنوان مثال چشم ها و دهان در تصاویر مختلف تقریبا در یک موقعیت باشند.
۳.رنگ تصاویر : در پایگاه داده FERET تعدادی از تصاویر رنگی18 و تعدادی سیاه سفید 19 هستند.

3.2.2 تحلیل مولفه های اصلی :

تحلیل مولفه‌های اصلی در تعریف ریاضی یک تبدیل خطی متعامد است که داده را به دستگاه مختصات جدید می برد.به طوری که بزرگترین واریانس داده بر روی اولین محور مختصات، دومین بزرگترین واریانس بر روی دومین محور مختصات قرار می‌گیرد و همین طور برای بقیه. تحلیل مولفه‌های اصلی می‌تواند برای کاهش ابعاد داده مورد استفاده قرار بگیرد، به این ترتیب مولفه‌هایی از مجموعه داده را که بیشترین تاثیر در واریانس را دارند حفظ می‌کند.
در اینجا ما قصد داریم مولفه های اصلی را با کمک کوواریانس ماتریس تصاویر بدست آوریم.ماتریس تصاویر را با X نشان می دهیم و قصد داریم ابعاد آن را از M به L کاهش دهیم تا به ماتریس جدید Y برسیم.
میانگین تجربی و نرمال سازی داده ها : با استفاده از فرمول زیر یک بردار بدست می آید که بردار میانگین X است‌:

u[m] = \dfrac{1}{N} \sum_{i = 1} ^{N}{X[m,i]}

به وضوح میانگین تجربی روی سطرهای ماتریس اعمال شده است.
حال ماتریس فاصله (‌B ) را به صورت زیر بدست می آوریم :
B = X - uh

که در آن h برداری 1xN با درایه های یک است.
محاسبه ماتریس کوواریانس :
با استفاده از فرمول زیر ماتریس کوواریانس C با ابعاد MxM حاصل می شود.
C = E[B \otimes B] = E [ B . B^{*} ] = \dfrac{1}{N} [ B . B^{*}]
که در آن E میانگین حسابی است و ‌‌B ماتریس ترانهاده مزدوج B است که البته در این جا به علت حقیقی بودن مقادیر با همان ترانهاده بردار B یکسان است.
محاسبه مقادیر ویژه ماتریس کواریانس و بازچینی بردارهای ویژه:
در این مرحله مقادیر ویژه و بردار های ویژه ماتریس کوواریانس ( C ) بدست می آیند.
V^{-1} C V = D

که در آن V ماتریس بردارهای ویژه و D یک ماتریس قطری است که درایه های آن مقادیر ویژه هستند.آن چنان که مشخص است هر بردار ویژه متناظر با یک مقدار ویژه است.به این معنا که ماتریس V ماتریسی M x M است که ستونهای آن بردارهای ویژه می‌باشند.بازچینی بردارهای ویژه بر اساس اندازهٔ مقادیر ویژه متناظر با آنها صورت می‌گیرد. یعنی بر اساس ترتیب کاهشی مقادیر ویژه، بردارهای ویژه بازچینی می‌شوند. یعنی :
q \leqslant p \Rightarrow \lambda _{q} \leqslant \lambda _{p}

انتخاب زیرمجموعه‌ای از بردارهای ویژه به عنوان پایه:
انتخاب زیرمجموعه‌ای از بردارهای ویژه با تحلیل مقادیر ویژه صورت می‌گیرد. زیرمجموعه نهایی با توجه به بازچینی مرحله قبل به صورت V1 ... Vt انتخاب می‌شود. در اینجا می‌توان از انرژی تجمعی استفاده کرد که طبق آن :
g[m] = \sum _{q = 1} ^{m} \lambda _{q}

انتخاب l باید به صورتی باشد که حداقل مقدار ممکن را داشته باشد و در عین حال g مقدار قابل قبولی داشته باشد. به طور مثال می‌توان حداقل l را انتخاب کرد که :
g [ m = l ] \leqslant 90%

بنابرین خواهیم داشت:
W [ p , q ] = V [ p , q ] , p = 1 ... M , q = 1 ... l

انتقال داده ها به فضای جدید :
برای این کار ابتدا تبدیلات زیر را انجام می دهیم: ماتریس Sm,1 انحراف معیار مجموعه داده است که به صورت زیر تعریف می شود :
S[i] = \sqrt{ C [ i , i ]}

سپس داده به صورت زیر تبدیل می‌شود:
Z = \dfrac{B}{S}

که ماتریس های B , C در بالا توضیح داده شده اند. داده‌ها می‌توانند به ترتیب زیر به فضای جدید برده شوند:
$$ Y = W^{
}.Z $$
[۱۶]
اکنون توانسته ایم چهره ویژه ها را از ماتریسمان استخراج کنیم.

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

در این مرحله سیستم دو تصویر را دریافت می کند و یک عدد را به عنوان میزان شباهت دو تصویر برمی گرداند.برای این کار سیستم باید فرآیند زیر را روی دو تصویر اجرا کند :
۱.مرحله پیش پردازش : تمام مراحل پیش پردازشی که روی تصاویر کتابخانه اعمال شد باید روی این دو تصویر هم اعمال گردند.
۲.تبدیل به بردار :‌در این مرحله باید دو تصویر را به بردار متناظرشان تبدیل کنیم.(این کار هم دقیقا مانند قبل انجام می شود.).در ادامه این دو بردار را با a و b نشان می دهیم.
۳.تصویر کردن20 بردار ها روی چهره ویژه ها :به طور کلی وقتی با تصویر کردن بردار a روی b می توان فهمید که a چه مقدار از خاصیت b را دارد.ما نیز در اینجا قصد داریم تصاویر ورودی را روی چهره ویژه ها تصویر کنیم تا بفهمیم که تصویرمان چقدر از خاصیت هر چهره ویژه را دارد.
تصویر بردار a روی Vi ( بردار ویژه i ام ) از فرمول زیر محاسبه می شود :

W_{i} = a. \dfrac{ V_{i}}{| V_{i}|}
[17]
تصویر a روی b

اعداد بدست آمده را در بردار Wa و Wb می ریزیم.حال اگر هر یک از این دو بردار را دو نقطه با M بعد در نظر بگیرم فاصله منهتنی آنها می تواند معیار نسبتا خوبی برای تشخیص شباهتشان باشد.
فاصله منهتنی از فرمول زیر محاسبه می شود :
d ( wa , wb ) = \sum _{i = 1} ^{n} | p_{i} - q_{i}|

4. نتایج آزمایش

حال باید با بررسی شباهت ها و تفاوت ها بین تصاویر مختلف مجموعه داده به یک حد آستانه برسیم تا به وسیله آن بتوان گفت آیا دو تصویر داده شده متعلق به یک نفر هستند یا خیر؟
برای تعیین این آستانه از معیار های FAR و FRR استفاده می کنیم.
تعریف معیار FAR : این معیار میانگین افرادی را که سیستم به اشتباه پذیرفته است نشان می دهد.
تعریف معیار FRR : این معیار میانگین افرادی را که سیستم به اشتباه نپذیرفته است نشان می دهد.
ابتدا ۱۰ تصویر را انتخاب کرده و آزمایش را به ازای حدود آستانه مختلف روی آنها انتحان می کنیم‌.

توضیح تصویر

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

نمودار

کد برنامه را هم می توانید در این قسمت مشاهده کنید.

مراجع

[1] مهندس محمد اسلامی "روش های تشخیص هویت بیومتریک" خرداد ماه 87
[2] Face Recognition Vendor Test 2002 P. Jonathon Phillips, Patrick Grother, Ross Micheals, Duane M. Blackburn, Elham Tabassi, Mike Bone
[3] Face Recognition Methods & Applications Divyarajsinh N. Parmar1, Brijesh B. Mehta
[4] Security Management for Mobile Devices by Face Recognition Yoshihisa Ijiri, Miharu Sakuragi and Shihong Lao Sensing & Control Technology Laboratory
[5] Goldstein, A. J., Harmon, L. D., and Lesk, A. B., Identification of human faces
[6] Overview Of Face Recognition System Challenges Ambika Ramchandra, Ravindra Kumar
[7] Turk, M., and Pentland, A., "Eigenfaces for recognition", Journal of Cognitive Neuroscience, Vol. 3,
[8] Ilker Atalay , " Face recognition using eigenfaces ", M. Sc. THESIS , (January, 1996).
[9] روشی جدید برای آشکارسازی چهره با استفاده از ماشین بردار پشتیبان قاسم میر جلیلی مجید روحی و محمد تقی صادقی
[10] Jorge Orts "Face recognition techniques" Afsaneh Esmailzadeh
[11] William A.barrett " A Survey of face Recognition Algorithms and Testing Result"" Afsaneh esmailzadeh
[12] Johnny NG and Humphrey CHEUNG " Dynamic Local Feature Analysis for Face Recognition "
" Afsaneh esmailzadeh "
[13]1. M. Kirby and L. Sirovich (1990). "Application of the Karhunen-Loeve procedure for the characterization of human faces"
[14] L. Sirovich and M. Kirby (1987). "Low-dimensional procedure for the characterization of human faces"
[15] P. Jonathon Phillips, Harry Wechsler, Jeffrey Huang, Patrick J. Rauss: The FERET database and evaluation procedure for face-recognition algorithms. Image Vision Comput.
[16] http://fa.wikipedia.org/wiki/ تحلیل_مولفه های_اصلی
[17]G. Perwass, 2009 Geometric Algebra With Applications in Engineering


  1. False Accept Rate

  2. False Reject Rate

  3. face recognition

  4. IT

  5. biometric

  6. data set

  7. Linear Discriminant Analysis

  8. Eigenface

  9. PCA

  10. Kirby

  11. Sirovich

  12. Pentland

  13. Turk

  14. Covariance

  15. Eigenvalues

  16. Eigenvectors

  17. aligned

  18. colormap

  19. greyscale

  20. Project

سید حسن طباطبایی

با سلام و خسته نباشید
کار شما در این مرحله نسبتا خوب و قابل قبول است با این حال نکات ریزی وجود دارد که به بهتر کردن کارتان کمک میکند:

  • لطفا تصاویر را شماره گذاری کرده و توضیحات مربوطه را بیاورید و در متن به شماره آن تصویر ارجاع دهید.

  • نمودار دقت رسم شده، DET=Detection Error Tradeoff نام دارد. میتوانید از نمودار ROC نیز استفاده نمایید.

تایید شده

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

ممنون از پروژه خوب شما. نکاتی وجود دارد که بد نیست آن ها را نیز در نظر بگیرید.
ابتدا بد نبود به جای قرار دادن فایل زیپ به آن شکل در توضیحات پروژه گیت هاب، پروژه را در خود گیت هاب آپلود می کردید.
لطفا در مورد داده های آزمایش خود توضیحات دقیق تری بدهید. دقیقا fa چه تفاوتی با fb و fc دارد؟ توضیح dup1 و dup2 نیز کمی گنگ است و ممکن است خواننده را گیج کند.
الگوریتم شما برای همتراز کردن تصویر چیست؟ آیا فرض بر این است که ورودی برنامه شما تصاویر از قبل تراز شده است؟ این موارد را بهتر است در خود مقاله نیز بیاورید.
نمودار حد آستانه گنگ است. اندکی در مورد آن توضیح بدهید. برای مثال این که نقطه برخورد دو نمودار را به عنوان حد آستانه مطلوب در نظر گرفته اید.

ممنون و متشکر

در کل بسیار زحمت کشیدید ، فقط چند نکته رو من دیدم که میگم:
1- نموداری که در انتهای متن آوردید نه برچسب دارد و نه مقیاس .
2-اینکه عدد 60000 از کجا اومده معلوم نیست.
و در قسمت کارهای مرتبط روش هایی که اوردید رو توضیح ندادید فقط مزایا و معایب اونها رو گفتید .