Podcast “ITMO Research_”: come affrontare la sincronizzazione dei contenuti AR con uno spettacolo sulle dimensioni di un intero stadio

Questa è la prima parte della trascrizione testuale della seconda intervista per il nostro programma (Podcast Apple, Yandex.Music). Ospite del problema - Andrej Karsakov (kapc3d), Ph.D., ricercatore senior presso il Centro Nazionale per la Ricerca Cognitiva, professore associato presso la Facoltà di Trasformazioni Digitali.

Dal 2012, Andrey lavora nel gruppo di ricerca Visualizzazione e Computer Grafica. Impegnato in grandi progetti applicati a livello statale e internazionale. In questa parte della conversazione parliamo della sua esperienza nel supporto AR per eventi pubblici.

Podcast “ITMO Research_”: come affrontare la sincronizzazione dei contenuti AR con uno spettacolo sulle dimensioni di un intero stadio
foto Questo è Engineering RAEng (Unsplash.com)

Contesto e obiettivi del progetto

Codice temporale (di versioni audio) — 00:41

dmitrykabanov: Vorrei iniziare con il progetto dei Giochi Europei. È multicomponente, diverse squadre hanno preso parte alla preparazione e fornire la realtà aumentata a un pubblico di migliaia di persone proprio durante un evento allo stadio è un compito piuttosto serio. In termini di coinvolgimento, è stato prima il software?

kapc3d: Sì, abbiamo svolto la parte di programmazione e fornito supporto durante lo spettacolo. Era necessario tracciare, monitorare e lanciare tutto in tempo reale, oltre a collaborare anche con il gruppo televisivo. Se consideriamo questo progetto nel suo insieme, allora possiamo parlare delle cerimonie di apertura e chiusura Giochi Europei a Minsk, nonché sulla cerimonia di apertura del campionato Competenze mondiali a Kazan. Era lo stesso schema di lavoro, ma eventi diversi. Tra loro c'era un intervallo di due mesi. Abbiamo preparato il progetto insieme ai ragazzi dell'azienda Sechenov.com.

Li abbiamo incontrati per caso Festa della scienza, avvenuta nell'autunno del 2018. Gli studenti del nostro master hanno presentato il loro progetto del corso sul tema della realtà virtuale. I ragazzi sono venuti da noi e ci hanno chiesto cosa stessimo facendo nel nostro laboratorio. Sembrava qualcosa del genere:

— Lavori con la realtà virtuale, ma puoi lavorare con la realtà aumentata?

- Beh, più o meno sì.

- Esiste un compito del genere, con tali note introduttive. Puoi farlo?

Hanno grattato un po’ le rape, non sembra esserci nulla di irrealistico:

- Proviamo prima a studiare tutto e poi a trovare una soluzione.

Dmitry: Forniscono solo supporto mediatico?

Andrea: Fanno uno stack completo. Dal punto di vista gestionale e organizzativo, sono completamente coinvolti nella regia, nell'allestimento, nella scelta delle scene, nella logistica e in altro supporto tecnico. Ma volevano fare qualcosa di speciale per i Giochi Europei. Questi effetti speciali, come la realtà mista, sono stati realizzati per la televisione già da molto tempo, ma non sono i più economici in termini di implementazione tecnica. Pertanto, i ragazzi hanno cercato opzioni alternative.

Dmitry: Discutiamo il problema in modo più dettagliato. In cosa consisteva?

Andrea: C'è un evento. Dura un'ora e mezza. Dobbiamo assicurarci che il pubblico che lo guarda dal vivo e quelli seduti allo stadio possano vedere gli effetti della realtà aumentata in piena sincronia con lo spettacolo dal vivo in termini di tempo e luogo sul sito.

C'erano una serie di limitazioni tecniche. La sincronizzazione dell'ora via Internet non era possibile perché si temeva un carico eccessivo della rete con gli stand pieni e la prospettiva della presenza di capi di stato all'evento, che avrebbe potuto disturbare le reti mobili.

