X
تبلیغات
رایتل

FER: Facial Expression Recognition

معرفی کتاب پردازش تصویر دیجیتال در MATLAB

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

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

برای اطلاعات بیشتر در مورد این کتاب می توانید به سایت زیر مراجعه کنید:

www.Faradaneshjoo.com

روش viola-jones در تشخیص چهره

یکی از مهم ترین فعالیت های انجام شده در تشخیص چهره روش viola-jones در سال های 2001 و 2004 می باشد. که این روش بسیار موفق و سریع بشمار می آید.

viola و jones  الگوریتم AdaBoost را با Cascade برای تشخیص چهره ترکیب کردند. الگوریتم پیشنهادی آنها می توانست چهره را داخل یک تصویر 288*384 با صرف زمانی معادل 0.067 ثانیه تشخیص بدهد. یعنی 15 بار سریع تر از آشکار سازی های state-of-the-art با دقتی بالاتر ،به طوری که این الگوریتم یکی از پیشرفته ترین الگوریتم های ماشین بینایی در دهه ی گذشته تا به حال بوده است. نقش AdaBoost در این الگوریتم به این صورت می باشد که در ابتدا تصویر مورد نظر به زیر تصاویر(24*24) تقسیم بندی می شود. هر دیر تصویر بیانگر یک بردار ویژگی می باشد. به دلیل اینکه محاسبات موثر و کارآمد باشد از یک سری ویژگی های خیلی ساده استفاده می کنیم. تمام مستطیل های ممکن داخل زیر تصویر بررسی می شوند، در هر مستطیل 4 نمونه ویژگی به کمک ماسک هایی که در شکل زیر آمده استخراج می شود. (4 ماسک ویژگی که برای هر مستطیل استفاده می شود.)

با هر یک از این ماسک ها، مجموع پیکسل های سطح خاکستری در نواحی سفید از مجموع پیکسل های نواحی سیاه، کم می شود، که این مقدار به عنوان یک ویژگی دز نظر گرفته می شود. پس می توانیم به این صورت بگوییم که داخل یک زیر تصویر (24*24) بالغ بر یک میلیون ویژگی می توانیم داشته باشیم ( البته این ویژگی ها خیلی سریع محاسبه می شوند و می توانند کمتر از یک میلیون ویژگی هم باشند مثلا" 160000 در هر زیر تصویر)

هر ویژگی به عنوان یک یادگیرنده ی ضعیف در نظر گرفته می شود یعنی :

الگوریتم یادگیری پایه تلاش می کند که بهترین کلاسیفایر ضعیف  را که، کوچک ترین خطا را در کلاس بندی دارد پیدا کند.

مستطیل های چهره را به عنوان مثال های Positive در نظر می گیریم. ( مثال های آموزشی مثبت )

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

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

پارامتر در Cascade به طوری تنظیم می شود که در هر نود درخت، ما یک انشعاب not a face داریم و به این معنی است که، تصویر یک تصویر چهره نبوده و یا به عبارت دیگر نرخ false negative  در حال به حداقل رسیدن می باشد. ایده ی این طرح در واقع شناسایی زودتر تصویر غیر چهره می باشد. به طور متوسط در هر زیر تصویر 10 تا ویژگی را مورد بررسی قرار می دهیم. انجام یک سری آزمایش viola-jones بر روی تصاویر:

منابع:

 P. Viola and M. Jones, "Robust Real-time Face Detection," presented at Eighth IEEE International Conference on Computer Vision, vol. 2,pp. 747,January 2001. [

 P. Viola, M. J. Jones, and D. Snow, "Detecting Pedestrians Using Patterns of Motion and Appearance," presented at Proceedings of the Ninth IEEE International Conference on Computer Vision(ICCV’03), 2003.

http://mathworks.ir/forum/9----/3256------

خلاصه ای از مقالات در زمینه تشخیص چهره و تشخیص حالت

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

مقدمه:

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

تشخیص چهره در سیستم های امنیتی ،کنترل کارت اعتباری و شناسایی مجرمان کاربرد اساسی دارد.

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

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

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

تشخیص چهره به عنوان یک تکنولوژی اصلی در شاخه ی تکنولوژی بیومتریک  روز به روز اهمیت بیشتری پیدا می کند. در کاربرد دوربین های دیجیتال ابزارهای اینترنت و تلفن همراه و ... به شدت مورد نیاز است.

انواع تشخیص چهره عبارتند از :

1. تشخیص چهره با استفاده از تصاویر رو به رو

2. تشخیص چهره با استفاده از تصاویر نیمرخ

3. تشخیص چهره با استفاده از دیدگاه آزاد

4. بررسی یک تصویر از صورت

5. الگوریتم های اصلی مربوط به تشخیص چهره

6. جایگاه الگوریتم های یادگیری در تشخیص چهره

الگوریتم های تشخیص چهره عبارتند از :

تشخیص چهره با استفاده از الگوریتم ژنتیک.در این الگوریتم یک سیستم جدید برای شناسایی چهره با استفاده از الگوریتم ژنتیک پیشنهاد می شود دو بخش دارد :1.پیش پردازش 2.کاربرد الگوریتم ژنتیک

تشخیص چهره با استفاده از الگوریتم  flood fill .تعامل کامپیوتر انسان (HCI) بزرگترین هدف محققان بینایی ماشین است. در این روش تکنیک جدیدی برای استخراج ویژگی ها بیان می شود. این ویژگی ها را از نواحی مختلف چهره به همراه قطعه بندی رنگ پوست و تکنیک مبتنی بر دانش برای  شناسایی چهره بدست می آورد.

تشخیص چهره با استفاده از الگوریتم ترکیب الگوریتم AdaBoost با Cascade . الگوریتم پیشنهادی viola-Jones می توانست  چهره را در داخل یک تصویر ۳۸۴×۲۸۸ با صرف زمانی معادل ۰٫۰۶۷ ثانیه تشخیص بدهد. این الگوریتم یکی از پیشرفته ترین الگوریتم های ماشین بینایی در دهه گذشته تا به حال بوده است.

در پردازش تصاویر چهره، تشخیص و ردیابی، تخمین ظاهر و شناسایی خصوصیات مدنظر می باشد.

برای تشخیص حالت از تصاویر متحرک بهتر است استفاده کنیم زیرا که از حالت نرمال شروع شده اند تا به حالت احساسی مورد نیاز رسیده اند. تشخیص حالت های چهره کاربردهای فراوانی دارند مثلا" ارتباط میان انسان و کامپیوتر را می توان مثال زد و یا رباط هایی که با خوشحالی انسان خوشحال و با ناراحتی انسان ناراحت می شوند.

تشخیص حالت های صورت از روی ویژگی های صورت مانند چشم، دهان و ابرو ها صورت می گیرد.

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

منابع:

 J.Z. Li, M.T. Ozsu, D. Szafron, “Modeling of moving objects in a video database”, Proceedings of IEEE Int. Conf. on Multimedia Computing and Systems, Ottawa, Canada, pp. 336–343, June 1997.

D. Papadias, Y. Theodoridis, “Spatial Relations, Minimum Bounding Rectangles and Spatial Data Structures”, Int. Journal of Geographical Information Science, vol.11, pp.111–138, 1997.

https://www.google.com/search?sugexp=chrome,mod=9&ix=nh&sourceid=chrome&ie=UTF-8&q=srmohanna%40yahoo.com%2C&gws_rd=ssl

http://tabrizu.ac.ir/fa