An Introduction to Super-Resolution using Deep Learning

An elaborate discussion on the various Components, Loss Functions and Metrics used for Super Resolution using Deep Learning.

Foto: Jeremy Thomas, em Unsplash

Introdução

de Super-Resolução é o processo de recuperação de uma HR (Alta Resolução) da imagem a partir de um dado Baixa Resolução (LR) de imagem. Uma imagem pode ter uma “menor resolução” devido a uma menor resolução espacial (ou seja, tamanho) ou devido a um resultado de degradação (como desfocação). Podemos relacionar o RH e LR imagens através da seguinte equação: LR = degradation(HR)

Uma baixa resolução de imagem mantidos para além da sua versão de alta resolução. (Foto de Jarrad Horne em Unsplash)

claramente, ao aplicar uma função de degradação, obtemos a imagem LR da imagem HR. Mas, podemos fazer o inverso? No caso ideal, sim! Se soubermos a função de degradação exata, aplicando seu inverso à imagem LR, podemos recuperar a imagem HR.

mas, aí está o problema. Normalmente não conhecemos a função de degradação antes da mão. Estimar diretamente a função de degradação inversa é um problema mal colocado. Apesar disso, técnicas de aprendizagem profunda têm provado ser eficazes para Super Resolução.

Este blog centra-se principalmente em proporcionar uma introdução à realização de Super Resolução usando a aprendizagem profunda usando métodos de treinamento supervisionado. Algumas importantes funções de perda e métricas também são discutidas. Grande parte do conteúdo é derivado desta revisão literária a que o leitor pode se referir.

métodos supervisionados

como mencionado anteriormente, a aprendizagem profunda pode ser usada para estimar a imagem de alta resolução (HR) dada uma imagem de baixa resolução (LR). Usando a imagem HR como um alvo (ou terra-verdade) e a imagem LR como uma entrada, podemos tratar isso como um problema de aprendizagem supervisionado.nesta secção, agrupamos várias abordagens de aprendizagem profunda da forma como as camadas de convolução são organizadas. Antes de avançarmos para os grupos, é apresentada uma primer sobre a preparação de dados e tipos de convoluções. As funções de perda utilizadas para otimizar o modelo são apresentadas separadamente no final deste blog.

preparar os dados

um método fácil de obter dados LR é degradar os dados HR. Isto é feito muitas vezes por borrar ou adicionar ruído. Imagens de menor resolução espacial também podem ser dimensionadas por um método de upsampling clássico, como a interpolação Bilinear ou bicúbica. Artefatos JPEG e quantização também podem ser introduzidos para degradar a imagem.

Degrading a high resolution image to obtain a low resolution version of it. (Foto de Jarrad Horne em Unsplash)

uma coisa importante a notar é que é recomendado armazenar a imagem HR em um formato comprimido não comprimido (ou sem perdas). Isto é para evitar a degradação da qualidade da imagem HR devido à compressão lossy, que pode dar desempenho sub-ideal.

tipos de convoluções

além das convoluções clássicas 2D, várias variantes interessantes podem ser usadas em redes para melhorar os resultados. Convoluções dilatadas (Atrous) podem fornecer um maior campo de visão eficaz, portanto usando informações que são separadas por uma grande distância. As conexões de salto, a agregação de pirâmide espacial e blocos densos motivam a combinação de características de baixo e alto nível para melhorar o desempenho.

Network design strategies. (Fonte)

a imagem acima menciona uma série de estratégias de design de rede. Você pode se referir a este artigo para mais informações. Para uma primer sobre os diferentes tipos de convoluções comumente usadas no aprendizado profundo, você pode se referir a este blog.

Group 1-Pre-Upsampling

neste método, as imagens de baixa resolução São primeiro interpoladas para obter uma imagem de alta resolução “grosseira”. Agora, CNNs são usados para aprender um mapeamento de fim a fim das imagens interpoladas de baixa resolução para as imagens de alta resolução. A intuição era de que pode ser mais fácil para primeiro upsample as imagens de baixa resolução usando métodos tradicionais (como interpolação Bilinear) e, em seguida, refinar a resultante do que aprender um mapeamento direto de um espaço de baixa dimensão para um espaço de alta dimensão.