Andrey Karsakov, foto da materiale dell'Università ITMO
Podcast “ITMO Research_”: come affrontare la sincronizzazione dei contenuti AR con uno spettacolo sulle dimensioni di un intero stadioAvevamo due componenti chiave in questo progetto: l'esperienza personale che le persone possono ottenere attraverso i dispositivi mobili e ciò che accade nelle trasmissioni televisive e negli schermi informativi nello stadio stesso.

Se all'improvviso una persona guarda episodi di realtà aumentata tramite un dispositivo mobile e allo stesso tempo appare sullo schermo, dovrebbe vedere la stessa immagine.

Avevamo bisogno di due sistemi virtualmente diversi che fossero completamente sincronizzati nel tempo. Ma la particolarità di tali spettacoli è che si tratta di eventi complessi in cui sono coinvolti un gran numero di servizi tecnici e tutte le operazioni vengono eseguite secondo codici temporali. Il codice temporale è un momento specifico nel tempo in cui inizia qualcosa: luce, suono, persone che se ne vanno, petali sul palco che si aprono e così via. Abbiamo dovuto adattarci a questo sistema affinché tutto iniziasse al momento giusto. Un'altra caratteristica era che le scene e gli episodi con la realtà aumentata erano legati alla sceneggiatura.

Dmitry: Ma avete deciso di abbandonare l'uso dei codici temporali a causa degli elevati rischi di forza maggiore, oppure avete inizialmente calcolato alcune caratteristiche di potenza e vi siete resi conto che il carico sull'intero sistema sarebbe stato piuttosto elevato?

Andrea: Se crei un servizio di sincronizzazione per un pubblico di questo tipo, non è molto difficile. In ogni caso, le richieste non falliranno da un giorno all'altro. Sì, il carico è elevato, ma non è un’emergenza. La domanda è se valga la pena investire risorse e tempo in questo caso se la rete si spegne improvvisamente. Non eravamo sicuri che ciò non sarebbe accaduto. Alla fine ha funzionato tutto, con interruzioni dovute al carico, ma ha funzionato e ci siamo sincronizzati secondo il time code secondo uno schema diverso. Questa è stata una delle sfide globali.

Difficoltà di implementazione dal punto di vista UX

Codice temporale (di versioni audio) — 10:42

Andrea: Dovevamo anche tenere conto del fatto che lo stadio non è una classica sala da concerto e sincronizzare i sistemi nello spazio per i dispositivi mobili. Quindi, qualche tempo fa sono diventato virale storia in realtà aumentata ai concerti di Eminem, poi c'è stato un caso con Loboda.

foto Robert ciao (Unsplash.com)
Podcast “ITMO Research_”: come affrontare la sincronizzazione dei contenuti AR con uno spettacolo sulle dimensioni di un intero stadioMa questa è sempre un'esperienza davanti a te: tutta la folla sta davanti al palco, la sincronizzazione è abbastanza semplice. Nel caso di uno stadio, bisogna capire da che parte del cerchio ci si trova, la posizione relativa, in modo che lo stadio si inserisca nello spazio che esiste nell'ambiente virtuale. È stata una sfida amara. Hanno provato a risolverlo in vari modi, e il risultato è stato un caso vicino a quanto attuato da Loboda, ma non sotto tutti gli aspetti.

Lasciamo che sia l'utente a decidere dove si trova. Abbiamo fatto dei segni per lo stadio, dove le persone sceglievano un settore, una fila, un posto. Tutto questo in quattro “click”. Successivamente dovevamo determinare la direzione verso il palco. Per fare ciò, abbiamo mostrato una silhouette di come dovrebbe apparire approssimativamente la scena da una prospettiva personalizzata. Lo ha combinato, toccato e basta: il palco si è seduto. Abbiamo cercato di semplificare il più possibile questo processo. Tuttavia, il 90% degli spettatori che hanno voluto guardare lo spettacolo non sono persone che hanno esperienza di comunicazione con la realtà aumentata.

Dmitry: C'era una domanda separata per questo progetto?

Andrea: Sì, un'applicazione per iOS e Android, che abbiamo inviato allo store. C'era una campagna promozionale separata per questo. In precedenza è stato descritto in dettaglio come scaricare e così via.

Dmitry: Devi capire che non c'è posto in cui una persona possa testare fisicamente e imparare come utilizzare tale applicazione. Pertanto, il compito di “educare” il pubblico è diventato più complicato.

