Podcast „ITMO Research_“: kaip pasiekti AR turinio sinchronizavimą su viso stadiono mastu

Tai pirmoji antrojo interviu mūsų programai teksto nuorašo dalis ("Apple Podcasts", Yandex.Muzika). Problemos svečias – Andrejus Karsakovas (kapc3d), mokslų daktaras, Nacionalinio kognityvinių tyrimų centro vyresnioji mokslo darbuotoja, Skaitmeninių transformacijų fakulteto docentė.

Nuo 2012 m. Andrejus dirba tyrimų grupėje Vizualizacija ir kompiuterinė grafika. Užsiima dideliais taikomaisiais projektais valstybiniu ir tarptautiniu lygiu. Šioje pokalbio dalyje kalbame apie jo patirtį remiant AR viešiems renginiams.

Podcast „ITMO Research_“: kaip pasiekti AR turinio sinchronizavimą su viso stadiono mastu
nuotrauka Tai yra inžinerijos RAEng (Unsplash.com)

Projekto kontekstas ir tikslai

Laiko kodas (pagal garso versijos) — 00:41

Dmitrijus Kabanovas: Norėčiau pradėti nuo Europos žaidynių projekto. Jis daugiakomponentis, pasiruošime dalyvavo kelios komandos, o aprūpinti papildytąją realybę tūkstantinei publikai tiesiog renginio stadione metu yra gana rimta užduotis. Kalbant apie jūsų dalyvavimą, ar pirmiausia tai buvo programinė įranga?

kapc3d: Taip, mes atlikome programavimo dalį ir suteikėme paramą laidos metu. Reikėjo viską stebėti, stebėti ir paleisti realiu laiku, taip pat dirbti su televizijos grupe. Jei vertinsime šį projektą kaip visumą, galime kalbėti apie atidarymo ir uždarymo ceremonijas Europos žaidynės Minske, taip pat apie čempionato atidarymo ceremoniją „WorldSkills“ Kazanėje. Tai buvo ta pati darbo schema, bet skirtingi įvykiai. Tarp jų buvo dviejų mėnesių pertrauka. Projektą parengėme kartu su vaikinais iš įmonės Sechenov.com.

Su jais susitikome atsitiktinai Mokslo šventė, kuris vyko 2018 metų rudenį. Mūsų magistrantūros studentai pristatė kursinį projektą VR tema. Vaikinai priėjo prie mūsų ir paklausė, ką mes veikiame savo laboratorijoje. Tai atrodė maždaug taip:

— Dirbate su VR, bet ar galite dirbti su papildyta realybe?

- Na, savotiškai, taip.

– Yra tokia užduotis, su tokiais įžanginiais užrašais. Ar gali tai padaryti?

Šiek tiek subraižė ropes, atrodo, kad nieko nerealaus:

– Iš pradžių pabandykime viską išstudijuoti, o tada ieškoti sprendimo.

Dmitrijus: Ar jie teikia tik žiniasklaidos paramą?

Andrius: Jie padaro visą krūvą. Vadybos ir organizavimo požiūriu jie yra visiškai susiję su režisavimu, pastatymu, dekoracijų parinkimu, logistika ir kita technine pagalba. Tačiau jie norėjo padaryti kažką ypatingo Europos žaidynėms. Šie specialieji efektai, kaip ir mišri realybė, televizijai buvo kuriami gana seniai, tačiau techninio įgyvendinimo požiūriu nėra patys ekonomiškiausi. Todėl vaikinai ieškojo alternatyvių variantų.

Dmitrijus: Pakalbėkime apie problemą išsamiau. Iš ko jis susidėjo?

Andrius: Yra įvykis. Tai trunka pusantros valandos. Turime užtikrinti, kad žiūrovai, stebintys jį gyvai, ir tie, kurie sėdi stadione, galėtų matyti papildytosios realybės efektus visiškai sinchronizuoti su tiesioginiu pasirodymu pagal laiką ir vietą svetainėje.

Buvo keletas techninių apribojimų. Laiko sinchronizavimo per internetą atlikti nepavyko, nes baiminamasi dėl per didelio tinklo apkrovimo pilnomis tribūnomis ir tikimybės, kad renginyje dalyvaus valstybės vadovai, galintys užstrigti mobiliojo ryšio tinkluose.