a typical pre-upsampling network. (Source)

você pode se referir à página 5 deste artigo para alguns modelos usando esta técnica. A vantagem é que, uma vez que o upsampling é tratado por métodos tradicionais, a CNN só precisa aprender a refinar a imagem grosseira, que é mais simples. Além disso, como não estamos usando convoluções transpostas aqui, artefatos de tabuleiro de xadrez talvez contornados. No entanto, a desvantagem é que os métodos pré-definidos de upsampling podem amplificar o ruído e causar borrão.

Grupo 2-Post-Upsampling

neste caso, as imagens de baixa resolução são passadas para o CNN como tal. Upsampling é realizado na última camada usando uma camada aprendível.

a typical post-upsampling network. (Fonte)

A vantagem deste método é que a extração de características é realizada no menor espaço dimensional (antes de amostragem) e, portanto, a complexidade computacional é reduzido. Além disso, através de uma camada de uppsampling aprendível, o modelo pode ser treinado de ponta a ponta.

Grupo 3— Upsampling progressivo

no grupo acima, apesar da complexidade computacional ter sido reduzida, apenas uma única convolução upsampling foi usada. Isto torna o processo de aprendizagem mais difícil para grandes fatores de escala. Para resolver esta desvantagem, um quadro de uppsampling progressivo foi adotado por trabalhos como Laplacian Pyramid SR Network (LapSRN) e Progressive SR (ProSR). Os modelos neste caso usam uma cascata de CNNs para reconstruir progressivamente imagens de alta resolução em fatores de escala menores a cada passo.

a typical progressive-upsampling network. (Source)

decompondo uma tarefa difícil em tarefas mais simples, a dificuldade de aprendizagem é muito reduzida e melhor desempenho pode ser obtido. Além disso, estratégias de aprendizagem como a aprendizagem curricular podem ser integradas para reduzir ainda mais a dificuldade de aprendizagem e melhorar o desempenho final.

Grupo 4 — amostragem iterativa para cima e para baixo

outra arquitetura de modelo popular é a ampulheta (ou U-Net) estrutura. Algumas variantes, como a rede Stacked Hourglass, usam várias estruturas de ampulheta em série, efetivamente alternando entre o processo de upsampling e downsampling.

a typical iterative up-and-down sampling network. (Fonte)

os modelos sob esta estrutura podem minerar melhor as relações profundas entre os pares de imagens LR-HR, proporcionando assim resultados de reconstrução de maior qualidade.

funções de perda

funções de perda são usadas para medir a diferença entre a imagem de alta resolução gerada e a imagem de alta resolução da verdade do solo. Esta diferença (erro) é então usada para otimizar o modelo de aprendizagem supervisionado. Existem várias classes de funções de perda onde cada uma penaliza um aspecto diferente da imagem gerada.

muitas vezes, mais de uma função de perda é usada ponderando e somando os erros obtidos de cada função de perda individualmente. Isso permite que o modelo se concentre em aspectos contribuídos por múltiplas funções de perda simultaneamente.

total_loss = weight_1 * loss_1 + weight_ 2 * loss_2 + weight_3 * loss_3

nesta secção vamos explorar algumas classes populares de funções de perda utilizadas para a formação dos modelos.

perda de pixels

perda de pixels é a classe mais simples de funções de perda onde cada pixel na imagem gerada é diretamente comparado com cada pixel na imagem Terra-verdade. Funções de perda Popular, tais como a perda L1 ou L2 ou variantes avançadas, tais como a perda L1 suave são usados.

Plot of Smooth L1 Loss. (Fonte)

