تشخیص چهره (Face Detection) یا همان پیدا کردن چهره در تصویر تکنولوژی در کامپیوتر است که در بسیاری از برنامه هایی که با (Computer Visual) سر و کار دارند استفاده می شود. تشخیص چهره همچنین به فرایند روان شناختی ای که توسط آن انسان ها چهره ها را تشخیص می دهند و به آن در یک صحنه ی بصری می پردازند.

چهره های تشخیص داده شده توسط Face Detection


۱. مقدمه

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

حل کردن مساله ی Face Detection کاربرد ها ی متعدد و مهمی در زمینه ی Computer Visual دارد که در موارد زیر به آن ها اشاره خواهیم کرد:
`

  • عکاسی (Photography):

تکنولوژی تشخیص چهره در دوربین های عکاسی به عنوان راهکاری برای Auto Focus روی چهره ی افراد بسیار رایج است. حتی در جدید ترین تلفون همراه Apple که با نام iPhone X به بازار تلفون های همراه عرضه شد از فناوری Face Detection برای حالت Portrait Mode خود به بهترین شکل استفاده
می کند به گونه ای که چهره ی انسان را تشخیص داده و Background را Blur یا تار می کند تا صورت انسان برجسته تر به نظر بیاید.
کاربرد دیگر آن استفاده از تشخیص لبخند (Smile Recognition) است که افراد به کمک آن در بهترین زمان ممکن که لبخند فرد مقابل در بهترین حالت خود است از او عکس بگیرند.

iPhone X's Protrait Mode

  • باز شناسی چهره (Face Recognition):

تشخیص چهره پایه و اساس مساله ی Face Recognition است که خود مساله ای حایز اهمیت در زمینه ی امنیت است. برای شناسایی چهره ابتدا باید چهره را پیدا کرد سپس چهره ی پیدا شده را با چهره های موجود در Database تطبیق داد. Face Recognition برای افزایش امنیت در app ها و گوشی ها هست که به عنوان مثال Apple به تازگی از Face Recognition با نام Face ID در جدید ترین گوشی همراه خود یعنی iPhone X استفاده کرده، Samsung و بقیه شرکت ها نیز به تازگی از این فناوری در تلفون های همراه خود استفاده کرده اند. Face Recognition در فرودگاه ها و سایر مکان های مهم کاربرد دارد تا بتوان مجرمان را شناسایی و بازداشت کرد.

Face Recognition

  • شمارش افراد و بازاریابی(Marketing):

فناوری Face Detection به تازگی نظر بازاریاب ها را به خود جلب کرده به گونه ای که می توان دوربینی در تلویزیون به کار برد تا چهره ی هر انسانی که از کنار آن عبور می کند را تشخیص دهد و سن، جنسیت و نژاد او را محاسبه کند و نمایشگر تبلیغات متناسب با ویژگی های تشخیص داده شده را برای فرد در حال عبور به نمایش بگذارد.
Usage of Face Detection in Marketing

  • ضبط حرکت صورت(Facial Motion Capture):

روندی است که در آن حرکت چهره ی افراد را به صورت الکترونیکی با استفاده از اسکنر های لیزری یا دوربین به یک Database تبدیل می کند که از Database ایجاد شده برای درست کردن Computer Graphics یا همان CG برای انیمیشن بازی ها و فیلم های کامپیوتری به کار می رود. حرکت شخصیت های CG بر اساس حرکت انسان های واقعی نشات گرفته که منجر به واقعی تر و منحصر به فرد شدن شخصیت ها نسبت به زمانی که انیمیشن ها دستی ساخته شوند می شود.

نمونه ای از Facial Motion Capture


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

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

۲.۱. پیدا کردن تصاویر در پس زمینه ی کنترل شده:

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

  • پیدا کردن چهره با رنگ:

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

  • `پیدا کردن چهره با حرکت:

اگر قادر باشیم از ویدیو بی درنگ استفاده کنیم، می توانیم از این حقیقت که چهره انسان دائما در واقعیت در حال حرکت است استفاده کنیم. فقط کافی است مکان های در حال حرکت را محاسبه کنیم تا چهره را تشخیص دهیم.
اشکال: اگر اشیا دیگری در پس زمینه در حال حرکت باشند چه می شود؟
یکی از روش های ارئه شده پیرامون این موضوع استفاده از سیستم تشخیص پلک زدن (Blink Detection) است. همان طور که می دانید چشمان انسان ها دائما در حال حرکت هستند پس از آن می توان برای تشخیص صورت استفاده کرد. در این روش چندین عکس پشت سر هم گرفته می شود و هر عکس دریافت شده از عکس قبلی کم میشود (یعنی تفاوت ها را مشخص می کند که این تفاوت مرزی کوچک در اطراف سر است) اگر در یکی از این تصاویر چشم ها بسته باشند مرزی دور چشم ایجاد می شود که نشان دهنده ی پلک زدن است.[1]