Andrejus Karsakovas, nuotrauka iš medžiaga iš ITMO universiteto
Podcast „ITMO Research_“: kaip pasiekti AR turinio sinchronizavimą su viso stadiono mastuŠiame projekte turėjome du pagrindinius komponentus – asmeninę patirtį, kurią žmonės gali gauti per mobiliuosius įrenginius, ir tai, kas patenka į televizijos transliaciją ir informacinius ekranus pačiame stadione.

Jei staiga žmogus per mobilųjį įrenginį žiūri papildytos realybės epizodus ir tuo pačiu patenka į ekraną, jis turėtų matyti tą patį vaizdą.

Mums reikėjo dviejų iš esmės skirtingų sistemų, kad jos būtų visiškai sinchronizuotos laiku. Tačiau tokių laidų ypatumas yra tas, kad tai sudėtingi renginiai, kuriuose dalyvauja daug techninių tarnybų ir visos operacijos atliekamos pagal laiko kodus. Laiko kodas – tai konkretus laiko momentas, kai kažkas prasideda: šviesa, garsas, išeinantys žmonės, atsiskleidžiantys scenos žiedlapiai ir pan. Turėjome prisitaikyti prie šios sistemos, kad viskas prasidėtų tinkamu laiku. Kitas bruožas buvo tai, kad scenos ir epizodai su papildyta realybe buvo susiję su scenarijumi.

Dmitrijus: Tačiau ar nusprendėte atsisakyti laiko kodų naudojimo dėl didelės force majeure rizikos, ar iš pradžių apskaičiavote kai kurias galios charakteristikas ir supratote, kad apkrova visai sistemai bus gana didelė?

Andrius: Jei tokiai auditorijai sukuriate sinchronizavimo paslaugą, tai nėra labai sunku. Bet kokiu atveju užklausos nepavyks per naktį. Taip, apkrova didelė, bet tai nėra avarinė situacija. Kyla klausimas, ar verta tam skirti išteklių ir laiko, jei tinklas staiga užges. Nebuvome tikri, kad taip neatsitiks. Galiausiai viskas veikė, su pertraukomis dėl apkrovos, bet pavyko, sinchronizavomės pagal laiko kodą pagal kitą schemą. Tai buvo vienas iš pasaulinių iššūkių.

Diegimo sunkumai UX požiūriu

Laiko kodas (pagal garso versijos) — 10:42

Andrius: Taip pat turėjome atsižvelgti į tai, kad stadionas nėra klasikinė koncertų vieta, ir sinchronizuoti sistemas visoje erdvėje mobiliesiems įrenginiams. Taigi, prieš kurį laiką aš išpopuliarėjau papildytos realybės istorija Eminemo koncertuose, tada buvo atvejis su Loboda.

nuotrauka Robertas Bye (Unsplash.com)
Podcast „ITMO Research_“: kaip pasiekti AR turinio sinchronizavimą su viso stadiono mastuBet tai visada yra patirtis priešais jus – visa minia stovi priešais sceną, sinchronizacija gana paprasta. Stadiono atveju reikia suprasti, kurioje apskritimo pusėje esate, santykinę padėtį, kad stadionas tilptų į erdvę, kuri egzistuoja virtualioje aplinkoje. Tai buvo sunkus iššūkis. Ją bandė spręsti įvairiais būdais, o rezultatas buvo atvejis, artimas tam, ką įgyvendino Loboda, bet ne visais atžvilgiais.

Leidžiame vartotojui nuspręsti, kur jis yra. Stadionui padarėme žymėjimus, kur žmonės rinkdavosi sektorių, eilę, vietą. Visa tai keturiais „paspaudimais“. Toliau turėjome nustatyti kryptį į sceną. Norėdami tai padaryti, parodėme siluetą, kaip apytiksliai turėtų atrodyti scena iš pasirinktos perspektyvos. Jis sujungė, bakstelėjo ir viskas – atsisėdo scena. Stengėmės kiek įmanoma supaprastinti šį procesą. Visgi, 90% žiūrovų, kurie norėjo žiūrėti laidą, nėra tie žmonės, kurie turi bendravimo su papildyta realybe patirties.

Dmitrijus: Ar šiam projektui buvo pateikta atskira paraiška?

Andrius: Taip, programėlė skirta „iOS“ ir Android, kurį mes stūmėme į parduotuves. Jam buvo surengta atskira reklaminė kampanija. Iš anksto buvo pateiktos išsamios instrukcijos, kaip atsisiųsti ir panašiai.

