Spletno upodabljanje LiDAR podatkov Slovenije z dodano barvno informacijo in senčenjem Jaka KordeZ, Ciril Bohak Fakulteta za računalništvo in informatiko, Univerza v Ljubljani E-pošta: jk5456@student.uni-lj.si, čiril.bohak@fri.uni-lj.si Web-Based visualization of Slovenian LiDAR data with added color information and shading In this paper we present an adaptation of web-based point-cloud data visualization framework Potree for use with Slovenian LiDAR data. We enriched LiDAR data with color information obtained from Ortho-Photo data. We supplemented the dataset with artificial points, where data was missing (water surfaces). For better spatial perception we also calculate the normals for individual points in the data and use them for shading. We evaluate the presented sistem step by step and present the final results. Povzetek V clanku predstavimo prilagoditev spletnega ogrodja Potree za prikaz podatkov v obliki oblakov točk za uporabo s slovenskimi podatki LiDAR. V podatke smo dodali barvno informacijo iz zbirke orto-foto posnetkov. Podatke smo dopolnili z umetno ustvarjenimi točkami, kjer so bila manjkajoča območja (vodne površine). Za boljšo prostorsko predstavo pri pregledovanju podatkov smo za posamezne tocke v zbirki izracunali normale, ki jih uporabimo pri izracunu osvetlitve. Koncni sistem smo korak za korakom performancno ovrednotili in predstavili koncne rezultate. 1 Uvod V zadnjem času se je zaradi napredka tehnologije zelo povečala količina zajetih okoljskih podatkov na različnih področjih. To velja tudi za področje geodezije, geografije in geologije, kjer si raziskovalči vse bolj pogosto pri snemanju zemeljskega površja pomagajo tudi s tehnologijo LiDAR (angl. Light Imaging, Detečtion and Ranging) [4]. Z uporabo senzorjev LiDAR, nameščenih na letala, lahko pridobimo izredno natančno informačijo o obliki povrsšja, kot tudi o vrsti podlage od katere se laserski zarek odbije. Zbirko takšnih podatkov so pripravili tudi pri Agenčiji Republike Slovenije za okolje [1]. Uporabnost takšne zbirke pa se močno poveča kadar lahko uporabniku njeno vsebino predstavimo na enostaven in prijazen način. Eden takšnih pristopov je vizua-lizačije taksšne zbirke podatkov. Za sširoko dostopnost je dandanes smiselno uporabiti spletne tehnologije, saj so podprte na sširokem naboru naprav (od namiznih račšunal-nikov pa do mobilnih telefonov). Vizualizačija takšne zbirke podatkov v obliki kočk z robom 1 m z uporabo upodobljevalne metode sledenja zarkom je predstavljena v delu [6], kjer pa sistem ne omogoča interaktivnega vpogleda zaradi zahtevnega izračuna upodobitve. Za vizuali-začijo taksšnih podatkov je zaradi interaktivnosti smiselno uporabiti strojno pospešen izris. To nam omogoča uporaba vmesnika WebGL [5], ki ga uporablja tudi ogrodje Potree 1 [7], namenjeno prav vizualizačiji oblakov točk na spletu. Ogrodje Potree je namenjeno prikazu podatkov, ki imajo točke razporejene po širšem 3D prostoru in za opti-mizačijo prikaza podatkov uporablja strukturo osmiškega drevesa (angl. očtree). Za primer podatkov v ze omenjeni zbirki velja, da so točke večinoma razporejene v tankem pasu v blizšini povrsšja in je posledičšno uporaba taksšne podatkovne strukture nepotrebna in čelo potratna, saj delitev prostora v tretji dimenziji ni potrebna. Prav to pa naslavlja v svojem delu Jan Gašperlin [3], ki je ogrodje Potree za namene prikaza površja prilagodil z implemen-tačijo štiriškega drevesa za delitev prostora, kar se izkaze za dobro odločšitev, tako v performančšnem smislu kot pri prihranku prostora. Zbirka podatkov LiDAR za posamezno točko vsebuje podatke o polozaju, intenziteti odboja, zaporedni številki odboja in druge. Za dobro vizualizačijo povrsšja pa bi bilo smiselno za posamezno točko hraniti tudi barvno informačijo. Ta problem je v svojem delu naslovil Matej Slemenik [8], ki je točkam pripisal barvo na podlagi poravnanih barvnih orto-foto posnetkov. Se boljšo vizua-lizačijo pa lahko dosezšemo z uporabo primerne metode za senčenje. Pri tem nam močno pomaga informačija o normalah, ki definira odboj svetlobe. To problematiko je v svojem delu naslovil Peter Fajdiga [2], ki za izračun normal v posamezni točški zbirke uporabi metodo analize glavnih komponent (angl. Prinčipal Component Analysis - PCA) sosednjih točk. V našem sistemu to izkoristimo za mozšnost izračšuna osvetlitve glede na polozšaj sonča, izbranega datuma in ure. Za še boljši končni izgled vizualiziranih podatkov pa je smiselno nasloviti tudi napake oz. pomanjkljivosti v podatkih. Tako v pričujočem delu predstavimo tudi metodo za dopolnitev podatkov na območjih vodnih površin, kjer zaradi lastnosti površine površja senzorji podatkov niso zajeli. Za določanje vodnih površin uporabimo po- 1 http://potree.org/ ERK'2018, Portorož, 351-173 170 datke iz Atlasa voda Ministrstva za okolja in prostor RS 2. V clanku v naslednjem poglavju predstavimo razviti sistem in njegove posamezne korake, v poglavju 3 razvit sistem performancno ovrednotimo ter predstavimo rezultate, na koncu pa v poglavju 4 podamo zaključke in mozne korake za nadaljnje delo. 2 Spletni sistem za vizualizacijo terena Celoten sistem je sestavljen iz dveh delov: (a) dela za pripravo podatkov in (b) uporabniškega dela za vizualizacijo podatkov. Prvi del teče na strezniku, kjer se podatki iterativno pripravljajo v obliko primerno za vizualizacijo. Tako pripravljeni podatki so nato na voljo uporabniškemu delu sistema namenjenega vizualizaciji. Uporabniški del je razvit kot spletna aplikacija. 2.1 Priprava podatkov Obmocje celotne Slovenije razdelimo v pakete, kijih sestavljajo kvadrati s stranico dolzine 1 km tako, da so koordinate poravnane z GauB-Kriiger-jevim koordinatnim sistemom. Da bi zagotovili lazji nadzor nad procesiranjem podatkov, je sistem sestavljen iz posameznih stopenj, obdelava podatkov pa poteka cevovodno. Vsak paket mora skozi naslednje stopnje: • Prenos - oblak tock se prenese iz streznika. • Dodajanje točk - dodajo se manjkajoce tocke na vodnih povrsšinah. • Dodajanje barve - vsaka tocka dobi barvno informacijo iz ustreznege slikovne pike na zracne posnetku povrsšja. • Izračun normal - izracun normal z metodo PCA. Vsaka od stopenj sistema (prikazanega na sliki 1) se izvaja kot locšen proces in ima dolocšeno vhodno in izhodno datoteko. Z vsem skupaj upravlja glavni program, ki zagotavlja tudi ponavljanje procesiranja v primeru napak. Za cim vecjo ucinkovitost se vec paketov obdeluje socšasno. Vsaka od stopenj je podrobneje opisana v naslednjih podpoglavjih. 2.1.1 Dodajanje manjkajočih točk S senzorjem LiDAR zaznavamo okolico na podlagi odboja laserskih zarkov. To pomeni, da se mora vsaj del zarka ob stiku s površino tudi odbiti nazaj proti senzorju. Tehnika deluje zelo dobro na trdnih povrsšinah, na vodi pa zelo redko pride do ustreznega odboja. Rezultat so manjkajoce tocke na jezerih in rekah. Da bi popravili oblake tock na teh obmocjih moramo tam tocke torej naknadno dodati. Da bi tocške dodali na pravo mesto potrebujemo podatke o vodnih povrsšinah. V pomocš nam je topografska karta Slovenije, ki je v vektorski digitalni obliki dostopna na strezšniku Agencije Republike Slovenije za oko-lje3. Karta vsebuje tudi sloj na katerem so vodne površine 2http://www.evode.gov.si/atlas-voda/ 3http://gis.arso.gov.si/arcgis/rest/services/ Topografske_karte_ARSO_nova/MapServer Slika 1: Prikaz zaporednih korakov cevovodnega delovanja sistema za pripravo podatkov. opisane v obliki dvodimenzionalnih poligonov. Vsak ima pripisano geografsko ime, širino, tip in še druge podatke. Algoritem za vsak paket najprej prenese vse vodne površine za to obmocje v obliki JSON. Vsaka površina je predstavljena z mnozico tock, ki dolocajo poligon. Iz oblaka tocšk se vsakemu poligonu dodajo tocške, ki glede na tloris lezijo znotraj poligona in so oznacene kot tla. Tocke, ki dolocajo poligon so predstavljene z dvema koordinatama in nimajo nadmorske visšine. V naslednjem koraku se zato vsaki priredi visšina izracšunana kot pov-precje najblizjih nekaj tock iz izbranega dela oblaka tock. Da bi zapolnil manjkajoce vrzeli, program izriše navidezno mrezo tock preko celotnega poligona z razmakom 1 m. V oblak se doda le tiste tocške, ki so vsaj 1 m oddaljene od ze obstojecih. Pred dodajanjem se višina doloci kot povprecje višin najblizjih robnih tock poligona, koordinati X in Y pa se nakljucno zamakneta da dobimo bolj naravno porazdelitev. 338 2.1.2 Dodajanje barv Oblaki točk v zbirki LiDAR Ministrstva za okolje in prostor nimajo dodane informacije o barvi. To informacijo v podatke dodamo s pomočjo letalskih orto-foto posnetkov površja. Algoritem prenese ustrezen posnetek iz streZnika Agencije RS za okolje4 in vsaki točki v oblaku doda barvo najblizšjega slikovnega elementa iz orto-foto posnetka. 2.1.3 Senčenje Oblak točk sam po sebi ne definira nobenih poligonov. Vsaka površina je zato predstavljena z nizom točk, ki lezijo na njeni ravnini. Da bi lahko model pravilno osen-čili je potrebno določiti normale za vsako točko. To naj-lazje storimo z uporabo metode PCA. Za vsako točko iz oblaka izberemo vse sosednje točke v določenem radiju in izračunamo skupno kovariančno matriko po enačbi (1), kjer je k število sosednjih točk, pi je i-ta sosednja točka in P pa točka normale. k C = - P)(Pi - P)T (1) i=1 Nad to matriko se izvede razčep na lastne vrednosti in lastne vektorje. Ker so vektorji in matrika tridimenzionalni dobimo 3 lastne vrednosti in 3 lastne vektorje, ki so med seboj ortogonalni. Normala je tisti lastni vektor, katerega lastna vrednost je najmanjša, saj najmanj sovpada z sosednjimi točkami. 2.2 Vizualizacija podatkov Uporabniški del aplikačije je razvit kot spletna aplika-čija in za prikaz uporablja prilagojeno različičo ze omenjenega ogrodja Potree. Ogrodje Potree smo prilagodili tako, da namesto osmisške delitve prostora zaradi učšinko-vitosti uporablja sštirisško delitev. Na strezšniku pripravljeni podatki izbranega območšja se pretočijo k uporabniku, kjer se uporabniku prikažejo. Izris je strojno pospešen in izrablja vmesnik WebGL. Spletna aplikačija omogoča prikaz različnih lastnosti terena shranjenih v podatkih, podpira pa tudi njihovo zdruzševa-nje. Nekaj primerov vizualizačije istih podatkov je prikazanih na sliki 2. 3 Evalvacija in rezultati Da bi očenili hitrost delovanja čelotnega sistema smo poskusno pognali čeloten sistem in merili čas izračuna. V tabeli 1 so prikazani povprečni izmerjeni časi posameznih stopenj čevovoda. Izmerjeni so bili na vzorču 12 različšnih datotek. Povprečšno sštevilo točšk na datoteko je bilo 14.829.274. Celotna obdelava paketov je vpovprečju trajala 10 minut in 29 sekund. To pomeni, daje bilo na sekundo obdelanih 22.998 točšk. Testiranje je potekalo na pročesorju AMD Ryzen 1700 pri frekvenči 3,1 GHz. Ker vsaka datoteka pokriva območje 1 km2, površina Slovenije pa je nekaj več kot 20.000 km2, pričakujemo, da bo čelotno območje obdelano v priblizno 3605 urah. 4http://gis.arso.gov.si/arcgis/rest/services/ DOF_2016/MapServer (a) Vizualizačija prikaza RGB (b) Vizualizačija prikaza klasi-barvnih vrednosti. fikačije posameznih točk. (č) Vizualizačija prikaza kom- (d) Vizualizačija prikaza kom-binačije RGB barvnih vredno- binačije intenzitete odboja lasti in intenzitete odboja laser- serskega zarka in višine posa-skega zarka. mezne točke. Slika 2: Prikaz različnih lastnosti shranjenih za posamezno točško in njihove kombinačije. Tabela 1: Povprečni časi stopenj čevovoda KORAK (ČAS Prenos 35 s Dodajanje točk 46 s Dodajanje barv 47 s Izračun normal 8 min 42 s Skupaj 10 min 49 s Program lahko izkoristi večš jeder sistema s tem, da obdeluje več datotek hkrati. Na ta način lahko z uporabo npr. 8 jeder zaključimo v priblizno 450 urah oz. v 18 dnevih in 18 urah. Z izračunanimi normalami lahko v koraku senčenja izračšunamo osvetlitev v različšnih delih dneva. Na sliki 3 je tako prikazan del podatkov brez izračuna senčenja in nato še z izračunom senčenja ob treh delih dneva: zjutraj, opoldne in zvečer. (a) Brez senčenja. (b) Ob 6.00 zjutraj. (č) Ob 12.00. (d) Ob 18.00. Slika 3: Senčenje terena ob različnih urah v dnevu. Na slikah 4a - 4d je razviden končšni rezultat vizuali-začije podatkov obdelanih s predstavljenim sistemom za izbrana področšja Slovenije. 339 (c) Pogled na Piran. (d) Pogled na Triglav. Slika 4: Prikaz končnih upodobitev podatkov pripravljenih in vizualiziranih s predstavljenim sistemom. Da bi ugotovili kolikšno dodatno breme predstavlja senčenje za grafični pospeševalnik, smo izvedli še per-formančni test spletnega pregledovalnika. V našem testnem računalniku je Nvidia GT 430, testirali pa smo v brskalniku Firefox 61 na operacijskem sistemu Windows 10. Pregledovalnik je bil nastavljen na upodabljanje enega milijona točk. En oblak točk smo prikazali iz desetih različnih kotov in vsakič zabeležili dobljeno število sličič na sekundo (angl. frames per sečond - FPS) za prikaz osenčšenega in neosenčšenega modela. V povprečju je izris neosenčenega modela potekal z 28,66 FPS osenčenega modela pa z 27,5 FPS. Dodatno senčenje tako zateva 4,2% več časa. 4 Zaključki in nadaljnje delo Predstavljen sistem je bil razvit z namenom izdelave dostopnega orodja za prikaz izbranih geodetskih podatkov za območje Slovenije. Uporabniški del razvitega sistema omogočša vpogled v podatke tako na namiznem račšunal-niku kot na mobilnih telefonih in tabličah. Uporabniku ponuja interaktiven, odziven in intuitiven vmesnik, kjer lahko izbrane parametre prilagaja med samo uporabo. V okviru nadaljnjega dela zelimo s predstavljenim sistemom pripraviti podatke za čelotno Slovenijo in jih ponuditi na vpogled sširsši javnosti. Prav tako zšelimo sistem nadgraditi z dodatnimi funkčijami in podatke dodatno avtomatsko obdelati kjer prihaja do artefaktov (npr. pri mostovih in jezovih). Sistem je enostavno prilagodljiv in nadgradljiv in upamo, da pritegne širši nabor uporabnikov. Literatura [1] Geodetski inštitut slovenije. izvedba laserskega skeniranja slovenije. blok 35 - tehnično poročilo o izdelavi izdelkov. geodetski insštitut slovenije. Tečhničal report, 2015. [2] Peter Fajdiga. zdruzevanje ortofora in podatkov LiDAR v oblak točk z informačijo o barvi in normali - Poročilo seminarja. Tečhničal report, University of Ljubljana, Fačulty of Computer and Information Sčienče, 2018. [3] Jan Gašperlin. Web-based visualization of large terrain point čloud dataset - Seminar report. Tečhničal report, University of Ljubljana, Fačulty of Computer and Information Sčienče, 2018. [4] Norbert Haala, Mičhael Peter, Jens Kremer, and Graham Hunter. Mobile LiDAR Mapping for 3D Point Cloud Col-lečtion in Urban Areas — A Performanče Test. The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 37:1119-1127, 2008. [5] Dean Jačkson and Jeff Gilbert. Webgl spečifičation. Tečhničal report, The Khronos Group Inč., 2015. [6] Miha Lunar, Ciril Bohak, and Matija Marolt. Distributed ray tračing for rendering voxelized lidar geospatial data. In Zbornik petindvajsete mednarodne Elektrotehniške in računalniške konference ERK 2016, 19. - 21. september 2016, Portoroč, Slovenija, pages 55-58, 2016. [7] Markus Sčhutz. Potree: Rendering large point člouds in web browsers. Master's thesis, Institute of Computer Graphičs and Algorithms, Vienna University of Tečhno-logy, Favoritenstrasse 9-11/186, A-1040 Vienna, Austria, 2016. [8] Matej Slemenik. zdruzevanje ortofotov in lidar podatkov za izgradnjo oblaka točk z informačijami o barvi in normali - poročšilo seminarja. Tečhničal report, University of Ljubljana, Fačulty of Computer and Information Sčienče, 2018. 340