روش های ترکیبی نیز از دو الگوریتم های بالا ارائه داده شده که هم رنگ صورت را در نظر می گیرند هم حرکت چهره را که در
مقاله ی T. Darrell, G. Gordon, M. Harville and J. Woodfill به آن اشاره شده.[2]

۲.۲. پیدا کردن چهره در تصاویر بدون محدودیت:

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

۲.۲.۱. ردیابی چهره مبتنی بر مدل:

به نظر می رسد که روش های مبتنی بر لبه با استفاده از مدل های هندسی احیا شده اند. دو روش برتر از لحاظ عملکرد که در اویل دهه ی ۲۰۰۰ ارائه شدند:

  • تشخیص چهره بی درنگ با استفاده از تطبیق لبه:

در این روش که در عکس های سیاه و سفید استفاده می شود لبه های عکس را پیدا کرده و از آن برای پیدا کردن چهره در تصویر استفاده می کنند.[3]

  • تشخیص چهره با استفاده از فاصله Hausdorff:

این روش نیز مبتنی بر لبه است و روی عکس های سیاه و سفید کار می کند. (Hausdorff Distance (HD یک متریک بین دو مجموعه نقطه است و چون قرار است برای پیدا کردن اشیا در تصاویر دیجیتال استفاده شود، HD به دو بعد محدود می شود. در این روش از HD برای پیدا کردن چهره یا کلا اشیا در تصویر به کار می رود. به عنوان مثال فرض کنید دو مجموعه نقطه ی A و B نمایانگر تصویر و شئ باشند بنابراین هر دو نقطه از این دو مجموعه یک Edge Point را تشکیل می دهد که به کمک این Edge Point ها می توان اشیا را در تصویر پیدا کرد. [4]

۲.۲.۲. ردیابی چهره بر اساس طبقه بندی آبشاری:

پیشرفت در پیدا کردن و شناسایی چهره با Viola & Jones رخ داد. این الگوریتم ارائه داده شده می تواند تعلیم داده شود که انواع اشیا را در تصویر پیدا کند اما اولین بار برای حل مساله ی تشخیص چهره ارائه شد.
ویژگی هایی که باعث شدند الگوریتم Viola-Jones یک الگوریتم تشخیص دهنده ی خوب شود:

  1. قدرتمند بودن در تشخیص: نرخ تشخیص بالا و اشتباه خیلی کم.

  2. بی درنگ بودن: برای کاربردهای عملی باید حداقل دو فریم (Frame) بر ثانیه پردازش شود.

  3. فقط تشخیص چهره (نه بازشناسی چهره): هدف متمایز کردن چهره از غیر چهره در تصاویر است (همان طور که در مقدمه اشاره شد تشخیص چهره پایه و اساس Face Recognition است)

این الگوریتم چهار مرحله دارد:

  1. انتخاب ویژگی Haar

  2. ایجاد یک تصویر یکپارچه

  3. آموزش و تعلیم (AdaBoost(Adaptive Boosting

  4. طبقه بندی های آبشاری

ویژگی های Haar:

چهره ی تمام انسان ها دارای خواص مشابهی هستند که با Haar Features هماهنگ می شوند:

  • ناحیه چشم تیره تر از گونه های فوقانی است (شکل ۱)

    شکل ۱

  • قسمت برآمدگی بینی از رنگ چشم ها روشن تر است (شکل ۲)

    شکل ۲

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

  • موقعیت و اندازه: چشم ها، بر آمدگی بینی و دهان

  • ارزش: شیب متمایل شدت پیکسل ها

سپس به دنبال این چهار ویژگی ذکر شده در بالا که توسط این الگوریتم تطبیق داده شده اند در یک تصویر چهره می گردیم. [5]

۲.۲.۳. یاد گیری عمیق و HOGs:

یاد گیری عمیق (با استفاده از شبکه های عصبی چند لایه)، مخصوصا بیشتر برای Face Recognition به کار می رود تا برای Face Detection،
و (HOG (Histogram of Oriented Gradients روش های کنونی (2017) برای حل مساله ی Face Recognition و Face Detection هستند.


۳. مراجع:

[1]Tereza Soukupova ́and JanCech. "Real-Time Eye Blink Detection using Facial Landmarks". Czech Technical University in Prague.
[2]T. Darrell, G. Gordon, M. Harville and J. Woodfill. "Integrated person tracking using stereo, color, and pattern detection".
[3]Bernhard Fröba, Christian Külbeck. "Real-Time Face Detection Using Edge-Orientation Matching".
[4]Oliver Jesorsky, Klaus J. Kirchberg, and Robert W. Frischholz. "Robust Face Detection Using the Hausdorff Distance".Third International Conference on Audio- and Video-based Biometric Person Authentication.
[5]Paul Viola and Michael J. Jones. "Robust Real-Time Face Detection".

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

علیرضا نوریان

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