A métrica PSNR (discutido abaixo) é altamente correlacionada com o pixel-sábio diferença, e, portanto, minimizando o pixel perda diretamente maximiza o valor de métrica PSNR (indicando o bom desempenho). No entanto, a perda de pixels não leva em conta a qualidade da imagem e o modelo muitas vezes produz resultados perceptualmente insatisfatórios (muitas vezes sem detalhes de alta frequência).

perda de conteúdo

Esta perda avalia a qualidade da imagem com base na sua qualidade perceptual. Uma maneira interessante de fazer isso é comparando as características de alto nível da imagem gerada e a imagem de verdade do solo. Podemos obter estas características de alto nível através da passagem de ambas as imagens através de uma rede de classificação de imagens pré-treinada (como uma VGG-Net ou uma ResNet).

perda de conteúdo entre uma imagem de verdade do solo e uma imagem gerada. (Source)

a equação acima calcula a perda de conteúdo entre uma imagem Terra-verdade e uma imagem gerada, dada uma rede pré-treinada (Φ) e uma camada (l) desta rede pré-treinada na qual a perda é calculada. Esta perda incentiva a imagem gerada a ser perceptualmente semelhante à imagem Terra-verdade. Por esta razão, também é conhecida como a perda Perceptual.

perda de textura

para permitir que a imagem gerada tenha o mesmo estilo (Textura, cor, contraste, etc.) como a imagem de verdade do solo, perda de textura (ou perda de estilo de reconstrução) é usado. A textura de uma imagem, como descrito por Gatys et. al, é definida como a correlação entre diferentes canais de recursos. Os canais de recurso são geralmente obtidos a partir de um mapa de recursos extraído usando uma rede de classificação de imagem pré-treinada (Φ).

Computing the Gram Matrix. (Fonte)

A correlação entre os mapas de características é representada pela matriz de Gram (G), que é o produto interno entre o vetorizados recurso de mapas i e j na camada l(mostrado acima). Uma vez que a matriz de grama é calculada para ambas as imagens, o cálculo da perda de textura é direto para a frente, como mostrado abaixo:

computando a perda de textura. (Source)

Usando esta perda, o modelo é motivado a criar texturas realistas e resultados visualmente mais satisfatórios.

perda total de variação

a perda Total de variação (TV) é usada para suprimir o ruído nas imagens geradas. Ele leva a soma das diferenças absolutas entre pixels vizinhos e mede quanto ruído está na imagem. Para uma imagem gerada, a perda de TV é calculada como mostrado abaixo:

perda Total de variação usada em uma imagem de alta resolução gerada. (Source)

Here, i,j,k iterates over the height, width and channels respectively.

perda adversária

redes adversárias Gerativas (GANs) têm sido cada vez mais utilizadas para várias aplicações baseadas em imagens, incluindo Super Resolução. GANs normalmente consistem de um sistema de duas redes neurais-o gerador e o discriminador-duelando um ao outro.dado um conjunto de amostras alvo, o gerador tenta produzir amostras que podem enganar o discriminador em acreditar que elas são reais. O discriminador tenta resolver amostras reais (alvo) de amostras falsas (geradas). Usando esta abordagem iterativa de treinamento, nós eventualmente acabamos com um gerador que é realmente bom em gerar amostras semelhantes às amostras alvo. A imagem a seguir mostra a estrutura de um GAN típico.

GANs em ação. (Source)

Advances to the basic GAN architecture were introduced for improved performance. Por exemplo, Park et. al. usou um discriminador de nível de recurso para capturar atributos potenciais mais significativos de imagens reais de alta resolução. Você pode checar este blog para uma pesquisa mais elaborada sobre os avanços no GANs.normalmente, modelos treinados com perda adversária têm melhor qualidade perceptual, mesmo que possam perder em PSNR em comparação com aqueles treinados em perda de pixels. Uma desvantagem menor é que, o processo de treinamento de GANs é um pouco difícil e instável. No entanto, são activamente trabalhados métodos para estabilizar a formação de GAN.

métricas

