Neural rendering – ogromny potencjał dla metawersum i producentów filmów animowanych

Neural rendering – ogromny potencjał dla metawersum i producentów filmów animowanych

– Neural rendering otworzy większe możliwości dla rozwoju animacji. Aby powstał zaawansowany technologicznie film animowany potrzeba dziś innowacyjnej, wyspecjalizowanej firmy. Jak również potężnych zasobów kadrowych i finansowych. Natomiast w momencie, gdy jesteśmy w stanie zrobić parę zdjęć pokoju i wygenerować model 3D o wysokiej jakości, to tylko wyobraźnia nas ogranicza – uważa Mateusz Wyszyński z Uczelni Łazarskiego.

Mateusz Wyszyński jest analitykiem danych i popularyzatorem data science. Wykłada i opiekuje się zakresem studiów Data Science na Uczelni Łazarskiego w Warszawie. Mając szeroką wiedzę z fizyki i matematyki, zainteresował się wykorzystaniem sieci neuronowych do tzw. renderowania zdjęć i realistycznych scen 3D – dziedziną o nazwie neural rendering. Mateusz to ekspert w obszarze nauczania o technologiach, statystyce i programowaniu. Pracuje też nad doktoratem na Wydziale Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego.

Renderowanie to jeden z końcowych etapów tworzenia wizualizacji. Wiemy, że to proces, w którym program 3D przerysowuje zapisane informacje na dwuwymiarową scenę (zdjęcie lub film). Czyli przekształca trójwymiarowy model sceny na konkretny obraz. Czym jest natomiast neural rendering?

To wykorzystanie głębokich sieci neuronowych do renderowania nowych zdjęć lub filmów w sposób, który umożliwia zmienianie wspomnianych scen przy użyciu interpretowalnych parametrów. Innymi słowy, można to nazwać wyobraźnią przestrzenną lub obrazową. Najlepszym przykładem jest tzw. novel view synthesis – generowanie nowych widoków obiektu, który widzieliśmy jak dotąd tylko z jakiejś perspektywy.

Jak to działa?

Załóżmy, że patrzymy na samochód od strony lewego przedniego koła. Mimo że nie widzieliśmy jeszcze nigdy jego pozostałej części, to możemy sobie wyobrazić, jak wyglądałby, gdybyśmy stali zupełnie po przeciwnej stronie. Wynika to z faktu, że ludzki umysł potrafi „wygenerować” taki trójwymiarowy model samochodu na podstawie kilku dotychczas widzianych perspektyw. Dzięki tej umiejętności jesteśmy w stanie stworzyć całkowicie nowy obraz na podstawie niepełnego modelu.

Od jak dawna zajmuje się Pan tym obszarem?

Wypracowuję od kilku miesięcy temat doktoratu na Wydziale Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego. Ma on dotyczyć robotyki i wykorzystywać właśnie technologię neural rendering. Jest to bardzo innowacyjne podejście do grafiki komputerowej (ang. computer graphics). Moja wiedza z matematyki i z fizyki na pewno pomaga mi odnaleźć się w tym temacie.

Czy możemy zdefiniować różnice między neural rendering a renderowaniem trójwymiarowym?

Neural rendering jest próbą osiągnięcia podobnych zastosowań i efektów, które możemy realizować przy pomocy klasycznej grafiki komputerowej. Po prostu w tym procesie angażujemy też sieci neuronowe czy bardziej ogólnie algorytmy uczenia maszynowego. W przypadku klasycznego computer graphics generujemy lub właśnie renderujemy konkretne sceny filmu, wykorzystując trójwymiarowe modele scen utworzone przez grafików. Proces przygotowania takich modeli jest kosztowny i czasochłonny. W przypadku neural rendering proces ten zostaje zautomatyzowany – sieć neuronowa uczy się modelu 3D, na przykład na podstawie zdjęć jakiegoś obiektu. Oczywiście jest to tylko przykładowe rozwiązanie z obszaru neural rendering. Dziedzina jest szeroka i różne firmy oraz zespoły badawcze mają wiele pomysłów na usprawnienie renderowania przy pomocy algorytmów uczenia maszynowego.

Jak zatem możemy opisywać te trójwymiarowe modele?

