Face RecognitionPython

Face Recognition การเปรียบเทียบใบหน้าจากรูปภาพด้วย Python

วิธีการยืนยัน และเปรียบเทียบใบหน้าด้วย Python และ Face Recognition จากการเปรียบเทียบใบหน้าจากรูปภาพ

บทเรียน วิธีการยืนยัน และเปรียบเทียบใบหน้าด้วย Python และ Face Recognition จากการเปรียบเทียบใบหน้าจากรูปภาพ

บทเรียนก่อนหน้า:

ทีนี้ ถ้าเรามีใบหน้าตัวอย่างแล้วต้องการมาสอนให้ ML หรือ Machine Learning เข้าใจว่านี่คือใบหน้าของใคร บทความนี้ค่อนข้างจะ Basic หน่อย คือเทียบใบหน้าจากภาพแบบบ้านๆ โดยอ้างการการรู้จำใบหน้า เปรียบเทียบใบหน้าบุคคล กับใบหน้าที่อยู่ในฐานข้อมูล(ซึ่งก็คือฐานข้อมูลรูปภาพ)

เรามาเตรียมไฟล์รูปภาพกันหน่อยดีกว่า อย่างภาพแรกภาพผมเองคือ:

ตั้งชื่อว่า banyapon.jpg
ตั้งชื่อว่า banyapon.jpg

และหาภาพมาเปรียบเทียบอีกภาพคือภาพที่ใส่แว่นเหมือนกัน และอีกภาพไม่ใส่แว่น มาใช้งาน:

ตั้งชื่อ banyapon_outdoor.png
ตั้งชื่อ banyapon_outdoor.png
ตั้งชื่อว่า banyaponclear.jpg
ตั้งชื่อว่า banyaponclear.jpg

มีแต่รูปตัวเองแฮะ แต่เอาเถอะ แสดงใบหน้าตัวเองบ้าง หลายคนอยากเห็นน่าตาจริงๆ อยู่ ต่อมาเก็บไฟล์ภาพเหล่านี้ไว้ใน Folder เดียวกันกับไฟล์ facetest.py

ทำการประกาศเรียกใช้งาน Face Recognition ก่อนโดยการประกาศ:

สร้างชุดข้อมูล Database คือภาพที่อยู่ในฐานข้อมูล เป็นภาพถ่ายที่เราจะใช้อ้างอิง ในระบบ หรือเป็นภาพต้นแบบสำหรับเปรียบเทียบถ้ามีภาพอื่นๆ มาจากแหล่งต่างๆ จะนำมาเปรียบเทียบกับภาพนี้ผมเลือกใช้ภาพ banyapon.jpg เป็นภาพ ของ Database

จะเห็นว่าระบบที่เราทำนั้นเราต้องสร้าง Pattern ของภาพไว้โดยการเข้ารหัสภาพใบหน้า ลงในตัวแปร data_base_face_encoding ในบรรทัด:

ชุดรหัสจะถูกเข้ารหัสของ Face Recognition เพื่อเก็บ Pattern ใบหน้า เมื่อเราจะหาภาพใหม่มาเปรียบเทียบ เราจะทดสอบโดยการเอาภาพที่ใส่แว่นเหมือนกันมาทดสอบก่อน:

สร้างตัวแปรชื่อ sample_image เก็บที่อยู่ของภาพนี้ไว้ และทำการเข้ารหัสเพื่อเปรียบเทียบว่าตรงหรือใกล้เคียงหรือไม่ในตัวแปร sample_face_encoding

ทำการเปรียบเทียบรหัสใบหน้าผ่านตัวแปร Result นั่นคือ:

ถ้ารหัสเหมือนกันมันจะบอกว่า It’s me Banyapon ผมเองบัญญพนต์ แต่ถ้าไม่ใช่มันจะบอกว่า I don’t know him! (ไม่รู้จักไม่ใช่คนเดียวกันแน่ๆ)

ดังนั้นภาพรวมของไฟล์จะเป็นแบบนี้:

ทดสอบโดยการกด Debug

ผลลัพธ์คือ Terminal มันจะบอกเองว่าใช่เราไหม!

งั้นเปลี่ยนจาก banyapon_outdoor.png เป็นภาพไม่ใส่แว่นดูหน่อย นั่นคือ banyaponclear.jpg ทดสอบอีกครั้งกด Debug ดูหน่อย จะเห็นว่าใส่แว่นไม่ใส่แว่นไม่ใช่ปัญหา

หากเราหาภาพคนอื่น มาใส่เพื่อเปรียบเทียบใบหน้าแทนจะแสดงผลยังไง

เห็นยังว่าถ้าใบหน้าไม่ตรงกันมันก็จะยืนยันใบหน้าไม่ได้ บทเรียนต่อไป OpenCV กันหน่อยดีกว่า!

Tags

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button
Close
Close

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน