diffusione o nitidezza

La diffusione è una famiglia di processi fisici per il quale le particelle si muovono e si disperdono gradualmente nel tempo, da una sorgente che le genera. Nell’elaborazione delle immagini, la diffusione avviene principalmente in due posti:

  • diffusione dei fotoni attraverso il vetro delle lenti (sfocatura) o aria umida (foschia),

  • diffusione dei pigmenti nell’inchiostro bagnato o negli acquerelli.

In entrambi i casi la diffusione rende l’immagine meno nitida, “perdendo” particelle e ammorbidendo le variazioni locali.

Il modulo diffusione o nitidezza utilizza un modello fisico generalizzato per descrivere diversi tipi di diffusione, e può essere usato dai creatori di immagini per simulare o ripristinare processi di diffusione.

Siccome è un modulo altamente tecnico, sono stati forniti diversi preset per dimostrarne l’uso per vari scopi.

La diffusione può essere rimossa in modo tale da:

  • recover the original image from sensors with an anti-aliasing filter or mitigate the blur created by most demosaicing algorithms (use one of the sharpen demosaicing presets and move the module before the input color profile module in the pipeline),

  • annullare la sfumatura/sfocatura statica delle lenti (usa uno dei preset nitidezza obiettivo),

  • rimuovere la foschia atmosferica (usa il preset rimuovi foschia),

  • aggiungere maggiore acutanza per una migliore leggibilità (usa il preset aggiungi contrasto locale).

Notare che la sfocatura dei movimenti non può essere ripristinata annullando il processo di diffusione, dato che non è di natura diffusiva.

La diffusione può essere aggiunta in modo tale da:

  • creare un effetto Orton o di luce soffusa (usa il preset luce soffusa),

  • ripristinare parti mancanti o danneggiate di un’immagine (usa il preset rimuovere le alteluci)

  • ridurre il rumore in modo tale da preservare i contorni (usa uno dei preset _riduzione del rumore)

  • applicare una sfocatura delle superfici (usa il preset sfocatura superficie).

Dato che il processo è fisico, anche i suoi errori possono essere utilizzati per scopi creativi. Ad esempio si può:

  • simulare il disegno a tratteggio o gli acquerelli (usa i preset simulare disegno a tratteggio e simulare acquerello),

  • create random patterns and textures by increasing noise (over time, with iterations, noise will connect with neighbors to create random specks).


Nota: Questo modulo è molto esigente di risorse, in quanto è un vero risolutore di equazioni differenziali parziali, multiscala e anisotropico. La durata di esecuzione del modulo aumenta con il numero di iterazioni, e OpenCL è altamente raccomandato. Vengono anche forniti alcuni preset “veloci” per l’uso su sistemi senza OpenCL.


🔗concetti

🔗orario

La diffusione è un processo dipendente dal tempo: più tempo passa e più le particelle possono diffondersi. In questo modulo, il tempo è simulato utilizzando il numero di iterazioni (il numero di volte che l’algoritmo viene eseguito su se stesso). Più iterazioni, se opportunamente impostate, possono rendere la ricostruzione (rimozione di sfocatura, rumore e foschia) più accurata, ma possono anche causarne la degenerazione.

🔗Direzione

La diffusione naturale avviene solitamente da punti con alto potenziale (alta energia o alta concentrazione di particelle) verso punti a basso potenziale (bassa energia o bassa concentrazione di particelle). In un’immagine questo significa che la diffusione avviene sempre dai pixel più luminosi a quelli più scuri.

This particular implementation can simulate natural diffusion, using what is called an isotropic diffusion (all directions have the same weight, like heat diffusion), but can also force a weighted direction parallel to the gradients (forcing diffusion across object edges and creating ghost edges), or a weighted direction perpendicular to the gradients, called isophote (forcing diffusion to be contained inside edges, like in a droplet of watercolor). The relative weight of each direction (gradient and isophote) is user-defined and can be found in the direction section of the module.

🔗Velocità

Depending how fluid the environment is, particles can move more or less freely and therefore more or less fast. The speed of diffusion can be set in the speed section of the module.

