انتقال حرکات از وب‌کم به VRM به‌صورت آنی (Real-Time)

آیا یک مرورگر می‌تواند تنها با استفاده از وب‌کم، یک آواتار سه‌بعدی را هدایت کند؟

من MediaPipe Holistic را آزمایش کردم تا ببینم آیا می‌تواند حرکات بدن، صورت و دست را برای کنترل یک آواتار VRM 1.0 به‌صورت آنی تخمین بزند یا خیر. این آزمایش را روی یک Apple M1 Max با استفاده از CPU و WASM اجرا کردم.

نتایج نشان می‌دهد که یک وب‌کم معمولی می‌تواند بدون نیاز به تجهیزات گران‌قیمت موشن‌کپچر (motion-capture)، یک آواتار سه‌بعدی را هدایت کند.

نتایج آزمایش: • سخت‌افزار: Apple M1 Max • ورودی: استریم وب‌کم با کیفیت 1280x720 • سرعت مؤثر: 17.3 FPS • میانگین زمان استنتاج (inference): 49.17 ms • موفقیت: تمام ۱۴۱ فریمِ ژستِ شناسایی‌شده، اسکلت VRM را به‌روزرسانی کردند

نحوه عملکرد: این سیستم از یک خط لوله (pipeline) چند مرحله‌ای برای ردیابی ۵۵۳ نقطه استفاده می‌کند:

  • ۳۳ نقطه برای ژست بدن
  • ۴۷۸ نقطه برای مش صورت (شامل عنبیه چشم)
  • ۲۱ نقطه برای هر دست

این فرآیند مراحل زیر را دنبال می‌کند:

  • MediaPipe نقاط شاخص (landmarks) را از وب‌کم شناسایی می‌کند
  • مختصات به فضای Three.js تبدیل می‌شوند
  • داده‌ها به ۳۴ استخوان و حالت‌های بیانی (expressions) در VRM نگاشت می‌شوند
  • الگوریتم‌های نرم‌سازی با درون‌یابی (interpolating) حرکات، لرزش (jitter) را کاهش می‌دهند

انتقال حرکات (Retargeting) از طریق هم‌راستا کردن جهت بین دو نقطه شاخص با جهت استخوان VRM انجام می‌شود. برای مثال، برای تنظیم چرخش بازو، نقطه شانه را به آرنج نگاشت می‌کند. ضرایب صورت نیز مستقیماً به حالت‌های بیانی آواتار مانند پلک زدن یا باز شدن فک نگاشت می‌شوند.

محدودیت‌ها:

  • سرعت: نرخ ۱۷.۳ FPS برای نمایش‌های دموی مناسب است، اما برای موشن‌کپچر حرفه‌ای با ۶۰ FPS به اندازه کافی روان نیست.
  • چرخش: این یک تقریب جهتی است و چرخش دقیق (twist) ساعد یا مچ پا را حل نمی‌کند.
  • پیچیدگی: به دلیل کوتاه بودن مدت آزمایش، این تست نتوانست ردیابی هم‌زمان و پایدار صورت و هر دو دست را به‌طور هم‌زمان اثبات کند.

این چیدمان راهی سبک برای ساخت دموهای آواتار در مرورگر و رابط‌های کاربری مبتنی بر ژست (gesture interfaces) فراهم می‌کند.

منبع: https://dev.to/kiarina/real-time-webcam-to-vrm-retargeting-with-mediapipe-holistic-173-fps-on-m1-max-4be3