สวัสดีค่ะคุณผู้อ่านทุกท่าน ตามชื่อหัวข้อก็คงทำให้พอเดาได้คร่าวๆว่าบทความนี้ได้กล่าวถึงโปรแกรมเซนเซอร์ภาพที่ทำงานได้อัติโนมัติ สำหรับโปรแกรมนี้เป็นการประมวลผลวิดีโอเพื่อให้ได้การติดตามการเคลื่อนไหวพร้อมการเซ็นเซอร์ภาพภายในวิดีโอ ซึ่งจุดประสงค์ของการพัฒนาโปรแกรม คือ
ในส่วนผลลัพธ์ที่ออกมานั้น อาจจะมีบางช่วงที่ผลลัพธ์ไม่เป็นที่ต้องการ หรือมีข้อผิดพลาดบางอย่างเนื่องจากมีหลายปัจจัยที่ส่งผล เช่น ฟังก์ชั่นการค้นหาภาพ ลักษณะของภาพที่เหมาะสม เป็นต้น
โปรแกรมทำงานอย่างไร ? ใช้ฟังก์ชั่นใดบ้างในการทำงาน ? เราจะอธิบายในตอนต่อไป
ก่อนอื่นเรามาทำความรู้จักกับ OpenCV กันก่อนนะคะ โปรแกรม OpenCV เป็น Library ในภาษา C++ และ Phyton สำหรับการพัฒนาโปรแกรมที่เกี่ยวข้องกับ Image Processing และ Computer Vision โดยสามารถพัฒนาได้ทั้งในระบบปฏิบัติการวินโดว์ และระบบปฏิบัติการ Linux
วิธีใช้งาน OpenCV ร่วมกับโปรแกรม Visual Studio C++ เพื่อใช้พัฒนาโปรแกรมนั้น เราจำเป็นต้องตั้งค่าให้กับโปรแกรม Visual Studio C++ ก่อน เพื่อระบุตำแหน่งของ Library ของ OpenCV ตำแหน่งของไฟล์ที่ต้องใช้ในโปรแกรม และตำแหน่งของ Source File ให้ตัวโปรแกรมทราบ และสามารถดึงมาใช้ได้
สำหรับ OpenCV ในส่วนของ Corlor หรือ Object จะประกอบไปด้วย Histrogram ของสีต่างๆ เราจะเก็บลักษณะของ histrogram เอาไว้เช็คข้อมูลที่อยู่ในภาพ ที่เปลี่ยนแปลงอยู่ตลอดเวลาหากมีลักษณะที่ใกล้เคียงกันก็สามารถที่จะระบุตำแหน่งของ object หรือ corlor ได้
ข้อมูลจาก https://sourceforge.net/projects/opencvlibrary/?source=directory
- เพื่อค้นหาทุกตำแหน่งของภาพที่ต้องการในวิดีโอได้
- เพื่อเซ็นเซอร์ภาพในวิดีโอได้ครบตรงตามที่กำหนด
- เพื่อเซ็นเซอร์วิดีโอให้แสดงผลออกมาอัตโนมัติ
- เพื่อแทนภาพอื่นในการเซนเซอร์
- เพื่อลดขั้นตอนการทำงานในการเซนเซอร์ภาพ
ในการใช้งานโปรแกรมจะต้องมี ข้อมูลนำเข้า (input) คือ
- รูปภาพตัวอย่างที่จะนำมาค้นหาในไฟล์วิดีโอ
- ไฟล์วิดีโอที่นำมาใช้งาน
- ภาพที่นำมาแทนการเซนเซอร์
และ ผลลัพท์ (output) ที่ได้ คือไฟล์วิดีโอที่สามารถเซนเซอร์วัตถุจากภาพตัวอย่าง
ดังนั้นเราจะอธิบายรายละเอียดต่างๆที่ประกอบอยู่ในโปรแกรม ดังต่อไปนี้
คลิป A เป็นตัวอย่างวิดีโอ Input ก่อนประมวลผล
คลิป B เป็นตัวอย่างวิดีโอ Output หลังประมวลผล
ภาพ C เป็นภาพตัวอย่าง ที่ต้องการเซนเซอร์ในวิดีโอ
โปรแกรมทำงานอย่างไร ? ใช้ฟังก์ชั่นใดบ้างในการทำงาน ? เราจะอธิบายในตอนต่อไป
OpenCV คืออะไร ?
ก่อนอื่นเรามาทำความรู้จักกับ OpenCV กันก่อนนะคะ โปรแกรม OpenCV เป็น Library ในภาษา C++ และ Phyton สำหรับการพัฒนาโปรแกรมที่เกี่ยวข้องกับ Image Processing และ Computer Vision โดยสามารถพัฒนาได้ทั้งในระบบปฏิบัติการวินโดว์ และระบบปฏิบัติการ Linux
วิธีใช้งาน OpenCV ร่วมกับโปรแกรม Visual Studio C++ เพื่อใช้พัฒนาโปรแกรมนั้น เราจำเป็นต้องตั้งค่าให้กับโปรแกรม Visual Studio C++ ก่อน เพื่อระบุตำแหน่งของ Library ของ OpenCV ตำแหน่งของไฟล์ที่ต้องใช้ในโปรแกรม และตำแหน่งของ Source File ให้ตัวโปรแกรมทราบ และสามารถดึงมาใช้ได้
สำหรับ OpenCV ในส่วนของ Corlor หรือ Object จะประกอบไปด้วย Histrogram ของสีต่างๆ เราจะเก็บลักษณะของ histrogram เอาไว้เช็คข้อมูลที่อยู่ในภาพ ที่เปลี่ยนแปลงอยู่ตลอดเวลาหากมีลักษณะที่ใกล้เคียงกันก็สามารถที่จะระบุตำแหน่งของ object หรือ corlor ได้
ข้อมูลจาก https://sourceforge.net/projects/opencvlibrary/?source=directory
ฟังก์ชันที่ใช้ในการทำงานและขั้นตอนวิธีของโปรแกรมนี้
ซึ่งในปัจจุบันมีวิธีการทำงานที่หลากหลาย โดยโปรแกรมนี้เลือกใช้ matchTemplate คือการทำงานที่ใช้การจับคู่กันของภาพสองภาพ ซึ่งเรียกว่า Source image (I) และ Template image (T) โดย I คือภาพต้นแบบที่เราต้องการนำมาจับคู่กับ T ซึ่ง T คือภาพตัวอย่างที่เราต้องการค้นหา เพื่อให้เข้าใจมากขึ้นสามารถดูที่ภาพประกอบ D
ข้อมูลจาก http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html
2. Region of Interesting คือการกำหนดขอบเขตของภาพที่เราสนใจ โดยใช้ฟังก์ชันที่ชื่อว่า rect ข้อมูลจาก http://docs.opencv.org/2.4/modules/core/doc/basic_structures.html
3. Motion Tracking หรือการติดตามการเคลื่อนไหว
ภาพ E เป็นการทำงานร่วมกันของฟังก์ชัน GoodFeaturesToTrack และ calcOpticalFlowPyrLK
ข้อมูลจาก http://docs.opencv.org/2.4/modules/video/doc/motion_analysis_and_object_tracking.html
4. Censor หรือเซนเซอร์
ภาพ F แสดงการเปรียบเทียบภาพต้นแบบและภาพที่ผ่านการใช้ GaussianBlur
ข้อมูลจาก http://docs.opencv.org/2.4/modules/imgproc/doc/filtering.html
ในส่วนต่อไปจะเป็นการอธิบายการทำงานโปรแกรม คลิ๊กที่นี่
Next การทำงานส่วนต่างๆ ของโปรแกรม เซนเซอร์วิดีโออัตโนมัติ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น