Quando si esegue una ricostruzione (riduzione di rumore, sfocatura e foschia), si consiglia di usare velocità minori per miglior accuratezza. Questo previene di oltrepassare i limiti numerici (e quindi far degenerare la soluzione) e può richiedere più iterazioni. Si possono usare velocità più alte per un numero piccolo di iterazioni. Notare che sfocature estese potrebbero richiedere parecchie iterazioni per una corretta riduzione, e quindi la velocità dovrebbe essere regolata per evitare la degenerazione della soluzione.

Tutte le velocità vengono sommate (dal primo al quarto ordine), e la somma “primo ordine + secondo ordine” e “terzo ordine + quarto ordine” non dovrebbe mai superare il ±100%, a meno che non si voglia produrre glitch art.

🔗Scala

Natural diffusion is supposed to happen only to the closest neighboring coordinates. That is, at each iteration, each pixel should only interact with its 9 nearest neighbors.

Qui abbiamo velocizzato un pochino le cose per risparmiare tempo e riusare lo schema di wavelet multi-scala dal modulo equalizzatore contrasto, in modo tale da poter diffondere a scale differenti. La massima scala di diffusione viene stabilita dal parametro estensione del raggio.

A prescindere la diffusione, il parametro nitidezza ti permette di aumentare o diminuire il dettaglio per ciascuna scala, similarmente al controllo della spline dell’equalizzatore contrasto. Assieme al selettore a scorrimento sensibilità margine, questo fornisce la stessa funzionalità del modulo equalizzatore contrasto (tab luminanza e margini) ma nello spazio colore RGB riferito alla scena.

🔗Controlli modulo

🔗properties

iterazioni
Il numero di volte che l’algoritmo dovrebbe essere eseguito su se stesso. Valori alti rallenteranno il modulo ma permettono una ricostruzione più accurata, assunto che la velocità di diffusione sia sufficientemente bassa.
raggio centrale
La scala principale della diffusione. Zero spinge la diffusione ad agire più pesantemente sui dettagli fini (usato per la riduzione della sfocatura e del rumore). Valori diversi da zero stabiliscono la dimensione dei dettagli che devono essere diffusi più intensamente (usato per incrementare il contrasto locale).
raggio di estensione
Questo ti permette di selezionare la fascia dei raggi di dettaglio sulla quale operare, attorno al raggio centrale. L’estensione stabilisce un intervallo di scale di dettaglio (tra centro - estensione e centro + estensione) nella quale la diffusione è confinata. Valori alti diffondono su una larga fascia di raggi, a spese dei tempi di elaborazione. Valori bassi diffondono più vicino al raggio centrale. Se stai pianificano di ridurre la sfocatura, il raggio di estensione dovrebbe essere approssimativamente la larghezza della sfocatura dell’obiettivo e il raggio centrale dovrebbe essere zero. Se stai pianificando di incrementare il contrasto locale, ma non desideri interessare la nitidezza o il rumore, il raggio di estensione dovrebbe essere massimo i 3/4 del raggio centrale.

I raggi sono espressi in pixel sulla base dell’immagine a piena risoluzione, quindi copiare+incollare le impostazioni tra immagini con risoluzione differente potrebbe portare a risultati leggermente diversi, ad eccezione della nitidezza a livello del pixel.

Per gli ingegneri elettrici, ciò che viene qui impostato è un filtro passa-banda nello spazio dei wavelet, che usa una finestra di frequenze gaussiane centrate sul raggio centrale con una caduta (deviazione standard) di raggio di estensione. Le scale wavelet sono analoghe alle frequenze armoniche, e ciascuna scala wavelet stabilisce il raggio del dettaglio sul quale agire.

🔗speed (sharpen ↔ diffuse)

In the following controls, positive values apply diffusion, negative values undo diffusion (i.e. sharpen) and zero does nothing.

1st order speed (gradient)
The speed of diffusion of the low-frequency wavelet layers in the direction defined by the 1st order anisotropy setting.
2nd order speed (laplacian)
The speed of diffusion of the low-frequency wavelet layers in the direction defined by the 2nd order anisotropy setting.
3rd order speed (gradient of laplacian)
The speed of diffusion of the high-frequency wavelet layers in the direction defined by the 3rd order anisotropy setting.
4th order speed (laplacian of laplacian)
The speed of diffusion of the high-frequency wavelet layers in the direction defined by the 4th order anisotropy setting.

