Meta-SR: uma rede arbitrária de ampliação para super-resolução整理

ilustrar

Como leitor, após ler este artigo, resuma o conteúdo de acordo com seu próprio entendimento (caso contrário, você sempre sentirá que vai esquecê-lo depois de um tempo). Em vez de copiar o original em inglês e traduzi-lo palavra por palavra, eu mesmo o organizo e resumo. Eu apenas resumo o conhecimento que é valioso para mim e o conhecimento que não conheço, e guardo o resto. Não pulverize se não gostar e se houver erros, seja bem-vindo para comentar e trocar. Eu também sou iniciante.

insira a descrição da imagem aqui
Periódicos aceitos e horário: 2019 Tipo de papel CVPR
: super-resolução em qualquer escala

Resumo

A maior parte do trabalho intermediário trata a superresolução de diferentes múltiplos como tarefas separadas. Por exemplo, a super-resolução x2, x3 e x4 precisa treinar um modelo separado, que ocupa muito espaço e não é eficiente em aplicações práticas, e não pode atender às necessidades. Portanto, o autor propõe o Meta-SR, que é a primeira vez que utiliza um modelo para resolver o problema de super-resolução em escala arbitrária .

introdução

A maioria dos métodos de super-resolução existentes usa convolução de subpixel quando a rede é finalmente ampliada , portanto, quando a ampliação é diferente, o modelo também é diferente. Ao mesmo tempo, a convolução de subpixels só pode lidar com ampliações inteiras (x2, x3, x4) , o que limita a aplicação prática desses modelos.

Trabalho relatado

SISR

O artigo do EDSR também propôs pela primeira vez um MDSR, que é a primeira vez que um modelo pode ser treinado para resolver três ampliações (2x, 3x, 4x) ao mesmo tempo.

Meta-Aprendizado

O método deste artigo

Método Meta-Upscale

O principal trabalho deste artigo é propor o módulo Meta-Upscale para substituir o módulo de upsampling anterior (como convolução de subpixel, deconvolução). O módulo Meta-Upscale funciona da seguinte forma e é dividido principalmente em duas partes: Projeção de Localização e Previsão de Peso.
A abordagem anterior é usar uma convolução ou deconvolução de subpixel para aumentar a resolução após a parte da rede de extração de recursos. A parte de extração de recursos deste trabalho permanece inalterada, você pode continuar a usar o módulo de extração de recursos anterior (como EDSR ou RDN usado neste artigo) e, em seguida, substituir o módulo de upsampling por Meta-Upscale.
Os detalhes específicos do algoritmo do módulo de upsampling são mostrados na figura a seguir:
Processo de algoritmo
a figura acima já o expressou claramente e as duas partes a seguir são classificadas separadamente.
A estrutura da rede no texto original é a seguinte:
insira a descrição da imagem aqui

Projeção de localização

Para ser franco, esta parte é o mapeamento de posição: um pixel na imagem SR é determinado por vários pontos no mapa de características da rede de extração de características. Na figura acima, podemos ver que um pixel em SR corresponde a k × kk\vezes k no mapa de característicask×k pixelsFLR ( i ′ , j ′ ) F^{LR}\left(i^{\prime},j^{\prime}\right)FL R( eu' ,j' )

Previsão de peso

Cada ponto da imagem SR possui seu próprio filtro, ou seja, os valores dos pixels das posições localizadas na Projeção de Localização são multiplicados pelo filtro (peso) para serem iguais ao valor do pixel do ponto no SR . Como surgiu esse peso?
Os pesos são passados ​​​​por uma rede de predição φ ( . ) \varphi\left(.\right)Fi( . ) previsto. Pode ser descrito pela seguinte fórmula:
W ( i , j ) = φ ( vij ; θ ) W\left(i,j\right) = \varphi(\text{v}_{ij};\theta)C( eu ,j )=f ( veu;eu )

