Demosaicizzazione

Un algoritmo di demosaicizzazione (anche di reticolazione, demosaicking o debayering) è un processo di immagine digitale utilizzato per ricostruire un’immagine a colori completa dai campioni di colore incompleti emessi da un sensore di immagine sovrapposto a un array di filtri colorati (CFA). È anche noto come interpolazione CFA o ricostruzione del colore.

La maggior parte delle moderne fotocamere digitali acquisisce immagini utilizzando un singolo sensore di immagine sovrapposto a un CFA, quindi la demosaicizzazione fa parte della pipeline di elaborazione necessaria per rendere queste immagini in un formato visualizzabile.

Molte fotocamere digitali moderne possono salvare le immagini in un formato grezzo, consentendo all’utente di scansionarle con il software, piuttosto che utilizzare il firmware integrato della fotocamera.

Obbiettivo
Lo scopo di un algoritmo di demosaicizzazione è di ricostruire un’immagine a colori (cioè una serie completa di tripli di colore) dai canali di colore spazialmente campionati emessi dal CFA. L’algoritmo dovrebbe avere i seguenti tratti:

Evitare l’introduzione di falsi artefatti cromatici, come alias cromatici, zippering (bruschi cambi di intensità innaturali su un numero di pixel vicini) e frange viola
Massima conservazione della risoluzione dell’immagine
Complessa complessità computazionale per l’elaborazione veloce o l’efficiente implementazione hardware nella videocamera
Capacità di analisi per un’accurata riduzione del rumore

Matrice di filtri colorati
Una matrice di filtri colorati è un mosaico di filtri colorati davanti al sensore di immagine. Commercialmente, la configurazione CFA più comunemente utilizzata è il filtro Bayer illustrato qui. Questo ha alternato i filtri rosso (R) e verde (G) per le righe dispari e alternando i filtri verde (G) e blu (B) per le righe pari. Ci sono il doppio dei filtri verdi di quelli rossi o blu, che soddisfano la maggiore sensibilità dell’occhio umano alla luce verde.

Poiché il sottocampionamento del colore di un CFA per sua natura risulta in aliasing, un filtro anti-aliasing ottico viene generalmente posizionato nel percorso ottico tra il sensore di immagine e l’obiettivo per ridurre gli artefatti falsi del colore (alias cromatici) introdotti dall’interpolazione.

Poiché ogni pixel del sensore si trova dietro un filtro di colore, l’output è un array di valori di pixel, ognuno dei quali indica un’intensità grezza di uno dei tre colori del filtro. Pertanto, è necessario un algoritmo per stimare per ciascun pixel i livelli di colore per tutte le componenti del colore, piuttosto che un singolo componente.

Illustrazione
Per ricostruire un’immagine a colori completa dai dati raccolti dalla matrice di filtro colore, è necessaria una forma di interpolazione per riempire gli spazi vuoti. La matematica qui è soggetta all’implementazione individuale ed è chiamata demosaicizzazione.

In questo esempio, utilizziamo l’interpolazione bicubica di Adobe Photoshop per simulare il circuito di un dispositivo di filtro Bayer come una fotocamera digitale.

L’immagine sottostante simula l’output di un sensore di immagine filtrato Bayer; ogni pixel ha solo un componente rosso, verde o blu. L’immagine originale corrispondente è mostrata accanto alla ricostruzione demosazionata alla fine di questa sezione.

L’immagine ricostruita è tipicamente accurata in aree di colore uniforme, ma ha una perdita di risoluzione (dettagli e nitidezza) e ha artefatti del bordo (ad esempio, i bordi delle lettere hanno margini di colore visibili e un po ‘di rugosità).

algoritmi

