Demosaicing

Um algoritmo de demosaicing é um processo de imagem digital usado para reconstruir uma imagem totalmente colorida a partir da saída de amostras de cores incompletas de um sensor de imagem sobreposto com uma matriz de filtro de cores (CFA). Também é conhecida como interpolação de CFA ou reconstrução de cor.

A maioria das câmeras digitais modernas adquire imagens usando um único sensor de imagem sobreposto com um CFA, de modo que o demosaicing faz parte do pipeline de processamento necessário para renderizar essas imagens em um formato visível.

Muitas câmeras digitais modernas podem salvar imagens em um formato bruto, permitindo que o usuário as desenrole usando software, em vez de usar o firmware interno da câmera.

Objetivo
O objetivo de um algoritmo de demosaicing é reconstruir uma imagem totalmente colorida (isto é, um conjunto completo de triplas de cores) a partir dos canais de cor espacialmente subamostrados emitidos do CFA. O algoritmo deve ter os seguintes traços:

Evitar a introdução de artefatos de cores falsas, como apelidos cromáticos, zíperes (mudanças bruscas de intensidade não naturais em vários pixels vizinhos) e franjas roxas
Máxima preservação da resolução da imagem
Baixa complexidade computacional para processamento rápido ou implementação eficiente de hardware na câmera
Amenability para análise para redução precisa de ruído

Matriz de filtros de cores
Um array de filtros de cores é um mosaico de filtros coloridos na frente do sensor de imagem. Comercialmente, a configuração CFA mais comumente usada é o filtro Bayer ilustrado aqui. Isto alterna filtros vermelhos (R) e verdes (G) para linhas ímpares e alterna filtros verdes (G) e azuis (B) para linhas pares. Há duas vezes mais filtros verdes que os vermelhos ou azuis, atendendo à maior sensibilidade do olho humano à luz verde.

Como a subamostragem de cores de um CFA, por sua natureza, resulta em aliasing, um filtro óptico anti-aliasing é normalmente colocado no caminho óptico entre o sensor de imagem e a lente para reduzir os artefatos de cores falsas (aliases cromáticos) introduzidos por interpolação.

Como cada pixel do sensor está por trás de um filtro de cores, a saída é uma matriz de valores de pixel, cada um indicando uma intensidade bruta de uma das três cores de filtro. Assim, é necessário um algoritmo para estimar, para cada pixel, os níveis de cor de todos os componentes de cor, em vez de um único componente.

Ilustração
Para reconstruir uma imagem totalmente colorida a partir dos dados coletados pelo array de filtragem de cores, uma forma de interpolação é necessária para preencher os espaços em branco. A matemática aqui está sujeita à implementação individual e é chamada de demosaicing.

Neste exemplo, usamos a interpolação bicúbica do Adobe Photoshop para simular o circuito de um dispositivo de filtro da Bayer, como uma câmera digital.

A imagem abaixo simula a saída de um sensor de imagem filtrado da Bayer; Cada pixel tem apenas um componente vermelho, verde ou azul. A imagem original correspondente é mostrada ao lado da reconstrução demosaiced no final desta seção.

A imagem reconstruída é normalmente precisa em áreas uniformemente coloridas, mas tem uma perda de resolução (detalhe e nitidez) e possui artefatos de borda (por exemplo, as bordas das letras têm franjas de cor visível e alguma aspereza).

Algoritmos

Interpolação simples
Esses algoritmos são exemplos de interpolação multivariada em uma grade uniforme, usando operações matemáticas relativamente simples em instâncias próximas do mesmo componente de cor. O método mais simples é a interpolação de vizinho mais próximo, que simplesmente copia um pixel adjacente do mesmo canal de cor. Não é adequado para qualquer aplicação em que a qualidade é importante, mas pode ser útil para gerar visualizações de recursos computacionais limitados. Outro método simples é a interpolação bilinear, em que o valor vermelho de um pixel não vermelho é calculado como a média dos dois ou quatro pixels vermelhos adjacentes e, da mesma forma, para azul e verde. Métodos mais complexos que interpolam independentemente dentro de cada plano de cor incluem interpolação bicúbica, interpolação spline e reamostragem Lanczos.

Embora estes métodos possam obter bons resultados em regiões de imagem homogênea, eles são propensos a artefatos de demosaicing severos em regiões com bordas e detalhes quando usados ​​com CFAs de cor pura. No entanto, a interpolação linear pode obter resultados muito bons quando combinada com um CFA espaciais espectral (pancromático). Poder-se-ia explorar modelos simples de formação de imagens para demosaicing. Em imagens naturais dentro do mesmo segmento, a proporção de cores deve ser preservada. Esse fato foi explorado em uma interpolação sensível à imagem para demosaicing.

Correlação de pixels dentro de uma imagem
Algoritmos demosaicing mais sofisticados exploram a correlação espacial e / ou espectral de pixels dentro de uma imagem colorida. A correlação espacial é a tendência de os pixels assumirem valores de cores semelhantes dentro de uma pequena região homogênea de uma imagem. A correlação espectral é a dependência entre os valores de pixels de diferentes planos de cores em uma pequena região de imagem.

Esses algoritmos incluem:

A interpolação Variable Number of Gradients calcula os gradientes próximos ao pixel de interesse e usa os gradientes mais baixos (representando partes mais suaves e mais semelhantes da imagem) para fazer uma estimativa. Ele é usado nas primeiras versões do dcraw e sofre com artefatos de cores.
O agrupamento de pixels usa suposições sobre cenários naturais ao fazer estimativas. Possui menos artefatos de cores em imagens naturais do que o método Número de Gradientes Variável; foi introduzido no dcraw do rel. 8,71 como “Agrupamento de pixels padronizados”.
A interpolação adaptativa orientada à homogeneidade seleciona a direção da interpolação de modo a maximizar uma métrica de homogeneidade, minimizando, assim, tipicamente, os artefatos de cor. Foi implementado em versões recentes do dcraw.

Super-resolução de vídeo / demosaicing
Mostrou-se que a super-resolução e a demosaicing são duas faces do mesmo problema e é razoável abordá-las em um contexto unificado. Observe que esses dois problemas resolvem o problema de alias. Portanto, especialmente no caso da reconstrução de vídeo (multi-frame), uma abordagem conjunta de super-resolução e demosaicing fornece a solução ideal.

Compensações
Alguns métodos podem produzir melhores resultados para cenas naturais e outros para material impresso, por exemplo. Isso reflete o problema inerente na estimativa de pixels que não sabemos ao certo. Naturalmente, há também a troca onipresente de velocidade versus qualidade de estimativa.

Use no software de processamento de imagem de computador
Quando se tem acesso aos dados de imagem bruta de uma câmera digital, pode-se usar um software de computador com uma variedade de diferentes algoritmos de demosaicing, em vez de se limitar àquele embutido na câmera. Alguns programas de desenvolvimento brutos, como o RawTherapee, dão ao usuário a opção de escolher qual algoritmo deve ser usado. A maioria dos programas, no entanto, é codificada para usar um método específico. As diferenças na renderização dos detalhes mais finos (e textura de grãos) que vêm da escolha do algoritmo de demosaicing estão entre as principais diferenças entre vários desenvolvedores brutos; Muitas vezes, os fotógrafos preferirão um determinado programa por razões estéticas relacionadas a esse efeito.

Os artefatos de cores devido ao demosaicing fornecem pistas importantes para identificar falsificações de fotos.