Introduction to Face Recognition

Self Study Camp
3 min readJun 27, 2021

--

by Phue Pyae Maung

Face Recognition [Source]

Face recognition ဆိုတာ စက်က ဓါတ်ပုံတစ်ပုံကိုကြည့်ပြီး ဓါတ်ပုံထဲကလူကဘယ်သူဆိုတာ ခွဲခြားဖော်ပြပေးတဲ့ နည်းလမ်းတစ်ခုပဲဖြစ်ပါတယ်။ လူတွေအနေနဲ့ကတော့ လင်းနေတဲ့အချိန်ဖြစ်စေ၊ မှောင်နေတဲ့အချိန်ဖြစ်စေ၊ အသက်ကြီးလာလို့မျက်နှာအသွင်အပြင်ပြောင်းသွားသည်ဖြစ်စေ၊ ယနေ့အခါလိုမျိုး mask တပ်ထားတဲ့ မျက်နှာဆိုရင်တောင် ဘယ်သူဘယ်ဝါဆိုတာခွဲခြားဖို့ သိပ်မခက်ခဲပေမယ့် စက်တွေအတွက်တော့ လူတွေလိုခွဲခြားတတ်ဖို့ သိပ်မလွယ်ကူလှပါဘူး။

ဒါကြောင့် Histogram Equalization နဲ့ CNN ( Convolution Neural Network) ကိုအခြေခံတဲ့ နည်းလမ်းကိုအသုံးပြုပြီး စက်တွေကိုလူတစ်ယောက်လိုမျိုး ခွဲခြားနိုင်လာအောင် စပြီး train ခဲ့ကြပါတယ်။

အကြမ်းအားဖြင့် ဘယ်လိုလုပ်လဲဆိုရင်တော့ အရင်ဆုံး ရလာတဲ့ပုံကို preprocessing လုပ်ဖို့အတွက် Histogram Equalization ကိုသုံး၊ ပြီးမှ Google Deep Learning framework နဲ့တည်ဆောက်ထားတဲ့ CNN တွေထဲကို ပုံကိုထည့်ပြီးမှ စက်က ဘယ်သူဖြစ်ပါတယ်ဆိုတဲ့ results တွေကိုထုတ်ပေးတာဖြစ်ပါတယ်။

About Face Recognition

Face Recognitionကို ၁၉၆၀ လောက်ကတည်းက စတင်အသုံးပြုခဲ့ပြီး တိုးတက်လာတဲ့ခေတ်အလျောက် အများပြည်သူလုံခြုံရေးလိုအပ်ချက်မြင့်မားလာတာ၊ ပိုမိုစိတ်ချရတဲ့ အထောက်အထား စစ်ဆေးအတည်ပြုနည်းလမ်းတွေ လိုအပ်လာတာကြောင့် ယနေ့အချိန်ထိ ရေပန်းစားနေဆဲဖြစ်ပါတယ်။

Face Recognition ထဲမှာမှ နည်းလမ်းတွေကအမျိုးမျိုးရှိပါတယ်။

ဥပမာ-အရေးကြီးတဲ့ သတင်းအချက်အလက်တွေ မပေါက်ကြားအောင် ၊မလိုအပ်တဲ့လူတွေ မရအောင် ကာကွယ်တဲ့နေရာတွေမှာ face authentication ၊ လူတစ်ယောက်က သူ့ ID နဲ့ တူကြောင်း အတည်ပြုစစ်ဆေးလိုတဲ့အခါတွေ face verification ၊ မျက်နှာခွဲခြားသိမြင်လိုတဲ့ အခါတွေမှာ Face identification ဆိုပြီးရှိပါတယ်။ ဒီနည်းလမ်းတွေကို ဓါတ်ပုံတွေမှာသာမက video တွေမှာပါ အသုံးပြုနိုင်ပါတယ်

Face Recognition Processes

