Skip to content

รายงานวิวัฒนาการของกฎกติกา AI ตรวจสอบสรีระไท้เก๊ก (Heuristics Rules Evolution Report)

โครงการวิจัย: TaijiFlow AI - PhD Research (Phase 2 & Phase 3)
ประเภทรายงาน: เอกสารประวัติการประมวลผลและการเพิ่มประสิทธิภาพ AI (AI Processing & Optimization)


1. บทนำ (Introduction)

ระบบการตรวจประเมินชีวกลศาสตร์ผู้ฝึกรำไท้เก๊ก (Taiji Biomechanics Assessment) ในแอปพลิเคชัน TaijiFlow AI ทำงานโดยใช้ กฎการวิเคราะห์พฤติกรรมดั้งเดิม (Heuristics Engine) ร่วมกับกล้องสองมิติเดี่ยว (Webcam) และแบบจำลองตรวจจับข้อต่อร่างกาย MediaPipe Pose

เอกสารฉบับนี้รายงานถึงการเติบโตและการลดรูปของระบบกฎเกณฑ์ AI จากเริ่มต้นที่มีเพียง 9 ข้อ ขยายขึ้นเป็น 13 ข้อเพื่อประเมินความสัมพันธ์สองมือ และลดรูปควบรวมเพื่อเพิ่มความเร็วในการรันบนเบราว์เซอร์จนเหลือ 12 ข้อ ในปัจจุบัน


2. ลำดับพัฒนาการของกฎประเมินผล AI (Evolutionary Phases of AI Rules)

2.1 โครงสร้างดั้งเดิม: กฎพื้นฐาน 9 ข้อ (Phase 1)

ในระยะเริ่มแรก แอปพลิเคชันประเมินเฉพาะท่ารำมือเดียว (Single-Hand Exercises) โดยคัดเลือกกฎความถูกต้องทางสรีระไท้เก๊กขั้นพื้นฐาน 9 ข้อหลัก:

  1. Rule 1: Path Shape (วิถีการโค้งของมือ): ตรวจวัดว่ามือเคลื่อนที่เป็นรูปทรงกลม/วงรีตามเกณฑ์อ้างอิงหรือไม่
  2. Rule 2: Arm Rotation (การหมุนครบรอบวง): ตรวจสอบการวาดแนวโค้งที่ครบ 360 องศาของแขน
  3. Rule 3: Elbow Sinking (การจมข้อศอก): เช็คระยะดิ่งว่าข้อศอกอยู่ต่ำกว่าแนวไหล่และไม่ยกกาง (กระดูกหัวไหล่ผ่อนคลาย)
  4. Rule 4: Waist Initiation (การริเริ่มแรงจากเอว): ตรวจว่าการขยับแขนเกิดขึ้นตามหลังหรือพร้อมกับการบิดของแกนสะโพก/เอว
  5. Rule 5: Vertical Stability (ความมั่นคงในแนวตั้ง): ตรวจสอบว่าแกนแนวกระดูกสันหลัง (คอถึงเป้า) ไม่โยกเอียงซ้ายขวาเกินเกณฑ์
  6. Rule 6: Smoothness (ความราบรื่นสม่ำเสมอ): คำนวณความเร่ง (Jerk) ของข้อมือเพื่อไม่ให้เกิดการกระตุกหรือหยุดชะงักกะทันหัน
  7. Rule 7: Continuity (ความต่อเนื่อง): ความเร็วของข้อมือต้องรักษาความสม่ำเสมอและไม่จอดสนิทระหว่างร่ายรำ
  8. Rule 8: Weight Shift (การถ่ายน้ำหนัก): คำนวณแกนกลางลำตัวสะโพกว่าโยกย้ายสอดคล้องกับจังหวะก้าวรำหรือไม่
  9. Rule 9: Coordination (ความสอดประสานรวมศูนย์): ตรวจสอบความสอดประสานรวมของกระดูกไหล่และสะโพก

2.2 การขยายขอบเขตสู่กฎ 13 ข้อเพื่อประเมินสองมือ (Phase 2)

เพื่อให้ระบบรองรับการรำท่าสองมือ (Double-Hand Exercises) เช่น ท่า Cloud Hands หรือท่าเบี่ยงเบนและดึงกลับ ระบบจึงได้เพิ่มกลุ่มกฎใหม่ (Bimanual Rules) เข้ามาอีก 4 ข้อ (ข้อ 10 ถึง 13):

  • Rule 10: Bilateral Symmetry (ความสมมาตรสองซีกร่างกาย): ตรวจสอบระดับไหล่ซ้าย-ขวาไม่ให้เอียง และแขนทั้งสองกางสมดุลกัน
  • Rule 11: Opposition Movement (การเคลื่อนไหวทิศตรงข้าม): มือทั้งสองต้องเคลื่อนที่แยกห่างออกจากกันหรือวิ่งสวนทิศทางกันตามกลศาสตร์วงกลม
  • Rule 12: Hand Coordination (ความประสานความเร็วสองมือ): สปีดการเคลื่อนไหวของข้อมือทั้งสองต้องอยู่ในสัดส่วนที่ใกล้เคียงกัน ไม่ปล่อยให้อีกมือค้างนิ่งสนิท (ป้องกันภาวะแขนตาย หรือ Dead Hand)
  • Rule 13: Phase Matching (การเหลื่อมเฟสของเวลา): การเวียนของมือสองข้างต้องมีจังหวะเหลื่อมตามเวลาที่พอดีกัน (เคลื่อนที่เป็นวงกลมไล่เลี่ยกันตามจังหวะที่ถูกต้อง)

2.3 การลดรูปและควบรวมกฎเหลือ 12 ข้อ (Phase 3)