Dmitrijus: Turite suprasti, kad žmogui nėra kur fiziškai išbandyti ir išmokti naudotis tokia programa. Todėl užduotis „ugdyti“ auditoriją tapo sudėtingesnė.

Andrius: Taip taip. Su UX susidūrėme su daugybe nelygybių, nes vartotojas nori gauti patirtį trimis paspaudimais: atsisiuntė, įdiegė, paleido – pavyko. Daugelis žmonių tingi sekti sudėtingas pamokas, skaityti pamokas ir pan. Ir pamokoje nesistengėme vartotojui visko paaiškinti kuo plačiau: čia atsidarys langas, čia prieiga prie kameros, kitaip neveiks ir t.t. Kad ir kiek paaiškinimų berašytum, kad ir kaip detaliai jį kramtytum, kad ir kokius gifus įdėtum, žmonės jų neskaito.

Minske surinkome daugybę atsiliepimų apie šią dalį ir jau daug ką pakeitėme dėl programos Kazanėje. Įdėjome ne tik tas fonogramas ir laiko kodus, kurie atitinka konkretų papildytos realybės epizodą, bet paėmėme visas fonogramas ir laiko kodus. Taigi programa išgirdo, kas vyksta paleidimo metu, ir, jei žmogus prisijungė netinkamu momentu, išdavė informaciją: „Draugau, atsiprašau, jūsų AR epizodas bus po 15 minučių“.

Šiek tiek apie architektūrą ir požiūrį į sinchronizavimą

Laiko kodas (pagal garso versijos) — 16:37

Dmitrijus: Ar nusprendėte sinchronizuoti pagal garsą?

Andrius: Taip, tai atsitiko netyčia. Ieškojome galimybių ir radome įmonę Cifrasoft iš Iževsko. Jie sukuria ne itin sudėtingą, bet puikiai veikiantį SDK, leidžiantį sinchronizuoti garsą su laiku. Sistema buvo pritaikyta dirbti su televizoriumi, kai galite ką nors rodyti programoje pagal sąlyginės reklamos garsą arba suteikti interaktyvią patirtį pagal filmo takelį.

Dmitrijus: Bet vienas dalykas – tu sėdi savo svetainėje, o kitas dalykas – stadionas su tūkstančiais žmonių. Kaip jums sekėsi garso įrašymo kokybė ir vėlesnis jos atpažinimas?

Andrius: Buvo daug baimių ir abejonių, bet dažniausiai viskas buvo gerai atpažįstama. Jie sukuria parašus garso takelyje naudodami savo gudrius algoritmus – rezultatas sveria mažiau nei originalus garso failas. Kai mikrofonas klausosi aplinkinio garso, jis bando rasti šias funkcijas ir pagal jas atpažinti takelį. Esant geroms sąlygoms, sinchronizavimo tikslumas yra 0,1-0,2 sekundės. Tai buvo daugiau nei pakankamai. Esant blogoms sąlygoms, neatitikimas siekė iki 0,5 sekundės.

Daug kas priklauso nuo įrenginio. Dirbome su dideliu prietaisų parku. „IPhone“ yra tik 10 modelių. Jie puikiai veikė kokybės ir kitų savybių atžvilgiu. Bet su androidais zoologijos sodas yra kaip mano mama. Ne visur pasirodė, kad garso sinchronizacija veikia. Buvo atvejų, kai dėl tam tikrų ypatumų buvo neįmanoma išgirsti skirtingų takelių skirtinguose įrenginiuose. Kai kur dingsta žemi dažniai, kai kur ima švilpti aukšti dažniai. Bet jei įrenginyje buvo mikrofono normalizatorius, sinchronizavimas visada veikė.

Dmitrijus: Papasakokite apie architektūrą – kas buvo panaudota projekte?

Andrius: Mes sukūrėme programą Unity - paprasčiausias pasirinkimas kelių platformų ir darbo su grafika požiūriu. Naudotas AR fondas. Iš karto pasakėme, kad nenorime apsunkinti sistemos, todėl apsiribojome įrenginių, palaikančių ARKit ir ARCore, parku, kad spėtume viską išbandyti. Sukūrėme „DigitalSoft SDK“ papildinį yra mūsų „GitHub“.. Sukūrėme turinio valdymo sistemą, kad scenarijai būtų paleisti pagal laiko juostą.

