3D helyszín-rekonstrukció 2D képekből neurális sugárzási mezők segítségével (Neural Radiance Field, NeRF)

december 6, 2023

Ebben a blogbejegyzésben betekintést nyújtunk az elmúlt években népszerűvé vált, ún. neurális sugárzási mezőket (Neural Radiance Field, NeRF) használó módszer működésébe. Ez a metódus a mélytanulás (Deep Learning) technológiáját használja egy helyszín kétdimenziós (2D) képekből történő háromdimenziós (3D) rekonstruálására. A NeRF az általa feltérképezett helyszínből új, nagy felbontású képeket tud generálni, melyek többek között felhasználhatóak képszintézisre, objektumdetektálásra, képszegmentálásra és valósághű képek készítésére. Bemutatjuk a Nerfstudio használatáról szerzett tapasztalatainkat is.

A NeRF egy neurális hálózatot tanít be a helyszín sugárzási mezejének megbecslésére. Ennek során a hálózat az egyes térbeli pontok színének és átlátszóságának a megjóslását tanulja. A hálózat bemeneteként annak a 3D pontnak a koordinátáit és azt a nézési szöget kell megadni, amelyekből 2D képet szeretnénk kapni, és ennek eredményeként a hálózat kiadja a megfelelő szín- és átlátszósági értékeket. A hálózat betanításához szükségünk van a helyszín különböző nézőpontokból készült képeinek adathalmazára. A hálózat arra van betanítva, hogy minimalizálja a különbséget az előre jelzett sugárzási értékek és az adathalmazból származó alapigazságnak vett értékek között.

Eszközként a Nerfstudio-t választottuk, mert egy olyan keretrendszert biztosít, ami egyszerűsíti a NeRF-ek létrehozásának, tanításának és tesztelésének a folyamatát. Ráadásul így kipróbálhattunk több előre implementált módszert is, ami megkönnyítette számunkra a NeRF-ek működésének megismerését.

A CUDA könyvtárak segítségével fel tudtuk gyorsítani a betanítást, melyhez egy NVIDIA GeForce GTX 1650 videokártya használatára is szükség volt. A tréning 30.000 iterációt vett igénybe a kamera és a kép pozíciójára és elforgatására vonatkozó információkkal kiegészítve a 764 képből álló adathalmazon, melynek feldolgozását egy korábbi blogbejegyzésünkben mutattuk be. COLMAP. A betanítás körülbelül 2 órát vett igénybe az általunk választott Nerfacto nevű hálóval.

A betanítás során a Nerfstudio egy böngészőalapú grafikus felületet biztosít a modellel való interakcióhoz, ahol a nézetablak elforgatható és mozgatható. Az alábbi szegmens a Nerfacto böngészőnézetéből készült az 5196. iterációnál. A helyszínen a betanítás során használt képek láthatóak a térben lebegve, a bemeneti adatoknak megfelelően elhelyezve és elforgatva. A háttér ‘valós időben’ generálódik a betanítás aktuális szakaszának megfelelően. Ahogy a neurális hálózat egyre több iterációt végez, úgy válik a nézet is egyre tisztábbá.

A betanítás befejeztével körbenézhetünk, és a 3D környezet bármely irányából új 2D képeket készíthetünk. Emellett a Nerfstudio API-jának segítségével exportálhatjuk a betanított környezet egy meghatározott szegmensének 3D pontfelhőjét vagy hálóját. Íme egy részlet a MeshLab-ben megjelenített, exportált pontfelhőről. (A MeshLab egy ingyenes szoftvercsomag, ami általános eszköztárat biztosít 3D modellek manipulálásához és szerkesztéséhez.)

Tapasztalataink szerint a NeRF jobban teljesít, ha a bemeneti adatokat szabadtéren, jól megvilágított objektumokkal készítjük el. Tesztelésünk során a betanított modell nem volt következetes, amikor a bemeneti adatok dinamikus megvilágítás mellett, zárt térben készültek, például egy csatornarendszerben.