فناوری تشخیص چهره چیست؟ / what is face recognition

فناوری تشخیص چهره چیست؟ + پیاده‌سازی با پایتون14 دقیقه مطالعه

هدیه فنولوژی به شما!

فناوری تشخیص چهره روشی منبی بر فناوری‌های روز دنیا برای شناسایی و راستی آزمایی هویت افراد بر اساس چهره‌ی آن‌ها است. سیستم‌های تشخیص چهره می‌توانند در تصاویر، فیلم‌ها و هم‌چنین به‌صورت زنده و بی‌درنگ (real time) استفاده شوند. یک سیستم تشخیص چهره از نشان‌گرهای زیستی برای مدل‌سازی ویژگی‌های چهره در یک عکس یا فیلم بهره می‌برد. این سیستم، اطلاعات پایگاه داده‌ی چهره‌های شناخته شده را با سایر چهره‌ها مقایسه می‌کند تا اینکه به جواب درست برسد. تشخیص چهره می‌تواند در شناسایی هویت افراد کمک کند و از طرف دیگر چالش‌های حریم خصوصی را بالا می‌برد. در ادامه‌ی این مقاله از فنولوژی به این سوال به طور کامل پاسخ می‌دهیم که فناوری تشخیص چهره چیست؟ و هم‌چنین با مهم‌ترین روش‌های تشخیص چهره آشنا می‌شویم. در ادامه‌ی مقاله به کاربر هوش مصنوعی، یادگیری ماشین و یادگیری عمیق در فناوری تشخیص چهره می‌پردازیم و یک نمونه از آن را با زبان برنامه نویسی پایتون و کتاب‌خانه‌ی OpenCV بررسی می‌کنیم.

کاربردهای فناوری تشخیص چهره چیست؟

پیش‌بینی می‌شود تا سال ۲۰۲۲ بازار تشخیص چهره به ۷.۷ میلیارد دلار برسد که نسبت به سال ۲۰۱۷ که ۴ میلیارد دلار بوده، رشد زیادی است. این تخمین‌های رو به رشد به این خاطر است که تشخیص چهره در انواع کاربردهای تجاری حضور دارد. این فناوری می‌تواند برای همه چیز از نظارت گرفته تا بازاریابی مورد استفاده قرار گیرد. اما این‌جا بحث کمی پیچیده می‌شود. اگر حریم خصوصی برایتان مهم است، به احتمال زیاد می‌خواهید کنترل کنید که چگونه اطلاعات شخصی شما استفاده می‌شود؛ نکته این‌جاست که اثرچهره‌ (faceprint) شما همان داده‌ی شخصی شماست. تمرکز کاربردهای فناوری تشخیص چهره با استفاده از اثرچهره، شناسایی و احراز هویت است.

فناوری تشخیص چهره چیست؟ / what is face recognition

در ادامه به زمینه‌هایی که این فناوری استفاده می‌شود اشاره می‌کنیم:

  • عامل احراز هویت ثانویه، برای اضافه کردن امنیت افزوده بر هر نوع فرایند ورود (log-in) .
  • دسترسی به نرم‌افزارهای موبایل، بدون رمز.
  • دسترسی به خدمات آنلاینی که در گذشته استفاده شده،‌ مانند ورود به پلتفرم‌های آنلاین.
  • دسترسی به ساختمان‌ها، منازل، دفترها و هر نوع املاک و ورودی‌های فیزیکی.
  • استفاده به عنوان یک روش پرداختی، در فروشگاه های فیزیکی و آنلاین.
  • دسترسی به یک دستگاه قفل شده.
  • قابلیت پذیرش گردشگران در هواپیماها،‌هتل‌ها و … .

چالش‌های فناوری تشخیص چهره چیست؟

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

نحوه‌ی کارکرد فناوری تشخیص چهره چیست؟

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

فناوری تشخیص چهره چیست؟ / what is face recognition

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

