Quali sono i pro e i contro dei diversi algoritmi di demosaicing Bayer?


25

I sensori Bayer utilizzano un modello di pixel rossi, verdi e blu e li uniscono in un'immagine a colori finale, con un pixel per ogni singolo sensore di colore . Questo potrebbe essere fatto attraverso una combinazione "ingenua" di sensori vicini, ma ho sentito parlare di approcci più complicati con nomi come AHD, HPHD e AMaZE.

Quali sono questi altri approcci e quali vantaggi apportano? Hanno punti deboli oltre la complessità di calcolo?

Immagino che l'approccio utilizzato per il JPEG all'interno della fotocamera sia più strettamente protetto, ma chiaramente molta ricerca e sviluppo va in questo settore. La limitata potenza di elaborazione disponibile nella fotocamera impone qualche compromesso in questo settore?


Potrei sbagliarmi, ma avevo l'impressione che il demosaiacing si verifichi a porte chiuse altrimenti l'immagine soffrirebbe di aliasing. C'è stato un articolo interessante su questo in una delle recenti Fotografia popolare che parla del Sigma (sensore Foveon X3) che è una delle poche fotocamere che non ha un sensore bayer.
Jakub Sisak GeoGraphics,

1
Bene, un po 'di indagine indica che AHD, o Demosaicing adattato all'omogeneità, è lo "standard del settore" e sembra essere utilizzato da ACR / LR (almeno come in un paio di versioni fa ... chissà se hanno introdotto qualcosa di più avanzato con ACR 6.xe LR4.x). Sembra un algoritmo ponderato che mira a ridurre il falso colore.
jrista

7
@Jakub: la demosaicing avviene all'interno della fotocamera per le immagini JPEG. L'intero punto di un'immagine RAW è che NON è stato ancora sottoposto a demo, ed è la registrazione "grezza" dei dati pixel direttamente dal sensore senza alcuna elaborazione aggiuntiva (al di fuori dell'amplificazione di base per ottenere l'ISO necessario). filtro passa-basso (filtro AA) elimina l'aliasing fisicamente "sfocando" le frequenze spaziali al di sotto della velocità di nyquist del sensore.
jrista

Tieni presente che i filtri di colore "Rosso", "Verde" e "Blu sui nostri array Bayer non sono uguali agli emettitori Rosso, Verde e Blu sui nostri dispositivi RGB. È un peccato che usiamo gli stessi nomi per entrambi.
Michael C

Eh, sono davvero abbastanza vicini da trattare in quel modo. Non otterrai un colore perfetto, ma è nel campo da baseball. Guarda la vista ingrandita su petapixel.com/2013/02/12/… per esempio - solo visivamente, i colori dei filtri sono sicuramente quelli che li identifichiamo.
mattdm,

Risposte:


19

Sono stato sorpreso alcuni mesi fa nello scoprire che la mia SDK per la visione artificiale utilizzava la "interpolazione" del vicino più vicino nella sua funzione bayer integrata. È il tipo più veloce, ma peggiore, che dà bordi duri, specialmente quando inizi a fare matematica sui canali dell'immagine per la costanza del colore o l'invarianza della luminosità. Ho trovato questa recensione di algoritmi:

http://www.arl.army.mil/arlreports/2010/ARL-TR-5061.pdf

Il passo successivo sono le interpolazioni bilineari e bicubiche che possono essere calcolate abbastanza velocemente perché equivalgono solo a gusci di convoluzione. Questi danno denti di sega colorati su bordi inclinati, più bilineari che bicubici.

Può essere visto in questo documento e con dati di qualità quantificati su 5 diversi algoritmi:

http://research.microsoft.com/en-us/um/people/lhe/papers/icassp04.demosaicing.pdf

Questo è il motivo per cui hanno fatto interpolazioni basate sulla direzione del bordo. Tuttavia, questi trattano il verde come un "canale più importante" (poiché ha la migliore risoluzione e rappresentano la maggior parte della nostra sensibilità visiva e della risoluzione dei nostri occhi). E poi creano blu e rosso in funzione del canale verde, in una tonalità che conserva la moda. Questo a sua volta rende il contenuto ad alta frequenza del canale verde più soggetto a errori. La complessità è maggiore in quanto devono rilevare cosa sta succedendo e richiedono passaggi multipli. Moiré e mais sono manufatti comuni a questi tipi di interpolazione.

Qui mostrano esempi di omogeneità adattativa Demosaicing e versioni bilineari con e senza additivi per la conservazione della tonalità e per la protezione dei bordi:

http://math.auburn.edu/~kilgota/ahd_bayer.pdf

Quel documento favorisce AHD e non mostra la parte negativa. In questa pagina puoi vedere i diversi artefatti del modello da Demosaicing dell'omogeneità adattiva, Raggruppamento di pixel con pattern e Numero variabile di gradienti (passa il mouse sopra i nomi):

http://www.ruevski.com/rawhistogram/40D_Demosaicing/40D_DemosaicingArtifacts.html

In breve, ci sono una serie di ipotesi impiegate in questi algoritmi e gli artefatti si verificano quando l'assunto non è valido:

  • Levigatezza per canale. Se i vicini più vicini non sono gli stessi, rendere più agevole la transizione. Manufatto: seghe / chiusure lampo, morbidezza
  • Costanza di luminosità con bordi diretti (direzione bilineare). Manufatti: effetto moiré ad alta frequenza, frange di colore
  • Costanza di tonalità. se in un quartiere la tonalità è la stessa, quindi se un canale cambia, gli altri devono seguire. Manufatti: cerniere di colore sui bordi di colore
  • La costanza può essere prevista dai verdi. Manufatto: labirinti

