หัวข้อปฏิบัติการ
การวัดอัตราส่วนความกว้างและความยาวของวัตถุหลังการตรวจจับด้วย OpenCV
วัตถุประสงค์ของการเรียนรู้
- เรียนรู้การวัดค่าความกว้าง (Width) และความยาว (Height) ของวัตถุที่ตรวจจับได้
- ฝึกการคำนวณอัตราส่วนความกว้างต่อความยาว (Width-to-Length Ratio)
- เข้าใจการนำค่าที่ได้ไปใช้ในการจำแนกประเภทวัตถุเบื้องต้น
- เรียนรู้การแสดงผลค่าที่วัดได้ทั้งบนกรอบ Bounding Box และใน UI Panel
พื้นฐานทางทฤษฎี
- หลังจากใช้การมาสก์สีและคอนทัวร์ในการตรวจจับวัตถุ เราสามารถนำคอนทัวร์ที่ได้มาวิเคราะห์ขนาด
- OpenCV มีฟังก์ชันในการวัด Bounding Box รอบวัตถุ และดึงค่าความกว้างและความสูงออกมา
- การคำนวณอัตราส่วน (Width ÷ Height) ช่วยให้สามารถใช้เป็นเกณฑ์ในการเปรียบเทียบหรือจัดหมวดหมู่วัตถุ
สมการ Object Aspect Ratio (OAR)
เรานิยามอัตราส่วนของวัตถุ (OAR) ดังนี้:
$$ OAR = \frac{\|p_{top} - p_{bottom}\|}{\|p_{left} - p_{right}\|} $$
ขั้นตอนการปฏิบัติ
- เปิดสคริปต์
opencv-workshop3.py
- ตรวจจับวัตถุเป้าหมายโดยใช้เทคนิค HSV และ Contour Detection
- สังเกต Bounding Box รอบวัตถุ พร้อมค่าตัวเลขความกว้างและความยาว
- ทดลองเปลี่ยนวัตถุ และบันทึกอัตราส่วน Width:Height ของแต่ละวัตถุ
- ในเวอร์ชันล่าสุด ค่าตัวเลขทั้งหมดจะแสดงใน UI Panel เพื่อให้ชัดเจนและอ่านง่ายขึ้น
ภารกิจประจำกิจกรรม
- ตรวจจับวัตถุที่กำหนด และบันทึกค่า Width, Height และ Ratio ของแต่ละวัตถุ
- เปรียบเทียบค่าที่วัดได้ระหว่างวัตถุรูปทรงแตกต่างกัน (เช่น โทรศัพท์, ขวดน้ำ, กล่อง)
ดาวน์โหลด Workshop 3