เช็กอินเข้างานง่ายขึ้น ด้วยเทคโนโลยี Face Recognition ที่ THiNKNET พัฒนาขึ้นเอง

เช็กอินเข้างานง่ายขึ้น ด้วยเทคโนโลยี Face Recognition ที่ THiNKNET พัฒนาขึ้นเอง
14/09/20   |   283   |  

Face recognition หรือระบบจดจำใบหน้า คือระบบที่สามารถระบุตัวตนด้วยภาพหรือวิดีโอที่มีใบหน้าปรากฏ เช่น การสแกนใบหน้าเพื่อเข้าบริษัท เครื่องสแกนใบหน้าจะทำการตรวจสอบใบหน้าที่สแกนเข้ามา และอนุญาตหรือไม่อนุญาตให้บุคคลใด ๆ เข้าบริษัท ส่วนที่ทำการสแกนใบหน้าและให้ผลลัพธ์ คือระบบ Face recognition นั่นเอง

Face Recognition ยืนยันตัวตนด้วยใบหน้าพนักงานของ THiNKNET คืออะไร

THiNKNET ทดลองให้พนักงาน Work from Home เพื่อลดความเสี่ยงในการกระจายเชื้อไวรัส Covid-19 หลังจากนั้นเราปรับเปลี่ยนรูปแบบการทำงานเป็น Remote Working และได้พัฒนา Application เพื่อให้พนักงานเช็กอิน-เช็กเอาท์ Monitor เวลาเข้าออกงานของตัวเองในขณะที่ทำงานอยู่ที่บ้านได้

ซึ่ง Application ที่พัฒนาขึ้นมานั้นมี feature ยืนยันตัวตนด้วยรูปถ่ายใบหน้าของพนักงาน เราจึงต้องการพัฒนาระบบที่สามารถยืนยืนตัวตนจากรูปถ่ายใบหน้าได้อย่างอัตโนมัติ โดยสามารถจำแนกระบุตัวตนด้วยใบหน้า ( Face verification ) และจำแนกใบหน้าที่รู้จักและไม่รู้จักได้ ( Face identification ) แม้ว่าทุกวันนี้จะมีเทคโนโลยีสำเร็จรูป แต่เรามีความเชี่ยวชาญในการใช้เทคโนโลยีอยู่แล้ว เราจึงเลือกสร้าง Service Face Recognition ของเราขึ้นมาเอง


การทำงานของ Face Recognition

ภาพรวมการทำงานของระบบนี้จะเป็น Step ง่าย ๆ คือการรับ input เป็นรูปภาพ -> ประมวลผล (จำแนกตัวตนจากใบหน้า) -> และให้ output เป็นชื่อบุคคล ออกมาเป็นคำตอบดังในรูปนี้

ภาพที่ 1 ภาพรวมการทำงานของ Face recognition

โดยขั้นตอนการประมวลผลจะถูกแบ่งออกเป็น 2 ขั้นตอน คือ การเตรียมความพร้อมของรูปภาพ (preprocessing) และ การจำแนกรูปภาพเพื่อระบุตัวตนจากใบหน้า (classification)

  1. การเตรียมความพร้อมของรูปภาพ (preprocessing) เป้าหมายของขั้นตอนนี้ เพื่อแปลงรูปภาพที่สแกนเข้ามาหรือถ่ายรูปเข้ามาให้อยู่ในรูปแบบที่สามารถนำไปประมวลผลต่อด้วยคอมพิวเตอร์ต่อได้ ดังนั้นในขั้นตอนนี้จะมีการนำ library ที่ชื่อว่า face_recognition

ภาพที่ 2 ขั้นตอนการทำงานการเตรียมความพร้อมของรูปภาพ

สำหรับการเตรียมความพร้อมของรูปภาพจะมีขั้นตอนย่อยอีก 3 ขั้นตอน ได้แก่ Detect Face ( การตรวจจับใบหน้า), Landmark Face (การหาองค์ประกอบของใบหน้า) และ Encode Face (การเข้ารหัสใบหน้า) โดยแต่ละขั้นตอนมีเป้าหมายและหลักการทำงานดังต่อไปนี้

  • Detect Face การตรวจจับใบหน้า เป้าหมายของการตรวจจับใบหน้าคือ หาตำแหน่งของใบหน้าในรูปภาพ โดยเริ่มจากการแปรงภาพสีให้เป็นขาวดำ เนื่องจากสีไม่มีผลในการพิจารณาตำแหน่งของใบหน้า ถัดมาภาพจะถูกแปลงเป็น HOG ( Histogram of Oriented Gradients ) ซึ่งจะทำการเปลี่ยนแปลงภาพขาวดำให้กลายเป็นทิศทางความเข้มของสี โดยแต่ละ pixel จะกลายเป็นลูกศรที่บอกทิศทางความเข้มแทน

