Face recognition หรือระบบจดจำใบหน้า คือระบบที่สามารถระบุตัวตนด้วยภาพหรือวิดีโอที่มีใบหน้าปรากฏ เช่น การสแกนใบหน้าเพื่อเข้าบริษัท เครื่องสแกนใบหน้าจะทำการตรวจสอบใบหน้าที่สแกนเข้ามา และอนุญาตหรือไม่อนุญาตให้บุคคลใด ๆ เข้าบริษัท ส่วนที่ทำการสแกนใบหน้าและให้ผลลัพธ์ คือระบบ Face recognition นั่นเอง
Face Recognition ยืนยันตัวตนด้วยใบหน้าพนักงานของ THiNKNET คืออะไร
ซึ่ง Application ที่พัฒนาขึ้นมานั้นมี feature ยืนยันตัวตนด้วยรูปถ่ายใบหน้าของพนักงาน เราจึงต้องการพัฒนาระบบที่สามารถยืนยืนตัวตนจากรูปถ่ายใบหน้าได้อย่างอัตโนมัติ โดยสามารถจำแนกระบุตัวตนด้วยใบหน้า ( Face verification ) และจำแนกใบหน้าที่รู้จักและไม่รู้จักได้ ( Face identification ) แม้ว่าทุกวันนี้จะมีเทคโนโลยีสำเร็จรูป แต่เรามีความเชี่ยวชาญในการใช้เทคโนโลยีอยู่แล้ว เราจึงเลือกสร้าง Service Face Recognition ของเราขึ้นมาเอง
การทำงานของ Face Recognition
ภาพรวมการทำงานของระบบนี้จะเป็น Step ง่าย ๆ คือการรับ input เป็นรูปภาพ -> ประมวลผล (จำแนกตัวตนจากใบหน้า) -> และให้ output เป็นชื่อบุคคล ออกมาเป็นคำตอบดังในรูปนี้
ภาพที่ 1 ภาพรวมการทำงานของ Face recognition
โดยขั้นตอนการประมวลผลจะถูกแบ่งออกเป็น 2 ขั้นตอน คือ การเตรียมความพร้อมของรูปภาพ (preprocessing) และ การจำแนกรูปภาพเพื่อระบุตัวตนจากใบหน้า (classification)
-
การเตรียมความพร้อมของรูปภาพ (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
-
การจัดจำแนกใบหน้าเพื่อระบุตัวตน (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