Categories
Pulssi Älykästä tuotantoa

Syvyys­kuvan visua­li­soin­nista: miten päästään pistepilveen?

SMErec-hankkeessa toteu­tettiin alustava visua­li­soin­ti­rat­kaisu virtu­aa­li­ho­lo­gram­mi­tal­len­teille, jolla on onnis­tuttu välit­tämään esiin­tyjän kehon­kieli katso­jalle. Tässä artik­ke­lissa kuvataan Base Camp –hankkeen etätek­no­lo­gia­ko­keilun vaatimaa jatko­ke­hi­tystä virtu­aa­li­ho­lo­grammien visua­li­soin­ti­rat­kaisuun, sekä avataan piste­pilvien muodos­ta­miseen liittyviä tekniikoita.

Rajoite on myönteinen voima suunnittelulle

Microsoft Hololens voidaan määri­tellä sekoi­tetun todel­li­suuden älyla­seiksi. Micro­softin sivut määrit­te­levät sen itsenäi­seksi hologram­mi­tie­to­ko­neeksi, mutta ominai­suudet ovat kutakuinkin älylaseja vastaavia. Basecamp-hankkeen käytössä on ensim­mäisen sukupolven Hololens-laite. Koska kyseessä on mobii­li­laite, myös sen lasken­tateho- ja -kapasi­teetti on rajal­linen. Esimer­kiksi muistitila yhtä sovel­lusta varten on rajattu noin 900 megatavuun, ja ohjelmien käsit­te­ly­ka­pa­si­teetti Unity-projek­tissa on rajoi­te­tumpi. Aiemmassa ratkai­sussa piste­pil­vi­pro­jek­tiota varten prose­du­raa­li­sesti luotu 3d-malli sijaitsee keskus­muis­tissa, sen data on siirrettävä näytö­noh­jai­melle jokai­sella ruudun­päi­vi­tys­ker­ralla. Tämä muodostuu Hololensen tapauk­sessa pullon­kau­laksi, ja aiheuttaa ruudun­päi­vi­tys­no­peuden alene­misen. Ratkaisuna tähän on siirtää valmis data kokonaan näytö­noh­jaimen muistiin, jolloin aikaa jää näytö­noh­jai­melle lasku­toi­mi­tusten suorit­ta­miseen huomat­ta­vasti enemmän.

Korkeus­e­rojen esittäminen

Korkeus­kartta on harmaa­sä­vykuva, jossa kuvapisteen arvo 0-255 määrittää suhteel­lisen etäisyyden tasosta. Tätä tietoa hyödyn­netään siirret­täessä 3D-mallin kuvapis­tettä johonkin suuntaan, kuten on nähtä­vissä kuvasta 1. Siinä neliön pintoja on nostettu tasosta ylöspäin vasem­man­puo­lisen harmaa­sä­vy­kuvan arvojen perus­teella. Vasem­man­puo­lei­sessa neliössä olevat valkoiset kuvapisteet esitetään arvolla 255, ja mustat puolestaan arvolla 0. Mitä suurempi harmaa­sä­vyarvo, sitä korkeam­malle piste oikean­puo­lei­sessa neliössä nousee. Tätä ideaa noudetaan myös hologrammin piste­pilven visualisoinnissa.

Korkeuskartan toiminta havainnollistettuna.
Korkeus­kartan toiminta havainnollistettuna.

Piste­pilven 3D-malli

Näytö­noh­jaimen muistiin siirret­tävää staat­tista dataa varten luodaan 3D-malli, joka koostuu erilli­sistä neliöistä. Jokainen näistä neliöistä merkitään vastaamaan tiettyä aluetta korkeus­kar­tassa tekstu­roinnin avulla. Tekstu­roinnin avulla voidaan liittää 2D-kuvatietoa minkä tahansa 3D-mallin pintaan määrit­te­le­mällä 3D-mallissa oleville pisteille kuvapis­te­koor­di­naatit, ja näytteis­tä­mällä halutut väriarvot kuvasta lineaa­ri­sesti inter­po­loi­tujen kuvapis­te­koor­di­naattien avulla.

Esitys­tark­kuuden näkökul­masta projektion neliöiden lukumäärä kannattaa olla maksi­missaan korkeus­kartan kuvapis­teiden lukumäärä, mutta pienempi lukumäärä voi olla perus­teltua käsit­te­lyajan paran­ta­mi­seksi. Tätä 3D-mallia voidaan kutsua esimer­kiksi projek­tio­pis­te­mal­liksi, ja se on nähtä­vissä kuvasta 2. Projek­tio­pis­te­malleja voi luoda useampia eri tarkkuuk­silla, ja lopul­lista visua­li­sointia on mahdol­lista optimoida tasapai­not­ta­malla projek­tio­pis­te­mallin tarkkuuden sekä käsit­te­lyajan suhdetta.

424x240 projektiopistemallista Blender-3D-mallinnusohjelmasta. Mallissa on 424 neliötä vaakasuunnassa, ja 240 neliötä pystysuunnassa. Oranssilla korostetut neliöt on siirretty y-akselilla irti muista.
424×240 projek­tio­pis­te­mal­lista Blender-3D-mallin­nus­oh­jel­masta. Mallissa on 424 neliötä vaaka­suun­nassa, ja 240 neliötä pysty­suun­nassa. Orans­silla koros­tetut neliöt on siirretty y-akselilla irti muista.

Yhteenveto

Luomalla staat­tisen 3D-mallin ja kytke­mällä siihen korkeus­kartan syvyys­tiedon, on mahdol­lista siirtää pisteitä sovel­tuvan projektion avulla. Koska 3D-mallidata sijaitsee näytö­noh­jaimen muistissa, sen tehokas käsittely mahdol­listuu varjos­ti­noh­jel­milla. Seuraa­vassa artik­ke­lissa keskityn hologrammien tarvit­seman piste­pil­vi­pro­jektion toteutukseen.


Kirjoittaja:
Anssi Gröhn, tieto­jen­kä­sit­telyn lehtori, Base Camp -hanke, Karelia-ammattikorkeakoulu