vij \text{v}_{ij}veupara φ ( . ) \varphi\left(.\right)Fi( . ) entrada,θ \thetaθ éφ ( . ) \varphi\left(.\right)Fi( . ) parâmetros. Digitevij \text{v}_{ij}veu的表达式如下:
vij = ( ir − ⌊ ir ⌋ , jr − ⌊ jr ⌋ , 1 r ) \text{v}_{ij} = \left(\frac{i}{r} - \lfloor \frac{ i}{r} \rfloor, \frac{j}{r} - \lfloor \frac{j}{r} \rfloor, \frac{1}{r}\right)veu=(Reu-Reu,Rj-Rj,R1)
( eu , j ) \esquerda(i,j\direita)( eu ,j ) é a posição na imagem SR,( i ′ , j ′ ) \left(i^{\prime},j^{\prime}\right)( eu' ,j )é o mapa de característicasFLRF^{LR}Fposição em L R.
Como você pode ver, a entrada é( i , j ) \left(i,j\right)( eu ,j ) em relação a(i ′, j ′) \left(i^{\prime},j^{\prime}\right)( eu' ,j )deslocamento e fator de amplificaçãorrr

Mapeamento de recursos

Com o FLR obtido por Projeção de Localização ( i ′ , j ′ ) F^{LR}\left(i^{\prime},j^{\prime}\right)FL R( eu' ,j )W ( i , j ) W\left(i,j\right)obtidos por Predição de PesoC( eu ,j ) , através da multiplicação de matrizes,( i , j ) (i,j)( eu ,j ) valor do pixelISR (i, j) I^{SR}(i,j)EUSR (eu,j ),如下式所示。
ISR ( i , j ) = FLR ( i ′ , j ′ ) ⋅ W ( i , j ) I^{SR}(i,j) = F^{LR}\left(i ^{\prime},j^{\prime}\right) \cdot W\left(i,j\right)EUSR (eu,j )=FL R( eu' ,j' )C( eu ,j )

Detalhes da experiência

parâmetro descrever
Conjunto de treinamento DIV2K
Conjunto de teste Conjuntos de validação de Set14, B100, Mange109, DIV2K
índice PSNR e SSIM do canal Y
função de perda Perda L1
tamanho do batch [16,3,50,50], cada lote tem o mesmo fator de amplificação
aumento de dados Inversão horizontal aleatória ou inversão vertical e rotação de 90 graus
otimizador Adam, taxa de aprendizagem inicial 1 0 − 4 10^{-4}1 04 , dividido pela metade a cada duas épocas
fator de amplificação de treinamento Mude de 1 a 4 vezes com um tamanho de passo de 0,1

Nota: Os dados em cada lote têm a mesma escala de zoom.

Resumir

A ideia do módulo de upsampling em escala arbitrária proposta neste artigo é um pouco semelhante à ideia do processamento de imagem tradicional. Por exemplo, quando ampliamos o processamento de imagem tradicional, o valor do pixel em uma determinada posição na imagem ampliada é relacionado a vários pixels ao redor da imagem original e, em seguida, realizamos algumas operações de adição, subtração, multiplicação e divisão nesses pixels. E o peso aqui é previsto usando a rede neural. Então, algum trabalho pode continuar a ser feito aqui?

Código de implementação

Endereço oficial do código: github

Como a versão da tocha do código oficial é muito baixa, se a versão da tocha não corresponder, o arquivo dataloader.py reportará muitos erros. Aqui eu o modifiquei com referência a alguns blogs e agora ele pode ser executado com sucesso no torch1. 12.1. Não tenho certeza se isso funcionará com êxito nas versões mais recentes da tocha. O endereço do github é o seguinte:

https://github.com/zgaxddnhh/Meta-SR-Pytorch.git

link de referência

https://zhuanlan.zhihu.com/p/380373246

Acho que você gosta

Origin blog.csdn.net/qq_41596730/article/details/132262043
Recomendado
Clasificación