ตอนที่ 11: การติดตามวัตถุ (Object Tracking) คืออะไร? เมื่อ AI ต้องจำหน้าวัตถุข้ามเวลา

1. 🎯 ตอนที่ 11: Object Tracking คืออะไร? เมื่อ AI ต้องจำหน้าวัตถุข้ามเวลา
สวัสดีครับน้องๆ วิศวกรสาย Vision และนักพัฒนาที่รักทุกคน! กาแฟแก้วโปรดพร้อมแล้วใช่ไหมครับ มาลุยกันต่อเลย!
ในตอนที่ผ่านๆ มา พี่ได้พาน้องๆ ไปรู้จักกับสุดยอดวิชาอย่าง Object Detection ที่สามารถตีกรอบ Bounding Box หาตำแหน่งวัตถุใน “ภาพนิ่ง” ได้อย่างแม่นยำกันแล้ว แต่คำถามคือ… ถ้าเราเอาโมเดล Detection ไปรันบน “วิดีโอ” ที่มีวัตถุเคลื่อนไหวล่ะ มันจะทำงานได้สมบูรณ์แบบเลยไหม?
คำตอบคือ “ยังไม่พอครับ!” วันนี้พี่จะพาน้องๆ ไปทำความรู้จักกับศาสตร์แห่งการติดตามวัตถุ หรือ Object Tracking ซึ่งเป็นกุญแจสำคัญที่ทำให้ AI ก้าวข้ามจากการดูภาพนิ่งทีละภาพ ไปสู่การเข้าใจบริบทของการเคลื่อนไหว (Motion patterns) ในวิดีโออย่างแท้จริงครับ!
2. 📖 เปิดฉาก (The Hook)
ลองจินตนาการถึงปัญหาคลาสสิกในโรงงานดูนะครับ… น้องได้รับโจทย์ให้เขียน AI เพื่อนับจำนวน “กล่องพัสดุ” ที่ไหลผ่านสายพาน น้องจึงเอาโมเดล Object Detection สุดเทพอย่าง YOLO ไปรันบนวิดีโอ
สิ่งที่เกิดขึ้นคือ ในเฟรมที่ 1 AI ตีกรอบเจอกล่องพัสดุ (นับ 1) พอเข้าเฟรมที่ 2 กล่องใบเดิมขยับไปข้างหน้า 1 เซนติเมตร AI ก็ตีกรอบเจออีก (นับ 2) พอเข้าเฟรมที่ 3 กล่องขยับไปอีกนิด AI ก็ตีกรอบเจออีก (นับ 3)
สรุปคือ กล่องใบเดียวไหลผ่านหน้ากล้อง AI ของน้องนับไปแล้ว 30 กล่อง! ทำไมถึงเป็นแบบนั้น? ก็เพราะว่า Object Detection มันทำงานจบเป็นเฟรมๆ ไปครับ มันไม่มีความทรงจำ (No temporal information) มันไม่รู้เลยว่ากล่องในเฟรมที่ 1 และเฟรมที่ 2 คือ “กล่องใบเดียวกัน”
เพื่อแก้ปัญหานี้ เราจึงต้องเสริมสมองส่วนที่เรียกว่า Object Tracking เข้าไป เพื่อสอนให้ AI รู้จักการแปะป้ายชื่อ (ID) และติดตามวัตถุนั้นข้ามเวลาครับ!
3. 🧠 แก่นวิชา (Core Concepts)
แหล่งข้อมูลระดับโลกได้อธิบายกระบวนการเปลี่ยนผ่านจาก Detection ไปสู่ Tracking ไว้ดังนี้ครับ:
- 1. แก่นแท้ของ Object Tracking: งาน Tracking คือกระบวนการที่ AI ไม่เพียงแค่ต้องค้นหาวัตถุ แต่ยังต้องวิเคราะห์วิถีการเคลื่อนที่ (Trajectories) และทำความเข้าใจรูปแบบการเคลื่อนไหวเมื่อเวลาผ่านไป โดยปกติแล้วเรามักจะทำงานในรูปแบบ Multi-Object Tracking (MOT) ซึ่งเป็นการติดตามวัตถุหลายๆ ชิ้นพร้อมกันในวิดีโอเดียว
- 2. กลยุทธ์ Tracking-by-Detection (ตามรอยจากสิ่งที่หาเจอ):
นี่คือท่าไม้ตายที่นิยมที่สุดในวงการครับ! หลักการทำงานคือแบบ 2 จังหวะ (Two-step procedure),
- จังหวะที่ 1 (Detect): ใช้ Object Detection หา Bounding Box ทั้งหมดในเฟรมปัจจุบัน
- จังหวะที่ 2 (Associate): นำกล่องที่หาเจอในเฟรมนี้ ไป “จับคู่ (Data Association)” กับกล่องที่เคยเจอในเฟรมที่แล้ว เพื่อบอกว่าใครเป็นใคร,
- 3. AI รู้ได้อย่างไรว่ามันคือสิ่งเดียวกัน? (The Association Magic):
ในการจับคู่ว่าวัตถุในเฟรมที่ 1 และเฟรมที่ 2 คือสิ่งเดียวกัน วิศวกร AI มักจะใช้ข้อมูล 2 ส่วนหลักๆ มารวมกันครับ:
- ทฤษฎีการซ้อนทับ (IoU Overlap): ในโลกความเป็นจริง วัตถุที่ถ่ายด้วยวิดีโอเฟรมเรตสูงๆ (เช่น 30 FPS) จะมีการขยับตัวระหว่างเฟรมน้อยมาก! (Minimal movement) ดังนั้น Bounding Box ของวัตถุชิ้นเดิมในเฟรมที่ 1 และเฟรมที่ 2 จะต้องมีพื้นที่ซ้อนทับกัน (Intersection-over-Union: IoU) สูงมากอย่างมีนัยสำคัญ เราจึงใช้ค่า IoU นี้มาเป็นเกณฑ์ในการจับคู่ได้ครับ
- หน้าตาต้องเหมือนเดิม (Appearance Features): แค่ตำแหน่งซ้อนทับอาจจะไม่พอ (เช่น มีคนเดินสวนกันจนกล่องทับกัน) AI ยุคใหม่จึงมีการสกัดจุดเด่น (Feature Extraction) เช่น สี, พื้นผิว หรือ Deep Features จาก CNN ของวัตถุในกล่องนั้น มาคำนวณหา “ค่าความคล้าย (Similarity scores/Affinity)” เพื่อยืนยันตัวตนอีกชั้นหนึ่งครับ,

