Zastosowania technik separacji

i syntezy stylu

autor: Michał Bieroński

album: 218324

Wprowadzenie do transferu stylu

obraz 1:

zawartość

obraz 2:

styl

obraz wyjściowy:

zawartość obrazu 1 i styl obrazu 2

Definicja problemu

https://medium.com/tensorflow/neural-style-transfer-creating-art-with-deep-learning-using-tf-keras-and-eager-execution-7d541ac31398

A Neural Algorithm of Artistic Style (2015)

zawartość

styl

L_{style}
L_{content}

Zawartość obrazu

L^l_{content}(c, x) = \frac{1}{2} \sum_{i,j} (A^{l}_{i,j}(x) - A^{l}_{i,j}(c))^2

Ekstraktor cech: VGG19

https://www.quora.com/What-is-the-VGG-neural-network

A^l \in {\rm I\!R}^{N^l \times M^l}
N^l
M^l

liczba map cech

rozmiar mapy

Reprezentowana przez macierz:

A^l_{i,j}

aktywacja dla mapy i na pozycji j w wartwie l

obraz zawartości c

Styl obrazu

Ekstraktor cech: VGG19

https://www.quora.com/What-is-the-VGG-neural-network

Jak formalnie zdefiniować styl?

Macierz Grama

a = [a_1, a_2, ..., a_n] \\ b = [b_1, b_2, ..., b_n]

Iloczyn skalarny

a \cdot b = \sum_{i=1}^{n} a_i b_i = a b^T
a \cdot b = ||a|| ||b|| cos(\theta)

Definicja algebraiczna:

Definicja geometryczna:

cos(\theta) = \frac{ a \cdot b} { ||a|| ||b|| }

Podobieństwo cosinusowe:

Macierz Grama

cos(\theta) = \frac{ \textcolor{blue}{ a \cdot b } }{ ||a|| ||b|| }
G = \forall{a_i, a_j \in A}, \langle \mathbf a_i, \mathbf a_j \rangle

Macierz Grama dla zbioru wektorów                                  to taka macierz G, gdzie:

A = \{a_1, ..., a_n\}
a_1, a_2, ..., a_n

tworzą wiersze macierzy B

\textcolor{blue}{a \cdot b} = \sum_{i=1}^{n} a_i b_i = a b^T
G = B B^T

G to macierz nieznormalizowanych podobieństw cosinusowych, informuje o współwystępowaniu cech

Styl obrazu

L_{style}^l(s,x) = \frac{1}{4 N_l^2 M_l^2 } \sum_{i,j} (G_{i,j}^l(x) - G_{i,j}^l(s))^2
N^l
M^l

liczba map cech

rozmiar mapy

L_{style}(s,x)=\sum_{l=0}^L w_l L_{style}^l(s,x)
w_l

udział straty w warstwie l

obraz stylu s

(mapy cech są spłaszczone do wektorów)

Funkcja straty

L_{total}(c,s,x)=\alpha L_{content}(c,x) + \beta L_{style}(s, x)

zawartość

styl

L_{style}
L_{content}

Przykładowa implementacja

zawartość

styl

Style Separation and Synthesis via Generative Adversarial Networks (2018)

Podejścia oparte o modele GAN: S3-GAN

S3-GAN funkcje straty

1. Adversarial loss:

maksymalizacja poprawnej identyfikacji "sztucznych" przykładów przez dyksryminator D oraz oszukania dyskryminatora przez koder E i generator G.

 

 

 

 

 

2. Content perceptual loss:

odwzorowanie treści z obrazu A. Realizacja analogiczna do poprzedniego przykładu - odległości map cech w dalszych warstwach,

kodujących wysokopoziomowe cechy jak kształt czy przestrzenne struktury.

Rolę "Perceptual network" pełni VGG19.

S3-GAN funkcje straty

3. Style perceptual loss:

odwzorowanie stylu obrazu B. Realizacja analogiczna do poprzedniego przykładu - odległości macierzy Grama w niższych warstwach (kodujących takie informacje jak kolory czy tekstury).

 

4. Reconstruction loss:

jak najwierniejsza rekonstrukcja przez generator G obrazów A oraz B z postaci zakodowanej przez koder E:

dystans L1 pomiędzi obrazami

oryginalnymi i po rekonstrukcji.

S3-GAN funkcje straty

5. Total variation loss:

wygładzanie, redukcja artefaktów dla produktu syntezy oraz obu rekonstrukcji. Faworyzuje zbliżone wartości sąsiadujących pikseli.

 

 

Full objective function:

ważona funkcja straty z złożona z 5

przedstawionych funkcji strat.

S3-GAN efekty

Efekty ekstrakcji i syntezy stylu CelebA

Efekty ekstrakcji i syntezy stylu Zappos50K

S3-GAN efekty

Synteza stylu dla różnych wzorców stylu

Synteza stylu dla różnych treści

S3-GAN efekty

Interpolacja treści i stylu dla wyuczonego manifoldu

S3-GAN efekty

Reprezentacja treści i stylu

Efekt wykorzystania różnych funkcji strat (prawdopodobnie omyłkowo zamienione kolumny content i style)

Crossing-Domain Generative Adversarial Networks for Unsupervised Multi-Domain Image-to-Image Translation (2018)

Podejścia oparte o modele GAN: CD-GAN

CD-GAN

model CD-GAN

przykładowe domeny

CD-GAN funkcje straty

 

1. GAN loss:

maksymalizacja poprawnej identyfikacji "sztucznych" przykładów w domenie Y przez dyksryminator D oraz oszukania dyskryminatora przez koder E i generator G.

 

2. Reconstruction loss:

jak najwierniejsza rekonstrukcja przez generator G obrazów x oraz y z postaci zakodowanej przez koder E: dystans L2 pomiędzi obrazami oryginalnymi i po rekonstrukcji.

 

CD-GAN funkcje straty

3. Latent consistency loss:

maksymalizacja podobieństwa wysokopoziomowej reprezentacji tego samego obrazu w domenie X oraz Y. Dystans L1.

 

4. Classification loss:

sztucznie wprowadzony klasyfikator domeny obrazu umieszczony za dysktryminatorem, pomaga w lepszym wyuczeniu koderów  E, generatorów G i dyskryminatorów D

 

CD-GAN funkcje straty

5. Cycle consistency loss:

dodatkowe ograniczenie: mapowanie X - Y - X powinno dać oryginalny obraz w domenie X. Analogicznie Y - X - Y. Dystans L1.

 

Final Objective of CD-GAN:

ważona funkcja straty złożona z 5

przedstawionych funkcji strat.

 

CD-GAN efekty

translacja stylu artysty

CD-GAN efekty

translacja pór roku

CD-GAN efekty

porównanie z innymi metodami (style malarzy)

CD-GAN efekty

porównanie z innymi metodami (pory roku)

Podsumowanie

  1. Zadanie ekstrakcji i syntezy stylu jest zadaniem bardzo złożonym
  2. Metody oparte o mapy cech i macierze Grama pozwalają na efektowny bezpośredni transfer stylu
  3. Prostsze techniki mogą być świetną bazą dla bardziej złożonych modeli
  4. Techniki oparte o modele GAN mogą:
    • znacznie poprawić realizm wynikowych obrazów
    • umożliwić ekstrakcję stylu
    • zwiększyć możliwości w zadaniu translacji stylu
  5. Modeli neuronowych nie można traktować jako czarnej skrzynki, kluczem jest dobra definicja problemu w postaci funkcji straty

Przykładowa implementacja

zawartość

styl

Ciekawostki

Epoka lodowcowa - w stylu van Gogh'a

DeepArt.io

DeepArt.io

DeepArt.io

StyleGAN

Źródła

  1. A Neural Algorithm of Artistic Style, https://arxiv.org/pdf/1508.06576.pdf
  2. Neural Style Transfer: Creating Art with Deep Learning using tf.keras and eager execution, https://medium.com/tensorflow/neural-style-transfer-creating-art-with-deep-learning-using-tf-keras-and-eager-execution-7d541ac31398
  3. Making AI Art with Style Transfer using Keras, https://medium.com/mlreview/making-ai-art-with-style-transfer-using-keras-8bb5fa44b216
  4. Style Separation and Synthesis via Generative Adversarial Networks, https://arxiv.org/pdf/1811.02740.pdf
  5. Crossing-Domain Generative Adversarial Networks for Unsupervised Multi-Domain Image-to-Image Translation, http://www.ece.sunysb.edu/~xwang/public/paper/Multi_Domain_Image_to_Image_Translation_ACMMM_2018.pdf

Zastosowania technik separacji

i syntezy stylu

Zastosowania technik separacjii syntezy stylu

By bierus

Zastosowania technik separacjii syntezy stylu

  • 352