Avainsana-arkisto: hologrammit

SMErec: Virtuaalihologrammien testiympäristön rakentaminen

Edellisessä DigiIT! –blogimerkinnässäni käsittelin yleisesti Intel Realsense-syvyyskameroita, sekä totesin lopussa että virtuaalihologrammien tekemistä varten on rakennettava useamman kameran testiympäristö, sekä tutkia tallennusmenetelmiä ja rakentaa soveltuva visualisointiohjelmisto. Tässä blogimerkinnässä keskitytään näistä kolmesta kohdasta ensimmäiseen, eli testiympäristön rakentamiseen.

Lähtökohdat

Tavoitteena on siis luoda kaksi erillistä ympäristöä virtuaalihologrammien tallennukseen. AC-tilaan 101b rakennetaan tuotantoympäristö: työasema, sekä neljä kameraa tallenteiden tekemistä varten.  Työhuoneeseeni puolestaan rakennetaan vastaava kehitysympäristö, jolloin on suoraviivaisempaa toteuttaa ohjelmistokehitystä. Lähdemme joka tapauksessa liikkeelle kehitysympäristön rakentamisesta – sen jälkeen tiedämme miten tuotantoympäristö kannattaa lopulta tehdä.

Ensimmäiset puutteet havaitaan kiinnitysvälineistä. Kameroissa on mukana kolmijalat, mutta niiden kiinnittäminen seinään ei ole mahdollista. Eräs tapa hankkia sopivat kiinnitysosat on suunnitella ja tulostaa ne itse 3D-tulostimella, joten miksipä sitä ei kokeiltaisi. Seinäkiinnikkeiden mallinnusta varten tarvitaan sopiva malli kameran jalustaruuviksi, että kamera on ylenpäätänsä mahdollista liittää kiinnikkeeseen. Sellainen on saatavilla esimerkiksi Thingiversestä CC-lisenssillä julkaistuna, jolloin siihen on luvallista tehdä myös muutoksia (kiitokset Basic3dprinting/Rob mcnulty). Tätä mallia hyödyntämällä loput osat on laadittavissa pienellä vaivalla, mikäli 3D-mallintaminen on hallussa.

Suunnittelu

Seinäkiinnikkeen toimintaperiaate on varsin yksinkertainen. Tarvitsemme siihen kolmisen osaa. Kameraan tulevan kiinnitysruuvin, jossa on toisessa päässä pallo. Sitten tarvitsemme itse kulmaosan, jonka yksi sivu kiinnitetään seinään. Kulmaosaan jätetään sopivat reiät ruuveille. Sitten tarvitsemme kulmaosaan kiinnitettävän kotelon palloruuville. Itse palloruuvi kiilataan koteloon asennusruuvilla, jolloin kamera pysyy paikoillaan.

Mallinnukseen käytin ilmaista avoimen lähdekoodin Blender-ohjelmistoa, josta mallin saa vietyä useisiin eri tiedostomuotoihin. Alla Blenderin näkymien kuvakaappaukset mallinnuksen loppuvaiheesta.

 

Seinäkiinnikkeen osat ortogonaalisesti esitettynä.

Seinäkiinnikkeen 3D-malli Blenderissä sivuilta ja ylhäältä kuvattuna.

Tulostus

Realsense-kameran seinäkiinnike tulostettuna sekä koottuna alkukantaisella, mutta tehokkaalla tavalla.

Tulostimena toimi Delta-tyyppinen Anycubic Kossel ja varsinaiseen tulostukseen käytin valkoista PLA-lankaa. Tulostusohjelmana käytin ilmaista Cura-ohjelmistoa. Tulostuspään koko oli 0.4mm, tulostetavan kerroksen paksuus 0.2mm, ja tulostuslämpötila 210 astetta. Sisäisenä tukirakenteena oli verkko, ja täyttömääränä 25%. Tulostusjäljen osalta tavoitteena ei ollut huippulaatu, joten tulostaminen ei kestänyt kovin pitkään (n. 2h). Siitä huolimatta näillä asetuksilla saatiin yllättävän kestävä lopputulos – ainakaan itse en pelkillä käsilläni saanut väännettyä seinään tulevaa kulmaosaa rikki, joten arvelen että kameran sekä kaapelin painokaan ei sitä riko.

Sen tietää sitten kun se on tehty…

