Konten di situs ini telah diterjemahkan menggunakan kecerdasan buatan (AI) atau teknologi penerjemahan mesin, dan mungkin terdapat kesalahan.

Skip to content

Inside the Tech - Menentukan Ekspresi Wajah Avatar

Inside the Tech - Avatar Facial Expressions Cover Photo

Inside the Tech adalah seri blog yang menyertai podcast Tech Talks kami. Dalam episode ke-20 podcast tersebut, "Avatars & Self-Expression", CEO Roblox David Baszucki berbincang dengan Senior Director of Engineering Kiran Bhat, Senior Director of Product Mahesh Ramasubramanian, dan Principal Product Manager Effie Goenawan, mengenai masa depan komunikasi imersif melalui avatar dan tantangan teknis yang kami selesaikan untuk mewujudkannya. Dalam edisi Inside the Tech kali ini, kami berbincang dengan Manajer Teknik Ian Sachs untuk mengetahui lebih lanjut tentang salah satu tantangan teknis tersebut—mengaktifkan ekspresi wajah untuk avatar kami—dan bagaimana kerja tim Pembuatan Avatar (di bawah grup Engine) membantu pengguna mengekspresikan diri mereka di Roblox.

Apa tantangan teknis terbesar yang dihadapi tim Anda?

Ketika kita memikirkan bagaimana avatar mewakili seseorang di Roblox, kita biasanya mempertimbangkan dua hal: Bagaimana perilakunya dan bagaimana penampilannya. Jadi, salah satu fokus utama tim saya adalah memungkinkan avatar meniru ekspresi seseorang. Misalnya, ketika seseorang tersenyum, avatarnya akan tersenyum bersamaan dengannya. 

Salah satu hal yang sulit dalam melacak ekspresi wajah adalah menyesuaikan efisiensi model kami agar dapat menangkap ekspresi ini secara langsung di perangkat pengguna secara real-time. Kami berkomitmen untuk membuat fitur ini dapat diakses oleh sebanyak mungkin orang di Roblox, dan kami perlu mendukung berbagai macam perangkat. Kapasitas daya komputasi yang dapat ditangani oleh perangkat seseorang merupakan faktor vital dalam hal ini. Kami ingin semua orang dapat mengekspresikan diri, bukan hanya mereka yang memiliki perangkat bertenaga tinggi. Oleh karena itu, kami menerapkan salah satu model pembelajaran mendalam pertama kami untuk mewujudkan hal ini. 

Tantangan teknis utama kedua yang kami hadapi adalah menyederhanakan proses yang digunakan kreator untuk mengembangkan avatar dinamis yang dapat dipersonalisasi. Membuat avatar seperti itu cukup rumit karena Anda harus memodelkan kepala, dan jika ingin avatar tersebut beranimasi, Anda harus melakukan hal-hal spesifik untuk merig model, seperti menempatkan sendi dan bobot untuk linear blend skinning. Kami ingin mempermudah proses ini bagi para kreator, jadi kami sedang mengembangkan teknologi untuk menyederhanakannya. Mereka seharusnya hanya perlu fokus pada pembuatan model statis. Saat mereka melakukannya, kami dapat secara otomatis merig dan mengkaji model tersebut. Kemudian, pelacakan wajah dan pakaian berlapis seharusnya 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. Hal ini dimulai dengan menggunakan FACS (Facial Animation Control System) standar industri. Ini adalah kunci dari segalanya karena inilah yang kami gunakan untuk menggerakkan ekspresi wajah avatar—seperti seberapa lebar mulutnya, mata mana yang terbuka dan seberapa lebar, dan sebagainya. Kami dapat menggunakan sekitar 50 kontrol FACS yang berbeda untuk menggambarkan ekspresi wajah yang diinginkan. 

Saat Anda membangun algoritma pembelajaran mesin untuk memperkirakan ekspresi wajah dari gambar atau video, Anda melatih model dengan menunjukkan kepadanya gambar contoh yang memiliki ekspresi kebenaran dasar yang diketahui (dijelaskan dengan FACS). Dengan menunjukkan model banyak gambar berbeda dengan ekspresi yang berbeda, model belajar untuk memperkirakan ekspresi wajah dari wajah yang belum pernah dilihat sebelumnya.

