All about Structural Similarity Index( SSIM): Theory + Code in PyTorch

SSIM was first introduced in the 2004 IEEE paper, Image Quality Assessment: From Error Visibility to Structural Similarity. O resumo fornece uma boa intuição para a idéia por trás do sistema proposto,

métodos objetivos para avaliar a percepção de qualidade de imagem, tradicionalmente, tentou quantificar a visibilidade dos erros (diferenças) entre uma imagem distorcida e uma imagem de referência usando uma variedade de conhecidas propriedades do sistema visual humano. Partindo do pressuposto de que a percepção visual humana é altamente adaptada para extrair informação estrutural de uma cena, introduzimos um quadro complementar alternativo para avaliação da qualidade com base na degradação da informação estrutural.Resumo: os autores formulam 2 pontos essenciais,

  • a maioria das técnicas de avaliação da qualidade da imagem dependem da quantificação de erros entre uma referência e uma imagem de amostra. Uma métrica comum é quantificar a diferença nos valores de cada um dos pixels correspondentes entre a amostra e as imagens de referência (usando, por exemplo, o erro quadrático médio).
  • o sistema de percepção visual humana é altamente capaz de identificar informações estruturais de uma cena e, portanto, identificar as diferenças entre as informações extraídas de uma cena de referência e uma cena de amostra. Assim, uma métrica que replica este comportamento irá executar melhor em tarefas que envolvem a diferenciação entre uma amostra e uma imagem de referência.

Estrutural Índice de Similaridade (SSIM) métrica extrai 3 principais características a partir de uma imagem:

  • Luminância
  • Contraste
  • Estrutura

A comparação entre as duas imagens é realizada na base destas 3 características.A Figura 1 abaixo mostra a disposição e o fluxo do sistema de medição de similaridade estrutural. Sinal X e sinal Y referem-se às imagens de referência e de amostra.

Fig 1: O Sistema De Medição De Similaridade Estrutural. Origem: https://www.cns.nyu.edu/pub/eero/wang03-reprint.pdf

mas o que é que esta métrica calcula?

este sistema calcula o Índice de semelhança estrutural entre 2 imagens dadas que é um valor entre -1 e +1. Um valor de +1 indica que as 2 imagens dadas são muito semelhantes ou o mesmo, enquanto um valor de -1 indica que as 2 imagens dadas são muito diferentes. Muitas vezes estes valores são ajustados para estar na faixa , onde os extremos têm o mesmo significado.

agora, vamos explorar brevemente, como essas características são representadas matematicamente, e como elas contribuem para a pontuação final do SSIM.Luminância: a luminância é medida pela média de todos os valores dos pixels. Sua denotada por µ (Mu) e a fórmula é dada abaixo,

onde xi é o i-ésimo valor do pixel da imagem de x. N é o número total de valores de pixel. Origem: https://www.cns.nyu.edu/pub/eero/wang03-reprint.pdf

  • Contraste: Mede-se tomando o desvio padrão (raiz quadrada da variância) de todos os valores dos pixels. Ele é denotado por σ (sigma) e representado pela fórmula abaixo,

Onde x e y são as duas imagens e mu é a média dos valores dos pixels da imagem. Origem: https://www.cns.nyu.edu/pub/eero/wang03-reprint.pdf
  • Estrutura: A comparação estrutural é feita usando uma fórmula consolidada (mais sobre isso mais tarde), mas em essência, dividimos o sinal de entrada com o seu desvio padrão para que o resultado tenha desvio padrão unitário que permita uma comparação mais robusta.

onde x é a Imagem de Entrada

Então, agora, nós estabelecemos a intuição matemática por trás dos três parâmetros. Mas espera! Ainda não acabámos as contas, um pouco mais. O que nos falta agora, são funções de comparação que podem comparar as duas imagens dadas nesses parâmetros, e, finalmente, uma função de combinação que combina todas elas. Aqui, definimos as funções de comparação e, finalmente, a função de combinação que produz o valor do Índice de semelhança

  • função de comparação de luminância: é definida por uma função, l(x, y) que é mostrada abaixo. μ (mu) representa a média de uma determinada imagem. x e y são as duas imagens que estão sendo comparadas.

onde C1 é uma constante para garantir a estabilidade quando o denominador torna-se 0. C1 é dado por,

Update: ao longo do artigo, não havíamos explorado quais são as constantes K E L nesta equação. Felizmente, um leitor apontou isso nos comentários, e assim, no interesse de tornar este artigo um pouco mais útil, eu vou apenas defini-los aqui.

L é o intervalo dinâmico para valores de pixels (definimo-lo como 255 uma vez que estamos a lidar com imagens padrão de 8 bits). Você pode ler mais sobre quais são os diferentes tipos de imagem e o que eles significam, aqui.K1, K2 são apenas constantes normais,nada de especial!

  • função de comparação de contraste: é definida por uma função c(x, y) que é mostrada abaixo. σ representa o desvio-padrão de uma determinada imagem. x e y são as duas imagens que estão sendo comparadas.

onde C2 é dada por,

  • Estrutura da função de comparação: Ele é definido pela função s(x, y) que é mostrado abaixo. σ representa o desvio-padrão de uma determinada imagem. x e y são as duas imagens que estão sendo comparadas.

onde σ(xy) é definido como,

E, finalmente, a SSIM pontuação é dada por,

onde α > 0, β > 0, γ > 0 denotam a importância relativa de cada uma das métricas. Para simplificar a expressão, se assumirmos, α = β = γ = 1 e C3 = C2/2, podemos obter,

Mas há uma reviravolta na história!

Enquanto você seria capaz de implementar SSIM usando as fórmulas acima, as chances são de que ele não vai ser tão bom como o pronto-para-usar implementações disponíveis, os autores explicam que,

Para a qualidade de imagem avaliação, é útil aplicar a SSIM índice localmente em vez de globalmente. Em primeiro lugar, as características estatísticas da imagem são geralmente altamente espacialmente não-estacionárias. Em segundo lugar, as distorções de imagem, que podem ou não depender das estatísticas de imagem locais, também podem ser variantes de espaço. Em terceiro lugar, em distâncias de visualização típicas, apenas uma área local na imagem pode ser percebida com alta resolução pelo observador humano em uma instância de tempo (por causa da característica de foveation do HVS,). E finalmente, a medição de qualidade localizada Pode fornecer um mapa de qualidade da imagem variando espacialmente, que fornece mais informações sobre a degradação de qualidade da imagem e pode ser útil em algumas aplicações.

resumo: Em vez de aplicar as métricas acima globalmente (isto é, em toda a imagem de uma vez) é melhor aplicar as métricas regionalmente (isto é, em pequenas secções da imagem e tomando a média geral).Este método é frequentemente referido como o Índice de semelhança estrutural média.

devido a esta mudança de abordagem, nossas fórmulas também merecem modificações para refletir o mesmo (note-se que esta abordagem é mais comum e será usada para explicar o código).

(Nota: Se o conteúdo abaixo parece um pouco esmagador, não se preocupe! Se você tiver a essência disso, então passar pelo Código lhe dará uma idéia muito mais clara.)

os autores usam uma função de pesagem gaussiana de 11×11 circular-simétrica (basicamente, uma matriz 11×11 cujos valores são derivados de uma distribuição gaussiana) que move pixel-por-pixel sobre toda a imagem. Em cada etapa, as estatísticas locais e o índice SSIM são calculados dentro da janela local. Agora que estamos a calcular as métricas localmente, nossas fórmulas são revistos,

Onde wi é a gaussiana função de ponderação.Se achou isto pouco intuitivo, não se preocupe! Basta imaginar wi como um multiplicand que é usado para calcular os valores necessários com a ajuda de alguns truques matemáticos.Uma vez que os cálculos são realizados em toda a imagem, nós simplesmente pegamos a média de todos os valores locais do SSIM e chegamos ao valor global do SSIM.

Finalmente feito com a teoria! Agora para o código!

You might also like

Deixe uma resposta

O seu endereço de email não será publicado.