Inside the Tech - Memecahkan Ekspresi Wajah Avatar - Blog Roblox

Inside the Tech – Memecahkan Ekspresi Wajah Avatar – Blog Roblox

Node Sumber: 3039939

Inside the Tech adalah seri blog yang menyertai kami Podcast Pembicaraan Teknologi. Dalam podcast episode 20, Avatar & Ekspresi Diri, CEO Roblox David Baszucki berbicara dengan Direktur Senior Teknik Kiran Bhat, Direktur Senior Produk Mahesh Ramasubramanian, dan Manajer Produk Utama Effie Goenawan, tentang masa depan komunikasi mendalam melalui avatar dan tantangan teknis yang kami selesaikan untuk mewujudkannya. Dalam Inside the Tech edisi kali ini, kami berbicara dengan Manajer Teknik Ian Sachs untuk mempelajari lebih lanjut tentang salah satu tantangan teknis tersebut—memungkinkan ekspresi wajah untuk avatar kami—dan bagaimana kerja tim Penciptaan Avatar (di bawah grup Mesin) membantu pengguna mengekspresikan diri mereka. di Roblox.

Apa tantangan teknis terbesar yang dihadapi tim Anda?

Ketika kita berpikir tentang bagaimana avatar mewakili seseorang di Roblox, kita biasanya mempertimbangkan dua hal: Bagaimana perilakunya dan tampilannya. Jadi salah satu fokus utama tim saya adalah memungkinkan avatar mencerminkan ekspresi seseorang. Misalnya, saat seseorang tersenyum, avatarnya akan tersenyum selaras dengan dirinya. 

Salah satu hal tersulit dalam melacak ekspresi wajah adalah menyesuaikan efisiensi model sehingga kami dapat menangkap ekspresi tersebut langsung di perangkat orang tersebut secara real-time. Kami berkomitmen untuk menjadikan fitur ini dapat diakses oleh sebanyak mungkin orang di Roblox, dan kami perlu mendukung sejumlah besar perangkat. Jumlah daya komputasi yang dapat ditangani perangkat seseorang merupakan faktor penting dalam hal ini. Kami ingin semua orang dapat mengekspresikan diri mereka, bukan hanya orang-orang yang memiliki perangkat canggih. Jadi kami menerapkan salah satu model pembelajaran mendalam pertama kami untuk mewujudkan hal ini. 

Tantangan teknis utama kedua yang kami atasi adalah menyederhanakan proses yang digunakan pembuat konten untuk mengembangkan avatar dinamis yang dapat dipersonalisasi oleh orang-orang. Membuat avatar seperti itu cukup rumit karena Anda harus memodelkan kepalanya dan jika ingin dianimasikan, Anda harus melakukan hal-hal yang sangat spesifik untuk melengkapi modelnya, seperti menempatkan sambungan dan beban untuk skinning campuran linier. Kami ingin mempermudah proses ini bagi para pembuat konten, jadi kami mengembangkan teknologi untuk menyederhanakannya. Mereka seharusnya hanya fokus membangun model statis. Ketika mereka melakukannya, kita dapat memasang dan mengurungnya secara otomatis. Kemudian, pelacakan wajah dan pakaian berlapis akan langsung berfungsi. 

Apa saja pendekatan dan solusi inovatif yang kami gunakan untuk mengatasi tantangan teknis ini?

Kami telah melakukan beberapa hal penting untuk memastikan kami mendapatkan informasi yang tepat untuk ekspresi wajah. Itu dimulai dengan menggunakan FACS (Facial Animation Control System) standar industri. Ini adalah kunci dari segalanya karena itulah yang kita gunakan untuk mengarahkan ekspresi wajah avatar—seberapa lebar mulutnya, mata mana yang terbuka dan seberapa banyak, dan seterusnya. Kita dapat menggunakan sekitar 50 kontrol FACS yang berbeda untuk mendeskripsikan ekspresi wajah yang diinginkan. 

Saat Anda membuat algoritme pembelajaran mesin untuk memperkirakan ekspresi wajah dari gambar atau video, Anda melatih model dengan menunjukkan contoh gambar dengan ekspresi kebenaran dasar yang diketahui (dijelaskan dengan FACS). Dengan menampilkan banyak gambar berbeda dengan ekspresi berbeda kepada model, model belajar memperkirakan ekspresi wajah dari wajah yang sebelumnya tidak terlihat.

