มาทำความรู้จักกับ Open CV กันเถอะ

By KDBEER | Last updated Nov 22, 2020
มาทำความรู้จักกับ-Open-CV-กันเถอะ-5eb961fbec76f75f73915b6e

สำหรับคนที่เคยได้เรียนรู้เกี่ยวกับ Image Processing อาจจะเคยได้ยินเกี่ยวกับ OpenCV มาบ้าง ซึ่งก็ไม่แปลก เพราะในโลกของการประมวลผลภาพแล้ว Library ที่ชื่อ OpenCV นี่คือโด่งดังสุดๆ ไปเลย บทความนี้จะพาเรามาลองทำความรู้จัก OpenCV กันให้มากขึ้นอีกสักหน่อย พร้อมทั้งมี code ภาษา  Python ง่ายๆ ให้ลองเขียนตามกันอีกด้วย

OpenCV ย่อมาจาก Opensource Computer Vision หรือก็คือ Computor Vision ไลบรารีที่ให้เราได้ใช้ฟรีๆ นั่นเอง

ความสามารถหลักๆ ของเจ้า OpenCV  ก็คือสามารถช่วยให้เราจัดการวิดีโอหรือรูปภาพ เพื่อให้เกิดการเปลี่ยนแปลงกับรูปภาพ อย่างเช่น ทำให้ภาพชัดขึ้น ทำให้เบลอ ลดสัญญาณรบกวน (noise) ในรูปภาพ จากแหล่งที่มาของรูปภาพต่างๆ ไม่ว่าจะเป็น webcam ภาพถ่าย วิดีโอ หรือกล้องวงจรปิด  

นอกจากการปรับปรุงภาพแล้วนั้น ยังมีการใช้เทคนิคการประมวลผลภาพ ที่ทำให้เรารู้จักกับวัตถุนั้นๆ เราอาจจะเคยได้ยินตัวอย่างมาบ้าง เช่น การแบ่งประเภท Object ว่าเป็น หมา แมว คน รถยนต์ เป็นต้น ไปจนถึงการนำไปใช้งานที่ซับซ้อนมากขึ้น เช่น การจดจำใบหน้าของคน อย่างที่เราได้เจอในหนัง Action ของฮอลลีวูดที่จะมีตำรวจตามหาคนร้ายจากกล้องวงจรปิด 

การแยกประเภทของ Object

https://medium.com/zylapp/review-of-deep-learning-algorithms-for-object-detection-c1f3d437b852

 

การค้นหาคนจากกล้องวงจรปิด

A face in a crowd in Mission: Impossible Rogue Nation.

 

ปัจจุบัน (ปี 2020) OpenCV ได้พัฒนามาจนถึง Version 4 แล้ว มีอะไรที่เปลี่ยนจาก Version ก่อนหน้าบ้างนะ ?

  1. มีการอัพเดท Version ของ C++ เป็น Version 11 แล้วนะ แถมด้วยการเพิ่ม Python Wrap ซึ่งทำให้ผู้พัฒนาสามารถพัฒนาโดยใช้ภาษา Python ในการพัฒนาได้
  2. มีการลบโค๊ดของ OpenCV ที่เขียนขึ้นมาจากภาษา C รวมถึงลบโค๊ดภาษา Python Binding ที่ Wrap ภาษา C ออกไปด้วย (เปลี่ยนมาใช้ C++  นั่นเอง)
  3. มีการ Optimization เพิ่มขึ้นอีกมากมายเลยจาก Version 3, มีการเพิ่ม Pipeline G-API (OpenCV Graph API) ขึ้นมา แต่ว่า Python Binding ยังใช้ไม่ได้นะ
  4. มีการเพิ่ม Machine Learning Model ขึ้นมาอีกหลายตัวเลย
  5. ได้ลบเครื่องมือที่ใช้สร้าง Haar cascades และ LBP cascades ออกไปก่อน แต่จะมีการ  Reimplement ใหม่ในอนาคตนะ
  6. เพิ่ม Kinectfunction algorithm (นำไปใช้พัฒนาร่วมกับกล้อง Kinect ของ Microsoft)
  7. เพิ่ม DIS algorithm เพื่อใช้ในการพัฒนา Dense Optical Flow (การตรวจสอบ Movement ของ Pixel)
  8. เพิ่ม Module เพื่อใช้ตรวจจับ และ decode QR Code

สำหรับคนที่สนใจที่จะศึกษาการใช้งาน OpenCV  สามารถเข้าไปอ่านได้ที่ เว็บไซต์ของ OpenCV ได้เลย จากการที่ OpenCV พัฒนามานานมากแล้ว เพื่อนๆ สามารถที่จะพบตัวอย่างการใช้งานเต็มไปหมดเลยในอินเทอร์เน็ต ถ้าไปเจอบทความไหนเจ๋งๆ ก็อย่าลืมเอามาแบ่งปันกันบ้างนะครับ