Alun perin suunnittelin kiinnikkeeseen lisäksi erillisen kiristyslevyn, sekä siipiruuvin sen kiristämistä varten, mutta se osoittautui varsin huteraksi ratkaisuksi. Loppujen lopuksi sivuun liitetty asennusruuvi hoiti asian paremmin, ja kamera pysyy paikoillaan varsin luotettavasti. Jälkikäteen sain myös kehitysehdotuksia kiinnikkeiden parantamiseen asiantuntevalta kollegalta (kiitos Jukka!), mutta toistaiseksi kiinnikkeet tuntuvat toimivan niiden selkeistä puutteista huolimatta. Todettakoon että tämä on karu, mutta tähän hätään toimiva ratkaisu. Tuotantoympäristöön on myöhemmin suunniteltava parempi ja miellyttävämmän näköinen versio.

Asennus

Kameroiden saamiseksi seinälle tarvittiin kuitenkin vahtimestarin vakaata kättä (kiitos Vellu!), sekä kättä pidempää. Tämän jälkeen kameroiden kytkeminen oli varsin suoraviivaista.

Mitä Hiltillä ei voi tehdä, sitä ei tarvita.

Kamerat kytkettynä USB 3.0-laajennuskorttiin  jatkokaapeleilla.

Toinen kamera kiinnitettynä tiiliseinään.

Yksi kameroista kiinnitettynä hyllyyn.

Miten tästä eteenpäin

Kameroiden asentamisen jälkeen voin aloittaa syvyyskuvien yhteensovittamisen. Kameroiden tuottamat pistepilvet on suunnattava sekä sijoitettava sopivasti niitä toistavassa ohjelmassa, että ne muodostavat yhtenäisen mallin. Vaikka kamerat ovatkin nyt asennettuna vaakasuoraan, voi olla parempi että ne asennetaankin tuotantoympäristössä pystyyn, jolloin saadaan parempi esitys kuvattavasta kohteesta. Luvassa on siis varsin mielenkiintoinen vaihe!

Seuraavassa Digit!-blogimerkinnässäni käsittelenkin päivittyvän syvyystiedon tallennusmenetelmiä, sekä miten pistepilven voi muodostaa tehokkaasti kameroiden tuottamasta syvyystiedosta.

Kirjoittaja Anssi Gröhn, tietojenkäsittelyn lehtori

SMErec: Virtuaalihologrammit rekrytoinnin tukena – syvyyskameroista

Karelian tietojenkäsittelyn koulutuksessa etäopiskelu on varsin yleistä. Tämän vuoksi opiskelijoiden mahdollisuudet osallistua erilaisiin rekrytointitapahtumiin Joensuussa ovat käytännössä pitkien etäisyyksien vuoksi rajatumpia lähiosallistujiin nähden. SMErec-hankkeen yhtenä tavoitteena on vahvistaa pk-yritysten kilpailukykyä kehittämällä yritysten rekrytointiosaamista ja varmistamalla sitä kautta pk-yritysten rekrytointien onnistuminen. Tätä tavoitetta kohti päästään parantamalla etäosallistujien mahdollisuuksia tuoda omaa osaamistaan esille erilaisissa rekrytointitapahtumissa. Siksi kehitämme keväällä 2019 hologrammitallenteita, silmällä pitäen erityisesti tietojenkäsittelyn etäopiskelijoiden tarpeita.

Avaan seuraavaksi hieman teknistä taustaa, millainen kamerateknologia osaltaan mahdollistaa virtuaalihologrammit ja holoportaation, sekä miten pääsemme yhden askeleen lähemmäksi VASU (6/2017) -artikkelissani käsittelemääni digitaalista läsnäoloa.

Mitä Intel Realsense –syvyyskamerat ovat?

 

Intel RealSense D435-kamerat ovat varsin näppärän kokoisia.

Siinä missä Microsoftin tutkima ja kehittämä holoportaatioratkaisu käyttää Kinect-sensoreita, SMErec-hankkeessa kamerateknologiaksi on valittu Intelin Realsense. Ominaisuuksiltaan ne ovat kuitenkin vastaavia; molemmissa on normaali kamera, infrapunasensorit, sekä stereokuvien laserkeilaukseen perustuva syvyyssensori. Niiden avulla voidaan muodostaa kolmiulotteinen pistepilvi, joka kuvaa rakeisena 3D-mallina kameran havaitseman ympäristön. Tämä on eräs fotogrammetrian menetelmistä, jossa pyritään selvittämään eri kohteista niiden muodot ja ominaisuudet (Aalto-yliopisto, 2019). Fotogrammetriaa voidaan hyödyntää niin suuriin kuin pieniinkin kohteisiin. Fotogrammetria toimii joko yksittäisillä kuvilla, jotka kuvataan kohteen ympäriltä ja joista ohjelmallisesti rakennetaan 3D-malli, tai keilaukseen pohjautuvilla menetelmillä, joissa syvyystieto mitataan erillisen sensorin avulla.

 

 