uma grande questão é como avaliamos quantitativamente o desempenho do nosso modelo. Uma série de técnicas de Avaliação da qualidade da imagem (IQA) são usadas para o mesmo. Estas métricas podem ser amplamente classificadas em duas categorias — métricas subjetivas e métricas objetivas.métricas subjetivas são baseadas na avaliação perceptual do observador humano, enquanto métricas objetivas são baseadas em modelos computacionais que tentam avaliar a qualidade da imagem. Métricas subjetivas são muitas vezes mais” perceptualmente precisas”, no entanto algumas dessas métricas são inconvenientes, demoras ou caras de computar. Outra questão é que estas duas categorias de métricas podem não ser consistentes entre si. Assim, os pesquisadores frequentemente exibem resultados usando métricas de ambas as Categorias.nesta secção, vamos explorar brevemente algumas das métricas amplamente utilizadas para avaliar o desempenho do nosso modelo de super resolução.

PSNR

razão Pico sinal-ruído (PSNR) é comumente usado métrica objetiva para medir a qualidade de reconstrução de uma transformação com perdas. PSNR é inversamente proporcional ao logaritmo do erro quadrado médio (MSE) entre a imagem de verdade do solo e a imagem gerada.

Cálculo do PSNR. (Source)

na fórmula acima, L é o valor máximo possível de pixels (para imagens RGB de 8 bits, é 255). Não surpreendentemente, uma vez que PSNR só se preocupa com a diferença entre os valores dos pixels, ele não representa a qualidade perceptual tão bem.

SSIM

similaridade estrutural (SSIM) é uma métrica subjetiva usada para medir a similaridade estrutural entre imagens, baseada em três comparações relativamente independentes, nomeadamente luminância, contraste e estrutura. Abstractly, the SSIM formula can be shown as a weighted product of the comparison of luminance, contrast and structure computed independently.

SSIM é um produto ponderado de comparações como descrito acima. (Fonte)

na fórmula acima, alfa, beta e gama são os pesos das funções de comparação de luminância, contraste e estrutura, respectivamente. A representação comumente usada da fórmula do SSIM é como mostrado abaixo:

representação comumente usada da fórmula do SSIM. (Fonte)

Na fórmula acima μ(I)representa a média de uma imagem em particular, σ(I)representa o desvio padrão de uma imagem em particular,σ(I,I’)representa a covariância entre duas imagens, e C1, C2 são constantes definidas para evitar instabilidade. Para brevidade, o significado dos Termos e a derivação exata não é explicado neste blog e o leitor interessado pode checar a seção 2.3.2 neste artigo.devido à possível distribuição desigual das características estatísticas da imagem ou distorções, avaliar a qualidade da imagem localmente é mais fiável do que aplicá-la globalmente. O SSIM médio (MSIM), que divide a imagem em várias janelas e mede o SSIM obtido em cada janela, é um desses métodos de avaliação da qualidade localmente.em qualquer caso, uma vez que o SSIM avalia a qualidade da reconstrução na perspectiva do sistema visual humano, satisfaz melhor os requisitos da avaliação perceptual.

outras pontuações IQA

Sem explicação, alguns outros métodos de avaliação da qualidade da imagem estão listados abaixo. O leitor interessado pode consultar este artigo para mais detalhes.

  • Pontuação Média de Opinião (MOS)
  • com base em Tarefas de Avaliação
  • Informações Fidelidade Critério (IFC)
  • a Informação Visual Fidelidade (VIF)

Conclusão

Este artigo no blog coberto algum material introdutório e procedimentos para a formação profunda dos modelos de aprendizagem para Super-Resolução. Existem, de facto, técnicas mais avançadas introduzidas pela investigação de ponta que podem produzir um melhor desempenho. Além disso, a pesquisa em avenidas como super resolução não supervisionada, melhores técnicas de Normalização e métricas mais representativas poderiam muito mais além deste campo. O leitor interessado é encorajado a experimentar as suas ideias inovadoras participando em desafios como o PIRM.

Agora

Deixe uma resposta

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