หลักการ Pose Estimation

กล้องหนึ่งตัวบอกตำแหน่งข้อต่อได้อย่างไร และเชื่อถือได้แค่ไหน

Author

ผศ.ดร.ศุภชัย วรพจน์พิศุทธิ์

Published

13 ตุลาคม 2569

วัดการเคลื่อนไหวด้วยอะไรได้บ้าง

ก่อนจะใช้กล้อง ลองเทียบกับวิธีที่ใช้กันในงานกายภาพบำบัดและวิทยาศาสตร์การกีฬา

วิธี วัดอะไร ข้อดี ข้อจำกัด
Goniometer มุมข้อต่อทีละท่านิ่ง ถูก ใช้ง่าย เป็นมาตรฐานทางคลินิก วัดขณะเคลื่อนไหวไม่ได้ ขึ้นกับผู้วัด
ระบบติดมาร์กเกอร์ (เช่น Vicon, OptiTrack) ตำแหน่ง 3 มิติของมาร์กเกอร์ แม่นยำสูง (ระดับมิลลิเมตร) เป็นมาตรฐานอ้างอิงในงานวิจัย ราคาสูง ต้องใช้ห้องปฏิบัติการและผู้เชี่ยวชาญ
IMU ติดตัว ความเร่งและความเร็วเชิงมุมของส่วนร่างกาย ใช้นอกห้องปฏิบัติการได้ อัตราสุ่มสูง ไม่รู้ตำแหน่งโดยตรง มีการสะสมความคลาดเคลื่อน (หัวข้อ 2)
Pose estimation จากวิดีโอ (markerless) ตำแหน่งข้อต่อที่ AI ประมาณจากภาพ ไม่ต้องติดอะไรบนตัว ใช้กล้องทั่วไป ความแม่นยำต่ำกว่าระบบมาร์กเกอร์ ขึ้นกับมุมกล้อง แสง และการบดบัง

Pose estimation จึงเหมาะกับการเรียนรู้ การคัดกรอง และการติดตามความเปลี่ยนแปลงของคนเดิม มากกว่าการวัดค่าที่ต้องแม่นยำระดับงานวิจัย

MediaPipe Pose ทำงานอย่างไร

MediaPipe Pose (โมเดล BlazePose) ของ Google ทำงานเป็นสองขั้น

flowchart LR
    F["เฟรมวิดีโอ"] --> D["1. ตัวตรวจจับ<br/>หาว่าคนอยู่ตรงไหน"]
    D --> L["2. ตัวระบุจุด<br/>ประมาณ 33 จุดในกรอบนั้น"]
    L --> O["พิกัด + visibility<br/>ของแต่ละจุด"]
    L -- "เฟรมถัดไป: ใช้ตำแหน่งเดิม<br/>ช่วยค้นหา (tracking)" --> L

  1. ตัวตรวจจับ (detector) หาตำแหน่งคนในภาพ ทำเฉพาะเฟรมแรกหรือเมื่อหาคนไม่เจอ
  2. ตัวระบุจุด (landmark model) ประมาณตำแหน่ง 33 จุดภายในกรอบนั้น แล้วใช้ผลของเฟรมก่อนช่วยติดตามในเฟรมถัดไป

ทั้งหมดเป็นโครงข่ายประสาทเทียมที่ฝึกจากภาพคนจำนวนมาก โมเดลไม่ได้มองเห็นกระดูกหรือข้อต่อจริง แต่ “เดา” ตำแหน่งที่น่าจะเป็นจากรูปร่างที่เห็น ดังนั้นเมื่อส่วนใดถูกบังหรือเห็นไม่ชัด โมเดลก็ยังให้พิกัดออกมา แต่เชื่อถือได้น้อยลง

