สรุปผลการพัฒนาระยะที่ 2: ระบบคลาวด์และชีวกลศาสตร์สองมือ (Sprint 1–4 Summary)
เอกสารฉบับนี้เป็นการรวบรวมและสังเคราะห์ผลการดำเนินงานใน ระยะที่ 2 (Phase 2: Cloud Integration, Two-Hand Heuristics & Data Pipelines) ของโครงการวิจัย TaijiFlow AI ครอบคลุมการพัฒนาตลอดทั้ง 4 Sprints เพื่อยกระดับสถาปัตยกรรมจากระบบประมวลผลฝั่งไคลเอนต์เฉพาะที่ (Local Client-side) ไปสู่ระบบคลาวด์สองชั้นแบบไร้เซิร์ฟเวอร์ (2-Tier Serverless Architecture) ควบคู่กับการขยายความสามารถในการวิเคราะห์ชีวกลศาสตร์สองมือ และการเตรียมชุดข้อมูลพิกัดสรีระ (AI-ready Dataset) ที่มีคุณภาพสูงสำหรับการพัฒนาแบบจำลองปัญญาประดิษฐ์ในระยะที่ 3
ภาพรวมการดำเนินงานราย Sprint (Phase 2 Sprint Roadmap)
| Sprint | ภารกิจหลัก (Core Focus) | เป้าหมายและผลลัพธ์สำคัญ (Key Milestones) | สถานะ |
|---|---|---|---|
| Sprint 1 | Supabase Setup & Authentication | ติดตั้งฐานข้อมูล PostgreSQL, ระบบสิทธิ์ RLS, Storage Bucket, และระบบสมาชิก Glassmorphic UI | ✅ สำเร็จ 100% |
| Sprint 2 | Data Pipeline & Optimization | ออกแบบท่อส่งข้อมูลคลาวด์อัตโนมัติ, บีบอัดพิกัด 4 ทศนิยม, เก็บ Baseline T-Pose, และกำหนดเวลาสัมพัทธ์ t | ✅ สำเร็จ 100% |
| Sprint 3 | Two-Hand Heuristics & Annotation | พัฒนากฎสองมือ (Rule 10–13), เส้นนำทางคู่ (Double Guideline), และแผงประเมินผลสำหรับผู้เชี่ยวชาญ (Expert Tool) | ✅ สำเร็จ 100% |
| Sprint 4 | Data Gathering & Deployment | สร้างสคริปต์ Python ตรวจสอบความสะอาดข้อมูล, ระบบสำรอง CDN Client, การจัดการแสง, และเตรียมพร้อมขึ้น Production | ✅ สำเร็จ 100% |
Sprint 1: ระบบสมาชิกและโครงสร้างคลาวด์ (Supabase Setup & Authentication)
1. วัตถุประสงค์
- ย้ายระบบจากการประมวลผลและจัดเก็บข้อมูลแบบ Local Client-side เท่านั้น ไปสู่ระบบ Client-Server (2-Tier Serverless) โดยเชื่อมโยงตรงสู่ Supabase
- พัฒนาระบบสมาชิก (Authentication), ระบบประวัติและโปรไฟล์ (Profile DB Schema), และระบบจัดเก็บข้อมูลพิกัดการฝึก (Storage Buckets)
- สร้างหน้าจอจัดการสมาชิกและแดชบอร์ดสถิติเบื้องต้น (Auth & Dashboard UI Popup) ในสไตล์ Glassmorphism
2. สิ่งที่ได้รับการพัฒนาสำเร็จ
- โครงสร้างฐานข้อมูล Postgres (Database Schema):
- ตาราง
public.users: เก็บข้อมูลโปรไฟล์ผู้ฝึก ได้แก่ ชื่อแสดงผล (Display Name), ส่วนสูง (Height), น้ำหนัก (Weight), และระดับประสบการณ์ไท้เก๊ก (Experience Level) - ตาราง
public.training_sessions: เก็บบันทึกประวัติการฝึกซ้อม (คะแนนรวม, เกรด, ข้อผิดพลาดหลัก, เวลาฝึกซ้อม, และลิงก์อ้างอิงไฟล์พิกัดโครงร่าง) - Postgres Trigger (
handle_new_user): ตรวจจับสมาชิกสมัครใหม่ในระบบ Auth และคัดลอกข้อมูลโปรไฟล์เริ่มต้นลงสู่ตารางpublic.usersอัตโนมัติ
- ตาราง
- นโยบายความปลอดภัยของข้อมูล (Row Level Security - RLS):
- กำหนดเงื่อนไข
auth.uid() = idสำหรับข้อมูลโปรไฟล์ (อ่านและเขียนเฉพาะของตนเอง) - กำหนดเงื่อนไข
auth.uid() = user_idสำหรับประวัติการฝึกซ้อม (ป้องกันการดึงข้อมูลข้ามบัญชีหรือบันทึกข้อมูลสวมรอย)
- กำหนดเงื่อนไข
- พื้นที่จัดเก็บไฟล์ส่วนบุคคล (Storage Bucket & Policies):
- สร้าง Private Bucket
training-sessionsสำหรับจัดเก็บไฟล์ JSON พิกัดร่างกาย - กำหนด RLS Storage Policies บังคับให้เขียนและอ่านได้เฉพาะโฟลเดอร์ที่ตรงกับ UID ตนเอง:
(storage.foldername(name))[1] = auth.uid()::text
- สร้าง Private Bucket
- ระบบติดต่อผู้ใช้และควบคุมสมาชิก (Auth UI & Manager):
- พัฒนาระบบลงทะเบียน เข้าสู่ระบบ ออกจากระบบ และรองรับ Google OAuth
- หน้าต่างป๊อปอัปสไตล์ Glassmorphic แสดงประวัติการฝึกย้อนหลัง 5 ครั้งล่าสุด พร้อมแผนภูมิสถิติพลอตคะแนนพัฒนาการย้อนหลัง
3. ผลการทดสอบระบบ
- การสมัครและเข้าสู่ระบบ: ลงทะเบียนและล็อกอินสำเร็จ ข้อมูลในตาราง
usersถูกสร้างอัตโนมัติตาม Trigger และดึงประวัติการฝึกซ้อมมาพลอตบนแดชบอร์ดได้แบบเรียลไทม์ - การรักษาความปลอดภัย (RLS): ทดสอบใช้คำสั่ง SQL ฝั่งไคลเอนต์พยายามดึงข้อมูลข้าม UID พบว่าถูกบล็อกอย่างสมบูรณ์ (Access Denied)
Sprint 2: ท่อส่งข้อมูลและการบีบอัดพิกัด (Data Pipeline & Optimization)
1. วัตถุประสงค์
- พัฒนาระบบท่อส่งข้อมูลการเคลื่อนไหวที่มีประสิทธิภาพ (Data Ingestion Pipeline) โดยลดขนาดไฟล์ JSON ให้เบาที่สุด
- จัดรูปแบบข้อมูล (Formatting & Cleaning) ให้เหมาะสมสำหรับประมวลผลอนุกรมเวลา (Temporal Sequence) และเตรียมเป็นชุดข้อมูลสำหรับโมเดล Deep Learning ในระยะที่ 3
- ปรับแต่งระบบให้ส่งออกข้อมูลคะแนนรวม ข้อมูลหลักการประเมินแยกหมวดหมู่ และพิกัดโครงร่างขึ้นสู่ Supabase อัตโนมัติ
2. สิ่งที่ได้รับการพัฒนาสำเร็จ
- การบีบอัดพิกัด MediaPipe (4 Decimal Precision):
- ปรับลดทศนิยมของตัวแปร
และ visibility บนจุดข้อต่อ 33 จุด จากเดิม 5 ตำแหน่งเหลือ 4 ตำแหน่ง - ช่วยลดขนาดไฟล์ JSON สุทธิลง 20–30% (~1.2 MB ต่อเซสชันการฝึก 5 นาที) ประหยัดแบนด์วิดท์และพื้นที่จัดเก็บอย่างมีนัยสำคัญ
- ปรับลดทศนิยมของตัวแปร
- การกำหนดเวลาสัมพัทธ์มาตรฐาน (Relative Timestamp
t):- บันทึกความต่างของเวลาในหน่วย มิลลิวินาที (Milliseconds) สัมพัทธ์ตั้งแต่เริ่มฝึกรำ (
) ช่วยเพิ่มเสถียรภาพและคุณภาพเมื่อนำไปป้อนโมเดลโครงข่ายกลุ่ม ST-GCN / Transformer
- บันทึกความต่างของเวลาในหน่วย มิลลิวินาที (Milliseconds) สัมพัทธ์ตั้งแต่เริ่มฝึกรำ (
- การสกัดป้ายกำกับข้อผิดพลาด (ML Heuristics Classification Labels):
- สกัดข้อความ Feedback การประเมินกฎไท้เก๊กแยกตามหมวดหมู่และบันทึกเป็นอาเรย์
labelsรายเฟรม สำหรับใช้เป็น Classification Ground Truth
- สกัดข้อความ Feedback การประเมินกฎไท้เก๊กแยกตามหมวดหมู่และบันทึกเป็นอาเรย์
- การบันทึกพิกัดมาตรฐาน T-Pose (Calibration Pose Baseline):
- บันทึกพิกัด 33 จุดของท่ากางแขน T-pose ขณะปรับเทียบสำเร็จไว้ใน
meta.calibration_poseเพื่อใช้อ้างอิงสัดส่วนสรีระเฉพาะบุคคลของผู้ฝึก
- บันทึกพิกัด 33 จุดของท่ากางแขน T-pose ขณะปรับเทียบสำเร็จไว้ใน
- ท่อส่งคลาวด์อัตโนมัติ (Automated Cloud Pipeline):
- อัปโหลดไฟล์ JSON เข้าสู่ Private Bucket แบบ Asynchronous ทันทีหลังจบการฝึกซ้อม โดยแยกพาธตามผู้ใช้:
training-sessions/{user_id}/{session_id}.json - บันทึกสถิติผลลัพธ์การฝึก คะแนนรวม เกรด และคะแนนแยกตามหลักการไท้เก๊ก 6 หมวด (
category_scores) เข้าสู่ตารางpublic.training_sessions - มีระบบสำรองให้ดาวน์โหลดไฟล์เก็บในเครื่อง (Local Download) เสมอหากระบบเครือข่ายมีปัญหา
- อัปโหลดไฟล์ JSON เข้าสู่ Private Bucket แบบ Asynchronous ทันทีหลังจบการฝึกซ้อม โดยแยกพาธตามผู้ใช้:
3. ผลการทดสอบระบบ
- การทดสอบ End-to-End (E2E): การฝึกซ้อมเสร็จสิ้นและท่อส่งข้อมูลทำงานอัตโนมัติ ข้อมูลถูกบีบอัดและอัปโหลดขึ้น Supabase Storage พร้อมบันทึกลงฐานข้อมูลเสร็จสิ้นภายใน 1–2 วินาที
- ความถูกต้องของโครงสร้างไฟล์: ตรวจสอบไฟล์ JSON มีคีย์ Baseline ครบถ้วน ทศนิยม 4 ตำแหน่ง ลำดับเวลา
ต่อเนื่อง และ Label ถูกต้องตามข้อกำหนด
Sprint 3: ชีวกลศาสตร์สองมือและเครื่องมือประเมิน (Two-Hand Heuristics & Annotation)
1. วัตถุประสงค์
- ออกแบบและพัฒนาชุดตรรกะตรวจเช็คความสัมพันธ์ของการเคลื่อนไหวสองมือ 4 กฎใหม่ (Rule 10 ถึง 13)
- เปิดระบบสนับสนุนท่ารำม้วนไหมสองมือใหม่ 8 ท่า (ท่าที่ 5 ถึง 12) พร้อมรองรับระดับความสูงสรีระ L1, L2, L3
- พัฒนาเครื่องมือในโหมดรีเพลย์ (Replay Mode) สำหรับให้ผู้เชี่ยวชาญให้คะแนน (Human Annotation Score) และบันทึกคำแนะนำ เพื่อใช้เป็นชุดข้อมูลอ้างอิงมาตรฐาน (Ground Truth) ในระยะที่ 3
2. สิ่งที่ได้รับการพัฒนาสำเร็จ
- ชุดกฎชีวกลศาสตร์สองมือ 4 กฎใหม่ (Rule 10–13):
- Rule 10: Bilateral Symmetry (สมมาตรโครงสร้าง): ตรวจวัดความเอียงของแกนระดับไหล่ (Shoulder Tilt) และสะโพก (Pelvic Tilt) ไม่ให้เกิน 5% พร้อมตรวจวัดระยะการยืดออกของข้อมือซ้าย-ขวาเทียบกับแนวกึ่งกลางตัว
- Rule 11: Opposition Movement (การเคลื่อนสวนทิศ): วิเคราะห์เวกเตอร์ความเร็ว
ของทั้งสองมือให้เคลื่อนสวนทางกันอย่างสัมพันธ์กัน (เช่น ท่ามือเมฆที่สองมือสลับขึ้นลงสวนทิศ) - Rule 12: Hand Coordination (มือสอดคล้องคล้อยตาม): ควบคุมสัดส่วนความเร็วเชิงเส้นระหว่างสองมือให้อยู่ในช่วง
ป้องกันมือข้างใดข้างหนึ่งหยุดนิ่งหรือเคลื่อนไหวขาดความต่อเนื่อง - Rule 13: Phase Matching (การประสานเฟสจังหวะ): คำนวณมุมเฟสของการแกว่งแขน (
) รอบจุดหมุน และตรวจสอบความต่างของเฟสให้อยู่ในจังหวะสวนทิศรอบวงกลมสมบูรณ์ที่
- ระบบเส้นนำทางคู่ (Double Path Guidelines):
- พัฒนาการคำนวณและเรนเดอร์เส้น Guideline วงกลมคู่ซ้าย-ขวาพร้อมเป้าเล็งมือ (Hand Targets) สองจุดพร้อมกันบนแคนวาส สำหรับท่ารำที่ 5 ถึง 12
- แผงเครื่องมือประเมินของผู้ฝึกสอน (Expert Annotation Tool):
- ออกแบบอินเตอร์เฟส Glassmorphic Overlay ในโหมดเล่นย้อนหลัง (Skeletal Replay) ประกอบด้วยสไลเดอร์ให้คะแนน (0–100) และช่องกรอกข้อเสนอแนะเชิงลึก
- ส่งค่าคะแนน
expert_scoreและคำแนะนำexpert_notesอัปเดตลงตารางtraining_sessionsบนฐานข้อมูลหลักทันที
- ระบบจัดหมวดหมู่ท่าฝึกซ้อม (Categorized Exercise Selection):
- แบ่งหมวดหมู่การเลือกท่าเป็นแบบ "มือเดียว (ท่า 1–4)" และ "สองมือ (ท่า 5–12)" พร้อมระบบสุ่มแยกหมวด
- รองรับการซิงค์ข้ามอุปกรณ์ (Two-Way Sync) ระหว่างจอเดสก์ท็อปและจอมือถืออย่างแม่นยำ
3. ผลการทดสอบระบบ
- Unit & Integration Tests: ผ่านชุดทดสอบ 75 ชุดทดสอบ (100% Pass)
- Build & Obfuscation: คอมไพล์ผ่านและรันฟังก์ชันรีเพลย์พร้อมส่งคะแนนผู้เชี่ยวชาญขึ้นฐานข้อมูลได้สมบูรณ์
Sprint 4: การตรวจสอบคุณภาพข้อมูลและการนำขึ้นใช้งาน (Data Gathering & Deployment)
1. วัตถุประสงค์
- พัฒนาเครื่องมือ Python Script สำหรับตรวจสอบความสมบูรณ์และวิเคราะห์ความสะอาดของข้อมูลพิกัดร่างกาย (JSON Dataset) ทั้งจากไฟล์ในเครื่องและจากระบบคลาวด์
- ยกระดับความทนทานของระบบเชื่อมต่อ Supabase Client ให้พร้อมรับมือกับข้อผิดพลาดของเครือข่ายและตัวบล็อกโฆษณา (Adblockers)
- ปรับปรุงระบบตรวจจับสภาพแสงเพื่อลดการรบกวนผู้ฝึก และเตรียมความพร้อมสำหรับการนำระบบขึ้นใช้งานจริง (Production Deployment)
2. สิ่งที่ได้รับการพัฒนาสำเร็จ
- สคริปต์ Python ตรวจสอบความพร้อมของชุดข้อมูล (
validate_dataset.py):- รองรับทั้ง Local Mode (
-p) ตรวจสอบไฟล์ในเครื่องแบบกลุ่ม (Batch) และ Cloud Mode (-c) ดึงข้อมูลล่าสุดจาก Supabase มาตรวจอัตโนมัติ - รายการตรวจสอบคุณภาพ (Validation Checklist):
- ตรวจสอบ Schema ของคีย์หลัก (
meta,score_summary,frames) - ตรวจสอบการปัดเศษทศนิยม 4 ตำแหน่งของ Landmarks (
) - ตรวจสอบความครบถ้วนของข้อต่อ 33 จุดในทุกเฟรม และดักจับค่าผิดปกติ เช่น
NaN,null - ตรวจสอบลำดับเวลา
(Relative Timestamp) ป้องกันเวลาซ้ำซ้อนหรือย้อนกลับ - ทดสอบแปลงข้อมูลเข้าสู่ NumPy Array รูปทรง
และสร้าง Pandas DataFrame สถิติภาพรวม
- ตรวจสอบ Schema ของคีย์หลัก (
- รองรับทั้ง Local Mode (
- การเพิ่มความทนทานของระบบเชื่อมต่อคลาวด์ (Resilient Supabase Integration):
- Dynamic CDN Fallbacks: หาก CDN หลัก (jsDelivr) ถูกบล็อก ระบบจะสลับไปโหลดจาก CDN สำรอง (unpkg หรือ cdnjs) อัตโนมัติ
- On-Demand Initialization: ปรับปรุงตรรกะเรียกใช้งาน Auth API ให้ทวนสอบความพร้อมของ Client ก่อนเสมอ ป้องกันปัญหาปุ่มกดไม่ทำงานเมื่อเครือข่ายล่าช้า
- Duplicate Event Guard: ป้องกันการลงทะเบียน Event Listener ซ้ำซ้อนในระบบสมาชิก
- การปรับปรุงระบบตรวจเช็คสภาพแสง (Lighting Manager Enhancements):
- Throttled Luminance Checks: วิเคราะห์ความสว่างของพิกเซลกล้องทุก 60 เฟรม (~2 วินาทีต่อครั้ง) ป้องกันอาการเฟรมเรตตก
- Calibration-Only Alerts: จำกัดการเตือนเรื่องแสงเฉพาะช่วงปรับเทียบสรีระ (Calibration Phase) เท่านั้น เมื่อเริ่มรำจริง (Flow Mode) ระบบจะปิดเสียงเตือนเพื่อรักษาสมาธิของผู้ฝึก
3. ผลการทดสอบระบบ
- การทดสอบความถูกต้องของข้อมูล (Dataset Validation):
- ไฟล์ที่ถูกต้อง: รายงาน
🎉 Validation Result: SUCCESS (Perfect AI-ready Dataset!) - ไฟล์ที่ชำรุด: ดักจับค่าเวลาซ้ำซ้อน พิกัด
NaNและจุดข้อต่อไม่ครบได้อย่างแม่นยำทุกบรรทัด
- ไฟล์ที่ถูกต้อง: รายงาน
- การทดสอบในสภาวะแสงจริง: ทดสอบในห้องสลัว ห้องสว่าง และระยะยืนใกล้-ไกล ระบบแจ้งเตือนได้อย่างถูกต้องตามบริบทและไม่รบกวนระหว่างฝึกซ้อม
- Production Build: คอมไพล์โค้ดและทดสอบผ่าน Jest 75 ชุดทดสอบ (100% Pass) พร้อมดีพลอยขึ้นระบบ Production บน Vercel ได้สำเร็จ
สรุปความพร้อมของระบบสู่ระยะที่ 3 (Phase 2 to Phase 3 Readiness)
การดำเนินงานในระยะที่ 2 ทั้ง 4 Sprints ส่งมอบรากฐานสำคัญที่พร้อมสนับสนุนงานวิจัยดุษฎีนิพนธ์ในระยะที่ 3 อย่างเต็มรูปแบบ:
- โครงสร้างพื้นฐานคลาวด์ (Cloud Infrastructure): มีระบบจัดเก็บข้อมูลพิกัดและประวัติการฝึกซ้อมที่ปลอดภัยด้วยนโยบาย RLS พร้อมรองรับอาสาสมัครวิจัย
- ชุดกฎชีวกลศาสตร์ครบ 12 ข้อ (Biomechanical Rules): รองรับการประเมินท่ารำม้วนไหมทั้งแบบมือเดียวและสองมือ ครอบคลุม 12 ท่าฝึกมาตรฐาน
- เครื่องมือจัดทำป้ายกำกับข้อมูล (Expert Annotation Suite): ผู้เชี่ยวชาญสามารถดูภาพโครงร่างย้อนหลังและให้คะแนน Ground Truth ได้อย่างเป็นระบบ
- ชุดข้อมูลมาตรฐาน AI-ready (Standardized Dataset): ข้อมูลพิกัดได้รับการบีบอัด ทำความสะอาด มีการอ้างอิง Baseline T-Pose และผ่านการตรวจสอบด้วยสคริปต์ Python พร้อมป้อนเข้าสู่โมเดล ST-GCN และ Transformer ทันที