ဒါဆိုရင် ဒီလိုမျိုးနည်းလမ်းတွေကို စက်တွေက အဆင့်ဆင့် ဘယ်လိုလုပ်ဆောင်သွားလည်းဆိုတာ ဆက်ကြည့်ကြရအောင်။

Face Recognition Process တွေကိုတော့ အကြမ်းအားဖြင့် အပိုင်း ၄ ပိုင်းခွဲခြားထားပါတယ်။

  1. Face Detection — ပုံထဲမှာ မျက်နှာဘယ်နှစ်ခုပါလဲစစ်ပြီး ပါဝင်တဲ့မျက်နှာတွေကို bounding box လေးနဲ့သတ်မှတ်လိုက်တယ်။
  2. Face Alignment — Database ထဲမှာရှိတဲ့ data တွေနဲ့တိုက်ဖို့ ရလာတဲ့မျက်နှာပုံတွေကို အချိုးအစားကျနအောင်လုပ်တယ်။ မလိုအပ်တဲ့ အစိတ်အပိုင်းတွေကိုဖယ်ထုတ်တယ်။
  3. Feature Extraction — Face recognition လုပ်ဖို့လိုအပ်တဲ့ features တွေကို မျက်နှာပုံထဲက ဆွဲထုတ်တယ်။
  4. Face Recognition — နောက်ဆုံးမှာတော့ database ထဲမှာရှိတဲ့ data တွေနဲ့ တိုက်စစ်ပြီး တူညီတဲ့ ရလဒ်ပုံကိုထုတ်ပေးပါတယ်
[Source]

ဒီအဆင့်တွေထဲကမှ ပထမဆုံး အဆင့်ဖြစ်တဲ့ Face Detection အဆင့်က ဦးဆုံးအဆင့်လည်းဖြစ်သလို အရမ်းအရေးကြီးတဲ့ အဆင့်လည်းဖြစ်ပါတယ်။ ဘာလိုလည်းဆိုတော့ ဒီအဆင့်မှာ မျက်နှာကို သေချာ detect မလုပ်နိိုင်တော့ဘူးဆိုရင် နောက်ပိုင်းအဆင့်တွေ ဘယ်လောက်ကောင်းကောင်း result ကကောင်းမလာနိုင်ပါဘူး။ ဒါ့ကြောင့် ဒီအဆင့်မှာ မျက်နှာက ဘယ်လိုအနေအထားမျိုးမှာဖြစ်စေ ( angles, light level, hairstyles, hats, glasses, facial hair, makeup, age) စတဲ့အချက်တွေအပြင် အခြားအသေးစိတ် အချက်အလက်တွေထိ သေချာ detect လုပ်နိုင်ရမှာ ဖြစ်ပါတယ်။

Face Detection Methods from Papers

၁၉၉၅ ခုနှစ်က paper တစ်ခု “Human and machine recognition of faces: A Survey” ဆိုတဲ့ထဲမှာလည်း စာရေးသူက face Recognition tasks သုံးခုကို ဖော်ပြခဲ့ပါတယ်။ အဲ့ဒါတွေကတော့

  1. Face Matching — ပေးထားတဲ့ မျက်နှာနဲ့ တူညီတဲ့ မျက်နှာကိုရှာတယ်။
  2. Face similarity — ပေးထားတဲ့ မျက်နှာနဲ့ ခပ်ဆင်ဆင် မျက်နှာကိုရှာတယ်။
  3. Face Transformation — ပေးထားတဲမျက်နှာကနေ အခြားမျက်နှာအသစ်တွေ ထုတ်တယ်။ (ဥပမာ ယနေ့ လူငယ်အများအပြားဆော့နေကြတဲ့ face app လိုမျိုး ကိုယ့်ပုံကို အသက်ကြီးအာင်လုပ်တာတွေ၊ အခြားလူတစ်ယောက်မျက်နှာနဲ့ပေါင်းပြီး မျက်နှာအသစ်ထွက်အောင်လုပ်တာတွေ၊ ကိုယ့်ဆံပင်ပုံစံကို အမျိုးမျိုးပြောင်းကြည့်တာတွေ ဖြစ်ပါတယ်။)