Andrea: Si si. Con UX abbiamo riscontrato molti ostacoli, perché l'utente vuole ottenere l'esperienza in tre clic: scaricato, installato, avviato: ha funzionato. Molte persone sono troppo pigre per seguire tutorial complessi, leggere tutorial e così via. E non abbiamo cercato di spiegare tutto all'utente il più possibile nel tutorial: qui si aprirà una finestra, qui l'accesso alla fotocamera, altrimenti non funzionerà e così via. Non importa quante spiegazioni scrivi, non importa quanto dettagliato mastichi, non importa quali gif inserisci, le persone non lo leggono.

A Minsk abbiamo raccolto un ampio bacino di feedback su questa parte e abbiamo già cambiato molto per l'applicazione a Kazan. Non abbiamo inserito solo quei fonogrammi e quei codici temporali che corrispondono a uno specifico episodio di realtà aumentata, ma abbiamo preso tutti i fonogrammi e i codici temporali nella loro interezza. Quindi l'applicazione ha sentito cosa stava succedendo al momento del lancio e, se una persona ha effettuato l'accesso nel momento sbagliato, ha fornito l'informazione: "Compagno, mi dispiace, il tuo episodio AR sarà tra 15 minuti".

Qualcosa sull'architettura e sull'approccio alla sincronizzazione

Codice temporale (di versioni audio) — 16:37

Dmitry: Hai deciso di sincronizzarti tramite il suono?

Andrea: Sì, è successo per caso. Stavamo esaminando le opzioni e ci siamo imbattuti in un'azienda cifrasoft da Iževsk. Realizzano un SDK non particolarmente sofisticato, ma ferreo, che consente di sincronizzare il suono con il tempo. Il sistema è stato progettato per funzionare con la TV, quando è possibile visualizzare qualcosa in un'applicazione in base al suono di una pubblicità condizionale o offrire un'esperienza interattiva basata sulla traccia del film.

Dmitry: Ma una cosa è che sei seduto nel tuo salotto, un'altra cosa è uno stadio con migliaia di persone. Come sono andate le cose per te riguardo alla qualità della registrazione del suono e al suo successivo riconoscimento?

Andrea: C'erano molte paure e dubbi, ma nella maggior parte dei casi tutto veniva riconosciuto bene. Costruiscono firme sulla traccia audio con i loro astuti algoritmi: il risultato pesa meno del file audio originale. Quando il microfono ascolta il suono circostante, cerca di trovare queste caratteristiche e riconoscere la traccia in base ad esse. In buone condizioni, la precisione della sincronizzazione è di 0,1-0,2 secondi. Questo era più che sufficiente. In cattive condizioni la discrepanza arrivava fino a 0,5 secondi.

Molto dipende dal dispositivo. Abbiamo lavorato con una vasta flotta di dispositivi. Per gli iPhone ci sono solo 10 modelli. Hanno funzionato bene in termini di qualità e altre funzionalità. Ma con gli androidi lo zoo è come mia madre. Non ovunque si è scoperto che la sincronizzazione del suono funzionava. Ci sono stati casi in cui era impossibile ascoltare tracce diverse su dispositivi diversi a causa di alcune peculiarità. Da qualche parte le basse frequenze scompaiono, da qualche parte le alte frequenze cominciano a sibilare. Ma se il dispositivo avesse un normalizzatore sul microfono, la sincronizzazione funzionerebbe sempre.

Dmitry: Per favore, parlaci dell'architettura: cosa è stato utilizzato nel progetto?

Andrea: Abbiamo realizzato l'applicazione in Unity, l'opzione più semplice in termini di multipiattaforma e di lavoro con la grafica. Fondotinta AR usato. Abbiamo subito detto che non volevamo complicare il sistema, quindi ci siamo limitati ad un parco di dispositivi che supportano ARKit e ARCore in modo da avere il tempo di testare il tutto. Abbiamo creato un plugin per DigitalSoft SDK, it è sul nostro GitHub. Abbiamo creato un sistema di gestione dei contenuti in modo che gli script vengano eseguiti secondo la sequenza temporale.

