Zephyrnet Logosu

Teknolojinin İçinde – Avatar Yüz İfadelerini Çözme – Roblox Blogu

Tarih:

Inside the Tech, bizim yayınımıza eşlik eden bir blog serisidir. Teknoloji Konuşmaları Podcast'i. Podcast'in 20. bölümü olan Avatarlar ve Kendini İfade'de Roblox CEO'su David Baszucki, Kıdemli Mühendislik Direktörü Kiran Bhat, Kıdemli Ürün Direktörü Mahesh Ramasubramanian ve Baş Ürün Müdürü Effie Goenawan ile avatarlar aracılığıyla sürükleyici iletişimin geleceği ve bunu sağlamak için çözdüğümüz teknik zorluklar. Inside the Tech'in bu sayısında, bu teknik zorluklardan biri olan avatarlarımız için yüz ifadelerini etkinleştirme ve Avatar Oluşturma (Motor grubu altında) ekibinin çalışmalarının kullanıcıların kendilerini ifade etmelerine nasıl yardımcı olduğu hakkında daha fazla bilgi edinmek için Mühendislik Müdürü Ian Sachs ile konuştuk. Roblox'ta.

Ekibinizin karşılaştığı en büyük teknik zorluklar neler?

Bir avatarın Roblox'ta birini nasıl temsil ettiğini düşündüğümüzde genellikle iki şeyi dikkate alırız: Nasıl davrandığı ve nasıl göründüğü. Bu nedenle ekibimin en önemli odak noktalarından biri, avatarların bir kişinin ifadelerini yansıtmasını sağlamak. Örneğin birisi gülümsediğinde avatarı da onunla senkronize bir şekilde gülümser. 

Yüz ifadelerini izlemenin en zor yanlarından biri, modelimizin verimliliğini, bu ifadeleri doğrudan kişinin cihazında gerçek zamanlı olarak yakalayabilecek şekilde ayarlamaktır. Bu özelliği Roblox'ta mümkün olduğunca çok kişinin erişebilmesini sağlamaya kararlıyız ve çok çeşitli cihazları desteklememiz gerekiyor. Bir kişinin cihazının işleyebileceği bilgi işlem gücü miktarı bunda hayati bir faktördür. Sadece güçlü cihazlara sahip kişilerin değil, herkesin kendini ifade edebilmesini istiyoruz. Biz de bunu mümkün kılmak için ilk derin öğrenme modellerimizden birini devreye alıyoruz. 

Üstesinden geldiğimiz ikinci temel teknik zorluk, yaratıcıların insanların kişiselleştirebileceği dinamik avatarlar geliştirmek için kullandıkları süreci basitleştirmek. Bunun gibi avatarlar oluşturmak oldukça karmaşık çünkü kafayı modellemeniz gerekiyor ve eğer onun canlandırılmasını istiyorsanız, modeli donatmak için doğrusal karışım kaplaması için eklemler ve ağırlıklar yerleştirmek gibi çok özel şeyler yapmanız gerekiyor. Bu süreci yaratıcılar için kolaylaştırmak istiyoruz ve bu nedenle bunu basitleştirecek teknolojiler geliştiriyoruz. Yalnızca statik modeli oluşturmaya odaklanmaları gerekir. Bunu yaptıklarında, onu otomatik olarak donatıp kafesleyebiliriz. Daha sonra, yüz takibi ve katmanlı giysiler hemen işe yaramalı. 

Bu teknik zorlukların üstesinden gelmek için kullandığımız yenilikçi yaklaşımlardan ve çözümlerden bazıları nelerdir?

Yüz ifadeleri için doğru bilgiyi aldığımızdan emin olmak amacıyla birkaç önemli şey yaptık. Bu, endüstri standardı FACS'nin (Yüz Animasyon Kontrol Sistemi) kullanılmasıyla başlar. Bunlar her şeyin anahtarıdır çünkü bunlar bir avatarın yüz ifadelerini yönlendirmek için kullandığımız şeylerdir; ağzın ne kadar geniş olduğu, hangi gözlerin açık olduğu ve ne kadar açık olduğu gibi. İstenilen yüz ifadesini tanımlamak için yaklaşık 50 farklı FACS kontrolünü kullanabiliriz. 

Görüntülerden veya videolardan yüz ifadelerini tahmin etmek için bir makine öğrenimi algoritması oluşturduğunuzda, bir modeli, bilinen temel gerçek ifadelerle (FACS ile açıklanmıştır) örnek görüntüler göstererek eğitirsiniz. Model, farklı ifadelere sahip birçok farklı görüntüyü modele göstererek, daha önce görülmemiş yüzlerin yüz ifadelerini tahmin etmeyi öğrenir.

