Kąt Andersona

Tworzenie środowisk przelotu Neural Search i Rescue z użyciem Mega-NeRF

mm

Nowe badanie przeprowadzone przez Carnegie Mellon i firmę technologiczną Argo AI zajmującą się samochodami autonomicznymi opracowało ekonomiczną metodę generowania dynamicznych środowisk przelotu opartych na Neural Radiance Fields (NeRF), wykorzystując zdjęcia nagrane przez drony.

"Mega-NeRF

Nowy podejście, nazwane Mega-NeRF, uzyskuje 40-krotny przyrost szybkości w porównaniu ze standardową renderowaniem Neural Radiance Fields, a także oferuje coś zauważalnie różnego od standardowych czołgów i świątyń, które pojawiają się w nowych pracach NeRF.

The nowy artykuł nosi tytuł Mega-NeRF: Scalable Construction of Large-Scale NeRFs for Virtual Fly-Throughs, i pochodzi od trzech badaczy z Carnegie Mellon, z których jeden również reprezentuje Argo AI.

Modelowanie krajobrazu NeRF dla poszukiwania i ratownictwa

Autorzy uważają, że poszukiwanie i ratownictwo (SAR) to najbardziej optymalne zastosowanie ich techniki. Podczas oceny krajobrazu SAR, drony są obecnie ograniczone zarówno przez ograniczenia pasma, jak i żywotności baterii, i z tego powodu nie są zazwyczaj w stanie uzyskać szczegółowych lub kompleksowych informacji przed koniecznością powrotu do bazy, w której to momencie ich zebrane dane są przekształcane w statyczne 2D mapy lotnicze.

Autorzy stwierdzają:

‘Wyobrażamy sobie przyszłość, w której renderowanie neuronowe podnosi tę analizę do 3D, umożliwiając zespołom ratowniczym inspekcję terenu tak, jakby latały dronem w czasie rzeczywistym na poziomie szczegółowości znacznie przekraczającym to, co możliwe z klasycznym Structure-from-Motion (SfM).’

Zadaniem tym autorzy starali się stworzyć złożony model NeRF, który może być szkolony w ciągu dnia, biorąc pod uwagę, że oczekiwanie na życie ocalałych w operacjach poszukiwania i ratownictwa maleje o 80% w ciągu pierwszych 24 godzin.

Autorzy zauważają, że zestawy danych do przechwycenia dronów niezbędne do szkolenia modelu Mega-NeRF są “o rząd wielkości” większe niż standardowy zestaw danych dla NeRF, i że pojemność modelu musi być znacznie większa niż w standardowym fork lub pochodnej NeRF. Dodatkowo, interaktywność i możliwość eksploracji są niezbędne w mapie terenu poszukiwania i ratownictwa, podczas gdy standardowe renderowanie NeRF w czasie rzeczywistym oczekuje znacznie ograniczonego zakresu pre-wyliczonych możliwych ruchów.

Dzielić i rządzić

Aby rozwiązać te problemy, autorzy stworzyli algorytm klasterowania geometrycznego, który dzieli zadanie na podmoduły, i skutecznie tworzy macierz pod-NeRF, które są szkolone jednocześnie.

W momencie renderowania, autorzy również wdrożyli algorytm wizualizacji just-in-time, który jest wystarczająco responsywny, aby umożliwić pełną interaktywność bez nadmiernego przetwarzania wstępnego, podobnie jak w przypadku gier wideo, które zwiększają szczegółowość obiektów, gdy zbliżają się one do punktu widzenia użytkownika, ale które pozostają na oszczędnym i bardziej podstawowym poziomie, gdy są w oddali.

Te oszczędności, jak twierdzą autorzy, prowadzą do lepszych szczegółów niż poprzednie metody, które próbują rozwiązać bardzo szerokie obszary w interaktywnym kontekście. W kwestii ekstrapolacji szczegółów z ograniczonej rozdzielczości filmów, autorzy również zauważają, że Mega-NeRF przewyższa równoważną funkcjonalność w UC Berkeley’s PlenOctrees.

Projektu używa łańcuchowych pod-NeRF, opartych na możliwościach renderowania w czasie rzeczywistym KiloNeRF, autorzy przyznają. Jednak Mega-NeRF odbiega od tego podejścia, wykonując “sharding” (dyskretny transport aspektów sceny) podczas szkolenia, a nie podejście KiloNeRF, które jest przetwarzane po szkoleniu, które bierze już obliczoną scenę NeRF i następnie przekształca ją w przestrzeń do eksploracji.

A discrete training set is created for submodules, comprised of training image pixels whose trajectory might span the cell that it represents. Consequently, each module is trained entirely separately from adjacent cells. Source: https://arxiv.org/pdf/2112.10703.pdf

