Elektrotehniški vestnik 87(3): 75-86, 2020 Izvirni znanstveni članek Načrtovanje najboljšega naslednjega pogleda za gradnjo 3D-modelov predmetov iz barvnih slik Kristian Žarn, Danijel Skočaj Univerza v Ljubljani, Fakulteta za računalništvo in informatiko, Večna pot 113, 1000 Ljubljana, Slovenija E-pošta: kristian.zarn@gmail.čom, danijel.skočaj@fri.uni-lj.si Povzetek. Kakovost pridobljenega 3D-modela je mocno odvisna od zajetih slik. Rocno zajemanje je lahko dolgotrajno opravilo, pri katerem Želimo s slikami doseci ustrezno natančnost in pokritost modela. Uporabnik, ki med zajemanjem nima povratne informacije o ustreznosti slik, s težavo upošteva vse predpostavke algoritmov, kar je lahko vzrok za neuspešno rekonstrukcijo, ponovno zajemanje pa je lahko zelo drago ali celo nemogoče. V tem delu predstavimo novo metodo za nacrtovanje najboljšega naslednjega pogleda, ki temelji na novi meri za oceno kakovosti 3D-modela. Na ta nacin uporabnik dobi namig, iz katerih pogledov naj zajame slike, da zagotovi smiselno gradnjo 3D-modela. Predlagano metodo smo preizkusili s pomocjo razvitega sistema za rekonstrukcijo, ki omogoca sprotno gradnjo modela in odziv o primernosti zajetih slik. Z evalvacijo pokazemo, da je rekonstrukcija z našo metodo nacrtovanja naslednjega pogleda v vecini primerov boljša od rekonstrukcije iz slik zajetih s po navidezni polkrogli enakomerno razporejenimi kamerami. Ključne besede: racunalniški vid, 3D-rekonstrukcija, struktura iz gibanja, najboljši naslednji pogled Next best view planning for building a 3D model of objects from color images The quality of a reconstructed 3D model heavily depends on the input images. The manual image acquisition to obtain the desired accuracy and completeness of the model can be a lengthy process. A user with no feedback about the image suitability may find it hard to comply with the assumptions of the algorithms, which can result in an unsuccessful model reconstruction. An additional image acquisition can be expensive or even impossible. In this work we introduce a new method for the next best view planning. The method is based on a new quality measure giving the user a hint from which view to capture the image to ensure a sensible reconstruction. The proposed method is tested with a system that allows an online reconstruction and immediate feedback about the image adequacy. We show that the reconstruction obtained by the next best view planning is generally better than the reconstruction from images captured from evenly-spaced view points in the shape of a hemisphere. Keywords: computer vision, 3D reconstruction, next best view 1 Uvod Pri rekonstrukciji želimo na podlagi zajetih slik pridobiti 3D-obliko, ki se predmetu najbolj prilega. Razviti postopki in algoritmi se uspešno uporabljajo v industriji, npr. za 3D-kartiranje, spletne trgovine, 3D-tisk, posebne ucinke v filmih, računalniške igre in arhiviranje kulturne dediščine. Sodobne digitalne kamere lahko zaradi visoke locljivosti in kakovosti slik ob ustrezni uporabi proizvedejo 3D-modele visoke kakovosti, ki je v dolocšenih pogojih primerljiva z laserskim skeniranjem [15]. Prejet 19. december, 2019 Odobren 26. februar, 2020 Kakovost rekonstrukcije je mocno odvisna od zajetih slik. Algoritmi za rekonstrukcijo imajo nekatere predpostavke in omejitve, npr: kot in translacija med pari sosednjih pogledov morata biti primerna, rekonstruirani predmeti pa morajo imeti dovolj dobro teksturo. Uporabnik, ki med zajemanjem nima povratne informacije o ustreznosti slik, tezko upošteva omenjene predpostavke. Lahko se zgodi, da zaradi neustreznih slik nekateri deli predmeta ne morejo biti rekonstruirani ali pa ni dosezena zelena natancnost modelov. Ponovno zajemanje slik je lahko zelo drago ali celo nemogocše, kot npr. pri rekonstrukciji iz zracnih posnetkov in arhiviranju arheoloških najdb. Poleg tega se pri nenadzorovanemu zajemanju slik pogosto zajamejo tudi redundantne slike, ki povecajo cas procesiranja brez pomembnega prispevka h kakovosti modela. Omenjene tezave so pogoste v klasicnih pristopih, kjer je gradna 3D-modela izvedena loceno, po zajemanju slik. V tem delu se osredotocamo na razvoj nove metode za nacrtovanje naslednjih pogledov (angl. next best view planning), ki sistematicno izboljšajo kakovost rekonstrukcije. Z uporabo sodobnejših algoritmov smo razvili tudi programsko opremo, ki omogocša sprotno gradnjo grobega 3D-modela ze med zajemanjem slik. Uporabili smo jo pri evalvaciji predlagane metode za nacrtovanje pogledov. Oris naše programske rešitve je prikazan na sliki 1. Diagram prikazuje odvisnost med funkcionalnostmi ter vhodnimi in izhodnimi podatki. Postopek se zacšne z zajemanjem slik, ki so pridobljene z IP-kamero. V našem primeru je kot IP-kamera uporabljen mobilni telefon, kar je mogoce s pomocjo dodatne mobilne aplikacije. 76 ŽARN, SKOCAJ Iz zajetih slik se postopoma gradi redka rekonstrukcija, ki vraca lego kamer in grob 3D-model, predstavljen s trikotnisko mreZo. Na podlagi te predstavitve so predlagani tudi naslednji pogledi. Ko je zajetih dovolj slik, lahko uporabnik z algoritmi goste rekonstrukcije pridobi koncni 3D-model. Zajem vhodnih slik Predlog naslednjega > * Vhodne slike Redka rekonstrukcija Načrtovanje naslednjega pogleda Končni 3D model l. Lega kamer in r grob 3D model Gosta rekonstrukcija Slika 1: Oris programske rešitve. Sivi okvirji predstavljajo funkcionalnosti programa, beli pa njihove vhode in izhode. V naslednjem poglavju predstavimo nekaj najbolj relevantnih sorodnih del. Kratek opis naše programske rešitve je podan v poglavju 3, podrobnejši opis naše metode za načrtovanje pogledov pa v poglavju 4. V poglavjih 5 in 6 predstavimo metodologijo evalvacije in nekaj rezultatov. Prispevek zaključimo s sklepnimi ugotovitvami ter smernicami za nadaljnje delo. 2 Sorodna dela Celoten postopek gradnje 3D-modelov iz barvnih slik v grobem delimo na redko in gosto rekonstrukcijo. Najbolj popularen postopek za prvo je imenovan struktura iz gibanja (angl. structure from motion), označen je s kratico SfM [1]. Sestavljen je lahko iz razlicnih algoritmov in na splošno deluje tako, da se na slikah poišcejo znacilnice, nato pa se na podlagi ujemanj med slikami izracunajo njihove 3D-koordinate. Rezultat so redek oblak 3D-tock ter pozicija in orientacija kamer, ki pripadajo vhodnim slikam. Wu je v svojem delu [6] z izvirno strategijo uporabe algoritmov pokazal, da je lahko casovna zahtevnost postopka SfM skoraj linearna tudi pri rekonstrukciji z vec tisoc slikami. Na takšnem postopku temeljijo številni sodobni pristopi za redko rekonstrukcijo, uporabljamo pa ga tudi v našem delu. Ce zelimo na podlagi slik pridobiti 3D-model visoke locljivosti, ki se bolj natancno prilega obliki dejanskega predmeta, potem lahko redek oblak tocšk nadgradimo z gosto rekonstrukcijo. V nasprotju z redko rekonstrukcijo je v tem primeru cilj pridobiti globino (in posledicšno 3D-lokacijo) vsakega slikovnega elementa na vsaki sliki. To storimo z algoritmi s podrocja vecpoglednega sterea (angl. multi-view stereo), ki za vhod vzamejo rezultate redke rekonstrukcije in proizvedejo gost 3D-model. Opis in primerjava razlicnih pristopov rekonstrukcije na tem podrocju sta na voljo v preglednem clanku [2]. V literaturi so s pojmom nacšrtovanje naslednjega pogleda oznacšeni zelo razlicšni pristopi. V tem delu problem obravnavamo kot inkrementalni proces siste-maticšne izboljsšave natancšnosti in pokritosti 3D-modela. Kriegel in drugi [3] so za gradnjo 3D-modela uporabili industrijski robotski manipulator z laserskim skener-jem. Naslednji pogledi so izbrani na podlagi robov v modelu in cenovne funkcije, ki stremi k raziskovanju. Na podrocju rekonstrukcije iz barvnih slik sta problem naslovila Dunn in Frahm [4]. Predlagala sta cenovno funkcijo, ki zdruzuje negotovost v oceni strukture, projekcijo modela in videz teksture. Naslednji pogled je dolocen z optimizacijo te funkcije. Sproten odziv pri rekonstrukciji so naslovili tudi Hoppe in drugi [5]. V svojem delu so razvili rešitev, ki s sprotno informacijo o ustreznosti slik in kakovosti modela pomaga uporabniku pri rekonstrukciji. 3 Gradnja 3D-modela Kot prikazuje slika 1, je postopek gradnje 3D-modelov predmetov razdeljen na redko in gosto rekonstrukcijo. Ti komponenti naše programske opreme sta opisani v tem poglavju. 3.1 Redka rekonstrukcija Za redko rekonstrukcijo smo uporabili postopek, imenovan inkrementalna struktura iz gibanja [6]. Rekonstrukcija je inicializirana na podlagi prvih dveh slik. Na slikah poišcemo znacilnice SIFT [7] in njihova ujemanja. Na podlagi ujemanj izracunamo tako imenovano osnovno matriko (angl. essential matrix). Iz nje pridobimo relativno lego prvih dveh kamer [8]. Magnituda translacije iz osnovne matrike ne more biti dolocšena, zato pravimo, da je rekonstrukcija dolocšena do velikosti natancšno. Oblak 3D-tocšk inicializiramo s triangulacijo [10] ujemajocih znacilnic. Rekonstrukcijo nato postopoma nadgrajujemo z dodajanjem novih slik. Iz nove vhodne slike najprej pridobimo znacilnice. Naslednji korak je kriticen za hitro razširitev. Namesto iskanja ujemanj z vsemi predhodnimi slikami išcemo ujemanja samo s petimi najbolj podobnimi slikami. Te kandidate za ujemanje pridobimo z uporabo tako imenovanega vizualnega slovarja [11]. Znacilnice nove slike, za katere smo našli ujemanje, lahko zdaj razdelimo v dve mnozici. V prvi mnozici so tiste, ki so ze del rekonstrukcije. Uporabimo jih za dolocanje absolutne lege kamere [9]. V drugi mnozici so tiste, ki še niso del rekonstrukcije. Dodamo jih s triangulacijo. Pomembno je, da po vsaki dodani sliki minimiziramo reprojekcijsko napako. S tem izboljšamo natancnost in omilimo akumulacijo napake. Na podlagi oblaka tock in lege kamer lahko rekonstruiramo površino predmeta [12]. Ker gre za hitro operacijo, jo lahko izvedemo po vsaki dodani sliki. Tako pridobimo NAČRTOVANJE NAJBOLJŠEGA NASLEDNJEGA POGLEDA ZA GRADNJO 3D-MODELOV PREDMETOV IZ BARVNIH SLIK 77 Slika 2: Prikazani so rezultati korakov gradnje 3D-modela. Od leve proti desni si sledijo, redka rekonstrukcija z metodo Struktura iz gibanja, rekonstrukcija površine, izboljšava ločljivosti in natančnosti ter teksturiranje. grob 3D-model, predstavljen s trikotniško mrežo. Na sliki 2 so prikazani vmesni rezultati gradnje 3D-modela. Opisani postopek zajema prva dva koraka. Kot osnovo pri implementaciji redke rekonstrukcije smo uporabili knjiznico TheiaSfM [17]. Ta vsebuje številne algoritme s področja strukture iz gibanja. Za hitrejše iskanje značilnic smo uporabili implementacijo na graficni kartici iz knjiznice SiftGPU [18]. Implementacijo vizualnega slovarja smo pridobili iz knjiznice ČOLMAP [19]. 3.2 Gosta rekonstrukcija Za ceno dodatnega procesiranja lahko redko rekonstrukcijo izboljšamo z algoritmi goste rekonstrukcije. Knjiznica OpenMVS [20] ponuja implementacijo algoritmov za rekonstrukcijo površine, izboljšavo locljivosti in generiranje teksture. Te algoritme smo integrirali v našo rešitev. Izboljšava locljivosti 3D-modela [13] je casovno zahtevna operacija, ki jo izvedemo, ko so zajete vse slike. Locljivost grobega modela je z delitvijo trikotnikov prilagojena locljivosti vhodnih slik. Nad vozlišci gostejšega modela je definirana energijska funkcija. Z minimizacijo te funkcije dolocimo natancnejšo pozicijo vozlišc. Koncni model pridobimo s teksturiranjem [14], ki je kljucnega pomena za dosego realisticnega videza. Algoritem deluje v dveh korakih. V prvem koraku vsakemu trikotniku pripisšemo oznako, ki dolocša en pogled, ki bo uporabljen za njegovo teksturiranje. Drugi korak algoritma pa je globalna uskladitev barv, tako da med trikotniki ni vidnih prehodov. Opisana algoritma zajemata zadnja dva koraka slike 2. 4 Načrtovanje naslednjega pogleda V tem poglavju opisšemo predlagano metodo za nacšrtovanje naslednjega pogleda, ki je glavni prispevek tega dela. Najprej predstavimo še oceno kakovosti 3D-modela, ki je temelj za delovanje naše metode. 4.1 Ocena kakovosti 3D-modela Za predstavitev 3D-modelov v nasšem delu uporabljamo trikotniško mrezo. To je seznam tock Mi in trikotnikov Ti. Tako kot v [5], kakovost 3D-modela definiramo s funkcijo Q, ki vsakemu trikotniku Ti = {Mi ,M2 ,M3} priredi realno vrednost. Takšno preslikavo lahko zapišemo z enacbo Q : {R3, R3, R3} ^ R Ti ^ Q(Ti). (1) Želimo si, da prirejena vrednost čim bolje predstavlja kakovost končnega modela, ki je merjena z natančnostjo in pokritostjo. Tako imamo Ze med rekonstrukcijo na voljo informacije o tem, kateri deli modela so bolj oz. manj natančni. Tako lahko sprejmemo informirano odločitev o postavitvi naslednje kamere. Ta ideja je osnova za delovanje nase metode načrtovanja naslednjih pogledov. Hoppe in drugi v svojem delu [5] predlagajo mero GSD (angl. ground sampling distanče). V našem delu predlagamo podobno, vendar nekoliko spremenjeno mero, imenovano PPA (angl. pixels per area), ki se je izkazala za bolj robustno. Mera GSD se izračuna na naslednji način. Posamezni trikotnik Ti preslikamo nazaj na kamere C j. Ploščino trikotnika nato delimo z maksimalno ločljivostjo preslikave in rezultat korenimo. Mero zapišemo z enačbo Qgsd (Ti) = min I A (Ti) P (Ti, C j). (2) V zgornji enacbi funkcija P vrne število slikovnih elementov, ki jih trikotnik Ti pokrije na sliki kamere C j, funkcija A pa vrne plošcino trikotnika v 3D-prostoru. Manjša vrednost funkcije Qgsd pomeni vecjo kakovost modela. Zaradi majhnih in manj vidnih trikotnikov ta mera proizvede tudi nekatere zelo izstopajoce vrednosti, zato odrezemo a = 10 % najbolj izstopajocih, tako kot v originalnem delu [5]. Mero PPA izracunamo na podoben nacin. Trikotnik Ti je ponovno preslikan nazaj na kamere C j. Stevilo slikovnih elementov preslikav tokrat seštejemo in delimo s plošcino trikotnika v 3D-prostoru. Da omilimo vpliv vecjih vrednosti, koncni rezultat korenimo. Mero zapisšemo z enacšbo qppa (Ti) = YjC. P (Ti, C j) A(Ti) (3) 78 ŽARN, SKOCAJ V tem primeru vecja vrednost funkcije QPPA pomeni vecjo kakovost modela. Posebna normalizacija kot pri meri GSD tu ni potrebna. V zgornjih enačbah je računsko najzahtevnejša funkcija P, pri kateri moramo upoštevati medsebojno prekrivanje trikotnikov celotnega modela. Za ucinkovito implementacijo smo uporabili graficno kartico. Na sliki 3 sta obe meri kakovosti vizualizirani na konkretnem primeru. Za primerjavo smo na sliki 4 prikazali tudi dejansko natancšnost modela. Postopek izracšuna natancnosti je opisan v podpoglavju 5.2. Opazimo lahko, da se v tem primeru mera PPA vizualno bolje ujema z dejansko natancnostjo. Obseznejša evalvacija je predstavljena v podpoglavju 6.1. Slika 3: Vizualizacija kakovosti za konkreten 3D-model. Na levi strani je prikazana mera GSD, na desni pa PPA. Meri sta normalizirani tako, da zavzameta vrednosti na intervalu [0,1], kjer 1 predstavlja največjo in 0 najmanjšo kakovost. Opazimo lahko, da je blizjim trikotnikom in tistim z boljšo vidnostjo na kamerah pripisana večja kakovost. i: I Slika 4: Vizualizacija dejanske natančnosti modela za primerjavo z merama GSD in PPA. Leva stran prikazuje nespremenjeno natančnost. Na desni strani smo za potrebe vizualizacije odstranili 10 % največjih vrednosti. Tako omilimo vpliv velikih odstopanj in zmanjšamo razpon med vrednostmi. Rdeča barva predstavlja dobro natančnost, modra pa slabo. Obe meri predpostavljata, da boljša vidnost trikotnikov proizvede boljšo kakovost modela. Razlikujeta se v tem, da mera PPA upošteva vidnost trikotnika na vseh kamerah, medtem ko je pri meri GSD pomembna le čim večja ločljivost na eni izmed kamer. Omenjena predpostavka drži v primerih, ko ima rekonstruirani predmet dobro teksturo in je pridobljenih dovolj značšilnič. V določenih primerih lahko model zaradi lukenj, odsevnih materialov, slabe teksture in šuma vsebuje trikotnike, ki se dejanski površini predmeta ne prilegajo, vendar so kljub temu dobro vidni na kamerah. V takšnih primerih opisani meri proizvedeta slabše rezultate. 4.2 Najboljši naslednji pogled Problem načrtovanja naslednjega pogleda (angl. next best view planning) je definiran kot iskanje nove oz. dodatne postavitve senzorja z namenom izboljšave obstoječe rekonstrukcije oz. predstavitve prostora. Namesto barvne kamere so na splošno lahko uporabljeni tudi drugi senzorji (npr. globinske kamere, laserski skenerji itd.). Odvisno od konteksta lahko na načrtovanje pogledov gledamo kot na strategijo za avtonomno raziskovanje ali izbiro najboljših vhodnih slik pri rekonstrukciji iz velike mnozice podatkov. Tako kot v [4] v tem delu problem obravnavamo kot inkrementalni pročes sistematične izboljšave natančnosti in pokritosti 3D-modela. Naš pristop za načrtovanje naslednjega pogleda temelji na očeni kakovosti 3D-modela. Najprej definiramo čenovno funkčijo, ki za podano lego kamere očeni, kako dobra je njena postavitev. Funkčijo zapišemo z enačbo fNBV : R4x4 - R fNBV(C) = a * ^(Qppa(v(C))) (4) - P *