เครื่องมือของเรามีให้เลือกสามขนาด: Lite (เร็ว เหมาะกับกล้องสดบนแท็บเล็ต), Full (แม่นกว่า ค่าเริ่มต้นของโหมดไฟล์วิดีโอ) และ Heavy (แม่นที่สุด ช้ามาก เหมาะกับไฟล์วิดีโอบนโน้ตบุ๊ก)

33 จุดบนร่างกาย

0 จมูก 12 ไหล่ขวา11 ไหล่ซ้าย 14 ศอกขวา13 ศอกซ้าย 16 ข้อมือขวา15 ข้อมือซ้าย 24 สะโพกขวา23 สะโพกซ้าย 26 เข่าขวา25 เข่าซ้าย 28 ข้อเท้าขวา27 ข้อเท้าซ้าย ● ขวาของผู้ถูกวัด ● ซ้ายของผู้ถูกวัด

ภาพนี้คือผู้ถูกวัดหันหน้าเข้าหากล้อง สังเกตว่าซีกซ้ายของร่างกาย (สีส้ม) อยู่ทางขวาของภาพ คำว่า left_ และ right_ ในข้อมูลหมายถึงซ้าย/ขวาของผู้ถูกวัดเสมอ ไม่ใช่ซ้าย/ขวาของภาพ

นอกจากจุดหลักข้างบน ยังมีจุดบนใบหน้า (ตา หู ปาก) มือ (นิ้วโป้ง นิ้วชี้ นิ้วก้อย) และเท้า (ส้นเท้า 29–30, ปลายเท้า 31–32) รวม 33 จุด เครื่องมือของเราบันทึก 17 จุดหลัก เป็นค่าเริ่มต้น เลือกบันทึกครบ 33 จุดได้

ข้อมูลที่ได้จากแต่ละจุด

พิกัดภาพ (x, y) และความลึกสัมพัทธ์ (z)

x (พิกเซล) → y (พิกเซล)เพิ่มขึ้นเมื่อลงล่าง ↓ (0, 0) (1920, 1080) ข้อมือ (1050, 400) ศอก (1050, 720)
  • x, y คือตำแหน่งในภาพ หน่วยพิกเซล จุดกำเนิดอยู่ที่มุมซ้ายบน และ y เพิ่มขึ้นเมื่อลงล่าง ดังนั้นเมื่อยกแขนขึ้น ค่า y ของข้อมือจะลดลง
  • z คือความลึกเทียบกับสะโพก (ค่าน้อยคือใกล้กล้อง) ไม่มีหน่วยและไม่แม่นนัก เพราะประมาณจากกล้องตัวเดียว ไม่ควรใช้ z วิเคราะห์
Noteทำไมต้องเป็นพิกเซล

MediaPipe ให้ x, y มาเป็นสัดส่วนของความกว้างและความสูงภาพ (0–1) ซึ่งคนละสเกลกัน (ภาพกว้าง 1920 แต่สูง 1080) ถ้านำค่า 0–1 ไปคำนวณมุมตรง ๆ มุมจะเพี้ยน เครื่องมือของเราจึงแปลงเป็นพิกเซลให้แล้ว เครื่องมือรุ่นเดิมยังไม่ได้แปลง

Visibility

ค่า visibility (0–1) คือความมั่นใจของโมเดลว่าจุดนั้นมองเห็นได้ในภาพ (ไม่ถูกบังและอยู่ในกรอบ)

visibility ความหมาย ใช้วิเคราะห์ได้ไหม
≥ 0.7 เห็นชัด ได้
0.5–0.7 ไม่แน่ใจ ระวัง ตรวจกับวิดีโอ
< 0.5 น่าจะถูกบังหรืออยู่นอกภาพ ไม่ควรใช้

ตัวอย่างที่พบบ่อย: ถ่ายด้านข้างแล้วแขนขาซีกที่อยู่ไกลกล้องถูกลำตัวบัง visibility ของซีกนั้นจะต่ำ และค่าพิกัดแทบไม่เปลี่ยนตามการเคลื่อนไหวจริง

พิกัดโลก 3 มิติ (world landmarks)