Na różne sposoby. W klasycznym computer graphics używa się na przykład tzw. meshes (połączonych trójkątów, które składają się na cały trójwymiarowy model obiektu). Zbiór takich trójkątów tworzy pewną powierzchnię. Mając taką strukturę, możemy dodawać wszystkim punktom na powierzchni określone właściwości – np. kolor lub gęstość. Czyli tworzymy funkcję, która przypisuje każdemu punktowi w przestrzeni pewien zbiór własności. Na przykład gęstość odpowiada nam na pytanie, czy w przestrzeni w ogóle coś jest i ile tego tam jest – to jest kluczowe przy renderowaniu. Do tej pory taki trójwymiarowy model musiał ktoś przygotować.

Jeśli spojrzymy na ten problem z perspektywy celu, który chcemy osiągnąć, to tak naprawdę interesuje nas stworzenie funkcji, która będzie przypisywać punktom w przestrzeni interesujące nas własności. Nie interesuje nas, czy będzie to zrobione przy pomocy wspomnianych meshes czy w inny sposób. Skoro tak, to takiej funkcji możemy się nauczyć. I tak na przykład w przypadku algorytmu NeRF – neural radiance fields – wszystko działa w oparciu o sieć neuronową, która uczy się być tą funkcją. Innymi słowy uczy się przypisywać punktom w przestrzeni wybrane własności – w przypadku NeRF jest to właśnie kolor i gęstość.

A zatem neural rendering to zasób narzędzi, gdzie na jakimś etapie zastępujemy dowolny element renderowania czy tworzenia modelu 3D, wykorzystując uczenie maszynowe.

Z punktu widzenia laika to proces dosyć skomplikowany. Pewnie padają pytania, na ile on jest skuteczny i co ze sobą niesie?

Neural rendering ma wiele zalet. Proszę zauważyć, że sam proces produkcji grafiki jest czasochłonny i kosztowny, więc każda idea automatyzacji tworzenia modeli 3D i renderowania jest kluczowa. Nie tylko w obszarze robotyki, nad którym pracuję. Przede wszystkim z punktu widzenia firm, które tworzą animacje 3D. Za możliwością przyspieszenia czy usprawnienia takich procesów stoją olbrzymie oszczędności. Przede wszystkim czasu, ale także pieniędzy przeznaczanych na często żmudną pracę. Dzięki neural rendering te zasoby mogą zostać poświęcone na bardziej kreatywną część pracy lub dać możliwości instytucjom, których dziś na tworzenie różnych projektów nie stać.

Co więcej, trójwymiarowe modele jakiejkolwiek struktury zajmują bardzo dużo pamięci. Okazuje się, że modele oparte na algorytmach uczenia maszynowego, jak choćby wspominany NeRF, zajmują czasem mniej pamięci niż zdjęcia, z których były wygenerowane. Dzięki temu można przechowywać tylko tyle informacji, ile potrzeba. Dzieje się tak dlatego, że na wielu analizowanych zdjęciach jest podobna informacja, a sieć neuronowa potrafi wyciągnąć tylko kluczowe dane dla stworzenia modelu. To kolejna potencjalna korzyść.

Wspomniał Pan o robotyce. Jak te technologie mogłyby przyspieszać pracę w tej dziedzinie?

Robot musi w szybki i skuteczny sposób modelować środowisko, z którym ma do czynienia. Człowiek nie może tego zawsze robić za maszynę. Robot musi generować modele sam na podstawie tego, co widzi. Zwróćmy uwagę, że taki robot, tak jak zresztą i człowiek, odbiera obraz, a nie trójwymiarowy model. Natomiast żeby dobrze działać, musi wytworzyć dobry model trójwymiarowy. Aby proces przebiegał szybko i skutecznie, nie może to trwać zbyt długo. Rozwiązania z obszaru neural rendering wydają się w znacznym stopniu adresować te problemy.

Przede wszystkim potrzeba tu danych. Czy są one specyficzne dla tego rodzaju technologii graficznych?