2001 ခုနှစ်က “Face Detection: A Survey” ဆိုတဲ့ paper မှာဆိုရင် Face Detection method ကို အဓိကအားဖြင့် ၂ ပိုင်း ( Feature- Based နဲ့ Image-Based) ခွဲလို့ရပါတယ် ဆိုပြီး ဖော်ပြထားပါတယ်။

  1. Feature-Based

Feature-Based မှာဆိုရင် သူက လူမျက်နှာနဲ့ ဆိုင်တဲ့ အချက်တွေကို မှတ်ထားတဲ့ filter လေးတစ်ခုနဲ့ အလုပ်လုပ်တယ်။ ဓါတ်ပုံတစ်ပုံကိုတွေ့ရင် အဲ့ဒီ filter လေးနဲ့ match ဖြစ်မဖြစ်လိုက်စစ်တယ်။ match ဖြစ်တယ်ဆိုရင် ဒါလူပုံပေါ့။ အဲ့လိုနည်းလမ်းက မြန်တယ်၊ ပုံနဲ့ filter နဲ့ match ဖြစ်တယ်ဆိုရင်ကောင်းပေမဲ့ match ဖြစ်တာရှာမတွေ့ဘဲ လုံးဝ fail ဖြစ်သွားတာတွေလည်းရှိပါတယ်။ ဒါကတော့သူ့ရဲ့ အားနည်းချက်ပေါ့။

2. Image-Based

Image-Based ကတော့ရှင်းပါတယ်။ သူ့ဆီပုံတစ်ပုံရောက်လာရင် သူကပုံတစ်ပုံလုံးကိုခြုံပြီး ကြည့်လိုက်တယ်။ ပြီးတော့ မျက်နှာဘယ်နှစ်ခုပါတယ် ဆိုတာတန်းပြီး ဖော်ပြပေးပါတယ်။ အဲ့လိုမြန်မြန်တန်းပြီး result ထွက်ပေးနိုင်ဖို့အတွက် Neural Networks တွေနဲ့ တည်ဆောက်ထားရပါတယ်

“Handbook of Face Recognition” လို့ခေါ်တဲ့ ၂၀၁၁ ခုနှစ်မှာထုတ်တဲ့ စာအုပ်အရ Face Recognition မှာ mode နှစ်ခုရှိပါတယ်။

  1. Face Verification — ရလာတဲ့ မျက်နှာကို သိထားတဲ့ identity နဲ့တိုက်စစ်တယ်။(သူက ဒီလူဟုတ်လား၊ မဟုတ်ဘူးလား)
  2. Face Identification — ရလာတဲ့ မျက်နှာကို known faces database နဲ့တိုက်စစ်တယ်။(ဒီလူက ဘယ်သူလဲ)

ဒီ Face Recognition process ကြီးကို input, output တွေနဲ့ အလုပ်လုပ်တဲ့ Supervised Learning အနေနဲ့ ကြည့်မယ်ဆိုရင် လူမျက်နှာပုံပါတဲ့ ဓါတ်ပုံက input ဖြစ်မယ်၊ output ကတော့ prediction type ပေါ်မူတည်ပြီး အမျိုးမျိုးဖြစ်နိုင်ပါတယ်။

  • Face verification task မှာဆို မှန် မမှန်ဆိုတဲ့ အဖြေအတွက် binary class label or binary class probability
  • Face identification task မှာဆို categorical class label or set of probabilities
  • Similarity type task မှာဆို similarity metric ဆိုပြီး ကွဲပြားနိုင်ပါတယ်

ဒီလောက်ဆိုရင် face recognition နဲ့ပက်သက်ပြီး အကြမ်းအားဖြင့် သိသင့်သလောက်သိသွားပြီလို့ထင်ပါတယ်။

🔰 အဆုံးထိဖတ်ပေးတဲ့အတွက် ကျေးဇူးတင်ပါတယ်။ 🔰

--

--