Face RecognitionMachine LearningPython

การทำ Face Detection บน Video ด้วย Python และ OpenCV

เทคนิคการทำ Face Detection ด้วย Python และ OpenCV ในการจับใบหน้าคนที่ปรากฏบนไฟล์ Video

บทเรียนต่อไปนี้คือเทคนิคการทำ Face Detection ด้วย Python และ OpenCV ในการจับใบหน้าคนที่ปรากฏบนไฟล์ Video

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

สำหรับบทเรียนนี้นอกจากการจับภาพจาก WebCam หรือ USB Camera ที่เรานิยมใช้กับแบบ Real-Time แล้วจะเป็นการสอนการจับภาพ หรือประมวลผลใบหน้าจากไฟล์ Video นามสกุล mp4 เป็นหลัก โดยไฟล์ Video ที่เราจะใช้นั้นให้เซฟ แล้วดาวน์โหลดไว้ที่ โฟลเดอร์ images ใน Path เดียวกับ Source ของ Python ที่เราจะเขียน

ผมจะใช้ไฟล์ movie.mp4 ในโฟลเดอร์ images เป็น video ที่จะนำมาทดสอบ เรียก Header มาใช้เลยคือ:

เรียก face_recognition มาใช้งานหลังจากนั้นสร้าง Landmark ของใบหน้าไว้เป็น Array สำหรับวนหาใบหน้า

หลังจากนั้นให้เราเขียนคำสั่งต่อไปนี้:

การทำงานคือ จับ Frame ของ Video ทีละ Frame โดย

หลังจากนั้นแปลงภาพจาก Frame ที่เป็น OpenCV ประมวลผลแบบ BGR Color ให้เป็น RGB

ในแต่ละ Frame จะทำการค้นหาใบหน้าทั้งหมดที่ปรากฏในภาพ Frame

ทำการวาดสี่เหลี่ยมสีเขียวลงบนหน้าที่ตรวจจับได้:

ทำการย่อขนาดของหน้าต่าง video ตัว output แล้วแสดงผลลัพธ์ออกมา

เขียนคำสั่งด Enter แล้วปิดหน้าต่าง:

และสุดท้ายถ้าประมวลผลเสร็จสิ้นให้ทิ้ง Task ที่กำลังทำงานอยู่ออกไปให้หมด

จะเห็นว่าไฟล์ Python ของเราจะเป็นดังนี้

ทดสอบก็จะได้ผลลัพธ์ตามนี้:

ทีนี้ลองเอา ระบบ Face Reconition มาใช้แต่ต้องเปลี่ยนวีดีโอเล็กน้อยที่คมชัดเพราะวีดีโอข้างต้นมันขึ้น Unknown หมดเลยทุกคน

ใส่ code นี้ไปเลย:

ทดสอบไฟล์ mp4 แบบใบหน้าเดียว

ทดสอบไฟล์ mp4 แบบหลายๆ ใบหน้า ก็ไม่ค่อยแม่นเท่าไรอ่ะนะจะจับได้บางมุมอยู่ที่ความชัดของ Video นั่นแหละครับ

Tags

Asst. Prof. Banyapon Poolsawas

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

Related Articles

Back to top button
Close
Close

Adblock Detected

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