Abbiamo armeggiato un po' con il sistema particellare, perché l'utente può entrare in qualsiasi momento in un particolare episodio, e abbiamo bisogno che veda tutto dal momento in cui si è sincronizzato. Abbiamo lavorato con un sistema che consenta di riprodurre gli scenari in modo chiaro nel tempo, in modo che l'esperienza XNUMXD possa essere fatta scorrere avanti e indietro, come in un film. Sebbene funzioni immediatamente con le animazioni classiche, abbiamo dovuto armeggiare con i sistemi particellari. Ad un certo punto, iniziano a deporre le uova e, se ti trovi da qualche parte prima del punto di spawn, non sono ancora nati, anche se sembra che dovrebbero esserlo. Ma questo problema è in realtà abbastanza facile da risolvere.

Per la parte mobile l'architettura è abbastanza semplice. Per le trasmissioni televisive tutto è più complicato. Avevamo restrizioni hardware. Il cliente ha posto una condizione: "Qui abbiamo questo e quel parco hardware, grosso modo, tutto deve funzionare su di esso". Ci siamo subito concentrati sul fatto che avremmo lavorato con schede di acquisizione video relativamente economiche. Ma il budget non significa che siano cattivi.

C'erano restrizioni sull'hardware, sulle schede di acquisizione video e sulle condizioni di lavoro: come dovremmo ricevere l'immagine. Schede di acquisizione - Blackmagic Design, funziona secondo lo schema di codifica interna: questo è quando un fotogramma video ti arriva dalla fotocamera. La carta è dotata di un proprio chip di elaborazione, dove è inserita anche una cornice, che deve essere sovrapposta a quella in arrivo. La scheda li confonde: non tocchiamo nient'altro e non influenziamo l'inquadratura della videocamera. Sputa il risultato alla sala di controllo tramite l'uscita video. Questo è un buon metodo per sovrapporre titoli e altre cose simili, ma non è molto adatto per effetti di realtà mista perché ci sono molte restrizioni sulla pipeline di rendering.

Dmitry: In termini di elaborazione in tempo reale, associazione di oggetti o qualcos'altro?

Andrea: In termini di qualità e raggiungimento degli effetti desiderati. Perché non sappiamo su cosa stiamo mettendo l’immagine. Inviamo semplicemente informazioni su colore e trasparenza sopra lo stream originale. Alcuni effetti come le rifrazioni, la corretta trasparenza e le ombre aggiuntive non possono essere ottenuti con questo schema. Per fare questo, devi renderizzare tutto insieme. Ad esempio, non è possibile creare l'effetto della distorsione dell'aria da un incendio o da un asfalto caldo. Lo stesso vale per il trasferimento dell'effetto trasparenza tenendo conto dell'indice di rifrazione. Inizialmente abbiamo realizzato contenuti basati su queste restrizioni e abbiamo cercato di utilizzare effetti appropriati.

Visualizza questo post su Instagram

Chiusura dei II Giochi Europei a Minsk.

Un post condiviso da Elena Lanskaja (@alyonalanskaya) il 30 giugno 2019 alle 3:19 PDT

Dmitry: Avevi già i tuoi contenuti nel primo progetto per i Giochi Europei?

Andrea: No, la fase principale dello sviluppo dei contenuti è stata eseguita dai ragazzi di Sechenov.com. I loro artisti grafici hanno disegnato il contenuto di base con animazioni e altre cose. E abbiamo integrato tutto nel motore, aggiunto effetti aggiuntivi, adattato in modo che tutto funzionasse correttamente.

Se parliamo di pipeline, per le trasmissioni televisive abbiamo assemblato tutto su Unreal Engine 4. Per coincidenza, proprio in quel momento hanno iniziato a potenziare i loro strumenti per la realtà mista. Si è scoperto che tutto non è così semplice. Anche adesso tutti gli strumenti sono grezzi; abbiamo dovuto rifinire molto a mano. A Minsk abbiamo lavorato su una build personalizzata del motore, ovvero abbiamo riscritto alcune cose all'interno del motore in modo che, ad esempio, potessimo disegnare ombre sopra oggetti reali. Nella versione del motore attuale non c'erano caratteristiche che permettessero di farlo utilizzando strumenti standard. Per questo motivo i nostri ragazzi hanno realizzato un assemblaggio personalizzato per fornire tutto ciò che era di vitale importanza.

Altre sfumature e adattamento a WorldSkills a Kazan

Codice temporale (di versioni audio) — 31:37

Dmitry: Ma tutto questo in un periodo di tempo abbastanza breve?

Andrea: Le scadenze erano strette Progetto Kazan, secondo Minsk - normale. Circa sei mesi per lo sviluppo, ma tenendo conto del fatto che erano coinvolte sei persone. Allo stesso tempo, stavamo realizzando la parte mobile e sviluppando strumenti per la produzione televisiva. Non c'era solo l'output di un'immagine. Ad esempio, un sistema di tracciamento con ottica, per questo dovevi creare i tuoi strumenti.

Dmitry: C’è stato qualche adattamento da un progetto all’altro? In un mese e mezzo è stato necessario sfruttare gli sviluppi e trasferire il progetto con nuovi contenuti su un nuovo sito?

Andrea: Sì, è stato per un mese e mezzo. Avevamo programmato una vacanza di due settimane per l'intero team dopo il progetto di Minsk. Ma subito dopo la chiusura, i ragazzi di Sechenov.com si avvicinano e dicono: “Bene, allora facciamo Kazan”. Siamo comunque riusciti a riposarci un po', ma siamo passati a questo progetto abbastanza rapidamente. Abbiamo completato alcuni lavori tecnici. La maggior parte del tempo è stata dedicata ai contenuti, perché per WorldSkills lo abbiamo fatto interamente, semplicemente coordinandolo con il team di produzione. Da parte loro c'era solo una sceneggiatura. Ma è stato più semplice: non c'era bisogno di iterazioni aggiuntive. Quando crei tu stesso il contenuto, vedi immediatamente come funziona nel motore e puoi modificarlo e coordinarlo rapidamente.


Per quanto riguarda la parte mobile, abbiamo tenuto conto di tutte le sottigliezze che avevamo a Minsk. Abbiamo realizzato un nuovo design dell'applicazione, ridisegnato leggermente l'architettura, aggiunto tutorial, ma abbiamo cercato di renderlo il più breve e chiaro possibile. Abbiamo ridotto il numero di passaggi dell'utente dall'avvio dell'applicazione alla visualizzazione del contenuto. Un mese e mezzo è bastato per portare a termine un progetto adeguato. In una settimana e mezza abbiamo raggiunto il sito. Era più facile lavorare lì perché tutto il controllo sul progetto era nelle mani degli organizzatori; non c’era bisogno di coordinarsi con altri comitati. Era più semplice e facile lavorare a Kazan ed era abbastanza normale che ci fosse meno tempo.

Dmitry: Ma hai deciso di lasciare l'approccio alla sincronizzazione com'era, basato sul suono?

Andrea: Sì, l'abbiamo lasciato con il suono. Ha funzionato bene. Come si suol dire, se funziona, non toccarlo. Abbiamo semplicemente preso in considerazione le sfumature della qualità della traccia audio. Quando hanno fatto l'introduzione, c'era un episodio di formazione che le persone potevano provare prima dell'inizio dello spettacolo. È stato sorprendente che quando al momento della riproduzione del brano nello stadio si sentono applausi tempestosi, "dal vivo", il sistema consente di sincronizzarsi bene con questo brano, ma se in questo momento l'applauso registrato viene mescolato con il brano, allora il la traccia non è più presa. Sono state prese in considerazione queste sfumature e tutto è stato sincronizzato abbastanza bene in termini di suono.

PS Nella seconda parte del numero parliamo di visualizzazione di dati scientifici, modellazione di processi in altri progetti, sviluppo di giochi e programma del master "Tecnologia di sviluppo di giochi per computer" Ne pubblicheremo il seguito nel prossimo articolo. Puoi ascoltarci e sostenerci qui:

PPS Nel frattempo, sulla versione inglese di Habr: uno sguardo più da vicino all'Università ITMO.

Fonte: habr.com

Aggiungi un commento