O que é upsampling bilateral?

9

Eu trabalhei com vários algoritmos de interpolação, incluindo interpolações lineares, cúbicas (e bilineares e bicúbicas), outras bezier (e nurbs, etc.), interpolação lagrange e outras, mas não consegui encontrar nenhuma informação básica que explique o que é upsampling bilateral.

Consegui encontrar informações sobre Upsampling Conjunto Bilateral , o melhor que posso dizer interpola vários dados em paralelo, usando dicas de cada um para ajudar o outro a interpolar melhor, mas estou tendo problemas para separar as informações de BU e JBU.

Alguém é capaz de explicar as idéias básicas sobre o que é um upsampling bilateral?

Alan Wolfe
fonte
11
O artigo original sobre filtragem bilateral, "Filtragem bilateral para imagens em cinza e em cores" , de Tomasi e Manduchi: users.cs.duke.edu/~tomasi/papers/tomasi/tomasiIccv98.pdf
Julien Guertault

Respostas:

9

Parece que você está perguntando duas coisas. Eu realmente não posso falar tecnicamente sobre JBU, mas posso dar uma visão geral dos conceitos necessários e filtragem bilateral em geral. Você provavelmente precisará encontrar mais detalhes, mas isso deve fornecer uma estrutura coerente para começar.


Corrigindo "Imagem" s

Muitas pessoas que processam imagens veem a filtragem como algo a ser feito como um pós-processo ou como uma maneira de dimensionar imagens. A perspectiva do matemático é mais precisa, descritiva e complexa.

Quando você tem um arquivo de imagem, não tem uma imagem real. Você tem "valores" de pixel, que são estritamente válidos apenas no centro dos pixels. Grosso modo, cada pixel tem uma área que assume essa cor. Matematicamente, o que você está fazendo é usar um filtro de reconstrução do vizinho mais próximo para reconstruir a imagem verdadeira a partir dos valores de pixel. Portanto, uma "imagem" é realmente um conjunto de amostras e um filtro de reconstrução, normalmente o vizinho mais próximo .

Reamostragem

Quando você aprimora uma imagem, o que realmente está fazendo é reamostrar . Como você faz isso? Você pega seu sinal e gera um novo conjunto de amostras a partir dele. Mas para uma imagem, eu apenas disse que não temos a imagem real; nós temos que reconstruí-lo primeiro. Portanto, um procedimento típico de reamostragem se parece com o seguinte:

  1. Pegue seus valores de pixel.
  2. Reconstrua uma imagem entre os valores, que vivem nos centros de pixel, usando a filtragem de reconstrução.
  3. Meça um novo conjunto de amostras da imagem reconstruída, possivelmente espaçadas de maneira diferente.
  4. Jogue fora as amostras antigas e use as novas.

O ponto principal é que o filtro de reconstrução usado é o "filtro" usado para reamostragem. Por exemplo, uma "amostra superior bicúbica" usaria um filtro de reconstrução bicúbica.

Acontece que se você usar uma função sinc para o filtro de reconstrução e não encolher a imagem, obtém (teoricamente) a mesma imagem de volta. De fato, se você aumentar a escala da imagem e diminuí-la novamente, obterá a mesma resposta. Isso geralmente não é verdade para qualquer outro filtro.

A maioria dos filtros aproxima um filtro sinc em graus mais ou menos. Desvios resultam em perda de imagem.

Filtragem

Se você usar a mesma taxa de amostragem antes / depois, faça algo chamado "filtragem". Formalmente, a filtragem é realizada uma nova amostragem sem uma alteração na taxa de amostragem. A filtragem é um caso especial de reamostragem.

O único objetivo possível de filtrá-lo para descartar informações (por exemplo, um gaussiano) ou possivelmente também distorcer ou adicionar informações falsas (por exemplo, um Sobel).

Filtragem Bilateral

Você pode usar muitos filtros diferentes para filtrar. A filtragem bilateral é um deles. Eu não acredito que seja considerado o estado da arte para qualquer finalidade agora (embora eu não saiba o que é; provavelmente algo novo de aprendizado de máquina que eu espero).

Um filtro bilateral é um filtro não linear, o que significa que ele não possui uma boa representação de Fourier. Conceitualmente, é como um gaussiano, mas as cores de origem também são consideradas a "distância" de um pixel dos outros. Isso tende a suavizar áreas planas enquanto preserva as bordas.

Upscaling bilateral

Até agora, espero que você veja onde estou indo com isso: qualquer filtro que você possa usar para filtragem, você pode usar para aumentar ou diminuir a escala, que são realmente a mesma coisa (porque tudo isso é uma nova amostra).

Se você implementou um filtro bilateral, deve ser capaz de simplesmente implementar um reamostrador de filtro bilateral - assim como, se você implementou um filtro gaussiano, deve ser capaz de implementar um reamostrador de filtro gaussiano.

A única dificuldade pode ser as definições. Infelizmente, a distinção entre filtragem e reamostragem é sistematicamente confusa a uma inexistência ocasional na literatura de processamento de imagens. Para implementar um filtro do tipo bilateral, eu confiaria fortemente em suas semelhanças com a reamostragem gaussiana. A filtragem bilateral do IIRC (não leio o jornal há anos) é apresentada em termos de pixels, não de amostras.

imallett
fonte
Como a filtragem bilateral funciona especificamente é sobre o que estou tentando obter informações. Você pode elaborar sobre isso?
Alan Wolfe
Um pode emprestar imagens para as explicações no início de aqui
joojaa
@AlanWolfe Supus que você estivesse perguntando por um contexto mais amplo, pois a implementação da filtragem bilateral básica é altamente capaz do Google e bastante simples. Como escrevi, a idéia básica é transformar os valores em fator de peso, não apenas distância.
precisa saber é o seguinte
A resposta de @ joolaa também é bastante agradável e pode ser útil como uma segunda explicação da minha visão geral.
precisa saber é o seguinte
11
Agora que tenho o termo "filtro bilateral", estou tendo mais sorte no Google. Obrigado por isso.
Alan Wolfe
3

Provavelmente, isso não explora toda a profundidade do termo, mas a primeira coisa que me vem à cabeça quando ouço "upsampling bilateral" é a mistura consciente de imagens de baixa resolução em imagens de alta resolução; por exemplo, quando você renderiza a geometria combinada alfa em um buffer de meia resolução (para economia de desempenho) e a compõe de volta no principal destino de renderização. Angelo Pesce escreveu um post que explica bem.

IneQuation
fonte