Miten syvyyskameroita käytetään?

 

Realsense-viewer ja kolmen kameran kuvat.

Kameroita varten on tarjolla ohjelmistokirjasto testiohjelmineen. Esimerkiksi Realsense-viewer tukee useampaa kameraa, ja sen avulla voi tarkastella sekä säätää kaikkia kameroiden ominaisuuksia. Se tukee RGB- kuin syvyystiedon esittämistä kuvina, sekä esitettyä yhden kameran tuottaman pistepilven 3D-mallina. Kameran kuva- ja syvyystiedon käsittelyyn tarvitsee kuiteknin Librealsense-ohjelmistokirjaston, on saatavilla Github-versionhallintapalvelusta niin Windows, Linux ja Mac OS-käyttöjärjestelmille.

 

Ohjelmistoja ja kameroita kehitetään jatkuvasti, joten myös niiden firmware saa päivityksiä kohtalaisen tiheään. Myös Realsense-viewer -ohjelman versioilla on vähimmäisvaatimuksena yleensä tietty kameroiden firmware-versio, joten ei ole syytä hämmästyä, jos ohjelmisto ei toimikaan kameroilla suoraan.

Realsense-viewerin tuottama 3D-malli syvyystiedon ja videokuvan perusteella.

Onko käyttöönotto helppoa?

Kamerat saa helposti käyttöön – mutta mikäli tavoitteena on siirtää syvyyskamera metriä kauemmaksi työasemasta, tai käyttöön on tarkoitus ottaa useampi kamera kerralla, on syytä huomioida muutamia asioita.

Yksi kamera vaatii aina yhden USB 3.0-väylän, joita kyllä nykyisissä PC-työasemissa on tarjolla. Yhteen väylään on voitu kytkeä useampi liitin, jolloin väylän kaistanleveys jaetaan siihen liittettyjen laitteiden kesken. Koska yhden kameran tuottama striimi kuluttaa kaistaa noin 5Gb/s (625 MB/s), mikä on lähellä yhden USB 3.0-väylän määritettyä maksimisiirtonopeutta, voi olla, että useampaa kameraa ei voi liittää yhteen työasemaan suoraan.

 

Kaistan riittävyysongelman saa ratkottua esimerkiksi erillisellä PCI Express 4x USB3.0-ohjainkortilla, joka tarjoaa jokaiselle liittimelle oman kanavan, eli 5Gbit/s kaista on varmasti tarjolla jokaiselle siihen liitetylle laitteelle. Testilaitteistoon hankitussa kortissa on tuki neljälle erilliselle USB 3.0-väylälle. PCI Express (2.0) 4x-väylän kapasiteetti puolestaan pitäisi riittää useamman kameran datan siirtämiseen, sillä sen kapasiteetti on noin 20Gbit/s. (Edwards, 2013).

Kauemmaksi sijoitetuille kameroille tarvitaan paremmat kaapelit.

Toinen ongelma, mitä kameroiden käyttöön liittyy, on että USB 3.0-kaapeleiden pituus muodostuu rajoittavaksi. Mikäli käytössä on normaali kaapeli, signaali heikkenee vastaavasti ja tiedonsiirtonopeus laskee kaapelin pituuden kasvaessa.  Yhden kameran käyttäessä lähes koko kanavan kapasiteetin, tiedonsiirtonopeuden lasku aiheuttaa pienempää ruudunpäivitysnopeutta. Koska tässä tapauksessa kaapeleiden pituuden on oltava 3-5 metriä, tarvitaan niin sanottuja aktiivikaapeleita, jotka vahvistavat signaalia ja varmistavat tiedonsiirtonopeuden riittävyyden.

 

Mitä näillä kameroilla on tarkoitus siis tehdä?

Kameroita käytetään animoitujen virtuaalihologrammien luomiseen. Eli skannaamme ja tallennamme reaaliaikaisesti kohteen liikkeen ja äänen, jotka voidaan toistaa myöhemmin uudelleen virtuaalitodellisuuslaseilla sekä erilaisilla lisätyn todellisuuden katsontalaitteilla.

Tämä vaatii tosin testiympäristön rakentamista, erilaisten tallennusmenetelmien tutkimista, sekä soveltuvan visualisointiohjelmiston rakentamista, joihin palaan vielä myöhemmin tämän keväänä Digit!-blogissa.

Kirjoittaja Anssi Gröhn, tietojenkäsittelyn lehtori