Interpolazione semplice
Questi algoritmi sono esempi di interpolazione multivariata su una griglia uniforme, usando operazioni matematiche relativamente semplici su istanze vicine dello stesso componente di colore. Il metodo più semplice è l’interpolazione più vicina, che copia semplicemente un pixel adiacente dello stesso canale di colore. Non è adatto a qualsiasi applicazione in cui la qualità è importante, ma può essere utile per generare anteprime con risorse computazionali limitate. Un altro metodo semplice è l’interpolazione bilineare, per cui il valore rosso di un pixel non rosso viene calcolato come la media dei due o quattro pixel rossi adiacenti, e allo stesso modo per il blu e il verde. I metodi più complessi che interpolano in modo indipendente all’interno di ciascun piano di colore includono l’interpolazione bicubica, l’interpolazione spline e il ricampionamento di Lanczos.

Sebbene questi metodi possano ottenere buoni risultati in regioni di immagine omogenee, sono soggetti a gravi artefatti di demosaurazione in regioni con bordi e dettagli quando vengono utilizzati con CFA a colori puri. Tuttavia, l’interpolazione lineare può ottenere risultati molto buoni se combinata con un CFA spaziale-spettrale (pancromatico). Si potrebbe sfruttare semplici modelli di formazione di immagini per la demosaicizzazione. Nelle immagini naturali all’interno dello stesso segmento, il rapporto dei colori deve essere preservato. Questo fatto è stato sfruttato in un’interpolazione sensibile alle immagini per la demosaicizzazione.

Correlazione pixel all’interno di un’immagine
Algoritmi di demosaicizzazione più sofisticati sfruttano la correlazione spaziale e / o spettrale dei pixel all’interno di un’immagine a colori. La correlazione spaziale è la tendenza dei pixel ad assumere valori cromatici simili all’interno di una piccola regione omogenea di un’immagine. La correlazione spettrale è la dipendenza tra i valori dei pixel di diversi piani di colore in una piccola area dell’immagine.

Questi algoritmi includono:

L’interpolazione di Numero variabile di gradienti calcola i gradienti vicino al pixel di interesse e utilizza i gradienti più bassi (che rappresentano parti più uniformi e più simili dell’immagine) per effettuare una stima. È usato nelle prime versioni di dcraw e soffre di artefatti di colore.
Pixel Grouping utilizza ipotesi sullo scenario naturale per effettuare stime. Ha meno artefatti di colore sulle immagini naturali rispetto al metodo Variable Number of Gradients; è stato introdotto in dcraw da rel. 8.71 come “Raggruppamento dei pixel modellati”.
L’interpolazione adattata all’omogeneità adattiva seleziona la direzione dell’interpolazione in modo da massimizzare una metrica di omogeneità, riducendo quindi in genere gli artefatti del colore. È stato implementato nelle versioni recenti di dcraw.

Super risoluzione video / demosaicizzazione
È stato dimostrato che la super risoluzione e la demosaicizzazione sono due facce dello stesso problema ed è ragionevole indirizzarle in un contesto unificato. Nota che entrambi questi problemi risolvono il problema dell’aliasing. Pertanto, specialmente nel caso della ricostruzione di video (multi-frame), un approccio di super-risoluzione e demosaicing congiunta fornisce la soluzione ottimale.

compromessi
Alcuni metodi possono produrre risultati migliori per scene naturali, e alcuni per materiale stampato, per esempio. Ciò riflette il problema intrinseco nella stima dei pixel che non conosciamo per certo. Naturalmente, c’è anche l’onnipresente compromesso tra velocità e qualità di stima.

Utilizzare nel software di elaborazione delle immagini del computer
Quando si ha accesso ai dati grezzi delle immagini da una fotocamera digitale, si può usare un software per computer con una varietà di diversi algoritmi di demosaicizzazione invece di limitarsi a quello integrato nella fotocamera. Alcuni programmi di sviluppo non elaborati, come RawTherapee, offrono all’utente la possibilità di scegliere quale algoritmo utilizzare. La maggior parte dei programmi, tuttavia, sono codificati per utilizzare un metodo particolare. Le differenze nel rendering dei minimi dettagli (e della grana) che derivano dalla scelta dell’algoritmo di demosaicizzazione sono tra le principali differenze tra i vari sviluppatori grezzi; spesso i fotografi preferiscono un particolare programma per ragioni estetiche legate a questo effetto.

Gli artefatti del colore dovuti alla demosaicizzazione forniscono indizi importanti per identificare i falsi foto.