W renderowaniu najczęściej mamy do czynienia z różnorodnymi zbiorami danych. Idea jest taka, że nie mamy wpływu na to, jakie dane chcemy przetwarzać, jakie obrazy widzimy. Mogą one przedstawiać bardzo różne obiekty i sceny. Co więcej nie zawsze będą to filmy czy zdjęcia wysokiej jakości. Neural rendering powinien oferować przydatne rozwiązania niezależnie od specyfiki problemu. Modele powinny być na tyle uniwersalne, aby radzić sobie z różnymi sytuacjami.

Natomiast jeśli firmy zaczną działać już w konkretnej branży i wyspecjalizują się w produkcji określonych rozwiązań, to może się pojawić konieczność dostarczania bardziej dopasowanych danych.

Z jakich narzędzi korzysta Pan w pracy?

Pierwsze narzędzie raczej nikogo nie zdziwi: Python. Z konkretnych pakietów pewnie warto tu wymienić PyTorch. Z kolei narzędzie bardziej branżowe, które jest mocno wykorzystywane w neural rendering, to CUDA. To specjalny język napisany dla Nvidia, który wspiera działania w obszarze machine learning przy pomocy kart graficznych tej firmy. Warto wiedzieć, że karty graficzne potrafią równolegle wykonywać o wiele więcej procesów niż np. standardowe procesory (ang. CPU).

W jakich obszarach będzie można to wykorzystywać? Wiadomo już o zainteresowanych firmach?

Potencjalnych zastosowań jest co najmniej tyle, ile ma współczesne computer graphics. Wspomniane już firmy tworzące animacje są bardzo zainteresowane tą technologią, bo byłoby to dla nich olbrzymie zmniejszenie kosztów produkcji. Wszelkie dziedziny, w których potrzebna jest szybka interakcja z zewnętrznym środowiskiem na bazie obrazu, to kolejny ogromny obszar zastosowań. Przykładem jest robotyka, gdzie potrzebujemy maszyn, które będą mogły szybko oceniać otaczającą ich rzeczywistość i podejmować na podstawie tej oceny decyzje, wykonywać akcje.

Jednocześnie podejrzewam, że obszarów może być więcej, choć sama dziedzina jest na tyle nowa, że nadal prowadzone są prace w kierunku znalezienia tych zastosowań bezpośrednio w nauce czy biznesie. To się w zasadzie jeszcze nie ugruntowało. Najstarsze dokumenty badawcze, do których się podczas tej rozmowy odnoszę, są sprzed dwóch lat. Mówimy o całkiem młodej dziedzinie.

Oczywiście nie są to rozwiązania tworzone wyłącznie przez szalonych naukowców w przysłowiowych „piwnicach”. Pracują w tej dziedzinie eksperci z wielkich światowych koncernów jak choćby wspomniana Nvidia, ale też Facebook czy Google. Natomiast miejsce, gdzie to się przynajmniej na początku skomercjalizuje, to przede wszystkim produkcja filmów, gier i animacji.

Czy neural rendering to obszar trudniejszy, niż to, czym się do niedawna jeszcze Pan zajmował jako analityk danych?

Trudno powiedzieć. Na pewno jest trochę inny. Nietypowe jest na przykład podejście do uczenia modeli. Posłużę się tu znanym przykładem rozpoznawania zdjęć kotów i psów za pomocą machine learning. Zazwyczaj przy machine learning mamy zbiór wielu obiektów, w tym przypadku zdjęć kotów i psów. Uczymy się później czegoś na temat struktury w tym wielkim zbiorze – w tym przypadku rozpoznawania tego, na którym zdjęciu są koty, a na którym są psy. W przypadku neural rendering w tej chwili jest nieco inaczej: uczymy model jednej konkretnej sceny. Masz kota i kilka jego zdjęć? Na tej podstawie model ma się nauczyć modelu tego jednego kota. Trudno powiedzieć, czy jest to trudniejsze, czy łatwiejsze, ale wymusza trochę inne myślenie. Oczywiście docelowo pojawiać się będzie co raz więcej rozwiązań mających na celu generalizowanie takich modeli.

Zdecydował się Pan na pracę nad projektem z obszaru neural rendering. Dlaczego?

