[AdaIN] Transferência de estilo de imagem normalizada de instância adaptativa

1. Introdução ao AdaIN

Usando GAN para transferência de estilo de imagem, a rede geralmente está associada a um conjunto de estilo fixo e não pode se adaptar a nenhum novo estilo. AdaIN permite a transmissão em tempo real de qualquer estilo pela primeira vez. O núcleo de sua abordagem é uma nova camada de normalização de instância adaptativa (AdaIN) que alinha a média e a variação dos recursos de conteúdo com a média e a variação dos recursos de estilo. Velocidade comparável aos métodos mais rápidos existentes, sem ser limitado por conjuntos de estilos predefinidos. Além disso, são permitidos controles de usuário flexíveis, como compensações de estilo de conteúdo, interpolação de estilo, controle de cores e espaço, todos usando uma única rede neural feed-forward.

2. Trabalho relacionado e histórico

2.1 Normalização em lote

A camada de normalização em lote foi originalmente projetada para acelerar o treinamento de redes discriminativas, mas também se mostrou eficaz na modelagem generativa de imagens.

Dada a entrada do lote x ∈ RN × C × H × W x \in \mathbb{R}^{N \times C \times H \times W}xRN × C × H × W , a normalização em lote normaliza a média e o desvio padrão de cada canal.

  • BN ( x ) = γ ( x − μ ( x ) σ ( x ) ) + β BN(x) = \gamma\left( \frac{x-\mu(x)}{\sigma(x)}\right )+\betaBN ( x )=c(σ ( x )x μ ( x ))+b
  • γ \gamac ,b \betaβ é um parâmetro afim aprendido com os dados
  • μ ( x ) , σ ( x ) \mu(x),\sigma(x)m ( x ) ,σ ( x ) é a média e o desvio padrão do tamanho do lote e das dimensões espaciais calculados independentemente para cada canal de recurso

2.2 Normalização de Instâncias

No método original, a rede de transferência de estilo contém uma camada BN após cada camada convolucional. Mas substituir a camada BN pela camada de normalização de instância pode obter melhorias significativas de desempenho.

  • IN ( x ) = γ ( x − μ ( x ) σ ( x ) ) + β IN(x) = \gamma\left( \frac{x-\mu(x)}{\sigma(x)}\right )+\betaEU N ( x )=c(σ ( x )x μ ( x ))+b
  • Ao contrário do BN, a média e o desvio padrão aqui são recalculados independentemente entre as dimensões espaciais para cada canal e cada amostra.
  • μ nc ( x ) = 1 HW ∑ h = 1 H ∑ w = 1 W xnchw \mu_{nc}(x)=\frac{1}{HW}\sum_{h=1}^{H}\sum_{ w=1}^{W}x_{nchw}eun c( x )=H W1h = 1Hw = 1Exn c h w
  • σ nc ( x ) = 1 HW ∑ h = 1 H ∑ w = 1 W ( xnchw − μ nc ( x ) ) 2 + ϵ \sigma_{nc}(x)=\sqrt{\frac{1}{HW} \sum_{h=1}^{H}\sum_{w=1}^{W}(x_{nchw}-\mu_{nc}(x))^2+\épsilon}pn c( x )=H W1h = 1Hw = 1E( xn c h w-eun c( x ) )2+ϵ

2.3 Normalização Condicional de Instância

  • Todos os pesos convolucionais de uma rede de transferência de estilo podem ser compartilhados entre vários estilos, e é suficiente ajustar os parâmetros da transformação biônica para cada estilo após a normalização
  • CIN ( x ; s ) = γ s ( x − μ ( x ) σ ( x ) ) + β s CIN(x;s) = \gamma^s\left( \frac{x-\mu(x)}{ \sigma(x)}\direita)+\beta^sC I N ( x ;e )=cé(σ ( x )x μ ( x ))+bé
  • γs \gamma^scsμ s \mu^seus é o parâmetro afim aprendido para cada estilo
  • Como a normalização de instância condicional atua apenas no dimensionamento e na mudança de parâmetros, treinar uma rede de transferência de estilo em N estilos requer menos parâmetros do que a abordagem ingênua de treinar N redes independentes.

