**Paper:** **[Image2StyleGAN++: How to Edit the Embedded Images](https://arxiv.org/pdf/1911.11544.pdf)**
文中從三個方面拓展了Image2StyleGAN:
1. 引入了noise optimization
2. 拓展全域的$W+$至局部的$W+$
3. 結合embedding與激活張量(feature map, 文中稱為activation tensor)來對影像的局部特徵進行編輯

## Introduction
上述提到的第一點,文中發現影像的細節在引入noise空間優化後可以進一步地被改善,而noise空間優化需要在$W+$空間優化時逐步進行,而非同步進行,第二點是想加強算法對於局部特徵控制的能力,而文中透過在embedding算法中加入未定義內容的遮罩,而算法的目標則是在遮罩外部找到合理的embedding,同時在遮罩中填充合理的內容,第三點則是探討結合embedding算法及直接對特徵圖進行操縱的影響。
本篇論文的貢獻如下:
* 提出了Noise space的優化方法
* 提出額外的embedding算法可對局部進行修改
* 探討結合embedding與操控特徵圖對於影像編緝的影響
* 將文中的架構應用在多張影像的編輯、操縱,並取得SOTA的成果
## Related Work
### Latent Space Embedding
普遍來講,embedding方法主要有兩種:
1. 訓練一個Encoder,輸入影像後encode成latent code
2. 選擇一個初始的latent code,並藉由gradient descent的方式迭代優化latent code
### Activation Tensor Manipulation
在網路權重固定的情況下,利用特徵圖來操控生成器是可行的,其中[4](https://arxiv.org/abs/1811.10597), [5](https://arxiv.org/abs/1910.11626)兩篇提到一個影像語意編輯系統可以增加、刪除、修改影像中物件的特徵,而[11](https://arxiv.org/abs/1904.12795)也發現邊界附近的artifact可以利用對於淺層特徵圖進行cropping, combining來消除。
## Overview
文章架構如下:
1. 提出Image2StyleGAN的擴充內容:
* 整合多個spatial mask到優化流程中,這些mask可以使不完整的影像在embed後缺少這些區塊的值,而加入某些線條,會使重建影像產生像疤痕的作用。此外,文中對於StyleGAN不同層加入mask進行研究,並發現StyleGAN淺層會控制圖像的內容,而深層控制圖像的風格,因此可以透過對不同層的embedding加入限制,來控制圖像最後呈現的屬性、風格。
* 透過優化noise space來增加embedding的品質。
2. 探討操縱特徵圖的不同做法,如spatial copying, channel-wise copying與averaging
3. 概述Image2StyleGAN++在不同應用上的結果,其中包含:改善影像重建的品質、image crossover(兩張影像內插)、影像修復、局部編輯等等。
## An Extended Embedding Algorithm

與Image2StyleGAN相同,本篇也是利用梯度來求取最佳的latent code,不一樣的是本篇除了W+空間也引入了Noise的空間,並且求取這兩個空間最佳的向量,而Image2StyleGAN++的目標函數由三個loss所組成,即pixel-wise MSE loss, perceptual loss, style loss:

其中$x$, $y$為目標影像(可為相同影像); $Ms$, $Mm$, $Mp$為spatial mask; $⊙$為逐項乘積; $G$為StyleGAN; $w$,$n$分別為在$W+$和Noise空間的變數; $Lstyle$為預訓練的VGG-16的conv3_3的特徵圖; $L percept$與Image2StyleGAN中的一樣,不過改成conv1_1, conv1_2, conv2_2, conv3_3,另外此處的$Mp$需要因應特徵圖的大小做降維。
* Figure 1中應該就是用了兩張圖x=(a), y=(b)之類的,然後M各設一半。
### Optimization Strategies

第一種可行的方式是同時優化$W+$與Noise空間,而其結果如圖2所示,其中(b)在noise優化時引入了perceptual loss所以導致重建的品質降低,而(c)中雖然結果很好但不適合用於影像編緝,而(e)的PSNR降低至33.3dB,其感知品質較差,因此文中不推薦同時優化這兩個空間。

第二種方法為交替優化,即先優化$w$在優化$n$或是相反,圖(3)為交替優化的結果,而比較(c)和(d)發現在優化$n$後優化$w$(d的結果)會使PSNR從39.5dB降低到20dB,因此文中採取先優化$w$再優化$n$的交替優化方式。
## Activation Tensor Manipulations
文中探討了三種對特徵圖操作的方法:
1. spatial copying: 以$B_l^I$直接取代某層的特徵圖$A_l^I$
2. averaging: 以$λA_l^I+(1-λ)B_l^I$取代原本的特徵圖
3. channel-wise copying: 重新創建一個tensor,選則一些$A_l^I$的pixel剩下的用$B_l^I$補齊
文中發現spatial copying的結果是最好的。
## Frequently Used Building Blocks
文中確認了4個加入遮罩的應用,並在下一章中會探討,而本節主要探討的是損失函數也可以以空間遮罩來控制。文中利用二元遮罩$w_m, n_m$來控制對k層的$w$或$n$的變數進行控制,其中若$w_m$或$n_m$的某個值為0則該變數就不會被更新,而若值為1則會被更新,以下會探討$w_m, n_m$對於損失函數控制的方式。
#### Masked $W+$ optimization($Wl$):
這個函數僅優化$w∈W+$,其損失函數如下:

其中$λ_s=0$, $λ_{mse1}=10^{-5}$, $λ_{mse2}=0$, $λ_p=10^{-5}$, $w_m$為$W+$空間中的mask, $Optim=Adam or SGD$, $lr=0.01$ for Adam 0.8 for SGD。
#### Masked Noise Optimization($Mkn$):
此函數僅優化$n∈N_s$,其損失函數如下:

其中$λ_s=0$, $λ_{mse1}=10^{-5}$, $λ_{mse2}=10^{-5}$, $λ_p=0$, $lr=5$ for Adam。
#### Masked Style Transfer($M_{st}$)
此函數優化$w$進而獲得影像$y$的風格,如下:

其中$λ_s=5*10^{-7}$, $λ_{mse1}=0$, $λ_{mse2}=0$, $λ_p=0$, $lr=5$ for Adam。
#### Masked activation tensor operation($I_{att}$)
此函數說明對特徵圖的操作,如下:

其中$G(w,n,t)$為生成器;$w$, $n$分別是$W+$和Noise空間中的變數;$t$為輸入的張量(特徵圖),$A_l^{I_1}$與$B_l^{I_2}$為第$l$層的$I_1$與$I_2$影像,$M_1$與$M_2$則為降維後的遮罩。
## Application
#### Improved image reconstruction

Alogrithm 2中首先將算法應用於影像重建,其中$w_{ini}$為平均臉或由$U[-1,1]$採樣的隨機數,$n_{ini}$則由$N(0,I)$的常態分佈採樣而來,在影像重建的應用中,將不會使用到遮罩,然而此影用有採用masked noise optimization($Mk_n$),文中對於優化$W_l$迭代了5000次,而$Mk_n$迭代了3000次,而$I_m$為欲重建的影像。
Fig.4 結果顯示此算法重建的影像品質很好,PNSR可以達到39~45dB,主要是因為優化Noise 空間可以很好地重建高頻特徵(細節特徵)。

#### Image crossover

Image crossover的定義是將來源影像$y$的部分特徵複製到目標影像$x$中,並將邊界融合。Alg. 3為Image crossover的算法,首先將目標影像與來源影像embed到$W+$空間中得到各自的$w^*$,在使用遮罩$M_{blur}$,並以$W_l$操作得到$w_{out}$,而此應用中也有noise操作,而文中在$W_l$操作與noise操作都優化1000次。

圖5為此應用的結果。
#### Image inpainting

在此應用中,$I_{def}$為有遮擋的輸入影像,$M$即為遮擋的區塊,而$M_{blur+}$較$M$稍微大一點,目的在於融合遮擋的邊界,此應用中同樣優化了$W+$與noise空間,在$W+$優化的操作上使用了$w_m$,僅更新1到9層、17與18層($w$空間在10~16層是不會更新的),在初始化中,$w_{ini}$為平均人臉,此應用中的$λ_{mse2}$為$10^{-4}$,在優化上對$W_l$操作迭代了200次,而noise空間迭代了1000次。

圖6為此應用的結果,與partial convolution等方法相比,此方法不會出現有規則的artifact。

圖7中顯示的則是利用不同$w_{ini}$所修補後的影像,可以看到在$U[−0.4,0.4]$中採樣不同的初始化參數即會生成出不同的結果。
#### Local edits using scribbles

此應用利用使用者對影像作出的一些擦痕、塗鴉等等,產製出相對應的影像。此應用只使用到第4,5,6層的$W+$空間,首先輸入的影像為有塗鴉的影像,$w_{ini}$為沒有塗鴉的原始影像,$w_m$僅對應4,5,6層,因此只有4~6層的$w$參數會更新,此應用中同樣會更新noise空間,$W+$空間與noise操作都會迭代1000次。

#### Local style transfer

此應用中的輸入影像為原始影像$I_1$及風格影像$I_2$,首先會將原始影像embed到$W+$空間作為初始向量$w^*$,在進行遮罩操作,最後同樣會加入noise操作,而此應用中$W+$空間與noise空間都是迭代優化1000次。

#### Attribute level feature transfer
此應用操縱StyleGAN中的第4層。首先輸入兩張影像($I_1, I_2$)的latent code(含noise),之後儲存第4層的輸出特徵圖$A_l^{I1}$與$B_l^{I2}$,遮罩$M_s$指示將複製$A_l^{I1}$中何處的特徵以及複製$B_l^{I2}$中何處的特徵,並利用$I_{att}$的操作將$I_1$特徵與$I_2$特徵整合成一張影像。

圖10為此應用結果,首列的影像為提供風格的影像,第二列為提供局部特徵的影像,可以看到不管是人臉還是車等等,影像融合的結果都非常好。
## Conclusion
文中提出的Image2StyleGAN++是由因為三個重要見解而受到啟發所提出的算法:
1. 高頻特徵是由StyleGAN中的noise map所控制,因此能夠知道影像在noise map的分布,就可以提升重建影像的品質。
2. 利用遮罩及相關算法是可以完成影像中局部特徵的編輯。
3. 對於特定層的特徵圖進行操作,也可以完成對影像的編輯。