Normalde, yüz izleme üzerinde çalışırken bu ifadeler insanlar tarafından etiketlenir ve en kolay yöntem yer işaretlerini kullanmaktır; örneğin, gözlerin köşeleri gibi yüz özelliklerinin piksel konumlarını işaretlemek için görüntü üzerine noktalar yerleştirmek. 

Ancak FACS ağırlıkları farklıdır çünkü bir resme bakıp "Ağız 0.9'a karşı 0.5 açık" diyemezsiniz. Bunu çözmek için, farklı açılardan ve aydınlatma koşullarından FACS pozlarıyla oluşturulan 3 boyutlu modellerden oluşan FACS ağırlıklarını doğrudan oluşturmak için sentetik veriler kullanıyoruz.

Ne yazık ki modelin gerçek yüzlere genelleştirilmesi gerektiğinden yalnızca sentetik veriler üzerinde eğitim yapamıyoruz. Bu nedenle, gerçek ve sentetik verilerin bir kombinasyonunu kullanarak modeli bir dönüm noktası tahmin görevi üzerinde önceden eğitiyoruz ve modelin tamamen sentetik verileri kullanarak FACS tahmin görevini öğrenmesine olanak sağlıyoruz.

Yüz takibinin herkes için çalışmasını istiyoruz ancak bazı cihazlar diğerlerinden daha güçlüdür. Bu, kendisini herhangi bir cihazın işlem gücüne dinamik olarak uyarlayabilen bir sistem oluşturmamız gerektiği anlamına geliyor. Bunu, modelimizi BaseNet adı verilen hızlı, yaklaşık bir FACS tahmin aşamasına ve HiFiNet adı verilen daha doğru bir FACS iyileştirme aşamasına bölerek başardık. Çalışma süresi boyunca sistem performansını ölçer ve optimum koşullar altında her iki model aşamasını da çalıştırırız. Ancak bir yavaşlama tespit edilirse (örneğin daha düşük kalitede bir cihaz nedeniyle), sistem yalnızca ilk aşamayı çalıştırır.

Bu teknik çalışmayı yaparken öğrendiğiniz bazı önemli şeyler nelerdir?

Birincisi, bir özelliğin işe yaraması, bir şeyi başarılı bir şekilde yayınlamak için gerekenin çok küçük bir kısmıdır. İşin büyük kısmı mühendislik ve birim test sürecinde. İyi bir veri hattına sahip olup olmadığımızı belirlemenin iyi yollarına sahip olduğumuzdan emin olmalıyız. Ve kendimize şu soruyu sormalıyız: "Hey, bu yeni model gerçekten eskisinden daha mı iyi?"

Temel mühendisliğe bile başlamadan önce, deneyleri izlemek, veri kümemizin kullanıcılarımızın çeşitliliğini temsil etmesini sağlamak, sonuçları değerlendirmek ve bu yeni sonuçları dağıtmak ve bunlar hakkında geri bildirim almak için uygulamaya koyduğumuz tüm işlem hatları, modeli yeterli hale getirir. Ancak bu, çok kritik olmasına rağmen sürecin çok fazla konuşulmayan bir parçası. 

Ekibiniz en çok hangi Roblox değerine uyuyor?

Bir projenin aşamasını anlamak çok önemlidir, bu nedenle inovasyon sırasında uzun vadeli düşünmek çok önemlidir, özellikle de önemli sorunları çözmeye çalıştığınız araştırmada. Ancak topluluğa saygı duymak, üzerinde yenilik yapmaya değer sorunları belirlerken de çok önemlidir çünkü daha geniş topluluğumuz için en fazla değere sahip sorunlar üzerinde çalışmak istiyoruz. Örneğin sadece “yüz takibi” yerine özellikle “herkes için yüz takibi” üzerinde çalışmayı seçtik. Bir şey üretmenin yüzde 90'ına ulaştığınızda, bir prototipi işlevsel bir özelliğe dönüştürmek, uygulamaya ve projenin aşamasına uyum sağlamaya bağlıdır.

Roblox ve ekibinizin nereye gittiği konusunda sizi en çok heyecanlandıran şey nedir?

Her zaman insanların yaratıcı olmasına yardımcı olacak araçlar üzerinde çalışmaya yöneldim. Bir şey yaratmak özeldir çünkü sonunda tamamen size ait olan bir şey elde edersiniz. İnsanları gerçekten ilginç şeyler yapmaya teşvik etmek için matematik, bilim, araştırma ve mühendislik öngörülerini kullanarak görsel efektler ve çeşitli fotoğraf düzenleme araçları üzerinde çalıştım. Şimdi Roblox'ta bunu tamamen yeni bir seviyeye taşıyacağım. Roblox yalnızca bir araç değil, bir yaratıcılık platformudur. Ve yaratıcılığı mümkün kılan araçları geliştirme ölçeğimiz, daha önce üzerinde çalıştığım her şeyden çok daha büyük ki bu inanılmaz derecede heyecan verici.

spot_img

En Son İstihbarat

spot_img