Ricostruzione

Questo tipo di Ricostruzione costituisce un passo avanti rispetto alla Ricostruzione Camera (che genera semplicemente vertici 3D multipli), in quanto tenta di ricostruire il video utilizzando una Nuvola di Punti 3D o una mesh. Inoltre, i colori dei vertici saranno utilizzati per colorare i vertici o la mesh in base al metraggio.

Il risultato di questo tipo di ricostruzione della scena può essere, nelle condizioni ideali (vedi Metraggio Ottimale qui sotto), una densa Nuvola di Punti o una mesh coerente (il risultato reale, tuttavia, spesso differisce perché nella maggior parte dei casi non si dispone di un metraggio davvero "ottimale”; di conseguenza si otterrà una Nuvola di Punti o una mesh frammentaria e isolata).

Sequenza di immagini disposta in senso orario e la corrispondente Nuvola di Punti.

La Ricostruzione Scena non sostituisce uno scanner 3D. La Nuvola di Punti o la meshes che viene creata può ad esempio servire come orientamento nello spazio 3D, per ricreare gli oggetti o per altri scopi.

Requisiti per la Ricostruzione della Scena

Per ottenere una ricostruzione ottimale della scena è sempre necessario eseguire prima una ricostruzione corretta della camera, vale a dire aver eseguito il Tracking 2D e, dopo che la camera è stata ricostruita, aver cliccato il pulsante Aziona Risolutore 3D per completare il processo (oppure, più semplicemente, fare tutto in modo automatico selezionando il comando Risolutore Completo dal menu principale Tracking). Può essere utile anche calibrare la camera e le caratteristiche attraverso il tag Vincola, che definirà nel modo corretto la scala e l’orientamento della scena ricostruita e della Nuvola di Punti.

Quando possiamo definire corretta una Ricostruzione Camera? Quando, come nel caso prima descritto, il processo è stato completato, e una serie di Caratteristiche Automatiche o Utente sono state aggiunte come oggetti Figlio all’oggetto Motion Tracker. Le Caratteristiche sono importanti perché saranno usate successivamente come punti iniziali per la Ricostruzione Scena.

Le Tracce 2D esistenti in seguito non serviranno più per la Ricostruzione Scena.

Metraggio ottimale

Un metraggio ottimale, con cui è possibile eseguire la Ricostruzione Scena, ha le seguenti caratteristiche:

Informazioni utili

Limitazioni

Come funziona

L’algoritmo utilizzato è piuttosto complesso, pertanto lo descriveremo solo brevemente (anche perchè la nomenclatura dei parametri risulterebbe oltremodo incomprensibile quando saranno descritti i Patch e le celle). Fortunatamente, il settaggio Qualità regola i settaggi in base al proprio criterio di qualità.

Ma più in generale, cosa accade quando viene avviata la ricostruzione di una scena?

  1. Saranno selezionati un gruppo di fotogrammi (almeno 10; di più se il movimento della camera è più veloce)
  2. Ogni fotogramma ha una posizione camera (accertata attraverso la Ricostruzione Camera 3D precedentemente eseguita)
  3. Ciascuno di questi fotogrammi sarà diviso in celle quadrate grazie ad una griglia.
  4. Un punto 3D nella scena, visibile da diverse posizioni della camera, avrà una posizione 2D in ogni fotogramma corrispondente. Questo punto, a sua volta, si trova in una cella.
  5. La Ricostruzione Camera 3D completata prima ha già generato dei punti 3D (le caratteristiche 3D). Questi vengono usati per creare i Patch iniziali. I Patch sono punti nello spazio da cui sarà poi generata la Nuvola di Punti. Ogni Patch rappresenta una piccola area piatta.
  6. In ogni fotogramma saranno definiti un Patch e la cella corrispondente.
  7. Avverrà ora un processo di espansione "iterativa”, durante il quale saranno creati ulteriori Patch basati su quelli esistenti (questi si trovano sulla superficie 3D da ricostruire).
  8. Nuovi Patch saranno assegnati alle celle e la griglia delle celle si riempirà lentamente. L’obiettivo è di avere un Patch in ogni cella (il che, in realtà, accade raramente).
  9. L’espansione dei nuovi Patch a questo punto è diretta alle celle vuote.
  10. Il processo di espansione continuerà fino a quando non potranno più essere generati nuovi Patch che soddisfino i requisiti dei filtri interni (ogni Patch creato viene sottoposto ad una serie di test; se i test non vengono superati, il Patch viene scartato) o fino a quando le celle di tutti i fotogrammi non avranno almeno un Patch.

In sintesi, l’algoritmo usa i vertici 3D esistenti come posizioni iniziali (le caratteristiche della Ricostruzione Camera del primo processo di espansione; i Patch delle precedenti espansioni nei processi di espansione seguenti) e si espande verso l’esterno su una superficie 3D. Il buon funzionamento di questo processo dipende dal metraggio o dalla scena (oltre che dalla Ricostruzione Camera).

I Patch sono assegnati ad un oggetto poligonale chiamato Nuvola di Punti della Scena. Ogni vertice ha un colore (che è stato accertato dal metraggio) che viene aggiunto all’oggetto poligonale come tag Colore Vertice. Se desiderate potete fare un "meshing”, che genererà una superficie poligonale basandosi sui vertici ricostruiti.

Settaggi Predefiniti

Qui troverete vari presettaggi che configurano i parametri sottostanti in base ai livello di qualità disponibile. Se non riuscite a raggiungere un risultato accettabile con questi presettaggi, dovrete dedurre che il vostro filmato non è un metraggio ottimale (vedi anche Metraggio Ottimale).

Settaggi Avanzati

Iterazioni[1..3]

Notate come gli spazi si chiudono con l’aumentare del valore Iterazioni. Da sinistra a destra valori 1, 2 e 3, rispettivamente.

Se date una veloce occhiata all’ordine con cui funzionano i processi interni, osserverete che vengono elaborate alcune azioni iterative. Queste riguardano principalmente la creazione di nuovi Patch nelle aree vuote, l’ottimizzazione e il filtraggio dei Patch "difettosi”… e quindi la ripetizione di questi processi. Questo settaggio definisce il numero di iterazioni che avranno luogo.

Più alto è il valore, minore sarà la quantità di "spazi” mostrati della Nuvola di Punti e più lunghi saranno i tempi di rendering.

SubCampionamento Metraggio[0..8]

Per definire la risoluzione da usare durante la ricostruzione per il metraggio, sono disponibili due settaggi indipendenti l’uno dall’altro, uno per la Ricostruzione Camera (Ricampionamento) e uno per la Ricostruzione Scena. Il settaggio SubCampionamento Metraggio viene utilizzato per la Ricostruzione Scena.

Se per la Ricostruzione Scena il metraggio dovesse essere processato internamente con una risoluzione inferiore, questo valore andrebbe aumentato. Un valore di 0 riflette la risoluzione originale (vedi il prossimo paragrafo), 1 rappresenta metà della risoluzione (in entrambe le dimensioni, cioè verrà compilata un’area quadrata di 4 pixel), ecc. La Ricostruzione Scena calcola più velocemente con risoluzioni maggiori ma la densità della Nuvola di Punti risulterà invece ridotta di conseguenza.

Questo settaggio può essere usato se il vostro metraggio ha una risoluzione molto alta (per esempio, usate valori maggiori di 1). Vi aiuterà a ridurre in qualche modo i tempi di rendering.

Notate che un valore 0 per la risoluzione originale non produrrà necessariamente risultati migliori rispetto a un valore 1. Internamente, saranno usate risoluzioni diverse, in base alla distanza della camera rispetto al Patch. La risoluzione che deve essere definita si applica solo per una distanza esplicita tra camera e Patch (definita con la "camera di riferimento”). La risoluzione definita sarà usata per tutte le distanze. Se le distanze tra le camere e i Patch sono molto diverse, saranno applicate automaticamente risoluzioni più alte o più basse. Ad ogni modo, se il valore è impostato su 0, non potranno essere applicate risoluzioni più alte.

Questo meccanismo rende possibile confrontare più facilmente i Patch da varie distanze.

Densità Punto[1..8]

Valori Densità Punto da sinistra a destra: 3, 5, e 7.

Come spiegato in Funzione, ogni fotogramma nel metraggio è diviso in una griglia. L’algoritmo cerca di calcolare un punto 3D per la Nuvola di Punti in ogni cella della griglia. Idealmente (con un metraggio ottimale) il processo funzionerà (nella maggior parte dei casi, comunque, rimarranno degli spazi).

In ogni caso, il valore Densità Punto definisce la dimensione delle singole celle della griglia. Maggiore è il valore, più piccole e dense saranno le celle e più densa sarà la Nuvola di Punti. Usando il valore massimo di 8, la dimensione delle celle sarà uguale alla dimensione dei pixel, per cui, idealmente, avremo un punto su ogni pixel del metraggio. Ovviamente i tempi di rendering aumenteranno con l’incremento del valore di Densità Punto.

Dimensione Patch[3..2147483647]

Valori Dimensione Patch da sinistra a destra: 5, 10, 20, 50, 100. Notate l’aumento di qualità con l’aumentare dei valori.

Questo algoritmo tenta di riconoscere piccole aree del metraggio in momenti specifici, in modo da definire e ottimizzare al meglio la posizione e rotazione dei Patch. Il valore Dimensione Patch definisce la dimensione quadrata di queste aree in pixel. In linea di principio, questo valore riflette la Dimensione Pattern nel menu del Tracking 2D, ma viene utilizzato per la Ricostruzione Scena:

Ancora: ogni Patch viene successivamente rappresentato da un punto 3D nella Nuvola di Punti.

Valori più alti aumenteranno la qualità della Nuvola di Punti, con relativi tempi di rendering più lunghi. Notate nell’immagine sopra come migliora la distorsione della cornice della finestra e delle sbarre con valori incrementali di Dimensione Patch.

Dettaglio Texture Min[0..100%]

Questo valore controlla un valore soglia che usa la variazione pixel di un Patch come riferimento. Se non si verificano cambiamenti significativi nella superficie del patch, cioè se è più o meno monocromatico e senza grossi contrasti, un valore più alto del settaggio Dettaglio Texture Min eviterà la creazione di un Patch (= nessuna ricostruzione in questo punto).

Lo scopo di questo settaggio (aumentandone il valore) è poter evitare la creazione di Patch in aree con dettagli texture bassi (es. un cielo tutto blu). Queste aree sono molto difficili da elaborare e tendono pertanto a generare degli errori.

Se avete un metraggio con un alto livello di dettaglio nelle texture, aumentate questo valore per migliorare la qualità della Nuvola di Punti.

Per riassumere, valori più alti porteranno alla creazione di meno Patch/punti di ricostruzione, ma con una qualità migliore; valori inferiori ne creeranno di più, ma di qualità inferiore.

Il valore predefinito di 0.5% è adatto alla maggior parte dei metraggi.

Filtro Piccoli Gruppi

Filtro Piccoli Gruppi disattivato a sinistra, attivato a destra.

Se questa opzione è abilitata, la Ricostruzione Scena cercherà di rimuovere le aree con Patch piccoli e isolati. Notate nell’immagine sopra come diversi piccoli gruppi di punti isolati siano stati filtrati.

L’efficacia di questo settaggio, ad ogni modo, dipende molto dal metraggio e quindi talvolta può essere disattivato, dato che i Patch andrebbero rimossi inutilmente.

Angolo Min[0..180°]

Quale angolo viene influenzato? Immaginate una linea diritta tra la prima camera e il Patch e tra la seconda camera e il Patch: entrambe le linee si incontrano sul Patch. L’angolo tra queste due linee è quello che sarà modificato.

I Patch sono elaborati da posizioni di camera diverse (quelle provenienti dalla Ricostruzione Camera). Questo settaggio assicura il mantenimento di un angolo minimo tra le camere, per evitare che i Patch vengano processati da due camere vicine (i Patch sarebbero quasi identici).

Il valore predefinito funziona bene per la maggior parte dei metraggi. Per i video dove le camere si muovono appena, può essere d’aiuto abbassare leggermente questo valore. Ad ogni modo, questo renderà la ricostruzione meno precisa. Non fatevi ingannare se la vista si riempie di Patch e punti di ricostruzione quando utilizzate valori più bassi. Quantità non sempre equivale a qualità.

Per riassumere, valori più alti porteranno alla creazione di meno Patch/punti di ricostruzione, ma con una qualità migliore; valori inferiori ne creeranno di più, ma di qualità inferiore. Valori troppo alti impediranno del tutto la creazione della Nuvola di Punti.

Valori diversi porteranno agli effetti visibili qui sopra. In senso orario, partendo dall’alto a sinistra: valori , , 10° e 15° di Angolo Min.

Meshing

Dopo aver definito i settaggi nel menu Settaggi Avanzati, tramite questi punti potrà essere creata una mesh poligonale.

Peso Area[0..100%]

Peso Fotometriche[0..100%]

Entrambi i settaggi hanno un effetto simile.

Con valori crescenti, questi settaggi cercheranno di sostituire i triangoli più grandi con triangoli più piccoli, che copriranno la stessa superficie.

Superfici difettose verranno evitate, se possibile. Se vengono definiti valori molto alti, rimarrà di conseguenza meno mesh, in base alla scena.

Il settaggio Peso Fotometriche funziona leggermente meglio del Peso Area perché utilizza anche le informazioni del metraggio.

Genera Mesh

Se la ricostruzione della scena è già stata eseguita, cioè se avete già cliccato il pulsante Crea Nuvola di Punti, questi dati saranno usati per generare una mesh poligonale corrispondente. I settaggi Area Peso e Peso Fotometricot possono essere modificati in qualsiasi momento e cliccando Genera Mesh sarà generata una nuova mesh senza dover eseguire un nuova ricostruzione della scena.

Se al contrario non è ancora stata eseguita la ricostruzione della scena, questo sarà fatto e sarà generata la mesh. I singoli punti dell’oggetto poligonale corrisponderanno a posizioni 3D ricostruite nello spazio.

Si suggerisce di generare prima una nuvola di punti fino a quando si raggiunge un buon risultato in termini di densità e copertura prima di rivolgere la propria attenzione alla mesh.

Suggerimento: assegnate un tag Phong alla mesh poligonale per smussarla.

A sinistra mesh generata attraverso la Nuvola di Punti. Alla mesh in basso a destra è stato assegnato uno shader Vertice insieme ad un tag Colore Vertice (in alternativa, può essere texturizzata direttamente con il metraggio, usando il tag Mappatura Camera).

Le aree problematiche nella mesh contengono spazi vuoti nella Nuvola di Punti. Questi inizialmente saranno chiusi, indipendentemente dalla loro dimensione, il che può portare alla creazione di triangoli molto grandi che NON daranno un buon effetto. I due settaggi precedenti possono essere usati per ridurre questi effetti indesiderati.

Cliccando questo pulsante, avvierete la Ricostruzione Scena. Il risultato, se corretto, sarà una Nuvola di Punti della Scena con un tag Colore Vertice (dove viene salvato il colore di ciascun punto del metraggio).

In base al metraggio e ai settaggi, il processo di calcolo può richiedere da pochi a diversi minuti per essere completato.

Questo pulsante apparirà disabilitato (grigio) se uno o più requisiti non vengono soddisfatti, per esempio: