In questa puntata della miniserie di base sulla fotogrammetria turntable, vedremo come rimuovere lo sfondo verde e il Color Spill dalle fotografie in Blender.
Trascrizione del video
Salve a tutti! In questa puntata della miniserie di base sulla fotogrammetria turntable, vedremo come rimuovere lo sfondo verde e il Color Spill dalle fotografie in Blender.
Le immagini ottenute al termine di questo processo saranno delle PNG con trasparenza, che Meshroom potrà utilizzare concentrandosi, per così dire, solo sull'oggetto che ci interessa, nella fase di estrazione delle features.
Questo tutorial è stato registrato con la versione 4.3 di Blender, ma i nodi di Compositing utilizzati sono presenti da diverse versioni del software e verosimilmente lo saranno anche nelle prossime.
Tutto il lavoro si svolge in un Compositor Editor, per cui non è nemmeno necessaria una telecamera virtuale all'interno della scena. In effetti, posso anche eliminare il nodo Render Layers presente di default nei nuovi schemi di Compositing.

Per prima cosa, devo impostare il formato di output del progetto con i valori di risoluzione delle fotografie, che nel mio caso sono 4000 e 3000 per le risoluzioni X e Y.
Nella scheda Output dell'editor Properties dovrò inoltre impostare il formato di output in PNG di tipo RGBA, ossia con trasparenza, con un basso valore di compressione.
All'interno di questa scheda dovrò impostare anche il percorso su disco ove salvare i file prodotti dall'elaborazione.
Come ultima operazione preliminare, prima di caricare le immagini nel progetto, devo impostare un valore per End Frame pari al numero di immagini da processare, che nel mio caso sono 146.

Per quanto riguarda le immagini, Blender riconoscerà la sequenza di immagini nella cartella a patto che le immagini siano numerate progressivamente.
In ambiente Windows, c'è un modo molto semplice per ottenere questa numerazione. Selezionate tutti i file presenti nella cartella delle fotografie originali. Fate click destro sul primo file e scegliete l'opzione Rinomina. Digitate quindi un nome e premete Invio. Come potete vedere, Windows aggiungerà un suffisso numerico progressivo ai nomi di tutti i file presenti nella cartella.
Adesso posso trascinare il primo file nel Compositor Editor di Blender e cambiare il tipo di nodo in Image Sequence.
All'interno del nodo, scrivo il numero di file da elaborare nel campo Frames. Questo valore sarà uguale a quello inserito poco fa nel campo End della Timeline.

Collego l'uscita Image del nodo immagine al nodo Viewer, così da poter vedere l'immagine nella Backdrop del Compositor Editor.
Quando ho scattato le fotografie, a volte ho girato lo smartphone, per cui alcune fotografie appaiono capovolte. È facile risolvere questo problema con un nodo Rotate, il cui campo Degrees può essere animato così da utilizzare il nodo solo quando serve, tuttavia queste rotazioni non saranno un problema per Meshroom, per cui non è strettamente necessario effettuare le rotazioni in questa fase.
Inserisco un nodo Color Key e un nodo Color Spill nello schema.
L'anteprima nella Backdrop è utile per selezionare una tonalità di verde dall'immagine per il nodo Color Key. Clicco sul colore di default del campo Key Color del nodo Color Key, dopodiché clicco sullo strumento Eyedropper e scelgo un punto verde della fotografia.

Collego adesso l'uscita Image del nodo immagine all'ingresso Image del nodo Color Key.
L'uscita Matte del nodo Color Key andrà collegata all'ingresso Alpha dei nodi Viewer e Composite, perché rappresenta la maschera di trasparenza delle immagini.
L'uscita Image di Color Key va invece collegata ad un nodo Color Spill, che consente di rimuovere i riflessi verdi presenti sugli oggetti che vengono fotografati, per l'appunto, su uno sfondo verde. L'output del nodo Color Spill andrà quindi collegato agli ingressi Image di Composite e Viewer.

Nel nostro caso, il Despill Channel del nodo sarà ovviamente il verde, mentre l'algoritmo andrà scelto tra Simple e Average a seconda della qualità del risultato, visibile in anteprima nella Backdrop.
A questo punto posso iniziare ad impostare i valori di tolleranza per i canali Hue, Saturation e Value del nodo Color Key. Queste tolleranze indicano quanto il colore dei pixel potrà discostarsi, in quei tre canali di informazione, rispetto al colore specificato nel campo Key Color del nodo.

La cosa interessante, nell'effettuare questa operazione in Blender, è che i valori del nodo possono essere animati, per cui posso impostare dei valori che vanno bene per il primo fotogramma e mantenerli fino a quando vanno bene, per poi modificarli se non vanno bene in una determinata immagine.
Attenzione, però: se ci si rende conto che i valori impostati non vanno bene per un'altra immagine, bisogna tornare al frame precedente e inserire lì dei keyframe per fissare i valori che andavano bene fino a quel punto. Fatto ciò, si potrà andare al frame successivo, modificare i valori così da soddisfare le nuove esigenze, e registrare i nuovi valori con nuovi keyframe. Questo inserimento del keyframe al frame precedente, prima di effettuare le modifiche, è necessario perché altrimenti Blender creerà le interpolazioni dei valori tra più fotogrammi, cosa che potrebbe avere effetti negativi sulle loro maschere.
In linea generale, conviene utilizzare valori bassi per il parametro della tonalità, perché si corre il rischio di andare ad escludere altri colori che invece vanno mantenuti. Meglio mantenere una tonalità base con poca tolleranza e modificare gli altri due parametri. Il più delle volte, infatti, l'illuminazione non uniforme sul telo verde avrà l'effetto di rendere lo sfondo più o meno luminoso, ma difficilmente gli farà cambiare la tonalità.
Nel modificare i valori, bisogna tenere sempre d'occhio l'oggetto che ci interessa, perché ovviamente vogliamo cercare di togliere tutte le aree che non ci interessano, tuttavia a volte questo non è possibile e si rischia anzi di eliminare parte dell'oggetto che ci interessa!
Per eliminare le aree più complicate, è possibile ricorrere all'utilizzo di uno o più oggetti di tipo Box Mask da collegare in successione all'uscita Matte del nodo Color Key. Esistono anche altri strumenti di Masking, nel Compositor, ma un paio di nodi Box Mask andranno benissimo per i nostri scopi.

Questi nodi realizzano delle maschere rettangolari che possono essere posizionate e ruotate sulla maschera in ingresso grazie a dei parametri che consentono di definirne posizioni, dimensioni e rotazioni. Le maschere possono avere varie modalità di applicazione. Per i nostri scopi, utilizzerò la modalità Subtract, che però rende nere, ma non trasparenti, le aree modificate.
Per risolvere questo problema, è sufficiente inserire un nodo di tipo Set Alpha prima degli ingressi Image di Composite e Viewer. Scollego le informazioni Alpha di Composite e Viewer. All'ingresso Image del nuovo nodo Set Alpha andrà collegata l'uscita di Color Spill. All'ingresso Alpha del nodo Set Alpha andrà invece collegata l'uscita dell'ultimo nodo Box Mask presente nello schema.

Adesso sto facendo un salto al risultato finale dello schema di Compositing, giusto per mostrarvi che si tratta di una combinazione di keyframes sia per i valori di tolleranza nel nodo Color Key che per i valori di posizione e dimensione delle eventuali maschere.
I parametri di posizione e dimensione delle maschere possono essere infatti animati, il che ovviamente ci consente di inserirle nell'area di lavoro solo quando effettivamente ci servono, senza il rischio di coprire l'oggetto che ci interessa negli altri fotogrammi.
Per quanto riguarda l'inserimento dei keyframe per le maschere, vale anche qui l'avvertimento dato per i valori del nodo Color Key, ossia di inserire i keyframe anche prima del frame da modificare, per evitare interpolazioni errate tra le posizioni delle maschere nel corso dell'animazione.
Questo processo di analisi e verifica dei valori di Color Key e delle maschere può richiedere un po' di tempo, ma ce ne farà risparmiare molto di più quando Meshroom elaborerà queste immagini, anziché quelle originali.
Ad ogni modo, non è un problema non riuscire ad eliminare proprio tutti gli elementi superflui, perché comunque Meshroom interpreterà alcune macchie come disturbo e le escluderà. Più si riesce a fare in questa fase e meglio sarà, ma senza scervellarsi troppo.
Dopo aver verificato la qualità del Color Keying e delle maschere per i vari fotogrammi dell'animazione, avvio finalmente il rendering della sequenza, ottenendo così le immagini da importare in Meshroom. Questo rendering non richiederà molto tempo, visto che in realtà si tratta di una semplice elaborazione di immagini esterne. Le immagini prodotte sono le stesse che trovate nel pacchetto gratuito, per cui potrete ricreare voi stessi le operazioni che vedremo nei prossimi tutorial. Per questa puntata, quindi, è tutto! Alla prossima!