Che cos'è il upsampling bilaterale?


9

Ho lavorato con vari algoritmi di interpolazione tra cui lineare, cubico (e bilineare e bicubico), altre interpolazioni basate su bezier (e nurbs, ecc.), Interpolazione lagrange e alcuni altri, ma non sono stato in grado di trovare alcuna informazione di base che spieghi cos'è il upsampling bilaterale.

Sono stato in grado di trovare informazioni sul Upsampling bilaterale congiunto che, per quanto posso dire, interpola più pezzi di dati in parallelo, usando i suggerimenti di ciascuno per aiutare l'altro a interpolare meglio, ma ho problemi a separare le informazioni di BU e JBU.

Qualcuno è in grado di spiegare le idee di base di cosa riguarda l'upsampling bilaterale?


1
L'articolo originale sul filtro bilaterale, "Filtro bilaterale per immagini grigie e colorate
Julien Guertault

Risposte:


9

Sembra che tu stia chiedendo due cose. Non posso davvero parlare tecnicamente di JBU, ma posso dare una panoramica dei concetti necessari e del filtro bilaterale in generale. Probabilmente dovrai trovare più dettagli da solo, ma questo dovrebbe dare una struttura coerente da cui partire.


Correzione di "Immagine"

Molte persone che elaborano immagini vedono il filtro come qualcosa da fare come post-elaborazione o come un modo per ridimensionare le immagini. La prospettiva del matematico è più accurata, descrittiva e complessa.

Quando hai un file di immagine, non hai un'immagine reale. Hai "valori" di pixel, che sono strettamente validi solo al centro dei pixel. In parole povere, ogni pixel ha un'area che assume quel colore. Matematicamente, quello che stai facendo è usare un filtro di ricostruzione più vicino per ricostruire l'immagine vera dai valori dei pixel. Quindi una "immagine" è in realtà un insieme di campioni e un filtro di ricostruzione, in genere il più vicino vicino .

ricampionamento

Quando ingrandisci un'immagine, quello che stai veramente facendo è il ricampionamento . Come fai a fare questo? Prendi il tuo segnale e generi un nuovo set di campioni da esso. Ma per un'immagine, ho appena detto che non abbiamo l'immagine reale; dobbiamo prima ricostruirlo. Quindi una tipica procedura di ricampionamento è simile alla seguente:

  1. Prendi i tuoi valori di pixel.
  2. Ricostruisci un'immagine tra i valori, che vivono in pixel centre, usando il filtro di ricostruzione.
  3. Misura una nuova serie di campioni dall'immagine ricostruita, possibilmente distanziati in modo diverso.
  4. Butta via i vecchi campioni e usa quelli nuovi.

Il punto chiave è che il filtro di ricostruzione utilizzato è il "filtro" utilizzato per il ricampionamento. Ad esempio, un "upsub bicubico" userebbe un filtro per ricostruzione bicubica.

Si scopre che se si utilizza una funzione sinc per il filtro di ricostruzione e non si riduce l'immagine, si ottiene (teoricamente) la stessa immagine indietro. In effetti, se ingrandisci l'immagine e poi ridimensionala di nuovo, otterrai la stessa risposta. Questo non è generalmente vero per qualsiasi altro filtro.

La maggior parte dei filtri approssima un filtro sinc a più o meno gradi. Le deviazioni causano la perdita di immagine.

filtraggio

Se si utilizza la stessa frequenza di campionamento prima / dopo, si fa qualcosa chiamato "filtro". Formalmente, il filtro viene ricampionato senza una variazione della frequenza di campionamento. Il filtro è un caso speciale di ricampionamento.

L'unico scopo possibile per filtrarlo per eliminare informazioni (ad esempio un gaussiano) o eventualmente anche per distorcere o aggiungere informazioni spurie (ad esempio un Sobel).

Filtro bilaterale

È possibile utilizzare molti filtri diversi per il filtro. Il filtro bilaterale è uno di questi. Non credo che sia considerato allo stato dell'arte per qualsiasi scopo ora (anche se non so cosa sia; probabilmente qualche cosa nuova di apprendimento automatico che mi aspetto).

Un filtro bilaterale è un filtro non lineare, il che significa che non ha una bella rappresentazione di Fourier. Concettualmente, è come un gaussiano, ma i colori sorgente stessi incidono anche sulla "distanza" di un pixel dagli altri. Ciò tende a levigare le aree piane preservando i bordi.

Upscaling bilaterale

Ormai, spero che tu veda dove sto andando con questo: qualsiasi filtro che puoi usare per filtrare, puoi usare per l'upscaling o il downscaling, che sono davvero la stessa cosa (perché tutto è ricampionamento).

Se hai implementato un filtro bilaterale, dovresti essere in grado di implementare semplicemente un ricampionatore di filtri bilaterale - così come, se hai implementato un filtro gaussiano, dovresti essere in grado di implementare un ricampionatore di filtro gaussiano.

L'unica difficoltà può essere le definizioni. Sfortunatamente, la distinzione tra filtraggio e ricampionamento è sistematicamente confusa con la occasionale inesistenza nella letteratura sull'elaborazione delle immagini. Per l'implementazione di un filtro di tipo bilaterale, farei molto affidamento sulle sue somiglianze con il ricampionamento gaussiano. Il filtro bilaterale IIRC (non leggo il documento da anni) è proposto in termini di pixel, non di campioni.


Il funzionamento specifico del filtro bilaterale è ciò su cui sto cercando di ottenere informazioni. Puoi approfondire questo?
Alan Wolfe,

Si possono prestare immagini per le spiegazioni all'inizio da qui
joojaa,

@AlanWolfe Ho pensato che stavi chiedendo un contesto più ampio, poiché l'implementazione del filtro bilaterale di base è altamente capace di Google e piuttosto semplice. Come ho scritto, l'idea di base è quella di fare in modo che i valori tengano conto del peso, non solo della distanza.
imallett,

Anche la risposta di @ joolaa è piuttosto carina e può essere utile come seconda spiegazione della mia panoramica.
imallett,

1
Ora che ho il termine "filtro bilaterale", sto avendo più fortuna su Google. Grazie per quello
Alan Wolfe,

3

Questo probabilmente non esplora la profondità del termine, ma la prima cosa che mi viene in mente quando sento il "sovracampionamento bilaterale" è la fusione consapevole delle profondità delle immagini a bassa risoluzione con quelle ad alta risoluzione; ad esempio, quando si esegue il rendering della geometria alfa-blended in un buffer a mezza risoluzione (per un risparmio sulle prestazioni) e poi si ricomposta sulla destinazione di rendering principale. Angelo Pesce ha scritto un post che lo spiega bene.

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.