Utworzono dyskretny zestaw szkoleniowy dla podmodułów, składający się z pikseli obrazu szkoleniowego, których trajektoria może obejmować komórkę, którą reprezentuje. W związku z tym każdy moduł jest szkolony całkowicie oddzielnie od sąsiednich komórek. Source: https://arxiv.org/pdf/2112.10703.pdf

Autorzy określają Mega-NeRF jako ‘przeformułowanie architektury NeRF, które rozprzęga połączenia warstw w sposób przestrzennie-świadomy, umożliwiając poprawy wydajności podczas szkolenia i renderowania’.

Conceptual comparison of training and data discretization in NeRF, NeRF++, and Mega-NeRF. Source: https://meganerf.cmusatyalab.org/

Porównanie koncepcyjne szkolenia i dyskretyzacji danych w NeRF, NeRF++, i Mega-NeRF. Source: https://meganerf.cmusatyalab.org/

Autorzy twierdzą, że użycie Mega-NeRF nowych strategii spójności czasowej unika potrzeby nadmiernego przetwarzania wstępnego, pokonuje wewnętrzne limity skali i wprowadza wyższy poziom szczegółowości niż poprzednie prace, bez poświęcania interaktywności lub konieczności wielu dni szkolenia.

Badacze udostępniają również duże zestawy danych zawierające tysiące wysokiej rozdzielczości obrazów uzyskanych z filmów nagranych przez drony na obszarze 100 000 metrów kwadratowych wokół kompleksu przemysłowego. Dwa dostępne zestawy danych to ‘Building’ i ‘Rubble’.

Poprawa poprzednich prac

Artykuł zauważa, że poprzednie prace w tym samym zakresie, w tym SneRG, PlenOctree i FastNeRF, wszystkie opierają się na pewnego rodzaju buforowaniu lub przetwarzaniu wstępnym, które dodaje obciążenie obliczeniowe i/lub czasowe, nieodpowiednie dla tworzenia wirtualnych środowisk poszukiwania i ratownictwa.

Podczas gdy KiloNeRF wywodzi pod-NeRF z istniejącej kolekcji wielowarstwowych perceptronów (MLP), jest ograniczony architektonicznie do wnętrzowych scen z ograniczoną rozszerzalnością lub pojemnością do rozwiązywania większych środowisk. FastNeRF, z kolei, przechowuje “upieczony”, pre-wyliczony wersję modelu NeRF w dedykowanej strukturze danych i pozwala użytkownikowi nawigować przez nią za pomocą dedykowanego MLP lub przez sferyczną bazę obliczeniową.

W przypadku KiloNeRF maksymalna rozdzielczość każdego aspektu sceny jest już obliczona, i nie będzie dostępna większa rozdzielczość, jeśli użytkownik zdecyduje się “powiększyć”.

Natomiast NeRF++ może natywnie obsługiwać nieograniczone, zewnętrzne środowiska, dzieląc potencjalną przestrzeń do eksploracji na obszary przedniego i tylnego planu, z których każdy jest nadzorowany przez dedykowany model MLP, który wykonuje ray-casting przed ostatecznym składaniem.

Wreszcie, NeRF w terenie, który nie rozwiązuje bezpośrednio nieograniczonych przestrzeni, poprawia jednak jakość obrazu w zestawie danych Phototourism, a jego osadzanie wyglądu zostało naśladowane w architekturze Mega-NeRF.

Autorzy przyznają również, że Mega-NeRF jest inspirowany projektami Structure-from-Motion (SfM), zwłaszcza projektem Building Rome in a Day z Uniwersytetu Waszyngtońskiego.

Spójność czasowa

Podobnie jak PlenOctree, Mega-NeRF pre-liczy grubą pamięć koloru i przezroczystości w okolicy obecnego skupienia użytkownika. Jednak zamiast obliczania ścieżek każdorazowo, które są w pobliżu obliczonej ścieżki, jak to robi PlenOctree, Mega-NeRF “zapisuje” i ponownie wykorzystuje tę informację, dzieląc obliczoną drzewo, podążając za rosnącym trendem, aby rozłączyć ściśle związane z NeRF przetwarzanie.

On the left, PlenOctree's single-use calculation. Middle, Mega-NeRF's dynamic expansion of the octree, relative to the current position of the fly-through. Right, the octree is reused for subsequent navigation.

Po lewej, jednorazowe obliczenie PlenOctree. Środek, dynamiczne rozszerzenie drzewa oktetowego Mega-NeRF, względem bieżącej pozycji przelotu. Prawo, drzewo oktetowe jest ponownie wykorzystywane do następnego nawigowania.

Ten oszczędność obliczeń, według autorów, znacznie zmniejsza obciążenie przetwarzania, wykorzystując obliczenia na żądanie jako lokalną pamięć, a nie szacując i buforując je wszystkie wcześniej, zgodnie z ostatnią praktyką.

Przewodzone próbkowanie