🔗Direzione

In the following controls, positive values cause diffusion to avoid edges (isophotes), negative values make diffusion follow gradients more closely, and zero affects both equally (isotropic).

1st order anisotropy
The direction of diffusion of the low-frequency wavelet layers relative to the orientation of the gradient of the low-frequency (1st order speed setting).
2nd order anisotropy
The direction of diffusion of the low-frequency wavelet layers relative to the orientation of the gradient of the high-frequency (2nd order speed setting).
3rd order anisotropy
The direction of diffusion of the high-frequency wavelet layers relative to the orientation of the gradient of the low-frequency (3rd order speed setting).
4th order anisotropy
The direction of diffusion of the high-frequency wavelet layers relative to the orientation of the gradient of the high-frequency (4th order speed setting).

🔗edge management

sharpness
Apply a gain on wavelet details, regardless of properties set above. Zero does nothing, positive values sharpen, negative values blur. This is mostly useful as an adjustment variable when blooming or blurring, to retain some sharpness while adding a glow around edges. You are not advised to use this for sharpening alone, since there is nothing to prevent halos or fringes with this setting.
sensibilità margine
Applica una penalità sulla velocità della diffusione quando viene individuato un margine. L’identificazione usa la varianza locale attorno ciascun pixel. Zero disabilita la penalità, valori più alti rendono la penalità più pesante e più sensibile ai margini. Incrementare se si notano artefatti come frange e aloni.
soglia margine
Stabilisce una soglia di varianza, che interessa soprattutto aree a bassa varianza (aree scure o sfocate, o superfici piane). Valori positivi incrementeranno la penalità per le aree a bassa varianza, che è un bene per la nitidezza o per incrementare il contrasto locale senza distruggere i neri. Valori negativi decrementeranno la penalità per le aree a bassa varianza, che è un bene per la riduzione del rumore oppure per la sfocatura con effetto massimo sulle aree nere e sfocate.

🔗Spazialità diffusione

soglia per la maschera di luminanza
Questo controllo è utile se vuoi rimuovere le alteluci. Per valori maggiori dello 0%, la diffusione avverrà nelle regioni con una luminanza maggiore di questo parametro. Notare che in queste aree verrà aggiunto del rumore gaussiano per simulare le particelle e inizializzare la fase di rimozione.

🔗flusso di lavoro

La maggiore difficoltà con questo modulo è che sebbene il suo risultato dipenda drasticamente dai parametri di input, questi parametri non hanno alcun collegamento intuitivo con la vita di tutti i giorni. Gli utenti sono probabilmente sovraccaricati, a meno che non abbiano familiarità con le equazioni differenziali parziali di Fourier. Questa sezione propone alcuni modi di approcciarsi a questo modulo senza avere la necessitò di comprendere la teoria sottostante.

🔗Avviso generico

Se intendi rimuovere la sfocatura della tua immagine usando questo modulo, parti sempre correggendo appropriatamente qualsiasi aberrazione cromatica e il rumore nell’immagine, dato che la rimozione della sfocatura potrebbe amplificare questi artefatti. E’ anche molto importante che tu non abbia pixel neri tagliati nell’immagine. Questi possono essere corretti con il livello di correzione del nero del modulo esposizione.

Dato che lavora su canali RGB separati, è preferibile applicare questo modulo dopo la calibrazione colore, in modo tale da partire da un’immagine di input neutrale e bilanciata sul bianco. Notare che anche incrementare il contrasto locale o la nitidezza porterà ad un aumento del contrasto colore e della saturazione, che in genere è una cosa positiva. Siccome che per individuare i margini usa una regolarizzazione basata sulla varianza, è meglio posizionare questo modulo prima di qualsiasi operazione non lineare.

🔗iniziare con i preset

I preset forniti sono stati messi a punto dallo sviluppatore e testati su una gamma di immagini per usi tipici. La via più facile è quella di partire semplicemente da un preset, e di aggiustarlo a seconda delle esigenze:

  • se l’effetto sembra troppo forte, decrementare il numero di iterazioni,

  • se compaiono artefatti sui margini, incrementare la sensibilità dei margini,

  • se la rimozione della sfocatura comincia a interessare aree sfocate valide (bokeh), ridurre il raggio,

  • se la rimozione della sfocatura sembra corretta nelle aree luminose ma eccessiva nelle aree scure, incrementare la soglia margini,

  • se la rimozione della sfumatura taglia pixel neri, abbassare la correzione del livello di nero nel modulo esposizione,

  • ritoccare la nitidezza a seconda dei gusti.

🔗partire da zero

Le impostazioni predefinite del modulo sono assolutamente neutrali e non faranno nulla alla tua immagine. Lo spirito del modulo è che ciascun ordine interessi le strutture dell’immagine in maniera specifica.

Iniziare con la messa a punto dei parametri di primo ordine (velocità e anisotropia) per avere una versione di base. Quindi regolare il raggio. Questo interesserà strutture più grossolane (sia sfocandole che nitidizzandole). Ricordare che il primo ordine agisce sulle basse frequenze della scala wavelet e segue una direzione parallela o perpendicolare ai gradienti delle basse frequenze.

Successivamente, iniziare a mettere a punto i parametri di secondo ordine (velocità e anisotropia). Anche il second ordine agisce sulle basse frequenze della scala wavelet, ma questa volta segue una direzione parallela o perpendicolare ai gradienti delle alte frequenze, che possono essere sia le direzioni di una massima nitidezza o massimo rumore. Questo può essere usato per ridurre il rumore (usando il secondo ordine in modalità diffusione, con valori positivi) quando hai usato il primo ordine in modalità nitidezza (con valori negativi).

Questi due passaggi possono essere effettuati sull’immagine ingrandita al minimo. Ricordare che, nonostante sia stato messo grande impegno per rendere i risultati visivi dell’algoritmo abbastanza invarianti alla scala, l’anteprima sarà esatta solo ad uno zoom 1:1. In ogni caso, qualsiasi cosa avvenga al livello di pixel (raggio < 2px) non sarà visibile per livelli di zoom minori del 50%.

A questo punto, potresti voler mettere a punto la sensibilità dei margini per prenderti cura degli artefatti sui margini. In teoria, diffondere nella direzione isofota garantisce che la diffusione sia contenuta all’interno dei margini, ma questo non è sufficiente quando sono presenti nell’immagine angoli e forme nitide convesse.

When the edge sensitivity control has been adjusted to produce satisfying results, the image usually becomes quite soft. In most cases it will be necessary, at this point, to increase the number of iterations in order to compensate. This will come with a performance penalty so tread carefully with the performance/quality trade-off depending on your hardware. If you can’t increase the number of iterations, you will have to increase the diffusing speed.

Il passaggio finale è quello di mettere a punto il terzo e il quarto ordine, i quali si occupano delle alte frequenze su ciascuna scala wavelet. Dovrai essere molto più gentile con queste impostazioni rispetto al primo e al secondo ordine, in quanto possono far “esplodere” il rumore molto velocemente.

Il terzo ordine segue la direzione del gradiente o dell’isofota del livello di bassa frequenza, e quindi può essere usato per guidare la diffusione dell’alta frequenza in una direzione che può essere più facilmente legittima rispetto ai margini reali (e meno prona a catturare rumore).

Il quarto ordine segue la direzione del gradiente o dell’isofota del livello delle alte frequenze ed è più probabile che catturi rumore. Diffondere sul quarto ordine è il miglior modo per ridurre il rumore senza interessare troppo la nitidezza, sia come un riduttore di rumore autonomo, o come un passaggio di regolarizzazione all’interno di un processo di rimozione della sfocatura.

🔗utilizzare istanze multiple per la ricostruzione dell’immagine

Il rumore dopo esser stato filtrato potrebbe beneficiare dall’introduzione di un processo di diffusione – questo può essere applicato come un passaggio ulteriore dopo il modulo riduzione del rumore (profilato).

Al contrario, i seguenti problemi ottici potrebbero beneficiare dalla ricostruzione attraversi l’annullamento del processo di diffusione:

  1. sfocatura introdotta dal filtro passa-basso del sensore (LPF) e/o dall’anti-aliasing eseguito dal modulo demosaicizzazione,

  2. sfocatura statica degli obiettivi,

  3. foschia/nebbia,

  4. diffusione della luce (usando un diffusore troppo largo), che ha portato ad un’illuminazione livellata con mancanza di contrasto locale sul soggetto.

