รายงานวิวัฒนาการของกฎกติกา 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 ข้อหลัก:
- Rule 1: Path Shape (วิถีการโค้งของมือ): ตรวจวัดว่ามือเคลื่อนที่เป็นรูปทรงกลม/วงรีตามเกณฑ์อ้างอิงหรือไม่
- Rule 2: Arm Rotation (การหมุนครบรอบวง): ตรวจสอบการวาดแนวโค้งที่ครบ 360 องศาของแขน
- Rule 3: Elbow Sinking (การจมข้อศอก): เช็คระยะดิ่งว่าข้อศอกอยู่ต่ำกว่าแนวไหล่และไม่ยกกาง (กระดูกหัวไหล่ผ่อนคลาย)
- Rule 4: Waist Initiation (การริเริ่มแรงจากเอว): ตรวจว่าการขยับแขนเกิดขึ้นตามหลังหรือพร้อมกับการบิดของแกนสะโพก/เอว
- Rule 5: Vertical Stability (ความมั่นคงในแนวตั้ง): ตรวจสอบว่าแกนแนวกระดูกสันหลัง (คอถึงเป้า) ไม่โยกเอียงซ้ายขวาเกินเกณฑ์
- Rule 6: Smoothness (ความราบรื่นสม่ำเสมอ): คำนวณความเร่ง (Jerk) ของข้อมือเพื่อไม่ให้เกิดการกระตุกหรือหยุดชะงักกะทันหัน
- Rule 7: Continuity (ความต่อเนื่อง): ความเร็วของข้อมือต้องรักษาความสม่ำเสมอและไม่จอดสนิทระหว่างร่ายรำ
- Rule 8: Weight Shift (การถ่ายน้ำหนัก): คำนวณแกนกลางลำตัวสะโพกว่าโยกย้ายสอดคล้องกับจังหวะก้าวรำหรือไม่
- 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 (ความต่างเฟสของมือ) ก่อให้เกิดปัญหาดังนี้:
- Computational Overhead (ภาระประมวลผลสูง): โค้ดจำเป็นต้องดึงและวิเคราะห์เวกเตอร์ของข้อมือเทียบกับจุดหมุนสะโพกและไหล่ซ้ำซ้อนกันสองรอบต่อเฟรม ส่งผลให้อัตราเฟรมต่อวินาที (FPS) ของ AI ตกลงบนคอมพิวเตอร์ระดับทั่วไป
- Mathematical Redundancy (ความเหลื่อมล้ำเชิงคณิตศาสตร์): การที่ข้อมือเคลื่อนที่สวนทางกัน (Opposition) แท้จริงแล้วสามารถอธิบายด้วยคณิตศาสตร์ของความต่างของมุมเฟส (Phase Angle Difference
) ได้โดยตรง
โซลูชันและการแก้ไข:
เราได้ยุบรวมกฎข้อ 11 และข้อ 13 เข้าด้วยกันภายใต้โมดูลเดียวคือ RuleOppositionAndPhase (rule_opposition_and_phase.js) ทำให้ระบบคำนวณคณิตศาสตร์เพียงครั้งเดียวต่อหนึ่งเฟรม ช่วยลดภาระประมวลผลของหน่วยประมวลผลลงและคงการประเมินชีวกลศาสตร์ที่สมบูรณ์แบบไว้ได้ ส่งผลให้จำนวนกฎรวมลดรูปเหลือ 12 ข้อ ในปัจจุบัน
นอกจากนี้ เรายังปรับการแจกแจงกฎความสัมพันธ์สองมือให้ครอบคลุมท่ารำสองมือเพิ่มขึ้นครบถ้วนทั้ง 8 ท่ารำ (เช่น การตรวจสอบท่าก้าวรำเบี่ยงเบน rollback และการเชื่อมมุมเฟสในท่ามือไขว้ hand_cross)
3. สรุปความเปลี่ยนแปลงในระดับโค้ด (Heuristics Codebase Refactor)
- การลบโค้ดเก่า: ลบไฟล์คำนวณซ้ำซ้อน [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) ออกจากคลังโค้ด
- การสร้างโมดูลรวม: พัฒนาไฟล์คำนวณรวมตัวใหม่ [rule_opposition_and_phase.js](file:///Users/yut/TaijiFlow/src/js/rules/rule_opposition_and_phase.js) สำหรับหาค่ามุมต่างเฟสและการย้อนทิศ
- การอัปเดตสมองควบคุม: ปรับแก้สคริปต์ [heuristics_engine.js](file:///Users/yut/TaijiFlow/src/js/core/heuristics_engine.js) ให้ชี้คำสั่งกลุ่มเกณฑ์ Level 2 และ Level 3 ไปที่คลาสตัวรวมใหม่
- การปรับเปลี่ยนหน้าจอตั้งค่าเกณฑ์ (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 เมื่อมือทั้งสองเคลื่อนที่เป็นวงกลมมีมุมต่างเฟสสมบูรณ์ (
) -> ผลการประเมินต้อง ผ่าน (Pass) - ทดสอบท่ารำ Cloud Hands เมื่อมือเคลื่อนที่ไปทิศทางเดียวกันในลักษณะขนาน -> ผลการประเมินต้อง ล้มเหลว (Fail)
- ทดสอบท่ารำ Hand Crossing เมื่อมือไขว้เคลื่อนสวนทางกันแนวนอน -> ผลการประเมินต้อง ผ่าน (Pass)
- ทดสอบท่ารำ Cloud Hands เมื่อมือทั้งสองเคลื่อนที่เป็นวงกลมมีมุมต่างเฟสสมบูรณ์ (
- ผลลัพธ์: ชุดคำสั่งทดสอบ Unit Test รันผ่านสมบูรณ์ 100% ปราศจากบั๊กและสภาวะการถดถอยของโค้ด (Regression Free)