[AdaIN] Adaptive Instanz normalisierte Bildstilübertragung

1. Einführung in AdaIN

Bei der Verwendung von GAN für die Bildstilübertragung ist das Netzwerk normalerweise einem festen Stilsatz zugeordnet und kann sich nicht an einen neuen Stil anpassen. AdaIN ermöglicht erstmals die Übertragung beliebiger Stilrichtungen in Echtzeit. Der Kern seines Ansatzes ist eine neue Schicht der adaptiven Instanznormalisierung (AdaIN), die den Mittelwert und die Varianz von Inhaltsmerkmalen an den Mittelwert und die Varianz von Stilmerkmalen anpasst. Vergleichbare Geschwindigkeit mit den schnellsten vorhandenen Methoden, ohne Einschränkung durch vordefinierte Stilsätze. Darüber hinaus sind flexible Benutzersteuerungen möglich, wie z. B. Kompromisse im Inhaltsstil, Stilinterpolation, Farb- und Raumsteuerung, alles über ein einziges neuronales Feed-Forward-Netzwerk.

2. Verwandte Arbeit und Hintergrund

2.1 Chargennormalisierung

Die Batch-Normalisierungsschicht wurde ursprünglich entwickelt, um das Training diskriminierender Netzwerke zu beschleunigen, hat sich aber auch bei der generativen Bildmodellierung als effektiv erwiesen.

Gegebener Batch-Input x ∈ RN × C × H × W x \in \mathbb{R}^{N \times C \times H \times W}XRN × C × H × W , die Batch-Normalisierung normalisiert den Mittelwert und die Standardabweichung jedes Kanals.

  • BN ( x ) = γ ( x − μ ( x ) σ ( x ) ) + β BN(x) = \gamma\left( \frac{x-\mu(x)}{\sigma(x)}\right )+\betaBN ( x )=C(σ ( x )x μ ( x ))+B
  • γ \gammacb \betaβ ist ein aus den Daten gelernter affiner Parameter
  • μ ( x ) , σ ( x ) \mu(x),\sigma(x)m ( x ) ,σ ( x ) ist der Mittelwert und die Standardabweichung der Chargengröße und der räumlichen Abmessungen, die für jeden Merkmalskanal unabhängig berechnet werden

2.2 Instanznormalisierung

Bei der ursprünglichen Methode enthält das Stilübertragungsnetzwerk nach jeder Faltungsschicht eine BN-Schicht. Durch den Austausch der BN-Schicht durch die Instanznormalisierungsschicht können jedoch erhebliche Leistungsverbesserungen erzielt werden.

  • IN ( x ) = γ ( x − μ ( x ) σ ( x ) ) + β IN(x) = \gamma\left( \frac{x-\mu(x)}{\sigma(x)}\right )+\betaI N ( x )=C(σ ( x )x μ ( x ))+B
  • Im Gegensatz zu BN werden der Mittelwert und die Standardabweichung hier unabhängig über räumliche Dimensionen für jeden Kanal und jede Probe neu berechnet.
  • μ 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}Mn c( X )=HW _1h = 1Hw = 1WXn 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+\epsilon}Pn c( X )=HW _1h = 1Hw = 1W( Xn c h wMn c( X ) )2+ϵ

2.3 Bedingte Instanznormalisierung

  • Alle Faltungsgewichte eines Stilübertragungsnetzwerks können von vielen Stilen gemeinsam genutzt werden, und es reicht aus, die Parameter der bionischen Transformation für jeden Stil nach der Normalisierung anzupassen
  • CIN ( x ; s ) = γ s ( x − μ ( x ) σ ( x ) ) + β s CIN(x;s) = \gamma^s\left( \frac{x-\mu(x)}{ \sigma(x)}\right)+\beta^sC I N ( x ;S )=CS(σ ( x )x μ ( x ))+BS
  • γ s \gamma^sCsμ s \mu^sMs ist der für jeden Stil gelernte affine Parameter
  • Da sich die bedingte Instanznormalisierung nur auf Skalierungs- und Verschiebungsparameter auswirkt, erfordert das Training eines Stilübertragungsnetzwerks auf N Stilen weniger Parameter als der naive Ansatz des Trainings von N unabhängigen Netzwerken.