ภาพที่ 3 ภาพขาวดำที่ถูกแปรงเป็น HOG

ขั้นตอนนี้จะทำให้ได้ตำแหน่งของใบหน้าในรูปภาพ ซึ่งจะนำไปใช้ในขั้นตอนถัดไปของการเตรียมความพร้อมของรูปภาพ


  • Landmark Face การหาองค์ประกอบของใบหน้า เป้าหมายของการหาองค์ประกอบของใบหน้า คือ พยายามดัดมุมองศาของใบหน้าให้เป็นใบหน้าที่หันตรงมากที่สุด โดยการพยายามจับตำแหน่งของ คิ้ว ตา จมูก ปาก และ โครงหน้า ดังนั้นหากใบหน้ามีการหันมากเกินไปทำให้ตาไม่ครบหรือองค์ประกอบใด ๆ ไม่สมบูรณ์ ก็จะไม่สามารถดัดองศาได้ เนื่องจากไม่สามารถหาตำแหน่งขององค์ประกอบใบหน้าได้ครบ

ภาพที่ 4 ภาพที่ถูก landmark face

  • Encode Face การเข้ารหัสรูปภาพ คือ การแปลงภาพที่ได้จากการหาตำแหน่งของใบหน้าให้เป็นตัวเลข เพื่อนำไปประมวลต่อได้ โดยขั้นตอนนี้ ผลลัพธ์ที่ได้ออกมาเป็น array ของตัวเลข 128 ตัว

ภาพที่ 5 ภาพที่ถูก Encode

  1. การจัดจำแนกใบหน้าเพื่อระบุตัวตน (Classification) หลังจากที่เราทำการ preprocess รูปภาพต่าง ๆ เป็นตัวเลข เราก็จะนำชุดตัวเลขเหล่านั้นที่ได้มาจัดจำแนก ด้วยวิธี machine learning ซึ่งเป็นวิธีการเรียนรู้รูปแบบและจำแนกของชุดตัวเลข จากการระบุข้อมูลจำเพาะใบหน้า (ชื่อ, email, id ของพนักงาน) เหล่านั้น

ภาพที่ 6 ภาพรวมการจัดจำแนกด้วย Machine learning

โดย Machine learning ทางทีมได้ทำการศึกษา เลือก และทดลอง พบว่า machine learning ที่เหมาะสมกับโปรเจ็คนี้ มีทั้งหมด 2 วิธี คือ KNN (K-nearest neighbor) และ SVM (Support vector machine) โดยทั้งสองตัวจะมีวิธีการคิดที่แตกต่างกัน (ดังภาพที่ 7)

  • KNN (K-nearest neighbor) จำแนกโดยหาเพื่อนบ้านที่อยู่ใกล้จำนวน K ตัวกับข้อมูลที่จะทำนายว่าส่วนใหญ่แล้วเป็น class ใด
  • SVM (Support vector machine) จำแนกโดยหาว่าข้อมูลที่จะทำนายอยู่ใกล้เส้นที่แบ่งที่ได้เรียนรู้ใน class ใดมากสุด

ภาพที่ 7 ภาพรวมความแตกต่างระหว่าง 2 Machine learning

เมื่อทีมทดลองประสิทธิภาพโมเดลกับข้อมูลรูปภาพต่าง ๆ แล้วพบว่า machine learning แบบ SVM นั้นสามารถจำแนกใบหน้าที่รู้จักและไม่รู้จักได้ ( Face identification ) นั้นได้ดีกว่า KNN ส่วน machine learning แบบ KNN ความสามารถจำแนกระบุตัวตนด้วยใบหน้า (Face verification ) ได้แม่นยำกว่า SVM


ระบบจดจำใบหน้าที่เรียนรู้กันมานี้ก็จะถูกนำไปพัฒนาใช้ในการยืนยันตัวตนด้วยรูปถ่ายใบหน้าของพนักงาน เพื่อช่วยลดงานของแผนก HR ในการตรวจสอบว่าเป็นใบหน้าพนักงานที่กำลังทำงานจริง ซึ่งเป็น Feature ที่จะถูกนำไปเพิ่มใน Application การเช็กอิน เช็กเอาท์ของ THiNKNET เป็นนวัตกรรมที่เราคิดค้นเพื่อนำมาสนับสนุนการทำงานแบบ Work from Home นั่นเอง  

tags : face recognition thinknet



ติดตามข่าวสารและเรื่องราวดีๆ ทาง Email