การทำ Retargeting จาก Webcam แบบ Real-Time ไปยัง VRM

เบราว์เซอร์สามารถควบคุมอวตาร 3D โดยใช้เพียงแค่เว็บแคมได้หรือไม่?

ผมได้ทดสอบ MediaPipe Holistic เพื่อดูว่ามันสามารถประมาณการเคลื่อนไหวของร่างกาย ใบหน้า และมือ เพื่อควบคุมอวตาร VRM 1.0 แบบ real-time ได้หรือไม่ โดยผมทำการทดสอบนี้บน Apple M1 Max โดยใช้ CPU และ WASM

ผลลัพธ์แสดงให้เห็นว่าเว็บแคมมาตรฐานสามารถควบคุมอวตาร 3D ได้โดยไม่ต้องใช้เครื่องมือ motion-capture ราคาแพง

ผลการทดสอบ: • ฮาร์ดแวร์: Apple M1 Max • อินพุต: สตรีมเว็บแคมความละเอียด 1280x720 • ความเร็วที่มีประสิทธิภาพ: 17.3 FPS • เวลาเฉลี่ยในการประมวลผล (Mean inference time): 49.17 ms • ความสำเร็จ: เฟรมท่าทาง (pose frames) ทั้ง 141 เฟรมที่ตรวจพบ สามารถอัปเดตโครงร่าง (skeleton) ของ VRM ได้ทั้งหมด

หลักการทำงาน: ระบบใช้ pipeline แบบหลายขั้นตอนในการติดตามจุดทั้งหมด 553 จุด:

  • 33 จุดสำหรับท่าทางร่างกาย (body pose)
  • 478 จุดสำหรับ face mesh (รวมถึงม่านตา)
  • 21 จุดสำหรับมือแต่ละข้าง

กระบวนการมีขั้นตอนดังนี้:

  • MediaPipe ตรวจจับจุดสำคัญ (landmarks) จากเว็บแคม
  • แปลงค่าพิกัด (coordinates) ไปยังพื้นที่ของ Three.js
  • แมปข้อมูลไปยังกระดูก (bones) และการแสดงออก (expressions) 34 ส่วนของ VRM
  • ใช้อัลกอริทึมการทำให้เรียบ (smoothing algorithms) เพื่อลดอาการสั่น (jitter) ด้วยการทำ interpolation การเคลื่อนไหว

การทำ Retargeting ทำงานโดยการปรับทิศทางระหว่างจุดสำคัญสองจุดให้ตรงกับทิศทางของกระดูก VRM ตัวอย่างเช่น การแมปจากไหล่ไปยังข้อศอกเพื่อกำหนดการหมุนของแขน ส่วนค่าสัมประสิทธิ์ใบหน้า (facial coefficients) จะถูกแมปโดยตรงไปยังการแสดงออกของอวตาร เช่น การกะพริบตาหรือการอ้าปาก

ข้อจำกัด:

  • ความเร็ว: 17.3 FPS นั้นดีสำหรับการสาธิต (demo) แต่ยังไม่ลื่นไหลพอสำหรับการทำ motion capture ระดับมืออาชีพที่ 60 FPS
  • การหมุน: นี่เป็นการประมาณการเชิงทิศทางเท่านั้น ไม่สามารถแก้ปัญหาการบิด (twist) ที่แม่นยำของแขนท่อนล่างหรือข้อเท้าได้
  • ความซับซ้อน: การทดสอบนี้ยังไม่ได้พิสูจน์ความสามารถในการติดตามใบหน้าและมือทั้งสองข้างพร้อมกันอย่างเสถียร เนื่องจากระยะเวลาในการทดสอบที่สั้น

การตั้งค่านี้เป็นวิธีที่เบา (lightweight) ในการสร้างการสาธิตอวตารบนเบราว์เซอร์และอินเทอร์เฟซการสั่งการด้วยท่าทาง (gesture interfaces)

แหล่งที่มา: https://dev.to/kiarina/real-time-webcam-to-vrm-retargeting-with-mediapipe-holistic-173-fps-on-m1-max-4be3