MediaPipe ยังประมาณพิกัด 3 มิติหน่วยเมตร โดยให้จุดกึ่งกลางระหว่างสะโพกเป็นจุดกำเนิด (คอลัมน์ _wx, _wy, _wz) ค่านี้ไม่ขึ้นกับระยะห่างจากกล้อง จึงเหมาะกับการเทียบสัดส่วนร่างกาย แต่ความลึก (wz) ยังเป็นการประมาณจากกล้องตัวเดียว ในบทเรียนนี้เราใช้พิกัดภาพเป็นหลัก

ข้อจำกัดที่ต้องรู้ก่อนวัด

  1. ภาพ 2 มิติ มุมที่คำนวณจากภาพแม่นเฉพาะการเคลื่อนไหวที่ขนานกับหน้ากล้อง ถ้าแขนขาเคลื่อนเข้าหาหรือออกจากกล้อง มุมในภาพจะต่างจากมุมจริง (เหมือนเงาที่สั้นลงเมื่อเอียง)
  2. การบดบัง (occlusion) จุดที่ถูกบังจะถูก “เดา” ตำแหน่ง ตรวจด้วย visibility เสมอ
  3. เสื้อผ้าและแสง เสื้อผ้าหลวม กระโปรง แสงย้อน หรือพื้นหลังสีเดียวกับเสื้อ ทำให้ตำแหน่งสะโพกและเข่าคลาดเคลื่อน
  4. การเคลื่อนไหวเร็ว ภาพเบลอและอัตราเฟรมต่ำทำให้พลาดจุดสูงสุด/ต่ำสุดของการเคลื่อนไหว
  5. สัญญาณสั่น (jitter) ตำแหน่งขยับเล็กน้อยแม้ผู้ถูกวัดยืนนิ่ง ต้องกรองก่อนหาค่าสูงสุด/ต่ำสุด
  6. จุดของโมเดลไม่ใช่จุดหมุนของข้อต่อทางกายวิภาค โดยเฉพาะสะโพก ซึ่งต่างจากตำแหน่งที่นักกายภาพบำบัดคลำหา

งานวิจัยที่เทียบ markerless pose estimation กับระบบมาร์กเกอร์ส่วนใหญ่พบว่ามุมข้อต่อในระนาบ sagittal (งอ–เหยียด) ใกล้เคียงกันพอใช้ ส่วนการเคลื่อนไหวในระนาบอื่น (เช่น การหมุน) คลาดเคลื่อนมากกว่า ข้อนี้คือเหตุผลที่การตั้งกล้องสำคัญที่สุด

สิ่งที่ผู้พัฒนาระบุไว้ใน Model Card

Google เผยแพร่ Model Card ของ BlazePose GHUM 3D ซึ่งบอกขอบเขตและข้อจำกัดของโมเดล ประเด็นที่กระทบงานของเรา

