Syvyyskuvan visualisoinnista: joskus sitä joutuu venymään

Tässä artikkelissa kuvataan Base Camp -hankkeen etäteknologiakokeilun vaatimaa jatkokehitystä virtuaalihologrammien visualisointiratkaisuun. Edellisessä artikkelissa johdettiin trigonometriaa hyödyntäen pistepilven projektioalgoritmin yksinkertainen toteutus. Tässä artikkelissa esitellään menetelmät pistepilven sisältämien pintojen yhtenäistämiseen. 

Yhtenäisten pintojen esittäminen pistepilvestä 

Visualisointitoteutuksessa kokeiltiin tiheää pistepilveä, jonka pisteet suurennettiin katseluetäisyyteen nähden siten, että malli näyttää yhtenäiseltä. Mikäli tarkastelukulma on lähellä kameran kuvaussuuntaa, lopputulos näyttää varsin kelvolliselta. Useammalla kameralla kuvattuna laatu luonnollisesti paranee. Valitettavasti sivusta katsottuna illuusio yhtenäisestä pinnasta rikkoontuu varsin nopeasti, vaikka pisteitä esittävät neliöt suunnattaisiin katsojaa kohti. Tilanne korostuu erityisesti, kun kuvataan kohteita hivenen kauempaa ja lopputulosta tarkastellaan kuvaussuunnasta poiketen. Yhtenäinen pinta saadaan aikaan, kun projektiopistemallin neliöiden kulmapisteet projisoidaan niitä vastaavien korkeuskartan syvyystietojen perusteella. Ero tekniikoiden välillä on havaittavissa kuvasta 1.  

Kaksi rinnakkaista kuvaa epäselvästä tietokoneprojisaatiosta, jossa kuvattuna ihmishahmo kaksiväristä taustaa vasten.
Kuva 1. Vasemmalla pelkästään neliöiden keskipisteen syvyystiedon perusteella projisoidut neliöt. Oikealla neliöiden kulmien syvyystiedon avulla projisoituna.

Ongelmana voivat kuitenkin olla syvyysarvojen suuret vaihtelut korkeuskartan pisteiden välillä. Vaikka neljän pisteen virittämä pinta pysyykin aina yhtenäisenä, neliö itsessään voi vääristyä. Kuten kuvasta 2 on nähtävissä, pahimmassa tapauksessa osa neliöistä venyy varsin paljon, eikä lopputulos ole kelvollinen. 

Epäselvä tietokoneen projisaatio, jossa kahden ihmishahmon kuvat ovat venyneet.
Kuva 2. Syvyysarvojen poikkeama reunapisteiden kulmien välillä venyttää neliöitä liikaa.

Visualisointialgoritmia muunnettiin siten, että se laskee kunkin neliön kulmissa olevat syvyysarvot ja päättelee, mikä neliön venymä on. Mikäli venymä ylittää tietyn raja-arvon, neliön tuottamat kuvapisteet jätetään piirtämättä. Lopputulos on nähtävissä kuvassa 3, jolloin näkyvissä on ainoastaan pintojen yhtenäisemmät osiot. 

Tietokoneen projisaatio, jossa kaksi hahmoa ruskeaa taustaa vasten.
Kuva 3. Liiaksi venyneiden neliöiden tuottamat kuvapisteet rajattuna pois selkeyttää lopputulosta.

Eri kameroiden projektioiden toistaminen 

Unity-projekti hyödyntää kollisiomalleilla luotua ratkaisua rajatakseen näytettävän striimin projektiopistemallia siten, että katsojalle näytetään aina lähin striimi tallennettuun kameran suuntaan nähden. Tämä auttaa parantamaan hologrammin ulkoasua. Sillä on merkitystä myös ruudunpäivitysnopeuden nostamiseen, joka varsinkin neljän tai useamman yhtäaikaisen kameraprojektion aikana laskisi liian alas. Kun kamera siirtyy kollisiomallin rajaamalle alueelle, vaihdetaan aina kollisiomallin kytketty projektio näkyväksi. Kuvassa 4 näkyvien kollisiomallien välissä olevien aukkojen avulla saadaan aikaan hystereesivaikutus, eivätkä projektiot vaihdu katsojan pienien sijaintimuutosten takia jatkuvasti kolliosiomallien reunoilla.  

Ruutukaappaus tietokoneohjelmasta, jossa luodaan kollisiomallia.
Kuva 4. Ruutukaappaus kollisiomalleista, jolla rajataan näkyvyyttä neljän kameran kesken.

Yhteenveto 

Tässä vaiheessa meillä on tekniset edellytykset tuottaa tarkasteltavia esityksiä Hololens-laitteelle. Hologrammeilla voi esittää kutakuinkin yhtenäisiä pintoja, ja näkymässä olevat kohteet ovat tarkasteltavissa omina kokonaisuuksinaan. Lisäksi useamman kameran projektioiden esittäminen on optimoitu Hololenseä varten. Seuraavassa artikkelissa keskitytään hologrammien havainnointikokemukseen.  


Kirjoittaja 

Anssi Gröhn, tietojenkäsittelyn lehtori, Karelia-ammattikorkeakoulu   

Base Camp – Opiskelijayrittäjyysalustojen kehittäminen -hanke 


Artikkelikuva: Kuvaaja ThisisEngineering RAEng palvelusta Unsplash