Syvyys­ku­van visua­li­soin­nista: miten pääs­tään pistepilveen?

SMErec-hank­keessa toteu­tet­tiin alus­tava 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­ty­jän kehon­kieli katso­jalle. Tässä artik­ke­lissa kuva­taan Base Camp –hank­keen etätek­no­lo­gia­ko­kei­lun vaati­maa jatko­ke­hi­tystä virtu­aa­li­ho­lo­gram­mien visua­li­soin­ti­rat­kai­suun, sekä avataan piste­pil­vien muodos­ta­mi­seen liit­ty­viä tekniikoita.

Rajoite on myön­tei­nen voima suunnittelulle

Micro­soft Holo­lens voidaan määri­tellä sekoi­te­tun todel­li­suu­den älyla­seiksi. Micro­sof­tin sivut määrit­te­le­vät sen itse­näi­seksi holo­gram­mi­tie­to­ko­neeksi, mutta ominai­suu­det ovat kuta­kuin­kin älyla­seja vastaa­via. Basecamp-hank­keen käytössä on ensim­mäi­sen suku­pol­ven Holo­lens-laite. Koska kyseessä on mobii­li­laite, myös sen lasken­ta­teho- ja -kapa­si­teetti on rajal­li­nen. Esimer­kiksi muis­ti­tila yhtä sovel­lusta varten on rajattu noin 900 mega­ta­vuun, ja ohjel­mien käsit­te­ly­ka­pa­si­teetti Unity-projek­tissa on rajoi­te­tumpi. Aiem­massa ratkai­sussa piste­pil­vi­pro­jek­tiota varten prose­du­raa­li­sesti luotu 3d-malli sijait­see keskus­muis­tissa, sen data on siir­ret­tävä näytö­noh­jai­melle jokai­sella ruudun­päi­vi­tys­ker­ralla. Tämä muodos­tuu Holo­len­sen tapauk­sessa pullon­kau­laksi, ja aiheut­taa ruudun­päi­vi­tys­no­peu­den alene­mi­sen. Ratkai­suna tähän on siirtää valmis data koko­naan näytö­noh­jai­men muis­tiin, jolloin aikaa jää näytö­noh­jai­melle lasku­toi­mi­tus­ten suorit­ta­mi­seen huomat­ta­vasti enemmän.

Korkeus­e­ro­jen esittäminen

Korkeus­kartta on harmaa­sä­vy­kuva, jossa kuva­pis­teen arvo 0-255 määrit­tää suhteel­li­sen etäi­syy­den tasosta. Tätä tietoa hyödyn­ne­tään siir­ret­täessä 3D-mallin kuva­pis­tettä johon­kin suun­taan, kuten on nähtä­vissä kuvasta 1. Siinä neliön pintoja on nostettu tasosta ylös­päin vasem­man­puo­li­sen harmaa­sä­vy­ku­van arvojen perus­teella. Vasem­man­puo­lei­sessa neliössä olevat valkoi­set kuva­pis­teet esite­tään arvolla 255, ja mustat puoles­taan arvolla 0. Mitä suurempi harmaa­sä­vy­arvo, sitä korkeam­malle piste oikean­puo­lei­sessa neliössä nousee. Tätä ideaa noude­taan myös holo­gram­min piste­pil­ven visualisoinnissa.

Korkeuskartan toiminta havainnollistettuna.
Korkeus­kar­tan toiminta havainnollistettuna.

Piste­pil­ven 3D-malli

Näytö­noh­jai­men muis­tiin siir­ret­tä­vää staat­tista dataa varten luodaan 3D-malli, joka koostuu eril­li­sistä neliöistä. Jokai­nen näistä neliöistä merki­tään vastaa­maan tiettyä aluetta korkeus­kar­tassa teks­tu­roin­nin avulla. Teks­tu­roin­nin avulla voidaan liittää 2D-kuva­tie­toa minkä tahansa 3D-mallin pintaan määrit­te­le­mällä 3D-mallissa oleville pisteille kuva­pis­te­koor­di­naa­tit, ja näyt­teis­tä­mällä halutut väriar­vot kuvasta line­aa­ri­sesti inter­po­loi­tu­jen kuva­pis­te­koor­di­naat­tien avulla.

Esitys­tark­kuu­den näkö­kul­masta projek­tion neliöi­den luku­määrä kannat­taa olla maksi­mis­saan korkeus­kar­tan kuva­pis­tei­den luku­määrä, mutta pienempi luku­määrä voi olla perus­tel­tua käsit­te­ly­ajan 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­mal­leja voi luoda useam­pia eri tark­kuuk­silla, ja lopul­lista visua­li­soin­tia on mahdol­lista opti­moida tasa­pai­not­ta­malla projek­tio­pis­te­mal­lin tark­kuu­den sekä käsit­te­ly­ajan 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­te­tut neliöt on siir­retty y-akse­lilla irti muista.

Yhteen­veto

Luomalla staat­ti­sen 3D-mallin ja kytke­mällä siihen korkeus­kar­tan syvyys­tie­don, on mahdol­lista siirtää pisteitä sovel­tu­van projek­tion avulla. Koska 3D-malli­data sijait­see näytö­noh­jai­men muis­tissa, sen tehokas käsit­tely mahdol­lis­tuu varjos­ti­noh­jel­milla. Seuraa­vassa artik­ke­lissa keski­tyn holo­gram­mien tarvit­se­man piste­pil­vi­pro­jek­tion toteutukseen.


Kirjoit­taja:
Anssi Gröhn, tieto­jen­kä­sit­te­lyn lehtori, Base Camp -hanke, Karelia-ammattikorkeakoulu