31 มีนาคม 2560

Published มีนาคม 31, 2560 by with 3 comments

ทำ Face Recognition ง่าย ๆ ไม่กี่คำสั่งใน Python

สวัสดีผู้อ่านทุกท่านครับ บทความนี้จะพาผู้อ่านไปทำ Face Recognition ง่าย ๆ ไม่กี่คำสั่ง ด้วยภาษา Python กันครับ

Face Recognition คืออะไร ?


Face Recognition คือ ระบบการรู้จดจำใบหน้า เป็นอัลกอริทึมหนึ่งที่ใช้งานกันอย่างแพร่หลายในการยืนยันบุคคล ไม่ว่าจะเป็นการล็อกอินเข้าใช้งานมือถือ จนไปถึงหน่วยงานความมั่นคงที่ใช้ Face Recognition

Face Recognition จึงเป็นสิ่งที่นักพัฒนาปัญญาประดิษฐ์ให้ความสนใจ เพราะ Face Recognition เป็นส่วนหนึ่งของ CV เพื่อให้คอมพิวเตอร์รับรู้และรู้จักสิ่งที่มนุษย์มองเห็น ไม่ว่าจะเป็นบุคคล สัตว์ สิ่งของ

ในภาษา Python เราสามารถทำ Face Recognition ได้มานานแล้วโดยใช้ OpenCV และ ML

หลังจากที่ผมเคยออกบทความ ทำระบบตรวจจับใบหน้าด้วย OpenCV กับภาษา Python  มา ผมได้พบปัญหาหลายอย่างในการทำฐานข้อมูล ซึ่งยุ่งยากเกินไป

วันนี้ในโลกของ Python ได้มีนักพัฒนา ได้พัฒนาโมดูลที่ช่วยให้ทำ Face Recognition ได้ง่าย ๆ ไม่กี่คำสั่ง โดยอาศัย dlib ซึ่งเป็น machine learning ในการช่วยพัฒนา โมดูลนี้มีชื่อว่า face_recognition

โมดูล face_recognition เป็นโมดูลที่ช่วยทำให้ Face Recognition เป็นเรื่องง่าย ๆ โดยมีความสามารถหลายอย่าง ไม่ว่าจะเป็น Face Recognition , ตกแต่งหน้าตาในรูปภาพ เป็นต้น และยังสามารถนำไปทำ  Face Recognition แบบ real-time ได้อีกด้วย

  • ใช้ MIT License สามารถนำไปใช้พัฒนาในโปรแกรมเพื่อการค้าได้

  • รองรับทั้ง Python 2 และ Python 3

ติดตั้งได้ด้วยคำสั่ง pip install face_recognition

บทความนี้จะมุ่งเน้นไปในการทำ Face Recognition เท่านั้น ความสามารถอื่น ๆ และเอกสารเพิ่มเติม อ่านได้ที่ https://github.com/ageitgey/face_recognition

หากมีรูปภาพสองรูป

Steve Jobs เปิดตัว iphone4
ไฟล์ Steve_Jobs_Headshot_2010-CROP.jpg


ไฟล์ 0x600.jpg

เราต้องการทำ Face Recognition เพื่อตรวจสอบว่า ไฟล์ 0x600.jpg เป็นรูปภาพของ Steve Jobs หรือไม่ โดยใช้รูปภาพ  Steve_Jobs_Headshot_2010-CROP.jpg เป็นต้นแบบ

ทำได้โดยใช้โค้ด
import face_recognition
picture_of_Steve_Jobs = face_recognition.load_image_file("Steve_Jobs_Headshot_2010-CROP.jpg") # ไฟล์ต้นแบบ
face_encoding = face_recognition.face_encodings(picture_of_Steve_Jobs)[0] # เข้ารหัสหน้าตา
unknown_picture = face_recognition.load_image_file("0x600.jpg") # ไฟล์ที่ต้องการตรวจสอบ
unknown_face_encoding = face_recognition.face_encodings(unknown_picture)[0] # เข้ารหัสหน้าตา
results = face_recognition.compare_faces([face_encoding], unknown_face_encoding) # ทำการเปรียบเทียบด้วย Face Recognition
if results[0] == True:
  print("It's a picture of Steve Jobs!")
else:
  print("It's not a Steve Jobs!")
 ผลลัพธ์
It's a picture of Steve Jobs!

แสดงว่าไฟล์ 0x600.jpg เป็นรูปภาพของ Steve Jobs

การทดลองทำ Face Recognition แบบง่าย ๆ ในภาษา Python ประสบความสำเร็จ

3 ความคิดเห็น:

  1. สามารถติดตั้งบนwindowsได้ไหมครับ ผมติดตั้งแล้วerror พอจะมีวิธีติดตั้งไหมครับ

    ตอบลบ
    คำตอบ
    1. ต้องติดตั้ง dlib ก่อนครับ ดูรายละเอียดได้ที่ https://github.com/davisking/dlib

      ลบ
    2. ติดตั้งยังไงคับ

      ลบ

แสดงความคิดเห็นได้ครับ :)