3. AdaIN (Adaptive Instanznormalisierung)

  • A da IN ( x , y ) = σ ( y ) ( x − μ ( x ) σ ( x ) ) + μ ( y ) AdaIN(x,y) = \sigma(y)\left( \frac{x- \mu(x)}{\sigma(x)}\right)+\mu(y)A d a I N ( x ,y )=σ ( y )(σ ( x )x μ ( x ))+Mein ) _ _
  • AdaIN nimmt eine Inhaltseingabe x und eine Stileingabe y und richtet einfach den Kanalmittelwert und die Varianz von x so aus, dass sie mit dem Wert von y übereinstimmen. Im Gegensatz zu BN, IN oder CIN verfügt AdaIN über keine lernbaren affinen Parameter. Stattdessen berechnet es adaptiv affine Parameter aus der Stileingabe
  • wobei die normalisierte Inhaltseingabe um σ(y) skaliert und um µ(y) verschoben wird. Ähnlich wie bei IN werden diese Statistiken über räumliche Standorte hinweg berechnet

Stellen Sie sich intuitiv einen Funktionskanal vor, der Striche eines bestimmten Stils erkennt. Stilbilder mit solchen Strichen führen zu einer hohen durchschnittlichen Aktivierung dieser Funktion. Die von AdaIN generierte Ausgabe weist die gleiche hohe durchschnittliche Aktivierung wie diese Funktion auf, behält jedoch die räumliche Struktur des Inhaltsbilds bei. Ein Feedforward-Decoder kann verwendet werden, um Strichmerkmale in den Bildraum umzuwandeln. Variationen in diesem Feature-Kanal können subtilere Stilinformationen kodieren, die auch auf die AdaIN-Ausgabe und das endgültige Ausgabebild übertragen werden.

Kurz gesagt führt AdaIN eine Stilübertragung im Merkmalsraum durch, indem es Merkmalsstatistiken, insbesondere Kanalmittelwert und -varianz, überträgt.

4. Modellbau

4.1 Struktur

Fügen Sie hier eine Bildbeschreibung ein

  • Das Stilübertragungsnetzwerk T nimmt ein Inhaltsbild c und ein beliebiges Stilbild s als Eingabe und synthetisiert ein Ausgabebild, das den Inhalt des ersteren und den Stil des letzteren neu kombiniert.
  • Es wird eine einfache Encoder-Decoder-Architektur übernommen, bei der der Encoder f auf den ersten Schichten des vorab trainierten VGG-19 festgelegt ist.
  • Nach der Codierung der Inhalts- und Stilbilder im Feature-Space werden die beiden Feature-Maps an die AdaIN-Ebene gesendet, die den Mittelwert und die Varianz der Inhalts-Feature-Map mit dem Mittelwert und der Varianz der Stil-Feature-Map abgleicht, um die Ziel-Feature-Map zu generieren 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 ))
  • Trainieren Sie einen zufällig initialisierten Decoder g, um t wieder dem Bildraum zuzuordnen und so ein stilisiertes Bild
    T ( c , s ) = g ( t ) T(c,s)=g(t) zu erzeugen.T ( c ,S )=g ( t )
  • Der Decoder spiegelt hauptsächlich den Encoder wider, wobei alle Pooling-Schichten durch nächstgelegenes Upsampling ersetzt werden, um Schachbretteffekte zu reduzieren. Verwenden Sie die reflektierende Füllung f und g, um Grenzartefakte zu vermeiden. Im Decoder wird keine Normalisierungsschicht verwendet.

4.2 Schulung

Bei Verwendung des Adam-Optimierers beträgt die Stapelgröße 8 Bildpaare im Inhaltsstil. Während des Trainingsprozesses wird zunächst die Mindestabmessung der beiden Bilder unter Beibehaltung des Seitenverhältnisses auf 512 angepasst und dann ein Bereich der Größe 256×256 zufällig zugeschnitten. Da das Netzwerk vollständig faltbar ist, kann es beim Testen auf Bilder jeder Größe angewendet werden.

  • Verwenden Sie vorab trainiertes VGG19, um die Verlustfunktion für das Training des Decoders zu berechnen:
    L = L c + λ L s L = L_c + \lambda L_sL=Lc+λ Ls
  • L c = ∥ f ( g ( t ) − t ∥ 2 L_c = \begin{Vmatrix}f(g(t)-t\end{Vmatrix}_2Lc= 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{Vmatrix}_2+ \sum_{i=1}^L\begin{Vmatrix}\sigma(\phi_i(g(t)))-\sigma(\phi_i(g(s) ))\end{Vmatrix}_2Ls=ich = 1L m ( ϕich( g ( t )))m ( ϕich( g ( s )) ) 2+ich = 1L σ ( ϕich( g ( t )))σ ( ϕich( g ( s )) ) 2, wird zur Berechnung des Verlusts des Mittelwerts und der Standardabweichung der Merkmale auf jeder Ebene verwendet

5. PyTorch-Implementierung

6. Experimentelle Ergebnisse

Fügen Sie hier eine Bildbeschreibung ein

おすすめ

転載: blog.csdn.net/d33332/article/details/126447256
おすすめ