بنابراین فناوری تشخیص چهره چگونه کار می‌کند؟ تکنولوژی‌های متفاوتی به میدان آمده‌اند اما در ادامه به مراحل پایه‌ی این فناوری اشاره می‌کنیم.

مراحل پایه‌ای فناوری تشخیص چهره چیست؟

مراحل فناوری تشخیص چهره چیست؟ / what is face recognition steps

 

مرحله‌ی اول: عکسی از چهره‌ی شما از یک فیلم یا عکس گرفته می‌شود. چهره‌تان ممکن است به تنهایی و یا در گروه نمایان باشد. هم‌چنین ممکن است تصویر شما صاف و یا متمایل باشد.

مرحله‌ی دوم: نرم‌افزار تشخیص چهره هندسه‌ی چهره‌ی شما را می‌خواند. عوامل اصلی فاصله‌ی میان چشمان و هم‌چنین فاصله‌ی میان پیشانی و چانه‌ی شما هستند. این نرم‌افزار نقاط برجسته‌ی تصویرشما که کلید اصلی تمایز چهره‌تان است را شناسایی کرده و می‌تواند ۸۶ تا از این نقاط برجسته را پیدا کند. نتیجه‌ی کار می‌شود همان امضای تصویری شما!

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

مرحله‌ی چهارم: در این مرحله تشخیص صورت می‌گیرد؛ به این معنی که اثرچهره‌ی شما با یکی از داده‌های پایگاه داده‌ منطبق می‌شود.

ابزارهای آماری پرکاربرد در فناوری تشخیص چهره چیست؟

در ادامه به روش‌ها و ابزهای آماری پرکاربرد در تشخیص چهره می‌پردازیم.

  • PCA (آنالیز مولفه‌ی اصلی/Principal Component Analysis)

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

روش PCA چیست؟ / what is PCA

  • DCT (تبدیل گسسته‌ی کسینوسی / Discrete Cosine Transform)

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

  • LDA (تحلیل تفکیک کننده خطی/Linear Discriminant Analysis)

این روش به طور گسترده‌ای استفاده می‌شود برای یافتن ترکیبات خطی ویژگی‌ها با حفظ تفکیک کلاس آن‌ها. برخلاف PCA، در روش LAD سعی می‌کنیم تفاوت میان سطوح را مدل‌سازی کنیم. برای هر سطح، در روش LDA بردارهای تصویرشده‌ی چندگانه، متفاوت خواهد بود.

بخوانید:   شبکه عصبی عمیق | شبکه عصبی چیست؟ | تفاوت یادگیری عمیق و شبکه عصبی

تفاوت PCA و LDA / PCA vs LDA

  • LPP (تصویر حفظ کننده محل/ Locality Preserving Projections)

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

  • موجک گابور (Gabor Wavelet)

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

تبدیل موجک گابور / gabor's wavelet transform

  • ICA(تحلیل مولفه‌ی مستقل/ Independent Component Analysis)

این روش سعی می‌کند داده‌ها را تبدیل کند به ترکیب خطی داده‌هایی که از لحاظ آماری مستقل از هم هستند. بنابراین هدف آن تهیه‌ی داده‌های مستقل است که تصاویر نامرتبط را ارائه دهد. ICA نیز یک جایگزین PCA است که نمایندگی قدرت‌مندتری از داده‌ها را دارد. این یک ملاک تفکیک برای تحلیل است که می‌تواند روش PCA را بهبود ببخشد.

  • Kernel PCA

این روش برای به‌کارگیری توابع کرنل جهت انجام PCA غیرخطی معرفی شد. روش پایه‌ای آن اعمال یک تطابق غیرخطی به ورودی و حل یک PCA خطی در ویژگی خروجی زیرفضای موجود است.

روش‌های تکنیکال فناوری تشخیص چهره چیست؟

روش‌های گوناگونی برای فناوری تشخیص چهره وجود دارد که در ادامه به طور کامل هرکدام از آن‌ها را توضیح می‌دهیم.

۱ روش های هندسی(geometric based) / روش‌های قالبی (template based)