3. AdaIN (Normalização Adaptativa de Instância)

  • A da IN ( x , y ) = σ ( y ) ( x − μ ( x ) σ ( x ) ) + μ ( y ) AdaIN(x,y) = \sigma(y)\left( \frac{x- \mu(x)}{\sigma(x)}\direita)+\mu(y)A d a I N ( x ,você )=σ ( y )(σ ( x )x μ ( x ))+meu ) _ _
  • AdaIN pega uma entrada de conteúdo x e uma entrada de estilo y e simplesmente alinha a média e a variação do canal de x para corresponder ao valor de y. Ao contrário de BN, IN ou CIN, AdaIN não possui parâmetros afins que podem ser aprendidos. Em vez disso, ele calcula de forma adaptativa parâmetros afins da entrada de estilo
  • onde a entrada de conteúdo normalizada é dimensionada por σ(y) e deslocada por µ(y). Semelhante ao IN, essas estatísticas são calculadas em localizações espaciais

Intuitivamente, considere um canal de recursos que detecta traços de um estilo específico. Estilizar imagens com esses traços produzirá uma ativação média alta desse recurso. A saída gerada pelo AdaIN terá a mesma ativação média alta deste recurso, preservando a estrutura espacial da imagem do conteúdo. Um decodificador feedforward pode ser usado para inverter recursos de traçado no espaço da imagem. Variações neste canal de recursos podem codificar informações de estilo mais sutis, que também são transferidas para a saída AdaIN e para a imagem de saída final.

Resumidamente, o AdaIN realiza a transferência de estilo no espaço de recursos, transferindo estatísticas de recursos, especificamente média e variância do canal.

4. Construção do modelo

4.1 Estrutura

Insira a descrição da imagem aqui

  • A rede de transferência de estilo T pega uma imagem de conteúdo c e uma imagem de estilo arbitrário s como entrada e sintetiza uma imagem de saída que recombina o conteúdo da primeira e o estilo da última.
  • É adotada uma arquitetura codificador-decodificador simples, onde o codificador f é fixado nas primeiras camadas do VGG-19 pré-treinado.
  • Depois de codificar as imagens de conteúdo e estilo no espaço de recursos, os dois mapas de recursos são enviados para a camada AdaIN, que alinha a média e a variância do mapa de recursos de conteúdo com a média e a variância do mapa de recursos de estilo para gerar o mapa de recursos de destino t.
    t = A da IN ( f ( c ) , f ( s ) ) t=AdaIN(f(c),f(s))t=A d a I N ( f ( c ) ,f ( s ))
  • Treine um decodificador g inicializado aleatoriamente para mapear t de volta ao espaço da imagem, produzindo uma imagem estilizada
    T ( c , s ) = g ( t ) T(c,s)=g(t)T ( c ,e )=g ( t )
  • O decodificador espelha principalmente o codificador, com todas as camadas de pooling substituídas pelo upsampling mais próximo para reduzir os efeitos do tabuleiro de xadrez. Use preenchimento reflexivo em f e g para evitar artefatos de limite. Nenhuma camada de normalização é usada no decodificador.

4.2 Treinamento

Usando o otimizador Adam, o tamanho do lote é de 8 pares de imagens de estilo de conteúdo. Durante o processo de treinamento, a dimensão mínima das duas imagens é primeiro ajustada para 512, preservando a proporção de aspecto, e então uma região de tamanho 256×256 é cortada aleatoriamente. Como a rede é totalmente convolucional, ela pode ser aplicada a imagens de qualquer tamanho durante o teste.

  • Use VGG19 pré-treinado para calcular a função de perda para treinar o decodificador:
    L = L c + λ L s L = L_c + \lambda L_seu=euc+λL _e
  • L c = ∥ f ( g ( t ) − t ∥ 2 L_c = \begin{Vmatriz}f(g(t)-t\end{Vmatriz}_2euc= f ( g ( t )-t 2
  • L s = ∑ i = 1 L ∥ μ ( ϕ i ( g ( t ) ) ) − μ ( ϕ i ( g ( s ) ) ) ∥ 2 + ∑ i = 1 L ∥ σ ( ϕ i ( g ( t ) ) ) − σ ( ϕ i ( g ( s ) ) ) ∥ 2 L_s=\sum_{i=1}^L\begin{Vmatrix}\mu(\phi_i(g(t)))-\mu(\phi_i (g(s)))\end{Vmatriz}_2+ \sum_{i=1}^L\begin{Vmatriz}\sigma(\phi_i(g(t)))-\sigma(\phi_i(g(s) ))\end{Vmatriz}_2eue=eu = 1eu m ( ϕeu( g ( t )))-m ( ϕeu( g ( s )) ) 2+eu = 1eu σ ( ϕeu( g ( t )))-σ ( ϕeu( g ( s )) ) 2, usado para calcular a perda da média e do desvio padrão dos recursos em cada camada

5. Implementação PyTorch

6. Resultados experimentais

Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/d33332/article/details/126447256
Recomendado
Clasificación