Od zawsze towarzyszyła mi chęć tworzenia nauki i rzucania sobie wyzwań intelektualnych. Zacząłem poszukiwać, gdzie na polskich uczelniach mógłbym zająć się czymś ciekawym, trudnym i pionierskim. Postanowiłem najpierw poszukać na moim macierzystym wydziale, gdzie przeżyłem wspaniałe 5 lat studiów, czyli na Wydziale Matematyki UW. Tam znalazłem lab zajmujący się robotyką. Miałem przyjrzeć się tematowi neural renderingu. Ten obszar na tyle mnie zaciekawił, że postanowiłem szukać tematu na doktorat w ramach tej dziedziny.

Poza wyzwaniem intelektualnym podoba mi się to przecięcie tematów matematyczno-informatyczno-fizycznych. Podobnie jak w samej robotyce, dla mnie łatwe jest przełożenie pewnych trudnych nawet kwestii i problemów na fizykę.

Podałby Pan taki przykład?

W przypadku renderingu kluczowe jest stworzenie modelu, którego celem będzie wygenerowanie dobrej jakości obrazu. Fizyczna wiedza pozwala zrozumieć, od czego taki obraz zależy w przypadku rzeczywistej kamery. Taką wiedzę można później wykorzystać jako inspirację przy tworzeniu czy analizowaniu istniejących już algorytmów.

Możemy to zobaczyć na przykładzie. Zastanówmy się, jak powstaje zdjęcie w aparacie. Mamy promień światła, który odbija się od jakiegoś punktu w przestrzeni i trafia do obiektywu. W zależności od tego, ile energii będzie miał na początku ten promień, ile jej wytraci po drodze oraz jaki kolor światła niesie, tak nagrzeje się odpowiedni piksel.

Przy renderowaniu za pomocą algorytmu NeRF idea jest podobna, tylko promienie są wirtualne – wyobrażamy je sobie. Podczas uczenia próbujemy dowiedzieć się, jak jest rozłożona gęstość w przestrzeni. Jeśli gęstość jest większa w danym miejscu, to tam odbija się więcej światła. Również to, jak gęstość rozłożona jest po drodze od tego miejsca do kamery, zadecyduje, ile energii promień straci po drodze. Mając taką gęstość, możemy sobie wyobrazić wirtualny promień światła i wydedukować, jak powinien się nagrzać wybrany piksel. To czysta fizyka. Wykorzystywane tam formuły matematyczne opowiadają dokładnie tę historię. Takie zrozumienie zachodzących procesów znacznie ułatwia mi zrozumienie samych algorytmów.

A jak wygląda Pana praca nad projektem w ramach doktoratu?

Na razie mamy więcej pracy na poziomie koncepcyjnym i poszukiwań. Na ten moment przeglądam istniejące już modele. Staramy się znaleźć jakiś ciekawy temat.

Czy możemy powiedzieć dziś, że neural rendering to technologia już skuteczna?

Moim zdaniem algorytm NeRF, o którym już wspominałem, robi bardzo duże wrażenie. Z małej liczby zdjęć można tworzyć bardzo realistyczny filmik z pełną gamą szczegółów. Technologia więc działa. Pytanie, jak to usprawnić, aby było to szybkie i możliwe do przetłumaczenia czy konwersji na inne, standardowe modele computer graphics.

Firmy takie jak Facebook na pewno chciałyby wykorzystywać tę technologię chociażby w obszarze metaverse. Z kolei koncerny pokroju Disney widzą tu potencjał do bardziej efektywnego tworzenia dużej liczby animacji.

W którym kierunku pójdzie ta technologia? Czego możemy się po niej spodziewać?

Moim zdaniem neural rendering otworzy większe możliwości dla robienia zaawansowanych animacji dla szerszej grupy osób. To na początek. Dziś, aby stworzyć zaawansowany technologicznie film animowany, trzeba mieć innowacyjną, wyspecjalizowaną firmę. Jak również potężne zasoby kadrowe, finansowe. W momencie, kiedy jesteśmy w stanie zrobić parę zdjęć pokoju i wygenerować model 3D o wysokiej jakości, to już tylko wyobraźnia nas ogranicza.

Udostępnij link

https://www.datasciencerobie.pl/neural-rendering-to-potencjal-dla-metawersum-i-producentow-filmow-animowanych/