Gerçek Zamanlı Webcam'den VRM'e Retargeting
Bir tarayıcı, sadece bir webcam kullanarak 3D bir avatarı kontrol edebilir mi?
VRM 1.0 bir avatarı gerçek zamanlı olarak kontrol etmek için vücut, yüz ve el hareketlerini tahmin edip edemeyeceğini görmek amacıyla MediaPipe Holistic'i test ettim. Bu testi, Apple M1 Max üzerinde CPU ve WASM kullanarak gerçekleştirdim.
Sonuçlar, standart bir webcam'in pahalı hareket yakalama (motion-capture) ekipmanlarına ihtiyaç duymadan bir 3D avatarı kontrol edebileceğini gösteriyor.
Test Sonuçları: • Donanım: Apple M1 Max • Giriş: 1280x720 webcam akışı • Etkili hız: 17.3 FPS • Ortalama çıkarım süresi: 49.17 ms • Başarı: Tespit edilen 141 poz karesinin tamamı VRM iskeletini güncelledi
Nasıl Çalışır: Sistem, 553 noktayı takip etmek için çok aşamalı bir boru hattı (pipeline) kullanır:
- Vücut pozu için 33 nokta
- Yüz ağı (face mesh) için 478 nokta (irisler dahil)
- Her bir el için 21 nokta
Süreç şu adımları izler:
- MediaPipe, webcam'den işaret noktalarını (landmarks) tespit eder
- Koordinatlar Three.js uzayına dönüştürülür
- Veriler 34 VRM kemiğine ve ifadesine eşlenir
- Yumuşatma algoritmaları, hareketleri enterpole ederek titremeyi (jitter) azaltır
Retargeting, iki işaret noktası arasındaki yönü VRM kemik yönüyle hizalayarak çalışır. Örneğin, kol rotasyonunu ayarlamak için omuzu dirseğe eşler. Yüz katsayıları; göz kırpma veya çene açma gibi avatar ifadelerine doğrudan eşlenir.
Sınırlamalar:
- Hız: 17.3 FPS demolar için iyidir ancak profesyonel 60 FPS hareket yakalama için yeterince akıcı değildir.
- Rotasyon: Bu, yönsel bir yaklaşımdır. Ön kollar veya ayak bilekleri için kesin burulma (twist) sorununu çözmez.
- Karmaşıklık: Test süresinin kısa olması nedeniyle, yüzün ve her iki elin aynı anda istikrarlı bir şekilde takip edildiği kanıtlanamamıştır.
Bu kurulum, tarayıcı tabanlı avatar demoları ve jest arayüzleri oluşturmak için hafif bir yol sunar.