Siccome la stessa immagine può essere interessata da più di uno di questi problemi allo stesso tempo, è meglio provare a correggerli separatamente usando istanze multiple del modulo. Quando si procede così, ci si deve assicurare che i problemi vengano corretti partendo da una scala grossolana ad una scala fine, e che la riduzione del rumore avvenga sempre prima. Detto questo le istanze dovrebbero apparire nel seguente ordine della coda:

  1. riduzione del rumore,

  2. miglioramento del contrasto locale,

  3. rimozione foschia

  4. correzione sfocatura obiettivo,

  5. correzione della demosaicizzazione del sensore.

Partendo dalla scala grossolana la ricostruzione riduce le probabilità di introdurre o incrementare il rumore quando si effettua la ricostruzione a scale più fini. Questo è contro-intuitivo in quanto questi processi non avvengono in questo ordine durante la formazione dell’immagine. Per la stessa ragione, la riduzione del rumore dovrebbe avvenire sempre prima di qualsiasi tentativo di nitidizzare o di incrementare l’acutanza.

🔗note e avvertimenti

Sebbene questo modulo sia stato progettato per essere invariante alla scala, il suo output può essere garantito soltanto al 100% dello zoom ad alta qualità o esportato a dimensioni massime. A livelli minori di zoom o di dimensioni di esportazione, i risultati potrebbero non soddisfare le tue aspettative.

Quando si sta configurando l’algoritmo di riduzione della sfocatura, tenta di tenere a mente che le più grandi immagini nella storia della fotografia sono state scattate con obiettivi la cui nitidezza non è minimamente comparabile con quella di cui disponiamo oggi. Nonostante la tendenza odierna di costruire e vendere obiettivi di crescente nitidezza, e di avere software che applica quantità folli di nitidezza ulteriore, questa moda non conduce ad una migliore arte figurativa, e rende il processo di ritocco più noioso. Il fuoco morbido (flou) e un pizzico di sfocatura hanno anche qualche merito poetico, cosa in cui falliscono le immagini in alta definizione sterilizzate chirurgicamente.

Si dovrebbe notare che anche il contrasto globale (usando la semplice curva tono o i livelli di bianco/nero) influenza la nostra percezione di nitidezza, che è molto differente dalla nitidezza ottica (risoluzione ottica). Gli occhi umano sono sensibili soltanto al contrasto locale, il quale può venire tanto dalla nitidezza ottica (es. assenza di diffusione – margini sottili) tanto da una transizione tonale amplificata. Se è attiva qualsiasi mappatura globale dei toni per incrementare il contrasto, l’immagine sembrerà più nitida. Se la mappatura tonale è usata per diminuire il contrasto, l’immagine sembrerà più sfocata. In nessuno dei due casi vengono influenzati i margini reali degli oggetti, e le conseguenze percettive sono pura illusione.

La perdita della vista è parte del processo di invecchiamento. La quantità di nitidezza che gli ultracinquantenni trovano gradevole potrebbe non essere la stessa per i ventenni. Vale la pena di considerare la nitidezza al fine ottenere un risultato plausibile (che corrisponda la percezione del quotidiano) piuttosto che un risultato gradevole (che potrebbe apparire buono solo alle persone con una vista equiparabile alla vostra).

Ultimo, stimare la nitidezza delle immagini zoomando fino a 1:1 (100%) o più è una sciocca attività. Nei musei, nelle mostre e anche sullo schermo, il pubblico general guarda alle immagini per intero, non con la lente d’ingrandimento. In più, nelle applicazioni pratiche, le fotografie eccedono raramente la risoluzione di 3000x2000 pixel (grosso modo una stampa a 300 DPI su un foglio A4) il quale, per un sensore di 24 Mpx, significa rimpicciolire di un fattore 4. Quando si esamina un file di 24 Mpx a 1:1, si sta guardando ad un’immagine che non esisterà mai. Rendere nitido a livello di pixel, in questo contesto, è uno spreco di tempo e di cicli di CPU.

translations