الگوریتم‌های تشخیص چهره به روش‌های هندسی (geometric) و روش‌های قالبی یا الگویی (template) طبقه‌بندی می‌شوند. روش‌های قالبی می‌تواند با استفاده از ابزارهای آماری پیاده‌سازی شود؛ ابزارهایی مانند SVM (ماشین بردار پشتیبانی)، PCA (آنالیز مولفه‌ی اصلی)، LDA (تحلیل تفکیک کننده خطی/Linear Discriminant Analysis)، روش‌های هسته (Kernel methods) و یا تبدیل ردیابی (Trace Transforms).

روش‌های هندسی مبتنی بر ویژگی (feature based)، ویژگی‌های محلی تصویر و ارتباط هندسی میان آن‌ها را تحلیل می‌کند؛ از این رو به روش‌های هندسی روش‌های مبتنی بر ویژگی‌ نیز گفته می‌شود.

۲ قطعه قطعه / کامل

ارتباط میان المان‌ها و یا اتصال یک عمل‌گر بدون این‌که کلیت چهره زیر سوال برود، بسیاری از پژوهش‌گران با این روش به دنبال استنباط کاراکترهای چهره هستند. در بعضی روش‌ها سعی شده از چشمان، ترکیبی از ویژگی‌ها و … استفاده شود. بعضی از مدل‌های مخفی مارکو (Markov Model) نیز وارد این دسته بندی می‌شوند و پردازش ویژگی (feature processing) خیلی در تشخیص چهره کاربرد دارد.

۳ روش‌های ظاهری (Appearance-Based) / روش‌های مدلی (Model-Based)

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

مدل ظاهری به روش‌های خطی و غیرخطی دسته بندی می‌شود. روش‌های قبلی PCA، LDA، IDA در روش مستقیم و kernel PCA در روش غیر خطی استفاده می‌شوند. از سوی دیگر، در روش مدلی دسته‌بندی‌های دوبعدی و سه بعدی از تطابق الاستیک نمودارهای خوشه‌ای بهره می‌برند.

آموزش پایتون

۴ قالب / آماری / شبکه‌های عصبی

۱.۴ تطابق قالبTemplate Matching  :

در تطابق قالب الگوها با استفاده از نمونه، مدل، پیکسل، زمینه و … نشان داده می‌شوند. عمل‌گر تشخیصی معمولا یک هم‌بستگی و یا معیار فاصله است.

۲.۴ روش آماری:

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

۳.۴ شبکه‌های عصبی

شبکه‌های عصبی / neural networks

شبکه‌های عصبی از روش‌های تشخیص الگو و دسته‌بندی استفاده می‌کند. کوهونن اولین کسی بود که نشان داد می‌شود از یک شبکه‌ی عصبی برای تشخیص جهره‌های هم ردیف و نرمال شده استفاده کرد. روش‌هایی وجود دارند که با استفاده از شبکه‌های عصبی عمل استخراج ویژگی (feature extraction)‌ را انجام می‌دهند. روش‌های زیادی وجود دارند که اگر با ابزارهایی مانند PCA یا LCA ترکیب شوند، می‌توانند یک شناساگر ترکیبی برای تشخیص چهره شوند. چیزی که در تصویر می‌بینید شبکه‌های عصبی پیش‌رو هستند که مجهر به نقشه‌های خودسازمان‌دهنده‌ی PCA و شبکه‌های عصبی حلقوی چند لایه هستند که کارایی مدل را افزایش می‌دهند.

شبکه‌های عصبی با فیلترهای گابور

این روش عملیات تشخیص چهره را با پیاده سازی یک شبکه‌ی عصبی و با استفاده از الگوریتم انتشار به عقب (backpropagation) انجام می‌دهد. در ابتدا یک مرحله‌ی قبل از پردازش وجود دارد. هر تصویر با درجه‌ی وضوح و روشنایی خود‌، نرمال سازی می‌شود. سپس تصاویر با فیلتر گابور پردازش می‌شوند. فیلتر گابور پنج مولفه‌ی مسیریابی و سه فرکانس مکانی دارد بنابراین با ۱۵ موجک گابور مواجه هستیم.