Po początkowym próbkowaniu, zgodnie ze standardowymi modelami do tej pory, Mega-NeRF wykonuje drugą rundę przewodzonego próbkowania promieni po ulepszeniu drzewa oktetowego, w celu poprawy jakości obrazu. Do tego Mega-NeRF wykorzystuje tylko jeden przejście, oparty na istniejących wagach w strukturze danych drzewa oktetowego.

Jak widać na powyższym obrazie, z nowego artykułu, standardowe próbkowanie marnuje zasoby obliczeniowe, oceniając nadmierną ilość obszaru docelowego, podczas gdy Mega-NeRF ogranicza obliczenia na podstawie wiedzy o tym, gdzie jest obecna geometria, ograniczając obliczenia powyżej ustalonego progu.

Dane i szkolenie

Badacze przetestowali Mega-NeRF na różnych zestawach danych, w tym na dwóch wcześniej wymienionych, ręcznie przygotowanych zestawach, pochodzących z filmów nagranych przez drony na terenie przemysłowym. Pierwszy zestaw, Mill 19 – Building, zawiera filmy nagrane na obszarze 500 x 250 metrów kwadratowych. Drugi, Mill 19 – Rubble, reprezentuje podobne filmy nagrane na sąsiedniej budowie, na której badacze umieścili kukły reprezentujące potencjalnych ocalałych w scenariuszu poszukiwania i ratownictwa.

From the paper's supplemental material: Left, the quadrants to be covered by the Parrot Anafi drone (pictured center, and in the distance in the right-hand photo).

Z materiałów uzupełniających artykułu: Po lewej, kwadraty, które mają być pokryte przez dron Parrot Anafi (na zdjęciu w środku i w oddali na prawym zdjęciu).

Ponadto, architektura została przetestowana na kilku scenach z UrbanScene3D, z Centrum Badań Komputerowych Uniwersytetu w Shenzhen w Chinach, które składa się z HD filmów nagranych przez drony w dużych środowiskach miejskich; oraz z zestawem danych Quad 6k, z Laboratorium Widzenia Komputerowego Uniwersytetu Indiana.

Szkolenie odbywało się na 8 podmodułach, z których każdy miał 8 warstw z 256 jednostkami ukrytymi, oraz następującą warstwę kanału 128 z funkcją aktywacji ReLU. W przeciwieństwie do NeRF, ten sam MLP był używany do zapytań o próbki grubych i wyrafinowanych, zmniejszając całkowitą wielkość modelu i pozwalając na ponowne wykorzystanie wyjść sieci szkoleniowej w następnym etapie renderowania. Autorzy szacują, że to oszczędność 25% zapytań modelu dla każdego promienia.

1024 promieni zostały wybrane na partię podczas Adam, z początkową szybkością uczenia 5×104, malejącą do 5×10-5. Osadzanie wyglądu zostało obsłużone w ten sam sposób, co w NeRF w terenie. Próbkowanie o mieszanej precyzji (szkolenie z niższą precyzją niż 32-bitowy punkt zmiennoprzecinkowy) zostało użyte, a szerokość MLP została ustalona na 2048 jednostek ukrytych.

Testowanie i wyniki

W testach przeprowadzonych przez badaczy, Mega-NeRF był w stanie wyraźnie przewyższyć NeRF, NeRF++ i DeepView po szkoleniu przez 500 000 iteracji na wcześniej wymienionych zestawach danych. Ponieważ Mega-NeRF jest ukierunkowany na scenariusz ograniczony czasowo, badacze pozwolili wolniejszym poprzednim strukturoantom na dodatkowy czas poza 24-godzinnym limitem, i donoszą, że Mega-NeRF nadal przewyższył ich, nawet przy tych korzyściach.

Użyte metryki to Peak signal-to-noise ratio (PSNR), wersja VGG LPIPS, i SSIM. Szkolenie odbywało się na jednej maszynie wyposażonej w osiem V100 GPU – skutecznie, na 256 GB VRAM, i 5120 rdzeni Tensor.

Sample results from the Mega-NeRF experiments (please see the paper for more extended results across all frameworks and datasets) show that PlenOctree causes notable voxelization, while KiloNeRF produces artifacts and generally more blurry results.

Wyniki próbek z eksperymentów Mega-NeRF (zobacz artykuł, aby uzyskać więcej wyników we wszystkich strukturach i zestawach danych) pokazują, że PlenOctree powoduje zauważalną wektoryzację, podczas gdy KiloNeRF wytwarza artefakty i ogólnie bardziej rozmyte wyniki.

Strona projektu znajduje się pod adresem https://meganerf.cmusatyalab.org/, a wydany kod jest dostępny pod adresem https://github.com/cmusatyalab/mega-nerf.

Pierwotnie opublikowane 21 grudnia 2021.

Pisarz na temat uczenia maszynowego, specjalista ds. syntezowania obrazów ludzi. Były kierownik treści badawczych w Metaphysic.ai.