آیا میدانید هر زمان که ما تصویری را در سایتی مانند فیس بوک بارگذاری میکنیم، از روشهای شناسایی چهره برای تشخیص چهرههای موجود در آن استفاده میکنند؟ برخی از دولتهای جهان نیز از تشخیص چهره برای شناسایی و دستگیری مجرمان استفاده میکنند. و امروز میتوانیم قفل گوشی خود را با قفل چهره باز کنیم!
شاید برایتان جالب بشد که بدانید تشخیص چهره، روشهای گوناگونی دارد. در این مقاله قصد داریم به بررسی این روشها بپردازیم.
تشخیص چهره چیست؟
تشخیص چهره یک فناوری است که برای شناسایی یا تأیید شخص از یک تصویر یا فیلم توسط سیستم بیومتریک استفاده میکند. روشهای مختلفی وجود دارد که سیستمهای تشخیص چهره با آنها کار میکند، اما به طور کلی، این سیستم با مقایسه ویژگیهای صورت انتخاب شده از یک تصویر مشخص با چهرههای موجود در پایگاه داده کار میکنند.
البته شناسایی هویت از طریق الگوریتم تشخیص چهره به عنوان یک برنامه مبتنی بر هوش مصنوعی بیومتریک توصیف میشود. تشخیص چهره، یک فناوری رایانهای مبتنی بر هوش مصنوعی (AI) است که برای یافتن و شناسایی چهره انسان در تصاویر دیجیتال استفاده میشود و میتواند با تجزیه و تحلیل الگوها بر اساس بافت صورت و شکل فرد، شخص را به طور منحصر به فرد شناسایی کند.
تشخیص چهره از تکنیکهای ابتدایی بینایی رایانهای تا پیشرفت در یادگیری ماشین (ML) به شبکههای عصبی مصنوعی پیچیده (ANN) و فناوریهای مرتبط پیشرفت کرده است و نتیجه استفاده از روشهای شناسایی چهره، بهبود مستمر عملکرد بوده است. در حال حاضر نقش مهمی به عنوان اولین گام در بسیاری از برنامههای کلیدی در زمینههای مختلف از جمله امنیت، بیومتریک، اجرای قانون، سرگرمی و ایمنی شخصی برای نظارت و ردیابی افراد ایفا میکند.
در تجزیه و تحلیل چهره به عنوان یک سیستم بیومتریک، تشخیص چهره به شناسایی قسمتهایی از تصویر یا فیلم برای تعیین سن، جنسیت و احساسات با استفاده از حالات چهره کمک میکند. در یک سیستم تشخیص چهره که ویژگیهای چهره افراد را به صورت ریاضی ترسیم میکند و دادهها را به عنوان اثر چهره ذخیره میکند، دادههای تشخیص چهره برای الگوریتمهایی که تشخیص میدهند برای تولید یک اثر چهره از کدام قسمت از تصویر یا فیلم لازم است استفاده میشود. پس از شناسایی، میتوان اثر چهره جدید را با اثرات ذخیره شده صورت مقایسه کرد تا مشخص شود که آیا مطابقت دارد.
به طور کلی، روشهای مختلفی برای تشخیص چهره دارد که بر اساس الگوریتم تشخیص چهره انجام میشود. در ادامه نگاهی به این الگوریتمها در تشخیص چهره خواهیم داشت:
- الگوریتم ویولا-جونز: پیشرفتهای عمدهای در روش تشخیص چهره در سال 2001 رخ داد، هنگامی که محققان بینایی کامپیوتری پل ویولا و مایکل جونز چارچوبی را برای تشخیص چهرهها در زمان واقعی با دقت بالا پیشنهاد کردند. چارچوب ویولا-جونز بر اساس آموزش یک مدل برای درک آنچه است و چه چیزی نیست، صورت میگیرد. پس از آموزش، مدل ویژگیهای خاصی را استخراج میکند، سپس در یک فایل ذخیره میشود تا ویژگیهای تصاویر جدید در مراحل مختلف با ویژگیهای ذخیره شده قبلی مقایسه شود. اگر تصویر مورد مطالعه از هر مرحله از مقایسه ویژگیها عبور کند، یک چهره شناسایی شده و عملیات میتواند ادامه یابد. توسعهدهندگان این الگوریتم نشان دادند که چهرهها در زمان واقعی در فید وب کم شناسایی میشوند و این خیرهکنندهترین نمایش بینایی کامپیوتر و پتانسیل آن در آن زمان بود که به زودی در OpenCV اجرا شد و این تشخیص چهره مترادف با الگوریتم ویولا-جونز نام گرفت.
در این الگوریتم، چندین دسته از چهرهها به عنوان داده را دریافت کرده و ما میتوانیم ویژگیهای یک چهره را کدگذاری کنیم و در نهایت طبقهبندی بر روی ویژگیهای چهره انجام میشود، بنابراین میتوانید از طبقهبندی انجام شده برای تشخیص چهرهها استفاده کنید!
اگرچه چارچوب Viola-Jones هنوز برای تشخیص چهره در برنامههای زمان واقعی محبوب است، اما محدودیتهایی دارد. به عنوان مثال، اگر چهرهای با ماسک یا روسری پوشانده شود، یا اگر چهره به درستی مشخص نشده باشد، ممکن است چارچوب کار نکند یا الگوریتم نتواند آن را پیدا کند.
برای کمک به از بین بردن معایب چارچوب ویولا-جونز و بهبود تشخیص چهره، الگوریتمهای دیگری-مانند شبکه عصبی مبتنی بر منطقه (R-CNN) و آشکارساز تک شات (SSD)-برای کمک به بهبود فرآیندها توسعه یافتهاند.
- هیستوگرام گرادیانهای جهتدار: در ایده پایه نحوه تشخیص چهره این الگوریتم، برای تصویر I، هر پیکسل را تجزیه و تحلیل میکنند تا پیکسلهای تیره نسبی که مستقیماً آن را فرا گرفتهاند، مشخص شود و سپس یک فلش را که در جهت جریان تاریکی نسبت به تصویراست، اضافه میکنند. در واقع این فرایند اختصاص یک گرادیان جهتدار به تصویر مورد نظر، با تجزیه و تحلیل پیکسلهای اطراف آن برای هر پیکسل در تصویر انجام میشود. در این الگوریتم، گرادیانتها، جریان روشنایی به تاریکی را در کل تصویر نشان میدهند.
بزرگترین عیب این الگوریتم این است که علیرغم اینکه در بسیاری از برنامهها خوب است، هنوز از ویژگیهای کدگذاری دستی استفاده میکند که با سر و صدای زیاد و حواسپرتی در پس زمینه احتمال خطا بالا است.
- R-CNN: الگوریتم شبکه عصبی کانولوشن (CNN) نوعی شبکه عصبی مصنوعی است که در تشخیص و پردازش تصویر استفاده میشود و به طور خاص برای پردازش دادههای پیکسل طراحیشده است. R-CNN پیشنهادها منطقهای را در چارچوب CNN برای محلی سازی و طبقهبندی اشیاء در تصاویر ایجاد میکند.در حالی که رویکردهای مبتنی بر شبکه پیشنهادی منطقه مانند شبکه عصبی کانولوشنال مبتنی بر منطقه (R-CNN) به دو عکس نیاز دارد-یکی برای ایجاد پیشنهادها منطقه و دیگری برای تشخیص هدف هر پیشنهاد- آشکارساز تک شات (SSD) فقط به یک عکس برای تشخیص چندشی در تصویر نیاز دارد. بنابراین، آشکارساز تک شات (SSD) به طور قابل توجهی سریعتر از R-CNN است.در ایده پایه نحوه تشخیص چهره این الگوریتم، R-CNN با استفاده از جستجوی انتخابی، جعبههای محدودکننده یا مناطقی ایجاد میکند. جستجوی انتخابی به تصویر از طریق پنجرههایی با اندازههای مختلف نگاه میکند و برای هر اندازه سعی میکند پیکسلهای مجاور را بر اساس بافت، رنگ یا شدت برای شناسایی اشیاء با هم گروهبندی کند و سپس تصاویر را در جعبههای محدودکننده از طریق یک شبکه عصبی از پیش آموزش دیده و در نهایت یک طبقهبندی اجرا کنید تا ببینید تصویر موجود در جعبه چیست.

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