Šiek tiek pakeitėme dalelių sistemą, nes vartotojas gali bet kada patekti į tam tikrą epizodą ir mums reikia, kad jis matytų viską nuo to momento, kai sinchronizavosi. Sukūrėme sistemą, kuri leidžia scenarijus aiškiai sužaisti laiku, kad 3D patirtį būtų galima slinkti pirmyn ir atgal, kaip filme. Nors jis veikia iš karto su klasikinėmis animacijomis, turėjome padirbėti su dalelių sistemomis. Kažkuriuo momentu jie pradeda neršti, o jei atsiduriate kur nors prieš neršimo tašką, jie dar nėra gimę, nors atrodo, kad turėtų būti. Tačiau šią problemą iš tikrųjų gana lengva išspręsti.

Mobiliosios dalies architektūra gana paprasta. Televizijos transliavimui viskas yra sudėtingiau. Turėjome techninės įrangos apribojimus. Klientas iškėlė sąlygą: „Čia turime tokį ir tokį techninės įrangos parką, grubiai tariant, viskas turi veikti. Iš karto sutelkėme dėmesį į tai, kad dirbsime su palyginti nebrangiomis vaizdo įrašymo kortelėmis. Tačiau biudžetas nereiškia, kad jie blogi.

Buvo taikomi apribojimai aparatinei įrangai, vaizdo įrašymo kortelėms ir darbo sąlygoms – kaip turėtume gauti nuotrauką. Fotografavimo kortelės – Blackmagic Design, veikia pagal vidinę raktų įvedimo schemą – tai yra tada, kai iš kameros jums ateina vaizdo kadras. Kortelė turi savo apdorojimo lustą, kuriame taip pat įdėtas rėmelis, kuris turi būti uždėtas ant gaunamo. Kortelė juos sumaišo - nieko daugiau ten neliečiame ir neveikiame vaizdo kameros kadro. Rezultatą ji išsiunčia į valdymo kambarį per vaizdo išvestį. Tai geras būdas perdengti pavadinimus ir kitus panašius dalykus, tačiau jis nelabai tinka mišrios realybės efektams, nes atvaizdavimo konvejeriui yra daug apribojimų.

Dmitrijus: Kalbant apie realaus laiko skaičiavimą, objektų susiejimą ar dar ką nors?

Andrius: Kalbant apie kokybę ir pasiekti norimą efektą. Nes nežinome, ant ko dedame paveikslėlį. Tiesiog siunčiame informaciją apie spalvą ir skaidrumą pradinio srauto viršuje. Naudojant šią schemą negalima pasiekti tam tikrų efektų, pvz., refrakcijos, tinkamo skaidrumo ir papildomų šešėlių. Norėdami tai padaryti, turite viską pateikti kartu. Pavyzdžiui, jokiu būdu negalima sukurti oro iškraipymo nuo ugnies ar karšto asfalto efekto. Tas pats pasakytina ir apie skaidrumo efekto perdavimą, atsižvelgiant į lūžio rodiklį. Iš pradžių kūrėme turinį remdamiesi šiais apribojimais ir bandėme naudoti tinkamus efektus.

Žiūrėti šį pranešimą "Instagram"

II Europos žaidynių uždarymas Minske.

Paskirstytas įrašas Alena Lanskaya (@alyonalanskaya) 30 m. birželio 2019 d., 3 val. PDT

Dmitrijus: Ar jau turėjote savo turinį pirmajame Europos žaidynių projekte?

Andrius: Ne, pagrindinį turinio kūrimo etapą atliko vaikinai iš Sechenov.com. Jų grafikai piešė pagrindinį turinį animacijomis ir kitais dalykais. Ir viską integravome į variklį, pridėjome papildomų efektų, pritaikėme, kad viskas veiktų teisingai.

Jei kalbėsime apie dujotiekį, tada televizijos transliavimui viską surinkome Unreal Engine 4. Atsitiktinai jie kaip tik tuo metu pradėjo tobulinti savo įrankius mišriai realybei. Paaiškėjo, kad viskas nėra taip paprasta. Net ir dabar visi įrankiai neapdoroti, daug ką teko apdailinti rankomis. Minske dirbome prie pritaikytos variklio konstrukcijos, tai yra, kai kuriuos dalykus perrašėme variklio viduje, kad, pavyzdžiui, galėtume piešti šešėlius ant tikrų objektų. Tuo metu buvusioje variklio versijoje nebuvo funkcijų, kurios leistų tai padaryti naudojant standartinius įrankius. Dėl šios priežasties mūsų vaikinai pagal užsakymą pagamino viską, kas buvo gyvybiškai būtina.