หลังจากการทดสอบ E2E ในระยะใช้งานจริง พบว่าการวิเคราะห์แยกกฎข้อ 11 (ทิศตรงข้าม) และข้อ 13 (ความต่างเฟสของมือ) ก่อให้เกิดปัญหาดังนี้:

  1. Computational Overhead (ภาระประมวลผลสูง): โค้ดจำเป็นต้องดึงและวิเคราะห์เวกเตอร์ของข้อมือเทียบกับจุดหมุนสะโพกและไหล่ซ้ำซ้อนกันสองรอบต่อเฟรม ส่งผลให้อัตราเฟรมต่อวินาที (FPS) ของ AI ตกลงบนคอมพิวเตอร์ระดับทั่วไป
  2. Mathematical Redundancy (ความเหลื่อมล้ำเชิงคณิตศาสตร์): การที่ข้อมือเคลื่อนที่สวนทางกัน (Opposition) แท้จริงแล้วสามารถอธิบายด้วยคณิตศาสตร์ของความต่างของมุมเฟส (Phase Angle Difference 120) ได้โดยตรง

โซลูชันและการแก้ไข:

เราได้ยุบรวมกฎข้อ 11 และข้อ 13 เข้าด้วยกันภายใต้โมดูลเดียวคือ RuleOppositionAndPhase (rule_opposition_and_phase.js) ทำให้ระบบคำนวณคณิตศาสตร์เพียงครั้งเดียวต่อหนึ่งเฟรม ช่วยลดภาระประมวลผลของหน่วยประมวลผลลงและคงการประเมินชีวกลศาสตร์ที่สมบูรณ์แบบไว้ได้ ส่งผลให้จำนวนกฎรวมลดรูปเหลือ 12 ข้อ ในปัจจุบัน

นอกจากนี้ เรายังปรับการแจกแจงกฎความสัมพันธ์สองมือให้ครอบคลุมท่ารำสองมือเพิ่มขึ้นครบถ้วนทั้ง 8 ท่ารำ (เช่น การตรวจสอบท่าก้าวรำเบี่ยงเบน rollback และการเชื่อมมุมเฟสในท่ามือไขว้ hand_cross)


3. สรุปความเปลี่ยนแปลงในระดับโค้ด (Heuristics Codebase Refactor)

  1. การลบโค้ดเก่า: ลบไฟล์คำนวณซ้ำซ้อน [rule_opposition_movement.js](file:///Users/yut/TaijiFlow/src/js/rules/rule_opposition_movement.js) และ [rule_phase_matching.js](file:///Users/yut/TaijiFlow/src/js/rules/rule_phase_matching.js) ออกจากคลังโค้ด
  2. การสร้างโมดูลรวม: พัฒนาไฟล์คำนวณรวมตัวใหม่ [rule_opposition_and_phase.js](file:///Users/yut/TaijiFlow/src/js/rules/rule_opposition_and_phase.js) สำหรับหาค่ามุมต่างเฟสและการย้อนทิศ
  3. การอัปเดตสมองควบคุม: ปรับแก้สคริปต์ [heuristics_engine.js](file:///Users/yut/TaijiFlow/src/js/core/heuristics_engine.js) ให้ชี้คำสั่งกลุ่มเกณฑ์ Level 2 และ Level 3 ไปที่คลาสตัวรวมใหม่
  4. การปรับเปลี่ยนหน้าจอตั้งค่าเกณฑ์ (Developer Panel):
    • แก้ไขไฟล์ [rules_config_manager.js](file:///Users/yut/TaijiFlow/src/js/ui/rules_config_manager.js) เพื่อเปลี่ยนเช็คบ็อกซ์และฟิลด์กรอกตัวเลขเกณฑ์ผิดพลาด (Thresholds) ให้เหลือเฉพาะตัวแปรคุมกฎตัวใหม่
    • แก้ไขไฟล์ [rules_popup_manager.js](file:///Users/yut/TaijiFlow/src/js/ui/rules_popup_manager.js) เพื่อจัดกลุ่มแสดงปุ่มแถบเกณฑ์สองมือ (หมวดสีส้ม) ให้แสดงเพียง 3 ปุ่ม เพื่อให้สะท้อนกฎ 12 ข้อได้อย่างถูกต้องและเป็นระเบียบ

4. ผลลัพธ์การทวนสอบการคำนวณ (Unit Testing Verification)

เพื่อยืนยันว่าการรวมกฎนี้ไม่ทำให้ความถูกต้องในการวิเคราะห์ทางคณิตศาสตร์ลดลง เราได้ปรับปรุงและรันไฟล์ตรวจสอบความถูกต้องผ่าน Jest Framework:

  • [heuristics_engine.test.js](file:///Users/yut/TaijiFlow/tests/unit/heuristics_engine.test.js):
    • ทดสอบท่ารำ Cloud Hands เมื่อมือทั้งสองเคลื่อนที่เป็นวงกลมมีมุมต่างเฟสสมบูรณ์ (120) -> ผลการประเมินต้อง ผ่าน (Pass)
    • ทดสอบท่ารำ Cloud Hands เมื่อมือเคลื่อนที่ไปทิศทางเดียวกันในลักษณะขนาน -> ผลการประเมินต้อง ล้มเหลว (Fail)
    • ทดสอบท่ารำ Hand Crossing เมื่อมือไขว้เคลื่อนสวนทางกันแนวนอน -> ผลการประเมินต้อง ผ่าน (Pass)
  • ผลลัพธ์: ชุดคำสั่งทดสอบ Unit Test รันผ่านสมบูรณ์ 100% ปราศจากบั๊กและสภาวะการถดถอยของโค้ด (Regression Free)

TaijiFlow AI Research & Development Project (Chán Sī Jìng Biomechanics)