রিয়েল-টাইম ওয়েবক্যাম থেকে VRM রিটার্গেটিং
একটি ব্রাউজার কি শুধুমাত্র একটি ওয়েবক্যাম ব্যবহার করে একটি 3D অবতার পরিচালনা করতে পারে?
আমি MediaPipe Holistic পরীক্ষা করে দেখেছি যে এটি রিয়েল-টাইমে একটি VRM 1.0 অবতার নিয়ন্ত্রণ করার জন্য শরীরের ভঙ্গি, মুখমণ্ডল এবং হাতের নড়াচড়া অনুমান করতে পারে কি না। আমি Apple M1 Max-এ CPU এবং WASM ব্যবহার করে এই পরীক্ষাটি চালিয়েছি।
ফলাফলগুলো দেখায় যে দামী মোশন-ক্যাপচার গিয়ার ছাড়াই একটি সাধারণ ওয়েবক্যাম একটি 3D অবতার পরিচালনা করতে পারে।
পরীক্ষার ফলাফল: • হার্ডওয়্যার: Apple M1 Max • ইনপুট: 1280x720 ওয়েবক্যাম স্ট্রিম • কার্যকর গতি: 17.3 FPS • গড় ইনফারেন্স টাইম: 49.17 ms • সাফল্য: শনাক্তকৃত ১৪১টি পোজ ফ্রেমের সবকটিই VRM স্কেলিটন আপডেট করেছে
এটি যেভাবে কাজ করে: সিস্টেমটি ৫৫৩টি পয়েন্ট ট্র্যাক করার জন্য একটি মাল্টি-স্টেজ পাইপলাইন ব্যবহার করে:
- শরীরের ভঙ্গি বা পোজের জন্য ৩৩টি পয়েন্ট
- ফেস মেশের জন্য ৪৭৮টি পয়েন্ট (আইরিসসহ)
- প্রতিটি হাতের জন্য ২১টি পয়েন্ট
প্রক্রিয়াটি এই ধাপগুলো অনুসরণ করে:
- MediaPipe ওয়েবক্যাম থেকে ল্যান্ডমার্ক শনাক্ত করে
- কোঅর্ডিনেটগুলোকে Three.js স্পেসে রূপান্তরিত করা হয়
- ডেটা ৩৪টি VRM বোন (bone) এবং এক্সপ্রেশনে ম্যাপ করা হয়
- স্মুথিং অ্যালগরিদম মুভমেন্ট ইন্টারপোলেশনের মাধ্যমে জিটার (jitter) কমায়
রিটার্গেটিং দুটি ল্যান্ডমার্কের মধ্যবর্তী দিককে VRM বোন-এর দিকের সাথে সামঞ্জস্যপূর্ণ করার মাধ্যমে কাজ করে। উদাহরণস্বরূপ, এটি হাতের রোটেশন সেট করার জন্য কাঁধ থেকে কনুই পর্যন্ত ম্যাপ করে। ফেসিয়াল কোফিসিয়েন্টগুলো সরাসরি অবতারের এক্সপ্রেশন যেমন চোখের পলক ফেলা বা চোয়াল খোলার সাথে ম্যাপ করা হয়।
সীমাবদ্ধতা:
- গতি: ১৭.৩ FPS ডেমোর জন্য ভালো, কিন্তু পেশাদার ৬০ FPS মোশন ক্যাপচারের জন্য যথেষ্ট মসৃণ নয়।
- রোটেশন: এটি একটি দিকনির্দেশনামূলক অনুমান (directional approximation)। এটি হাতের কবজি বা গোড়ালির সঠিক টুইস্ট (twist) সমাধান করতে পারে না।
- জটিলতা: পরীক্ষার সময়কাল কম হওয়ায় মুখমণ্ডল এবং উভয় হাত একসাথে স্থিতিশীলভাবে ট্র্যাক করা সম্ভব হয়েছে কিনা তা এই পরীক্ষায় প্রমাণিত হয়নি।
এই সেটআপটি ইন-ব্রাউজার অবতার ডেমো এবং জেসচার ইন্টারফেস তৈরির একটি হালকা (lightweight) উপায় প্রদান করে।
