ผู้เขียนบทความ
นาย ธีรพล เถาว์ชู COE #16
นาย อนันต์วุฒิ ธรรมสุวรรณ COE #16
นาย วิวรรธน์ เจริญมาศ COE #16
คณะ : วิศวกรรมศาสตร์ สาขา : วิศวกรรมคอมพิวเตอร์
วิชา : 04-513-201 การโปรแกรมคอมพิวเตอร์ขั้นสูง
1.ความเป็นมา
ในปัจจุบันเทคโนโลยีเข้ามามีบทบาทในใช้ชีวิตประจำวันอย่าง ทั้งในเรื่องของการแพทย์ เรื่องการเรียนการศึกษา หรือแม้กระทั่งในการอำนวยความสะดวกต่าง ๆ และในปัจจุบันนี้ได้มี ระบบ Face Recognition และ Deep face ที่เป็นเทคโนโลยีที่ใช้การวิเคราะห์และเปรียบเทียบใบหน้าของบุคคลเพื่อตรวจสอบหรือยืนยันตัวตนของพวกเขาเนื่องด้วยการเรียนการสอนนั้นอาจจะเสียเวลาเป็นอย่างในการเช็ครายชื่อของนักเรียน นักศึกษาภายในห้องเรียน และต้องเสียเวลามากขึ้นอีกหาว่าห้องเรียนนั้นมีจำนวนนักเรียน นักศึกษาเป็นจำนวนมากจากปัญหาดั่งกล่าวอาจจะมีส่วนส่งผลกระทบหรืออาจจะเป็นอุปสรรค์ต่อการเรียนการสอนได้
ดังนั้นทางคณะกลุ่มได้เล็งเห็นปัญหาจึงได้ระดมความคิดและได้จัดทำมินิโปรเจคชื่อ เช็คชื่ออัตโนมัติด้วยใบหน้า ( Automatic Face Recognition Attendance ) เพื่อแก้ไขปัญหาการเสียเวลาเช็ครายชื่อนักเรียน นักศึกษา พัฒนาเทคโนโลยีที่อำนวยความสะดวกเพื่อยกระดับการเรียนการสอนขึ้นอีกขั้น และเพื่อการศึกษาการทำงานของ ภาษาpython และ opencv ในการำสร้างระบบ Face Recognition และ Deep Face
2.วัตถุประสงค์
2.1 เพื่อศึกษาการใช้ ภาษา python และ AI ในการสร้างระบบ Face Recognition
3 ขอบเขตการทำงาน
3.1 ให้ opencv เก็บภาพและจดจำใบหน้าสมาชิกในห้องเรียน
3.4 นำใบหน้าที่ได้มาทำการเช็คชื่อ
4 ประโยชน์ที่ได้รับ
2.1 ได้ประยุกต์ใช้ ภาษา python และ opencv ในการสร้างระบบ Face Recognition , Deep Face
5.ความรู้ที่เกี่ยวข้อง
5.1. cv2 (OpenCV)
– OpenCV เป็นไลบรารีสำหรับการประมวลผลภาพและวิดีโอที่มีฟังก์ชันหลากหลาย โปรแกรมนี้ใช้ OpenCV เพื่อรับภาพจากกล้องหรือไฟล์วิดีโอ การประมวลผลภาพที่ได้มา และการวาดจุดที่ MediaPipe ตรวจจับได้ลงบนเฟรมภาพ รวมถึงการแสดงผลภาพแบบเรียลไทม์ ตัวอย่างการใช้งาน เช่น การวาดจุดตำแหน่งของข้อนิ้วและปลายนิ้วลงบนภาพวิดีโอ และการติดตามการเคลื่อนไหวของมือเพื่อนำไปแปลเป็นสัญลักษณ์ภาษามือ
5.2 numpy
– ไลบรารีที่ทรงพลังสำหรับการคำนวณเชิงตัวเลขและการจัดการข้อมูลในรูปแบบของอาเรย์ (Array) โปรแกรมนี้ใช้ numpy
ในการจัดเก็บและคำนวณค่าตำแหน่งของจุดบนมือที่ได้รับจาก MediaPipe ฟังก์ชันของ numpy
เช่น การคำนวณค่าระยะห่างระหว่างจุด การคำนวณมุมหรือการคำนวณเชิงเวกเตอร์ ช่วยให้โปรแกรมสามารถวิเคราะห์ตำแหน่งและลักษณะการเคลื่อนไหวของมือได้อย่างแม่นยำและรวดเร็ว
5.3. os Python คือคำสั่งนำเข้า module OS มาในโค้ดภาษา Python เพื่อทำงานกับระบบปฏิบัติ หรือ operating system โดย module OS จะมีฟังก์ชันต่างๆ ที่เกี่ยวข้องกับ OS สามารถเขียนโปรแกรม
สรุป
โค้ดนี้จะเกี่ยวข้องกับการประมวลผลภาพจากกล้องหรือวิดีโอแบบเรียลไทม์ ซึ่งใช้ OpenCV ในการตรวจจับใบหน้าและเปรียบเทียบใบหน้า เพื่อทำการเช็คชื่อลงใน Google Sheet
6.การดำเนินงาน
7.วิธีการใช้งานโปรแกรม
วิธีการใช้งานโปรแกรม
7.1. เปิด cmd
7.2. พิมพ์ py espcam.py
7.3. ใช้งานได้เลย
7.4. เข้ากล้องเพื่อสแกนหน้าและเช็คชื่อ
8.การทดลอง
9.เทคนิกการประยุคเพื่อเพิ่มประสิทธิภาพมากขึ้น
แนะนำให้ใช้ Machine Learning เพื่อเพิ่มประสิทธิภาพในการจับหน้าใหัละเอียดและเพื่อให้มีปัญหาในการใช้งานน้อยลง ทำให้แม่นยำขึ้น
10.สรุปผลและข้อเสนอแนะ
สรุปผล
จากการทดลองพบว่า เช็คชื่ออัตโนมัติด้วยระบบจดจำใบหน้า : Automatic Attendance นั้นสามารถทำงานได้อย่างถูกต้อง สามารถตรวจจับใบหน้าและทำการเช็ค ชื่อนักเรียน-นักศึกษาได้ แต่ยังคงมีความผิดพลาดเล็กน้อย เช่น จับหน้าไม่ค่อยติด และ เมื่อส่ง data ไป sheet จะทำให้โปรแกรมค้างไปชั่วขณะ
ข้อเสนอแนะ
– ก่อนนำภาพมาประมวลผล ควรปรับปรุงคุณภาพภาพให้ดีขึ้น เช่น การปรับความสว่าง ความคมชัด
– เพิ่มข้อมูลในการฝึกสอนให้มากขึัน เพื่อให้มีความแม่นยำมากขึ้น
– อาจจะเพิ่มการเเจ้งเตือนเมื่อทำการเช็คชื่อเสร็จเเล้ว
– เพิ่ม Deep learning เพื่อเพิ่มความแม่นยำในการวิเคราะห์ใบหน้า
11. ข้อมูลอ้างอิง
11.1 Python | เขียนโปรแกรมถ่ายภาพหน้าจอ โดยใช้ OpenCV/Numpy และ mss : https://medium.com/@pattanapong.sriph/python-
11.2 อยากมี API เป็นของตัวเอง สร้างได้ง่าย ๆ ด้วย Google Sheet :
https://www.borntodev.com/2022/09/23/
11.3 สรุปพื้นฐาน python :
https://medium.com/@teeppiphat/