Model card ระบุ ผลต่อการใช้งาน
ฝึกจากภาพที่ถ่ายด้วยกล้องหลังของสมาร์ทโฟน ส่วนใหญ่เป็นท่าออกกำลังกาย มีคนเดียวอยู่กลางภาพ ใช้ iPad กล้องหลัง ให้ผู้ถูกวัดอยู่กลางภาพ ท่าออกกำลังกายทั่วไปอยู่ในขอบเขตที่โมเดลรู้จัก
คนที่อยู่ไกลกว่า 4 เมตร และภาพที่มองไม่เห็นศีรษะ อยู่นอกขอบเขตการใช้งาน ตั้งกล้องห่าง 2–3.5 เมตร และต้องเห็นศีรษะตลอด
ความแม่นยำวัดเป็นร้อยละของจุดที่คลาดไม่เกิน 20% ของความกว้างลำตัว: Lite 87%, Full 92%, Heavy 94% และรุ่น Lite มีความต่างระหว่างกลุ่มสีผิวมากที่สุด ใช้ Full หรือ Heavy เมื่อประมวลผลไฟล์วิดีโอ ใช้ Lite เฉพาะกล้องสดที่ต้องการความเร็ว
ไม่ได้รายงานความแม่นยำของมุมข้อต่อ และเกณฑ์ข้างบนหยาบ (20% ของลำตัวคือประมาณ 6–8 ซม. ในผู้ใหญ่) ต้องตรวจความแม่นยำของมุมเอง ดูเทียบกับการมาร์กด้วยคน
z และพิกัด 3 มิติได้จากการฟิตโมเดลสังเคราะห์ ไม่ใช่การวัดจริง ใช้พิกัดภาพ 2 มิติเป็นหลัก
กับผู้ที่ไม่มีแขนขาหรือใส่ขาเทียม โมเดลจะให้ตำแหน่ง “เฉลี่ย” ของส่วนที่ไม่มี ไม่ควรใช้วัดผู้รับบริการกลุ่มนี้โดยไม่ตรวจสอบกับวิดีโอ
ไม่ได้ออกแบบมาเพื่อการตัดสินใจที่กระทบชีวิต การใช้งานหลักคือความบันเทิงและฟิตเนส ใช้เพื่อการเรียนรู้และคัดกรอง ไม่ใช่การวินิจฉัย

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

คนมาร์กจุด vs AI

ในงานวิทยาศาสตร์การกีฬาและกายภาพบำบัด วิธีที่ใช้กันมากคือให้คนมาร์กจุดบนภาพหรือวิดีโอด้วยโปรแกรมอย่าง Kinovea ซึ่งต่างจาก pose estimation ตรงที่คนเลือกจุดที่ปุ่มกระดูก

คนมาร์กจุด (เช่น Kinovea) AI (MediaPipe Pose)
จุดที่ได้ จุดทางกายวิภาคที่ผู้วัดเลือก (เช่น greater trochanter, lateral epicondyle, lateral malleolus) หรือมาร์กเกอร์ที่ติดบนผิว ตำแหน่งข้อต่อที่โมเดลประมาณจากรูปร่าง ไม่ใช่ปุ่มกระดูก
เวลา นานมาก ถ้าต้องทำทุกเฟรม อัตโนมัติทุกเฟรม
ความสม่ำเสมอ ต่างกันระหว่างผู้วัด และระหว่างการวัดซ้ำ ได้ผลเดิมทุกครั้งกับวิดีโอเดิม
จุดที่ถูกบัง ผู้วัดรู้ว่าไม่เห็นและเลือกไม่วัดได้ ยังให้ตัวเลข (ต้องดู visibility)
เหมาะกับ วัดเฟรมสำคัญอย่างแม่นยำ เป็นค่าอ้างอิง ดูการเคลื่อนไหวทั้งช่วง หลายรอบ หลายคน

สองวิธีจึงเสริมกัน เราใช้คนมาร์กในเฟรมที่เลือกเป็นค่าอ้างอิงเพื่อตรวจว่า AI แม่นแค่ไหนในท่าและมุมกล้องของเรา แล้วจึงใช้ AI วิเคราะห์ข้อมูลทั้งหมด

Tipสรุป

กล้องหนึ่งตัวให้ ตำแหน่ง 2 มิติของข้อต่อ ที่ใช้คำนวณ มุมในระนาบที่ขนานกับกล้อง ได้ดี ใช้ visibility คัดข้อมูลที่ไม่น่าเชื่อถือออก และตีความโดยรู้ข้อจำกัดเสมอ

อ่านเพิ่มเติม

  • Google AI Edge, Pose landmark detection guide
  • Bazarevsky และคณะ (2020), BlazePose: On-device Real-time Body Pose Tracking, arXiv:2006.10204
  • Google, Model Card: BlazePose GHUM 3D (เอกสารอธิบายข้อมูลฝึก ขอบเขต และข้อจำกัดของโมเดล)