Kiti niuansai ir prisitaikymas prie WorldSkills Kazanėje

Laiko kodas (pagal garso versijos) — 31:37

Dmitrijus: Bet visa tai per gana trumpą laiką?

Andrius: Terminai buvo griežti Kazanės projektas, anot Minsko – normalu. Apie šešis mėnesius plėtrai, tačiau atsižvelgiant į tai, kad dalyvavo šeši žmonės. Tuo pat metu kūrėme mobiliąją dalį ir kūrėme įrankius televizijos kūrimui. Buvo ne tik vaizdo išvestis. Pavyzdžiui, sekimo sistema su optika, tam reikėjo susikurti savo įrankius.

Dmitrijus: Ar buvo koks nors pritaikymas iš vieno projekto į kitą? Per pusantro mėnesio reikėjo pasinaudoti pokyčiais ir perkelti projektą su nauju turiniu į naują svetainę?

Andrius: Taip, tai buvo pusantro mėnesio. Po Minsko projekto buvome suplanavę dviejų savaičių atostogas visai komandai. Bet iš karto po uždarymo prieina vaikinai iš Sechenov.com ir sako: „Na, tada padarykime Kazanę“. Dar spėjome šiek tiek pailsėti, bet gana greitai perėjome prie šio projekto. Atlikome kai kuriuos techninius darbus. Didžioji dalis laiko buvo skirta turiniui, nes „WorldSkills“ tai padarėme visiškai, tik derinome tai su gamybos komanda. Iš jų pusės buvo tik scenarijus. Bet buvo lengviau – nereikėjo papildomų kartojimų. Kai kuriate turinį patys, iškart matote, kaip jis veikia variklyje, galite greitai redaguoti ir derinti.

Atkurti vaizdo

Kalbant apie mobiliąją dalį, atsižvelgėme į visas subtilybes, kurias turėjome Minske. Sukūrėme naują programos dizainą, šiek tiek pertvarkėme architektūrą, pridėjome vadovėlių, bet stengėmės, kad tai būtų kuo trumpesnė ir aiškesnė. Sumažinome naudotojo veiksmų skaičių nuo programos paleidimo iki turinio peržiūros. Tinkamam projektui užbaigti pakako pusantro mėnesio. Per pusantros savaitės pasiekėme svetainę. Ten dirbti buvo lengviau, nes visa projekto kontrolė buvo organizatorių rankose, nereikėjo derinti su kitais komitetais. Kazanėje dirbti buvo paprasčiau ir lengviau, o laiko buvo mažiau.

Dmitrijus: Bet ar nusprendėte sinchronizavimo metodą palikti tokį, koks jis buvo, remiantis garsu?

Andrius: Taip, palikome tai pagal garsą. Suveikė gerai. Kaip sakoma, jei veikia, nelieskite. Tiesiog atsižvelgėme į garso takelio kokybės niuansus. Kai jie padarė įžangą, prieš prasidedant pasirodymui žmonės turėjo išbandyti treniruočių epizodą. Nustebino tai, kad kai tuo metu, kai groja trasa stadione, pasigirsta audringi plojimai, „gyvai“, sistema leidžia gerai sinchronizuotis su šiuo takeliu, tačiau jei šiuo metu įrašyti plojimai susimaišo su takeliu, tada takelis nebepagautas. Buvo atsižvelgta į tokius niuansus, o garso prasme viskas buvo gana gerai sinchronizuota.

PS Antroje numerio dalyje kalbame apie mokslinį duomenų vizualizavimą, procesų modeliavimą kituose projektuose, žaidimų kūrimą ir magistrantūros programą.Kompiuterinių žaidimų kūrimo technologija“ Tęsinį paskelbsime kitame straipsnyje. Pasiklausyti ir palaikyti mus galite čia:

PPS Tuo tarpu angliškoje Habr versijoje: iš arčiau pažvelgti į ITMO universitetą.

Šaltinis: www.habr.com

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster