Od środka do technologii – Rozwiązywanie wyrazów twarzy awatara – Blog Roblox

Od środka technologii – Rozwiązywanie wyrazów twarzy awatara – Blog Roblox

Węzeł źródłowy: 3039939

Inside the Tech to seria blogów towarzysząca naszym Podcast Tech Talks. W 20. odcinku podcastu Avatary i wyrażanie siebie dyrektor generalny Roblox David Baszucki rozmawiał ze starszym dyrektorem ds. inżynierii Kiranem Bhatem, starszym dyrektorem ds. produktu Maheshem Ramasubramanianem i główną menedżerką produktu Effie Goenawan o przyszłości wciągającej komunikacji za pośrednictwem awatarów i wyzwania techniczne, które rozwiązujemy, aby to umożliwić. W tym wydaniu Inside the Tech rozmawialiśmy z menedżerem ds. inżynierii Ianem Sachsem, aby dowiedzieć się więcej o jednym z tych wyzwań technicznych — umożliwieniu wyrazu twarzy naszym awatarom — oraz o tym, jak praca zespołu ds. tworzenia awatarów (w grupie Engine) pomaga użytkownikom wyrażać siebie na Robloxie.

Jakie są największe wyzwania techniczne, przed którymi staje Twój zespół?

Kiedy myślimy o tym, jak awatar reprezentuje kogoś w Robloxie, zazwyczaj bierzemy pod uwagę dwie rzeczy: jak się zachowuje i jak wygląda. Dlatego jednym z głównych celów mojego zespołu jest umożliwienie awatarom odzwierciedlania ekspresji danej osoby. Na przykład, gdy ktoś się uśmiecha, jego awatar uśmiecha się synchronicznie z tą osobą. 

Jedną z najtrudniejszych rzeczy w śledzeniu wyrazu twarzy jest dostrojenie wydajności naszego modelu, tak abyśmy mogli uchwycić te wyrazy twarzy bezpośrednio na urządzeniu danej osoby w czasie rzeczywistym. Zależy nam na udostępnieniu tej funkcji jak największej liczbie osób korzystających z Roblox i musimy obsługiwać szeroką gamę urządzeń. Istotnym czynnikiem jest ilość mocy obliczeniowej, jaką może obsłużyć dane urządzenie. Chcemy, aby każdy mógł wyrazić siebie, a nie tylko osoby posiadające potężne urządzenia. Dlatego wdrażamy jeden z naszych pierwszych w historii modeli głębokiego uczenia się, aby to umożliwić. 

Drugim kluczowym wyzwaniem technicznym, przed którym stoimy, jest uproszczenie procesu wykorzystywanego przez twórców do tworzenia dynamicznych awatarów, które można personalizować. Tworzenie takich awatarów jest dość skomplikowane, ponieważ musisz wymodelować głowę, a jeśli chcesz, aby była animowana, musisz wykonać bardzo konkretne czynności, aby spersonalizować model, np. umieścić stawy i obciążniki w celu liniowego mieszania skórek. Chcemy ułatwić twórcom ten proces, dlatego opracowujemy technologię, która go upraszcza. Powinni skupić się jedynie na budowaniu modelu statycznego. Kiedy to zrobią, możemy automatycznie je osprzętować i umieszczać w klatkach. Następnie śledzenie twarzy i warstwowe ubrania powinny działać od razu. 

Jakie innowacyjne podejścia i rozwiązania stosujemy, aby stawić czoła tym wyzwaniom technicznym?

Zrobiliśmy kilka ważnych rzeczy, aby mieć pewność, że otrzymujemy właściwe informacje na temat wyrazu twarzy. Zaczyna się to od zastosowania standardowego w branży systemu kontroli animacji twarzy FACS (Facial Animation Control System). To one są kluczem do wszystkiego, ponieważ to one wpływają na mimikę awatara – jak szerokie są usta, które oczy są szeroko otwarte i tak dalej. Do opisania pożądanego wyrazu twarzy możemy użyć około 50 różnych kontrolek FACS. 

Kiedy tworzysz algorytm uczenia maszynowego do szacowania wyrazu twarzy na podstawie obrazów lub wideo, trenujesz model, pokazując mu przykładowe obrazy ze znanymi wyrażeniami prawdy (opisanymi w FACS). Pokazując modelowi wiele różnych obrazów o różnym wyrazie, model uczy się oceniać wyraz twarzy niewidzianych wcześniej twarzy.

Zwykle podczas pracy nad śledzeniem twarzy mimika jest oznaczana przez ludzi, a najłatwiejszą metodą jest użycie punktów orientacyjnych — na przykład umieszczenie kropek na obrazie w celu oznaczenia w pikselach położenia rysów twarzy, takich jak kąciki oczu. 

Ale wagi FACS są inne, ponieważ nie można spojrzeć na zdjęcie i powiedzieć: „Usta są otwarte 0.9 w porównaniu do 0.5”. Aby rozwiązać ten problem, używamy danych syntetycznych do bezpośredniego generowania wag FACS, które składają się z modeli 3D renderowanych z pozycjami FACS pod różnymi kątami i w różnych warunkach oświetleniowych.

Niestety, ponieważ model wymaga uogólnienia na prawdziwe twarze, nie możemy trenować wyłącznie na danych syntetycznych. Dlatego wstępnie szkolimy model w oparciu o przełomowe zadanie przewidywania, korzystając z kombinacji danych rzeczywistych i syntetycznych, co pozwala modelowi nauczyć się zadania przewidywania FACS przy użyciu danych czysto syntetycznych.

Chcemy, aby śledzenie twarzy działało dla wszystkich, ale niektóre urządzenia są potężniejsze od innych. Oznacza to, że musieliśmy zbudować system, który będzie w stanie dynamicznie dostosowywać się do mocy obliczeniowej dowolnego urządzenia. Osiągnęliśmy to, dzieląc nasz model na szybką przybliżoną fazę przewidywania FACS zwaną BaseNet i dokładniejszą fazę udoskonalania FACS zwaną HiFiNet. W czasie działania system mierzy swoją wydajność i w optymalnych warunkach uruchamiamy obie fazy modelu. Jeśli jednak zostanie wykryte spowolnienie (na przykład z powodu urządzenia z niższej półki), system uruchomi tylko pierwszą fazę.

Jakich kluczowych rzeczy nauczyłeś się podczas wykonywania tej pracy technicznej?

Po pierwsze, uruchomienie funkcji to tak niewielka część tego, czego faktycznie potrzeba, aby pomyślnie wypuścić coś na rynek. Mnóstwo pracy przypada na proces inżynierii i testów jednostkowych. Musimy upewnić się, że mamy dobre sposoby na określenie, czy mamy dobry potok danych. Musimy zadać sobie pytanie: „Hej, czy ten nowy model jest rzeczywiście lepszy od starego?”

Zanim w ogóle rozpoczniemy prace inżynieryjne, wszystkie potoki, które wdrożyliśmy w celu śledzenia eksperymentów, zapewnienia, że ​​nasz zbiór danych reprezentuje różnorodność naszych użytkowników, oceny wyników oraz wdrażania i uzyskiwania informacji zwrotnych na temat nowych wyników, wpływają na to, aby model był wystarczający. Jest to jednak część procesu, o której nie mówi się zbyt wiele, mimo że jest ona tak kluczowa. 

Z jaką wartością Roblox najbardziej zgadza się Twój zespół?

Zrozumienie fazy projektu jest kluczowe, dlatego podczas innowacji bardzo ważne jest przyjęcie długoterminowej perspektywy, szczególnie w badaniach, gdy próbujesz rozwiązać ważne problemy. Jednak szacunek dla społeczności jest również kluczowy przy identyfikowaniu problemów, nad którymi warto wprowadzić innowacje, ponieważ chcemy pracować nad problemami, które mają największą wartość dla naszej szerszej społeczności. Na przykład specjalnie zdecydowaliśmy się pracować nad „śledzeniem twarzy dla wszystkich”, a nie tylko „śledzeniem twarzy”. Gdy osiągniesz 90 procent możliwości zbudowania czegoś, przekształcenie prototypu w funkcję funkcjonalną zależy od wykonania i dostosowania do etapu projektu.

Co najbardziej ekscytuje Cię w tym, dokąd zmierza Roblox i Twój zespół?

Zawsze skłaniałem się ku pracy nad narzędziami, które pomagają ludziom wykazać się kreatywnością. Tworzenie czegoś jest wyjątkowe, ponieważ otrzymujesz coś, co jest wyjątkowo Twoje. Pracowałem nad efektami wizualnymi i różnymi narzędziami do edycji zdjęć, wykorzystując wiedzę matematyczną, naukową, badawczą i inżynieryjną, aby umożliwić ludziom robienie naprawdę interesujących rzeczy. Teraz w Robloxie mogę przenieść to na zupełnie nowy poziom. Roblox to platforma kreatywności, a nie tylko narzędzie. Skala, na jaką możemy tworzyć narzędzia umożliwiające kreatywność, jest znacznie większa niż cokolwiek, nad czym pracowałem wcześniej, co jest niezwykle ekscytujące.

Znak czasu:

Więcej z Roblox