4. 💻 ร่ายมนต์โค้ด (Show me the Code)
เพื่อให้เห็นภาพว่า AI ตัดสินใจจับคู่วัตถุอย่างไร พี่มีตัวอย่างโค้ด Python แบบจำลองลอจิกการจับคู่ (Data Association) ด้วยค่า IoU มาให้ดูครับ:
def associate_objects_by_iou(prev_frame_boxes, curr_frame_boxes, iou_threshold=0.5):
"""
ฟังก์ชันจำลองการจับคู่ Bounding Box ระหว่าง 2 เฟรมด้วยค่า IoU
สมมติว่า boxes เก็บข้อมูลในรูปแบบ: {"id": 1, "box": [x, y, w, h]}
"""
tracked_objects = []
# วนลูปดูกล่องทุกใบในเฟรมปัจจุบัน
for curr_box in curr_frame_boxes:
best_iou = 0
best_match_id = None
# นำไปเปรียบเทียบกับกล่องทุกใบในเฟรมที่แล้ว
for prev_box in prev_frame_boxes:
# คำนวณค่าการซ้อนทับ (IoU) ของกล่อง 2 ใบ
iou = calculate_iou(curr_box["box"], prev_box["box"])
# ถ้าซ้อนทับกันมากที่สุด และผ่านเกณฑ์ที่ตั้งไว้
if iou > best_iou and iou >= iou_threshold:
best_iou = iou
best_match_id = prev_box["id"]
if best_match_id is not None:
# 📌 AI จับคู่สำเร็จ! นี่คือวัตถุชิ้นเดิม ให้ใช้ ID เดิม
curr_box["id"] = best_match_id
tracked_objects.append(curr_box)
else:
# 📌 ถ้าไม่ซ้อนทับกับใครเลย AI จะถือว่าเป็น "วัตถุชิ้นใหม่" ที่เพิ่งโผล่เข้ามา
curr_box["id"] = generate_new_id()
tracked_objects.append(curr_box)
return tracked_objectsคอมเมนต์: สังเกตบรรทัดการเช็กเกณฑ์ (Threshold) นะครับ ถ้าน้องตั้งค่า IoU Threshold ไว้ตึงเกินไป (เช่น 0.9) พอวัตถุขยับเร็วนิดเดียว กล่องซ้อนทับกันแค่ 0.8 AI จะตัดจบแล้วมองว่าเป็นของชิ้นใหม่ทันที! การจูนค่าส่วนนี้และการใช้อัลกอริทึมจับคู่ระดับโลกอย่าง Hungarian Algorithm จึงสำคัญมากในงาน MOT ครับ
5. 🛡️ เคล็ดลับจากคัมภีร์ลับ (Under the Hood / Pro-Tips)
ในหน้างานอุตสาหกรรม การทำ Object Tracking มีอุปสรรคสุดหินที่วิศวกรต้องเจอ พี่ขอสกัดเคล็ดลับมาเตือนน้องๆ ดังนี้ครับ:
- ฝันร้ายที่ชื่อว่า Occlusion (การถูกบดบัง): นี่คือปัญหาปราบเซียนครับ! สมมติว่า “นาย A (ID: 1)” เดินไปหลบหลังเสา ในจังหวะนั้น AI จะมองไม่เห็นและเสียการติดตามไป (Track lost) พอเขาเดินโผล่พ้นเสาออกมา AI ที่ใช้แค่ IoU ธรรมดาจะให้ ID ใหม่เป็น “นาย B (ID: 2)” ทันที! ปรากฏการณ์ที่ AI จำคนเดิมไม่ได้และสลับ ID แบบนี้เราเรียกว่า Identity Switch (IDS) ซึ่งเป็นตัวชี้วัดสำคัญ (Metric) ที่ใช้ด่าว่า Tracker ตัวนี้ห่วยหรือไม่ครับ
- ทางแก้ด้วย Motion Prediction (พยากรณ์ล่วงหน้า): เพื่อแก้ปัญหาการโดนบัง วิศวกรระดับโปรจะไม่รอให้ AI หาของเจออย่างเดียว แต่จะฝัง Kalman Filter หรือ Particle Filter เข้าไปในระบบด้วย,, โดยใช้พิกัดจากเฟรมก่อนๆ มาสร้างสมการฟิสิกส์ “พยากรณ์ความเร็วและทิศทาง” ว่าในเฟรมถัดไปวัตถุน่าจะเคลื่อนที่ไปอยู่ตรงไหน (ถึงแม้ตาจะมองไม่เห็นก็ตาม) พอมันโผล่กลับมาตรงจุดที่พยากรณ์ไว้พอดี AI ก็จะเชื่อม ID กลับมาได้สำเร็จครับ!
6. 🏁 บทสรุป (To be continued…)
โดยสรุปแล้ว Object Tracking คือสะพานเชื่อมที่ทำให้คอมพิวเตอร์ก้าวข้ามจากการประมวลผล “ภาพนิ่ง (Static Image)” ไปสู่การเข้าใจ “วิดีโอ (Dynamic Video)” อย่างเต็มรูปแบบ, ด้วยกลยุทธ์ Tracking-by-Detection ที่อาศัยการจับคู่ข้อมูล (Data Association) ผ่านค่า IoU และหน้าตาของวัตถุ ทำให้เรารู้ได้ว่าของชิ้นไหนกำลังเคลื่อนที่ไปทิศทางใด
เมื่อเรารู้หลักการทำงานพื้นฐานแล้ว คำถามต่อไปคือ… แล้วสถาปัตยกรรมระดับเทพที่ใช้ในวงการ AI ปัจจุบันเขามีอะไรให้ใช้บ้าง? ในบทความตอนต่อไป พี่จะพาน้องๆ ไปเจาะลึกสุดยอดโมเดลการติดตามวัตถุอย่างตระกูล DeepSORT และ Correlation Filter (CF) กันครับ รับรองว่าซิ่งทะลุนรกและแม่นยำจนน้องๆ ต้องร้องว้าวแน่นอน! รอติดตามกันนะครับ
ต้องการที่ปรึกษาและพัฒนาระบบ Automation & Machine Vision ให้กับโรงงานของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและติดตั้งระบบแบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p