Domanda veloce - nell'ultima riga, intendi "mais" (tipi di mais?) O "labirinti"? In entrambi i casi, apprezzerei un po 'più di espansione di ciò che potrebbe essere questo tipo di artefatto.
Mattdm,

topo in un labirinto.
Michael Nielsen,

Cool :) Penso di conoscere l'artefatto a cui si riferisce, ma non ne sono del tutto sicuro. È un modello casuale a livello di pixel di brevi linee orizzontali e verticali (possibilmente mescolate con rumore), giusto? Interessante sapere da dove viene - in effetti, ho quasi fatto una domanda a riguardo l'altro giorno, perché la mia ipotesi era che si tratta di un artefatto NR.
Mattdm,

sono quelle righe sì e deriva dal modo in cui l'algoritmo bayer tenta di indovinare i dati.
Michael Nielsen,

5

Ho iniziato a giocarci un po 'e ho scoperto che l'approccio ingenuo non è poi così male. Questo è semplicemente trattare ogni colore separatamente e interpolare per ottenere l'intervallo tra i pixel. Il principale svantaggio di questo è che se stai sbirciando pixel in un luogo in cui c'è un contrasto elevato, puoi vedere un po 'di frange di colore. Detto in altro modo, se hai un'area grigio chiaro a fianco di un'area nera, vedrai alcuni pixel colorati al limite. Fortunatamente questi in media escono in generale, ma se il bordo è quasi verticale o quasi orizzontale si aggira in media su una bassa frequenza. Lo stesso effetto può essere ancora più evidente su sottili linee luminose quasi verticali o orizzontali.

Ecco un esempio Questa foto è stata scattata deliberatamente come una foto di prova:

Notare la fascia apparente della linea di finiture cromate. Per metterlo in prospettiva, ecco il frame completo:

Ho pensato a un approccio alternativo, ma finora ci sono sempre state altre cose da fare prima. Questo schema cercherebbe di trovare prima solo la luminosità . Questo sarebbe il singolo canale di dati immagine se l'immagine fosse in bianco e nero. Ogni sensel contribuisce in parte, anche se i colori non contribuiscono allo stesso modo. Una volta determinata l'intensità, interpoli i colori come nel metodo ingenuo, ma utilizzi il risultato solo per impostare i colori in modo tale da preservare l'intensità. L'intensità avrebbe una larghezza di banda maggiore o sarebbe più nitida in termini fotografici rispetto alle informazioni sulla tonalità. La TV analogica ha usato questo trucco per ridurre i requisiti di larghezza di banda di un'immagine a colori. Se la sono cavata perché il sistema visivo umano attribuisce maggiore importanza all'intensità rispetto ai colori, in particolare al rosso.

Comunque, questi sono solo alcuni pensieri. Come ho detto, in realtà non l'ho ancora provato o elaborato i dettagli. Un giorno


3

Comprendo che le diverse versioni di processo in Lightroom (fino ad ora abbiamo 2003, 2010 e 2012) corrispondono tra l'altro a diversi algoritmi di demosaicing. Un altro software interessante è UFRaw che offre quanto segue (citazione dalla pagina Web):


Dopo aver impostato il bilanciamento del bianco, UFRaw interpola il modello di Bayer.

  • L'interpolazione AHD è l'interpolazione adattata all'omogeneità diretta. È l'interpolazione predefinita.
  • L'interpolazione del VNG utilizza l'interpolazione del numero variabile di gradienti basato sulla soglia. Questa era l'interpolazione predefinita ed è ancora molto buona .
  • L'interpolazione a quattro colori VNG dovrebbe essere usata se ottieni artefatti di motivi Bayer nella tua foto (vedi le FAQ di DCRaw per maggiori dettagli).
  • L'interpolazione PPG sta per interpolazione Patterned Pixel Grouping. È quasi buono quanto sopra e molto più veloce.
  • L'interpolazione bilineare è un'interpolazione di base ma è molto più veloce.

Questo potrebbe fornire del materiale per sperimentare. A proposito, UFRaw sembra essere open source, il che ti consente di dare un'occhiata agli algoritmi stessi.


0

In astrofotografia, questo argomento è studiato a fondo, perché quando si utilizza un sensore di colore one-shot, si verifica una notevole perdita di risoluzione a causa del debayering. Il lato positivo è che l'utilizzo di un file RAW consente di accedere ai dati originali e può essere elaborato prima dell'applicazione del colore. Questo argomento è strettamente legato al lato software delle cose.

In breve, se hai accesso a molte immagini con gli stessi dati del soggetto (che è qualcosa fatto per ridurre il rumore del sensore), puoi scambiare una conversione a singolo fotogramma con AHD per un approccio piovigginoso in grado di recuperare la risoluzione persa. La scelta dipende dal tipo di dati di origine disponibili. La maggior parte dei fotografi ha una sola immagine da usare.

Alcuni software che ho usato con le scelte per i processi di debayering sono: Deep Sky Stacker e Pix Insight. Ce ne sono anche altri. Molti sono basati su DCRAW .

Ecco il link per l'articolo nella pagina Deep Sky Stacker in cui discutono alcune delle opzioni: scelte di debayering


1
Questo è interessante (grazie!) Ma non credo che risponda alla domanda. L'ultimo collegamento sembra promettente ma si concentra sulle alternative alla demosaicing. Sull'argomento a portata di mano, dice solo "Sono disponibili molti metodi di interpolazione diversi che producono risultati da cattivi a buoni (lineari, gradiente ...) ma tutti stanno degradando la qualità dell'immagine finale indovinando quali dovrebbero essere i colori mancanti. " Ma non va oltre nei dettagli pratici.
mattdm,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.