Biasanya, saat Anda mengerjakan pelacakan wajah, ekspresi ini diberi label oleh manusia, dan metode termudah adalah menggunakan penanda—misalnya, menempatkan titik pada gambar untuk menandai lokasi piksel fitur wajah seperti sudut mata. 

Namun bobot FACS berbeda karena Anda tidak dapat melihat gambar dan berkata, “Mulutnya terbuka 0.9 vs. 0.5.” Untuk mengatasi hal ini, kami menggunakan data sintetis untuk menghasilkan bobot FACS secara langsung yang terdiri dari model 3D yang dirender dengan pose FACS dari berbagai sudut dan kondisi pencahayaan.

Sayangnya, karena model perlu digeneralisasikan ke wajah asli, kami tidak bisa hanya berlatih menggunakan data sintetik. Jadi, kami melatih model terlebih dahulu pada tugas prediksi penting menggunakan kombinasi data nyata dan sintetik, sehingga model dapat mempelajari tugas prediksi FACS menggunakan data sintetik murni.

Kami ingin pelacakan wajah berfungsi untuk semua orang, namun beberapa perangkat lebih canggih dibandingkan perangkat lainnya. Artinya, kami perlu membangun sistem yang mampu beradaptasi secara dinamis terhadap kekuatan pemrosesan perangkat apa pun. Kami mencapai hal ini dengan membagi model kami menjadi fase perkiraan FACS cepat yang disebut BaseNet dan fase penyempurnaan FACS yang lebih akurat yang disebut HiFiNet. Selama runtime, sistem mengukur kinerjanya, dan dalam kondisi optimal, kami menjalankan kedua fase model. Namun jika perlambatan terdeteksi (misalnya, karena perangkat kelas bawah), sistem hanya akan menjalankan tahap pertama.

Apa saja hal penting yang telah Anda pelajari dari melakukan pekerjaan teknis ini?

Salah satunya adalah membuat suatu fitur berfungsi hanyalah sebagian kecil dari apa yang sebenarnya diperlukan untuk merilis sesuatu dengan sukses. Banyak pekerjaan yang sedang dalam proses rekayasa dan pengujian unit. Kita perlu memastikan bahwa kita memiliki cara yang baik untuk menentukan apakah kita memiliki saluran data yang baik. Dan kita perlu bertanya pada diri sendiri, “Hei, apakah model baru ini lebih baik dari model lama?”

Bahkan sebelum kami memulai rekayasa inti, semua jalur yang kami siapkan untuk melacak eksperimen, memastikan kumpulan data kami mewakili keragaman pengguna kami, mengevaluasi hasil, dan menerapkan serta mendapatkan umpan balik mengenai hasil baru tersebut akan membuat model tersebut memadai. Namun itu adalah bagian dari proses yang jarang dibicarakan, meskipun hal ini sangat penting. 

Nilai Roblox manakah yang paling selaras dengan tim Anda?

Memahami fase suatu proyek adalah kuncinya, jadi selama inovasi, mengambil pandangan jangka panjang sangatlah penting, terutama dalam penelitian ketika Anda mencoba memecahkan masalah penting. Namun menghormati komunitas juga penting ketika Anda mengidentifikasi masalah yang layak untuk berinovasi karena kami ingin mengatasi masalah tersebut dengan memberikan nilai terbaik bagi komunitas kami yang lebih luas. Misalnya, kami secara khusus memilih untuk mengerjakan “pelacakan wajah untuk semua” daripada hanya “pelacakan wajah”. Saat Anda mencapai angka 90 persen dalam membangun sesuatu, transisi prototipe menjadi fitur fungsional bergantung pada eksekusi dan adaptasi pada tahap proyek.

Apa yang paling membuat Anda bersemangat tentang tujuan Roblox dan tim Anda?

Saya selalu tertarik untuk mengerjakan alat yang membantu orang menjadi kreatif. Menciptakan sesuatu itu istimewa karena Anda akan mendapatkan sesuatu yang unik milik Anda. Saya telah bekerja di bidang efek visual dan berbagai alat pengeditan foto, menggunakan wawasan matematika, sains, penelitian, dan teknik untuk memberdayakan orang melakukan hal-hal yang sangat menarik. Sekarang, di Roblox, saya dapat membawanya ke tingkat yang benar-benar baru. Roblox adalah platform kreativitas, bukan sekadar alat. Dan skala yang kami miliki untuk menciptakan alat yang memungkinkan kreativitas jauh lebih besar dibandingkan apa pun yang pernah saya kerjakan sebelumnya, dan ini sungguh sangat menarik.

Stempel Waktu:

Lebih dari roblox