تبدیل موجک گابور / gabor's wavelet transform

شبکه‌های عصبی و مدل مخفی مارکو HMM یا Hidden Msrkov Model

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

شبکه‌های عصبی فازی

شبکه‌های عصبی فازی برای تشخیص چهره در سال ۲۰۰۹ میلادی معرفی شدند. در این شبکه‌ها یک پرسپترون (perceptron) چندلایه برای تشخیص چهره استفاده می‌شود. مفهوم پشت این قضیه، اتخاذ سطوح قابل تصمیم گیری در معادلات غیرخطی گوناگون است، کاری که با یک پرسپترون چند لایه‌ی معمولی به سختی قابل انجام است. بردارهای ویژگی از تبدیل موجک گابور استفاده می‌کنند.

شبکه‌های عصبی فازی / fuzzy neural networks

فناوری تشخیص چهره چیست؟ انواع تشخیص چهره با OpenCV

روش‌های زیادی برای تشخیص چهره وجود دارد که در ادامه با کتاب‌خانه‌ی معروف OpenCV به بررسی سه روش تشخیص چهره می‌پردازیم. در ابتدا، تصویر آماداه‌ی پردازش می‌شود و سپس موتور تشخیص چهره برای شناسایی چهره‌ها تعلیم (train) داده می‌شود. پس از تعلیم مدل،‌ آن را تست می‌کنیم تا نتایج را بررسی کنیم. در ادامه با سه نوع مدل OpenCV آشنا می‌شویم و سپس نمونه‌ای ساده از برنامه نویسی آن را خواهیم دید.

  •  تشخیص دهنده‌ی EigenFaces

این تشخیص دهنده همه‌ی تصاویر مورد تعلیم و کاراکترهای آن‌ها را به عنوان یک مجموعه در نظر می‌گیرد و سعی می‌کند مولفه‌ها را کاهش دهد. این مولفه‌ها، مولفه‌های ضروی و مهم هستند و سایر بخش‌های تصاویر (که پراکندگی بالایی دارند) را نادیده می‌گیرند. در این روش علاوه بر استخراج المان‌های حیاتی از داده‌های مورد تعلیم،‌ حافظه‌ی زیادی نیز ذخیره می‌شود زیرا بخش‌های کم اهمیت‌تر نادیده گرفته می‌شوند.

  •  تشخیص دهنده‌ی FisherFaces

الگوریتم‌های فیشرفیس،‌ به جای نگه داشتن ویژگی‌های مهم که بیان‌گر تصاویر همه‌ی انسان‌ها باشد، اقدام به حذف ویژگی‌های ارزش‌مندی می‌کنند که سبب تفکیک یک شخص از دیگری می‌شود. این ویژگی‌های خاص هر فرد،‌ نسبت به سایر افراد غالب نیستند و به شما گزینه‌ای می‌دهد که بتوانید یک فرد را از بقیه متمایز کنید.

  • هیستوگرام الگوهای دوتایی محلی (Local Binary Patterns Histograms) یا LBPH

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

بخوانید:   برنامه نویسی هوش مصنوعی در سال ۲۰۲۰

نمونه کد پایتون فناوری تشخیص چهره چیست؟

منبع: TOWARDSDATASIENCE
امیرحسین سلیمانی‌نسب
امیرحسین سلیمانی‌نسب
دانشجوی مهندسی پزشکی دانشگاه امیرکبیر - هم‌بنیان‌گذار فنولوژی
عضویت
اطلاع از
1 دیدگاه
قدیمی‌ترین‌ها
جدیدترین‌ها
بازخورد در متن
دیدن همه دیدگاه‌ها

بسیار عالی بود 😃

فنولوژی را در شبکه‌های اجتماعی دنبال کنید

©۲۰۲۰ – کلیه حقوق مادی و معنوی متعلق به فنولوژی است.