بسیاری از ما، از اپلیکیشنهای مختلف فیسبوک به منظور مشاهدهی دوران سالمندی خودمان، تبدیل شدن به ستارههای راک یا شبیهسازیِ آرایشهای غلیظ استفاده کردیم. این موجهای تغییر چهره، با هشدارهایی همراهند مبنی بر اینکه تصاویر چهرهتان را به اشتراک نگذارید، زیرا ممکن است از آنها سوءاستفاده گردد. اما هوش مصنوعی، در واقعیت چطور از چهرهها استفاده میکند؟ تشخیص چهره با هوش مصنوعی چگونه انجام میشود؟ اجازه دهید درباره اپلیکیشنهای برجستهای بحث کنیم که در زمینه تشخیص و بازشناسی چهره وجود دارند.
نخست باید دانست که تشخیص چهره و بازشناسی چهره، با یکدیگر تفاوت دارند. تشخیص چهره (Facial Detection)، بخشی مهم از بازشناسیِ چهره است که تعداد چهرههای روی تصویر یا ویدیو را مشخص میکند، بدون اینکه جزئیات را به خاطر بیاورد یا ذخیره سازد. تشخیص چهره، مقداری از دادههای جمعیتی – نظیر سن یا جنسیت – را تعریف میکند اما قادر به بازشناسی افراد نیست.
بازشناسی چهره (Facial Recognition)، با استفاده از دیتابیسِ چهرهها (که از قبل وجود داشته است) یک چهره را در یک عکس یا فیلم شناسایی میکند. در واقع چهرهها باید درون سیستم ثبت شوند تا دیتابیسی از ویژگیهای چهرهایِ منحصربفرد شکل بگیرد. پس از آن، سیستم اقدام به تجزیهی ویژگیهای کلیدیِ یک تصویر جدید میکند و آنها را با اطلاعاتِ ذخیرهشده در دیتابیس، مقایسه میکند.
تشخیص چهره با هوش مصنوعی چگونه انجام میشود؟
در روشهای مختلف تشخیص چهره با هوش مصنوعی نخست، رایانه اقدام به بررسی یک عکس یا فیلم میکند تا چهرهها را از سایر اشیاءِ موجود در زمینه، متمایز سازد. روشهایی وجود دارد که رایانه به کمک آنها قادر است این کار را انجام دهد و مقدار روشنایی، جهت و فاصله دوربین را تنظیم کند. محققانی نظیر یانگ، کریگمان و آهوجا روشهای تشخیص چهره را طبقهبندی کردهاند. این روشها به چهار طبقه تقسیم میشوند و الگوریتمهای تشخیص چهره ممکن است ذیلِ دو یا بیش از دو طبقه قرار گیرند.
تشخیص چهرهی دانشبنیان
این روش، متکی بر مجموعهای از قواعد است که توسط انسان و بر اساس دانشمان شکل گرفتهاند. همانطور که میدانیم، یک چهره باید شامل بینی، چشمان و دهان باشد و این اجزاء، باید در فواصلی مشخص از هم و موضعهایی معین قرار داشته باشند. مشکلِ این روش، ساختن مجموعهای مناسب از قواعد است. اگر این قواعد، خیلی کلی یا خیلی جزئینگر باشند، سیستم، مثبتهای کاذبِ بسیاری ارائه میدهد. با این حال، این موضوع برای همهی رنگِ پوستها جواب نمیدهد و به شرایط نورپردازی بستگی دارد که بر رنگ و رویِ دقیق پوست شخصِ حاضر در تصویر، تأثیر میگذارد.
تطابق الگو
روشِ تطابقِ الگو، از الگوهای چهرهی پارامتری یا از پیش تعریف شده به منظور جانمایی یا تشخیص چهرهها استفاده میکند و در این مسیر از همبستگیِ بین الگوهای از پیش تعریف شده و دگردیسپذیر (تغییرشکلپذیر) و تصاویرِ ورودی استفاده مینماید. توسط لبهها و با استفاده از روش تشخیصِ لبه، میتوان مدل چهره را ساخت.
گونهای از این رویکرد، «تکنیکِ زمینهی کنترلشده» است. اگر خوششانس باشید و چهرهی موجود در تصویر، در جلو باشد و زمینه هم ساده باشد، میتوانید زمینه را حذف کنید تا مرزهای چهرهها باقی بمانند.
برای این رویکرد، نرمافزارِ مربوطه دارای ردهبندهای (کلاسیفایرهای) متعددی برای تشخیص انواع مختلف چهرهها و چهرههای پروفایل است؛ نظیرِ تشخیصدهندههای چشمان، بینی، دهان و در برخی موارد، کل بدن. اگرچه پیادهسازیِ این رویکرد، آسان است اما معمولاً برای تشخیص چهره ناکافیست.
روش ویژگیبنیان، ویژگیهای ساختاریِ چهره را استخراج میکند. این روش بعنوان یک ردهبند آموزش میبیند و آنگاه به منظور متمایزسازیِ مناطق چهرهای و غیرچهرهای استفاده میشود. نمونهای از این روش، «تشخیص چهره بر اساس رنگ» است که تصاویر یا فیلمهای رنگی را اسکن میکند و مناطقی که مشابهِ رنگِ پوست هستند را پیدا میکند و آنگاه به دنبال بخشهای مختلف چهره میگردد.
انتخاب ویژگیِ هار (Haar)، به مشخصات مشابهی از چهرههای انسان برای تشکیل انطباقهایی از ویژگیهای چهره، متکی است: لوکیشن و اندازهی چشمان، دهان، پل بینی و گرادیانهای شیبگرای شدتهای پیکسل. ۳۸ لایه از ردهبندهای آبشاری جهت کسب کل ۶۰۶۱ ویژگی از هر چهرهی پیشینی وجود دارد. شما میتوانید برخی از ردهبندهای پیشآموخته را در این لینک پیدا کنید.
هیستوگرامِ گرادیانهای شیبگرا (HOG) یک استخراجگرِ ویژگی برای تشخیص شیء است. ویژگیهای استخراجشده، عبارتند از توزیع (هیستوگرامِ) جهاتِ گرادیانهای (گرادیانهای شیبگرای) تصویر.
گرادیانها معمولاً لبهها و گوشههای بزرگ و گِردی هستند که اجازه میدهند این نواحی را شناسایی کنیم. آنها بهجای مدنظر قرار دادن شدتهای پیکسل، وقوعِ بردارهای گرادیان را شمارش میکنند تا جهت نور را نشان دهند و بخشهای تصویر را جانمایی نمایند. این روش از همپوشانیِ نرمالسازی کنتراستِ موضعی، به منظور افزایش دقت استفاده میکند.
تشخیص چهره بر اساسِ ظاهر (ظاهرگرا)
پیشرفتهترین روش ظاهرگرا، به مجموعهای از تصاویر چهره جهت یافتن مدلهای چهره بستگی دارد. این روش تشخیص چهره با هوش مصنوعی به یادگیری ماشین (Machine Learning) و تحلیل آماری جهت یافتن مشخصات تصاویر چهره و استخراج ویژگیهای آن اتکاء دارد. این روش، الگوریتمهای متعددی را با هم تلفیق میکند.
الگوریتم مبتنی بر تحلیل اجزای اصلی
این الگوریتم، با استفاده از تحلیل مولفهی اصلی (PCA)، بهخوبی چهرهها را نشان میدهد. PCA برای مجموعهای از تصاویر اِعمال میشود تا بُعدِ مجموعهدیتا کاهش یابد و به بهترین شکل واریانسِ دادهها را توصیف کند. در این روش، یک چهره را میتوان بصورت ترکیبی خطی از اجزای اصلی مدلسازی کرد. تشخیص چهره در این حالت، بر اساس مقایسهی ضرایب بازنماییِ خطی است.
الگوریتم توزیعبنیان
این الگوریتم نیز شبیه PCA و تشخیصِ فیشر، زیرفضایی تعریف میکند که بیانگر الگوهای چهرهای هستند. آنها معمولاً از یک ردهبندِ آموزشدیده برخوردارند که نمونههای ردهی الگوی هدف را از الگوهای تصویرِ زمینه، تشخیص میدهد.
مدل مارکفِ مخفی
روشی استاندارد برای تشخیص وظایف است. حالتهای آن، ویژگیهایی چهرهای هستند که معمولاً بصورت نوارهای پیکسلی توصیف میشوند.
شبکهی پراکندهی غربالها
دو واحد یا گرهِ خطی را تعریف میکند: یکی برای الگوهای چهره و دیگری برای الگوهای غیرهچهرهای.
ردهبندِ بیز ساده
بر اساس بسامدِ وقوع مجموعهای از الگوها روی تصاویر آموزشی، احتمال ظهور یک چهره در تصویر را محاسبه میکند.
یادگیری قیاسی
از الگوریتمهایی نظیر C4.5 کوینلان یا FIND-Sِ میچل جهت تشخیص چهره استفاده میشود (با خاصترین فرضیه و تعمیمدهی).
شبکههای عصبی نظیر GANها، از جمله جدیدترین و قویترین روشهای تشخیص ، از جمله در زمینه تشخیص چهره، تشخیص احساس و عواطف و بازشناسی چهره است.
پردازش ویدئو: تشخیص چهرهی حرکتبنیان
در تصاویر ویدئویی، میتوانید از حرکت به عنوان یک راهنما استفاده کنید. یکی از حرکتهای خاص چهره، پلکزدن است؛ بنابراین اگر نرمافزار بتواند یک الگوی پلکزنیِ قاعدهمند را مشخص کند، میتواند چهره را تشخیص دهد. سایر حرکتها، مانند حرکت پرههای بینی یا بالارفتنِ ابروها، چروک روی پیشانی و دهانِ باز، نشانههایی از وجود چهره هستند. وقتی چهرهای شناسایی میشود و یک مدل خاص چهره با یک حرکتِ خاص انطباق مییابد، آن مدل روی چهره قرار میگیرد و ردگیری چهره را قادر میسازد تا متوجه حرکات چهرهی بیشتری شود. راهحلهای برجسته معمولاً ترکیبی از چند روش هستند؛ مثلاً استخراج ویژگیهایی که قرار است در یادگیری ماشین یا الگوریتمهای یادگیریِ عمیق بکار روند.
ابزارهای تشخیص چهره با هوش مصنوعی
چندین نرمافزار تشخیص چهره وجود دارد که شامل نرمافزارهای تملیکی و منبعباز یا سورسباز (Open Source) میشوند که ویژگیهای متنوعی ارائه میدهند؛ از تشخیص چهره تا تشخیص احساسات و بازشناسیِ چهره.
نرمافزارهای تشخیص چهرهی تملیکی
چند نرمافزار تملیکی تشخیص چهره با هوش مصنوعی شامل موارد زیر هستند:
آمازون ریکاگنیشن (Amazon Rekognition)
Amazon Rekognition مبتنی بر یادگیری عمیق است و کاملاً درون اکوسیستم خدمات وبِ آمازون تلفیق شده است. این نرمافزار، هم برای تشخیص و هم برای بازشناسی راهحلی مقاوم است و برای تشخیص هشت احساس پایه قابل استفاده است، نظیر «خوشحال و غمگین، عصبانی و غیره». در عین حال، قادرید با استفاده از این نرمافزار، تا ۱۰۰ چهره را در یک تصویر واحد مشخص سازید. گزینهای نیز برای فیلم وجود دارد و قیمت آن برای کاربریهای مختلف، متفاوت است.
فیس پلاس پلاس (Face++)
Face++ یک سرویس ابریِ تحلیل چهره است که از یک ابزار توسعهی فناوریِ آفلاین برای iOS و اندروید نیز برخوردار است. شما میتوانید حجم نامحدودی از تقاضا را انجام دهید، اما به ازای هر سهتقاضا، یک ثانیه وقت لازم است. این نرمافزار از پایتون، PHP، جاوا، جاوااسکریپت، روبی، iOS و متلب نیز پشتیبانی میکند و خدماتی نظیر تشخیص جنسیت و احساسات، برآوردِ سن و تشخیص لندمارک نیز دارد.
آنها عمدتاً در چین فعالند، بودجهی خوبی دریافت میکنند و برای حضورشان در محصولات شرکت لنوو معروف شدهاند. با این حال، توجه داشته باشید که شرکتِ اصلیشان –یعنی Megvii-، اواخر سال ۲۰۱۹ توسط ایالات متحده تحریم شد.
لامبدا لبز (Lambda Labs)
رابط برنامهنویسیِ کاربردیِ «بازشناسی چهره و تشخیص چهرهی» (Lambda Labs)، کارِ بازشناسیِ چهره، تشخیص چهره، تعیین پوزیشنِ چشمان، پوزیشن بینی، پوزیشن دهان و ردهبندی جنسبت را انجام میدهد. این نرمافزار، ۱۰۰۰ درخواست رایگان در ماه ارائه میدهد.
کایروس (Kairos)
Kairos، انواع راهحلهای تشخیص بازشناسیِ تصویر را ارائه میدهد. توانمندیهای رابط برنامهنویسیِ کاربردی آنها شامل تشخیص جنسیت، سن، بازشناسیِ چهره و عمق عاطفی در تصویر و ویدئو است. آنها ۱۴ روز استفادهی رایگان به همراه ۱۰۰۰۰ درخواست را ارائه میدهند و ابزارهای توسعه فناوری را برای PHP، جاوااسکریپت، داتنت و پایتون فراهم میسازند.
رابط برنامهنویسی «خدمات شناختیِ آزورِ مایکروسافت»، اجاز میدهد ماهانه ۳۰۰۰۰ درخواست ارائه دهید و بصورت رایگان، ۲۰ درخواست در دقیقه را شامل میشود. برای درخواستهای پولی، قیمت بستگی به تعداد بازشناسیها در هر ماه دارد، که از ۱ دلار به ازای هر ۱۰۰۰ بازشناسی شروع میشود. ویژگیهای آن عبارتند از: تخمین سن، تشخیص جنسیت و احساسات، تشخیص لندمارک. ابزارهای توسعه فناوری، از Go، پایتون، جاوا، داتنت و جاوااسکریپت پشتیبانی میکنند.
پاراویژن (Paravision)
Paravision، یک شرکت بازشناسیِ چهره است که برای شرکتها خدماتی در این زمینه ارائه میدهد. تشخیص چهره و فعالیت و راهحلهایی برای کووید ۱۹ (بازشناسی چهره با ماسک، تلفیق با تشخیص حرارتی و غیره) از جمله خدماتشان است. این شرکت از ابزار توسعه فناوری برای C++ و پایتون برخوردار است.
تروفیس (TrueFace)
TrueFace نیز به شرکتهای مختلف خدمترسانی میکند، ویژگیهایی نظیر تشخیص جنسیت، برآورد سن و تشخیص لندمارک را به آنها ارائه میدهد.
راهحلهای تشخیص چهرهی سورس-باز
نرمافزارهای منبع باز تشخیص چهره با هوش مصنوعی موارد زیر را شامل میشوند:
Ageitgey/face_recognition
Ageitgey/face_recognition یک ریپوزیتوریِ گیتهاب با ۴۰هزار ستاره است که یکی از گستردهترین کتابخانههای تشخیص چهره است. مشارکتکنندگان ادعا میکنند که «سادهترین رابط برنامهنویسیِ کاربردیِ بازشناسی چهره برای پایتون و خطِ فرمان است». با اینحال، نواقص آنها آخرین نسخهی سال ۲۰۱۸ است و دقت بازشناسیِ ۹۹.۳۸ درصدی دارد که در سال ۲۰۲۱ بهتر نیز خواهد شد. اما از REST API برخوردار نیست.
دیپ فیس (Deepface)
Deepface چارچوبی برای پایتون با ۱۵۰۰ ستاره روی گیتهاب است که تحلیل ویژگیهایی نظیر سن، جنسیت، نژاد و احساسات را انجام میدهد. REST API را نیز فراهم میسازد.
فیس نت (FaceNet)
FaceNet که ساخت گوگل است، از کتابخانهی پایتون برای پیادهسازی استفاده میکند. ریپوزیتوری آن ۱۱.۸ هزار ستاره دارد. در عین حال، آخرین آپدیت آن در سال ۲۰۱۸ انجام شده است. دقت بازشناسی آن ۹۹.۶۵ درصد است و REST API ندارد. یک درونکاشتِ یکپارچه برای بازشناسی و کلاسترینگِ چهره است.
اینسایت فیس (InsightFace)
InsightFace یک کتابخانه پایتونِ دیگر با ۹.۲ هزار ستاره در گیتهاب است و ریپوزیتوریِ آن نیز مدام بهروز میشود. دقت بازشناسی آن ۹۹.۸۶ درصد است. آنها مدعیاند که الگوریتمهای گوناگونی برای تشخیص چهره و بازشناسی چهره و همترازسازی است.
اینسایت فیس رست (InsightFace-REST)
InsightFace-REST یک ریپوزیتوریِ روزآمد است که هدفش ارائهی یک REST APIای با کاربریِ آسان و راحت و مقیاسپذیر برای تشخیص و بازشناسی چهره است، با استفاده از FastAPI برای سرویسدهی و NVISIA TensorRT برای مداخلهی بهینهسازیشده است.
اُپن سی وی (OpenCV)
OpenCV یک API نیست اما ابزاری ارزشمند با بیش از ۳۰۰۰ الگوریتم بیناییِ رایانهی بهینهساخته است و گزینههای زیادی را در اختیار برنامهسازان قرار میدهد، از جمله مدولهای Eigendacerecognizer و LBPHFacerecognizer یا Ipbhfacerecognition.
اُپن فیس (OpenFace)
OpenFace پیادهسازیِ یک پایتون و Torch برای بازشناسی چهره با استفاده از شبکههای عصبیِ عمیق است. آن روی CVPR 2015 قرار گرفته است.
کلام آخر
تشخیص چهره با هوش مصنوعی، اولین گام برای تحلیلِ بیشتر چهره است، از جمله بازشناسی، تشخیص احساس یا تولید چهره. با این حال، لازم است سایر کنشها اقدام به گردآوری تمام دادههای مورد نیاز برای پردازشِ بیشتر نمایند. تشخیص چهرهی مقاوم، پیشنیازی برای ابزار تحلیلی، ردگیری و بازشناسیِ پیچیده است و بنیانِ بینایی رایانهای است. یوآیدی از این تکنولوژی برای احراز هویت دیجیتال بهره میبرد. همانطور که در احراز هویت سامانه ثنا و سجام و همچنین در فرایند احراز هویت سامانه روابط کار قابل مشاهده است، هوش مصنوعی میتواند جایگزین دقیق و خوبی برای این وظیفه باشد.