Biasanya, saat Anda bekerja pada pelacakan wajah, ekspresi-ekspresi ini dilabeli oleh manusia, dan metode termudah adalah menggunakan landmark—misalnya, menempatkan titik-titik pada gambar untuk menandai lokasi piksel fitur wajah seperti sudut mata. 

Namun, bobot FACS berbeda karena Anda tidak bisa melihat sebuah gambar dan mengatakan, “Mulut 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 sudut dan kondisi pencahayaan yang berbeda.

Sayangnya, karena model perlu dapat diterapkan pada wajah nyata, kami tidak bisa hanya melatihnya menggunakan data sintetis. Jadi, kami melatih model terlebih dahulu pada tugas prediksi titik acuan menggunakan kombinasi data nyata dan sintetis, sehingga model dapat mempelajari tugas prediksi FACS menggunakan data sintetis murni.

Kami ingin pelacakan wajah berfungsi untuk semua orang, tetapi beberapa perangkat lebih bertenaga daripada yang lain. Ini berarti kami perlu membangun sistem yang mampu menyesuaikan diri secara dinamis dengan daya pemrosesan perangkat apa pun. Kami mencapai hal ini dengan membagi model kami menjadi fase prediksi FACS yang cepat dan mendekati (approximate) 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 tersebut. Namun, jika terjadi perlambatan (misalnya, karena perangkat kelas bawah), sistem hanya menjalankan fase pertama.

Apa saja hal-hal kunci yang Anda pelajari dari pekerjaan teknis ini?

Salah satunya adalah bahwa membuat fitur berfungsi hanyalah sebagian kecil dari apa yang sebenarnya diperlukan untuk merilis sesuatu dengan sukses. Sebagian besar pekerjaan ada pada proses rekayasa dan pengujian unit. Kami perlu memastikan kami memiliki cara yang baik untuk menentukan apakah kami memiliki alur data yang baik. Dan kami perlu bertanya pada diri sendiri, “Hei, apakah model baru ini sebenarnya lebih baik daripada yang 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, serta menerapkan dan mendapatkan umpan balik tentang hasil-hasil baru tersebut, semuanya berperan dalam membuat model yang memadai. Namun, itu adalah bagian dari proses yang tidak terlalu banyak dibicarakan, meskipun sangat penting. 

Nilai Roblox mana yang paling selaras dengan tim Anda?

Memahami fase proyek sangat penting, jadi selama inovasi, mengambil pandangan jangka panjang sangat krusial, terutama dalam riset saat mencoba memecahkan masalah penting. Namun, menghormati komunitas juga krusial saat mengidentifikasi masalah yang layak diinovasi karena kami ingin bekerja pada masalah yang memiliki nilai tertinggi bagi komunitas kami yang lebih luas. Misalnya, kami secara khusus memilih untuk bekerja pada “pelacakan wajah untuk semua” daripada hanya “pelacakan wajah.” Saat Anda mencapai 90 persen dalam membangun sesuatu, transisi dari prototipe menjadi fitur fungsional bergantung pada pelaksanaan dan adaptasi terhadap tahap proyek.

Apa yang paling membuat Anda bersemangat tentang arah yang dituju oleh Roblox dan tim Anda?

Saya selalu tertarik untuk mengerjakan alat yang membantu orang menjadi kreatif. Menciptakan sesuatu itu istimewa karena Anda akan mendapatkan hasil yang benar-benar milik Anda sendiri. Saya pernah bekerja di bidang efek visual dan berbagai alat pengeditan foto, menggunakan wawasan matematika, sains, penelitian, dan teknik untuk memberdayakan orang agar dapat melakukan hal-hal yang sangat menarik. Kini, di Roblox, saya dapat membawa hal itu ke tingkat yang sama sekali baru. Roblox adalah platform kreativitas, bukan sekadar alat. Dan skala di mana kami dapat membangun alat yang memungkinkan kreativitas jauh lebih besar daripada apa pun yang pernah saya kerjakan sebelumnya, yang sangatlah menarik.