Face RecognitionOpenCVPython

Face Recognition เปรียบเทียบข้อมูลใบหน้าแบบ Real-Time ด้วย Python และ OpenCV

ได้เวลาที่เราจะหยิบเจ้า OpenCV มาใช้ร่วมกับ Python และ Face recognition สักทีมาดูกันว่าทำยังไง

บทเรียนการทำ ML โดยใช้ Computer Vision หรือ OpenCV มาใช้ร่วมกับ Python และ Face Recognition แบบ Real-Time

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

จากบทเรียนก่อน Face Recognition การเปรียบเทียบใบหน้าจากรูปภาพด้วย Python เราจะเห็นว่าการทำ Database เปรียบเทียบใบหน้านั้นสามารถเรียกใช้งานได้ง่ายผ่าน Face Recognition ได้เลยตรงๆ เพื่อที่จะได้เอาไปประมวลผลร่วมกับ AI หรือ ML (Machine Learning) มาประมวลผล ทีนี้เราจะลองประมวลผลแบบ Real-Time ผ่าน กล้อง Web Cam บ้าง โดยเราจะดึงข้อมูลด้วย OpenCV

เปิด Terminal ขึ้นมาหน่อย เรียกใช้งาน Library เข้าไปเพื่อเปิดใช้งาน QT ผ่าน Visual Studio Code ได้

ติดตั้งเสร็จเรามาทดสอบ OpenCV ก่อนว่ากล้องเราทำงานได้จริงหรือไม่ ให้พิมพ์คำสั่งต่อไปนี้ในไฟล์ใหม่ของ Python อาจจะชื่อ cvtest.py

ทดสอบโดยการกด Debug หรือ F5 สักหน่อยว่ามันทำงานได้จริงไหม

โอเค ทำงานได้จริง
โอเค ทำงานได้จริง

เอาล่ะเรามาดูสิว่า ฐานข้อมูลภาพ banyapon.jpg จะใช้ได้จริงไหม และแม่นยำหรือเปล่า

ประกาศ Face Recognition และ OpenCV ก่อนเลย

บังคับเปิด Web Cam ให้ทำงานทันที

ประกาศตัวแปรเก็บภาพ Database และเข้ารหัสรูปภาพต้นฉบับไว้เปรียบเทียบ

ทำการใส่ข้อมูลของชื่อบุคคลในภาพเข้าไป โดยกำหนดจำนวน array ให้พอดีกับรูปภาพอย่างในตัวอย่างคือ มีแค่ภาพเดียว และคนเดียว คือภาพผม ดังนั้นกำหนดชื่อว่า BANYAPON ไปเลย เก็บลงตัวแปร 2 ชุดคือ person_face_encodings กรณีมีหลายใบหน้าก็ใช้ภาพหลายๆ ภาพใส่รหัสยัดตัวแปรไปเรื่อยๆ data_base_encoding1,data_base_encoding2 ไปถึง data_base_encoding100 ก็ว่าไป และก็ยัดชื่อจำนวนใบหน้าให้พอดีกับคน person_face_names เป็น String Array

ประกาศตัวแปร เริ่มต้นสำหรับทำงานประมวลผล Process ทีละ Frame โดยหลักการคือ frameProcess จะมาคอยเช็คว่า ประมวลผลแบบ Frame เว้น Frame เพื่อลดเวลาประมวลผล

ทำการ Resizing Frame เพื่อความเร็วในการประมวลผล โดยใช้คำสั่งต่อไปนี้:

ตามที่บอกว่าถ้า frameProcess จะถูกประมวลผลแบบ Frame เว้น Frame ดังนั้นเราจะเช็ค ถ้า Frame ไหนโดนประมวลผลจะเข้าเงื่อนไขคำสั่งนี้:

ระบบจะเข้าไปวนดูข้อมูล data_encoding ว่ามีการเข้ารหัสใบหน้าไว้ไหม ถ้าไม่มี หรือจำไม่ได้มันจะขึ้นว่า UNKNOWN

ถ้าเจอข้อมูลก็ตีตารางสีเขียวให้เรียบร้อย พร้อมทั้งเขียนชื่อคนใน array เข้าไปเลย

สุดท้ายคือเรื่องของการแสดงผล โปรแกรม Python ให้เรียกหน้าต่างผลลัพธ์ โดยให้เรากด x เพื่อออกจากโปรแกรม

ภาพรวม Code จะเป็นดังนี้:

ทดสอบโดยการกด Debug ให้เรียบร้อย:

พยายามเทสโดยการเปลี่ยนอารมณ์ใบหน้าให้แตกต่างด้วยนะครับ

ดังนั้นถ้าเรามี ภาพ และรายชื่อของ คนสัก 3 คนก็แค่ไปเพิ่ม

ก็ทำระบบเช็คชื่อเด็กเดินเข้าโรงเรียนเหมือนในคลิปดังๆ ที่แชร์กันว่อนๆ ได้แล้ว

Asst. Prof. Banyapon Poolsawas

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

Related Articles

Back to top button
Close
Close

Adblock Detected

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