สรุประบบคอมพิวเตอร์วิชันสำหรับการระบุตัวผู้เล่นบาสเกตบอล
(blog.roboflow.com)🏀 สรุประบบคอมพิวเตอร์วิชันสำหรับการระบุตัวผู้เล่นบาสเกตบอล
โพสต์บล็อกนี้อธิบายอย่างละเอียดถึงกระบวนการสร้างระบบที่ซับซ้อนสำหรับ ตรวจจับ ติดตาม และระบุตัวตน ผู้เล่นจากวิดีโอการแข่งขันบาสเกตบอลโดยใช้เทคโนโลยีคอมพิวเตอร์วิชัน ระบบนี้ผสานโมเดล AI สมัยใหม่หลายตัวเข้าด้วยกันในรูปแบบไปป์ไลน์ เพื่อแก้ปัญหาที่ยาก เช่น การเคลื่อนไหวที่รวดเร็วของผู้เล่น การถูกบังจากการปะทะกันของร่างกาย (occlusion) ชุดแข่งที่คล้ายกัน และการเคลื่อนที่ของกล้อง
เทคโนโลยีหลักและไปป์ไลน์
ระบบนี้ระบุตัวผู้เล่นผ่านกระบวนการหลายขั้นตอนที่ซับซ้อน
-
การตรวจจับวัตถุ (Object Detection):
- ใช้โมเดล RF-DETR เพื่อค้นหาตำแหน่งของวัตถุสำคัญในวิดีโออย่างแม่นยำ เช่น ผู้เล่น หมายเลขเสื้อ ลูกบาส และห่วง
-
การติดตามผู้เล่น (Player Tracking):
- ใช้ SAM2 (Segment Anything Model 2) เพื่อติดตามผู้เล่นในแต่ละเฟรม ด้วยความสามารถด้านหน่วยความจำภายในของ SAM2 ระบบจึงยังคงรับรู้และติดตามว่าเป็นผู้เล่นคนเดิมได้อย่างต่อเนื่อง แม้ผู้เล่นจะถูกผู้เล่นคนอื่นหรือวัตถุอื่นบังชั่วคราวก็ตาม
-
การแยกทีม (Team Clustering):
- ใช้วิธีการคลัสเตอร์แบบ unsupervised learning เพื่อแยกสองทีมตามสีของชุดแข่ง
- ใช้ โมเดล SigLIP เพื่อแปลงลักษณะทางภาพของผู้เล่นแต่ละคนให้เป็นเวกเตอร์ embedding
- ใช้ UMAP เพื่อลดมิติข้อมูล embedding ที่มีมิติสูงให้เหลือมิติต่ำ
- ใช้อัลกอริทึม K-means clustering เพื่อแบ่งผู้เล่นออกเป็นสองกลุ่ม (สองทีม)
-
การระบุตัวผู้เล่น (Player Identification):
- ระบบจะรู้จำหมายเลขเสื้อเพื่อใช้ระบุตัวผู้เล่นในขั้นสุดท้าย
- ในช่วงแรกใช้ SmolVLM สำหรับ OCR (การรู้จำอักขระด้วยแสง) แต่สุดท้ายเลือกใช้ โมเดล ResNet ที่ผ่านการ fine-tune สำหรับการจำแนกหมายเลขเสื้อ เนื่องจากให้ความแม่นยำสูงกว่า
- ใช้ตัวชี้วัดที่เรียกว่า IoS (Intersection over Smaller Area) เพื่อให้แน่ใจว่าหมายเลขเสื้อที่ตรวจจับได้ถูกจับคู่กับ mask ของผู้เล่นที่ถูกต้องอย่างแม่นยำ
- เพื่อเพิ่มความน่าเชื่อถือของระบบ จะยืนยันหมายเลขของผู้เล่นก็ต่อเมื่อมีการทำนายหมายเลขเดียวกันซ้ำหลายครั้งเท่านั้น
บทสรุปและซอร์สโค้ด
ระบบนี้เป็นตัวอย่างความสำเร็จที่แสดงให้เห็นถึงศักยภาพในการแก้ปัญหาการวิเคราะห์กีฬาในโลกจริงที่ซับซ้อน ด้วยการบูรณาการโมเดลคอมพิวเตอร์วิชันล้ำสมัยหลายตัวอย่างสร้างสรรค์ อย่างไรก็ตาม เนื่องจากความซับซ้อนของกระบวนการประมวลผล จึงยังไม่สามารถทำงานแบบเรียลไทม์ได้
- ซอร์สโค้ด: สามารถดูโค้ดทั้งหมดของโปรเจกต์ได้ที่ GitHub repository ด้านล่าง
1 ความคิดเห็น
ใส่ลิงก์ซอร์สโค้ดไม่ได้ครับ