Computer VisionOpenCV

OpenCV จับร่างกายคน Human Body Detection จากกล้องบันทึกเป็น Video

ตัวอย่างบทเรียนการใช้ Python และ OpenCV และ Numpy ตรวจจับร่างกายคน Human Body Detection แบบ Real-Time แล้วบันทึกเป็นไฟล์ Video

ตัวอย่างบทเรียนการใช้ Python และ OpenCV และ Numpy ตรวจจับร่างกายคน Human Body Detection แบบ Real-Time แล้วบันทึกเป็นไฟล์ Video

ก่อนจะทำความเข้าใจบทเรียนนี้แนะนำให้ไปศึกษาบทเรียนต่อไปนี้ก่อน

ทำการตรวจสอบความพร้อมของโปรแกรมเป็นที่เรียบร้อยแล้วก็เปิด Visual Studio Code หรือ IDE ตัวอื่นๆ ขึ้นมาได้เลยครับ หลังจากนั้นให้ทำการประกาศ

แน่นอนว่าเราต้องใช้ NumPy ช่วยเพราะมันเป็น library ที่ใช้ในการคำนวนทางคณิตศาสตร์โดยภายในถูกเขียนด้วยภาษา C จึงทำงานได้เร็วและมีประสิทธิภาพ แล้วขยายมาเขียนร่วมกับ Python โดย NumPy มีความสามารถในการจัดการกับ Array หลายมิติและข้อมูลแบบ Matrix

เขียนฟังก์ชันการตรวจจับบุคคลในท่าทางต่างๆ โดยใช้คุณสมบัติ HOG และตัวแยกประเภท SVM Classifies ในการช่วย

คุณสมบัติ HOG และ SVM Classifies นี่ เป็นการศึกษาการตรวจจับ ร่างกายคน หรือบุคคลที่รวดเร็วและเชื่อถือได้ (แม้จะอยู่ในท่าทางที่แตกต่างกันไปในภาพ หรือสื่อวีดีโอ) ผ่านการจับโดยกล้อง กล้องวิดีโอ หรือจากกล้อง WebCam ที่ดีคือทำงานแบบเรียลไทม์ (Real-Time) ซึ่งเป็นหัวใจหลักของการทำ Computer Vision มานานแล้วครับ ใช้กับการเล่นเกม การโต้ตอบระหว่างมนุษย์กับคอมพิวเตอร์ การรักษาความปลอดภัย การแสดงตนทางไกล และแม้แต่การดูแลสุขภาพ การตรวจจับบุคคลในภาพ วิดีโอ และจากเว็บแคมแบบเรียลไทม์ที่บุคคลอาจอยู่ในอิริยาบถต่างๆ เช่น ยืน นั่ง นอน ก้มตัว มากมาย

ตัวตรวจจับคนด้วย HOG  จะมีการคำนวณ HOG descriptor เป็น Windows หมุนรอบๆ บุคคล เพื่อเข้ากระบวนการตรวจจับกราฟิก โดยจะส่งคำอธิบาย (Descriptor) นี้ต่อให้กับคุณสมบัติ SVM ที่ได้รับการ Train มาเป็นที่เรียบร้อยแล้วว่าข้อมูลที่ส่งนั้นเป็น “มนุษย์” หรือ “ไม่ใช่มนุษย์”

ทำการ Start Windows สร้างหน้าต่างแสดงผล และจับภาพจากกล้องแบบ Real-Time ผ่าน OpenCV

เขียนคำสั่งด้านบนเพื่อทำการ จับภาพและบันทึกเป็นไฟล์ Video ชื่อ output.avi เข้ารหัสด้วย ffmpeg ขนาด 1280×720 pixels เพื่อแสดง OutPut ครับ

กด Q เพื่อยกเลิกโปรแกรมจะทำการปล่อย Process ทั้งหมดดังนี้

ไฟล์ทั้งหมดเป็นแบบนี้ครับ:

ทีนี้ก็มาทดสอบกัน

Output ไฟล์ วีดีโออยู่ที่นี่

เรียบร้อยครับการทำ Machine Learning  ด้วยการใช้ Python และ OpenCV และ Numpy ตรวจจับร่างกายคน Human Body Detection แบบ Real-Time แล้วบันทึกเป็นไฟล์ Video

Tags

Asst. Prof. Banyapon Poolsawas

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

Related Articles

Back to top button
Close
Close

Adblock Detected

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