[MM18]BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network

BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network

  • ACM MM 2018
  • http://liusi-group.com/projects/BeautyGAN
  • facial makeup transfer | generative adversarial network

一、摘要

妝容遷移的目的在於從給定的一個帶妝圖片中的化妝風格遷移到一張不帶妝的照片中,並且保留其面部特徵。屬於局部風格遷移

這種實例級別的風格遷移比常規的域遷移更具有挑戰性:

  1. 沒有成對的訓練數據。
  2. 不同於全局風格遷移(例如繪畫),其遷移的區域是局部的風格(眉毛、嘴脣)。現有的方法對提取遷移局部的精的特徵不可行。

BeautyGAN:綜合考慮global domain-level loss, 和local instance-level loss. 使用兩個輸入輸出的GAN網絡。總的損失函數包括四個部分:

  1. Domain-Level:其中判別器將生成的圖像和真實圖像的區別開。
  2. Instance-Level:計算分離的局部面部像素級直方圖loss。
  3. Perceptual Loss和Cycle Consistency Loss生成高質量面部並且保留面部特徵。

此外還開源了一個數據集,包括3834張高分辨率的面部照片。

二、研究背景

例如美圖秀秀等傳統的虛擬畫妝工具需要用戶手動的進行交互,並且只提供一小部分固定的妝容風格。

而自動的妝容遷移是一種幫助用戶選擇最合適的妝容風格的有效方法,通過給定一些妝容的參考,可以在不改變面部特徵的情況下,實現自動對不帶妝的照片進行上妝。

目前自動的妝容遷移技術主要分爲兩類:傳統的圖像處理方法和深度學習的方法。其中圖像處理方法通常將圖像分解成幾層(例如,面部結構,顏色,皮膚),將參考面部圖像變形爲非化妝圖像之後,將每一層遷移。深度學習的方法採用幾個獨立的網絡單獨處理不同的妝容。之前的方法將妝容的風格看作爲不同“容器”的簡單的組合,因此,在組合位置時,整體輸出圖像看起來不自然。

妝容遷移是無法直接使用端到端的結構產生高質量的圖像的,因爲妝容遷移存在以下問題:

  1. 化妝風格因人而異,需要在實例級別進行轉換。(GAN主要用於域級別的遷移,例如CycleGAN強調域內不同,忽視了域間的區別)。
  2. 妝容風格不僅僅是全局的風格,還包括獨立的局部風格。因此在保留不同化妝品不同的特徵下,很難抽取全局的妝容風格。(傳統的風格遷移更多的是從全局風格遷移,例如筆觸、顏色風格。而妝容風格更加的精細,對於不同的化妝部位,都有不同的風格)。
  3. 缺少數據集,尤其是很難獲得具有不同化妝風格的一對對齊的面部圖像。所以需要進行非監督學習。

BeautyGAN:
網絡首先使用幾個判別器將非化妝臉部轉移到化妝域,以區分從domain真實樣本生成的圖像。在域級別遷移的基礎上,在不同面部區域的計算用像素直方圖損失實現實例級別的遷移。爲了保留臉部特徵,還在整體損失函數中加入了感知損失和循環一致性損失。

三、論文貢獻

  1. 通過雙重輸入/輸出的生成對抗網絡實現自動妝容遷移。
  2. 通過在局部區域使用像素級直方圖損失來實現實例級別風格遷移。
  3. 開源了妝容數據集,包括3834張高分辨率照片。

四、網絡結構

兩張圖片作爲輸入,A是不帶妝的圖片的集合,B是帶妝的圖片集合。

其中IsrcI_{src}作爲不帶妝的源圖片,IrefI_{ref}作爲帶妝的參考圖片。

網絡輸出爲IsrcBI_{src}^{B}作爲帶妝的源圖片:在保留源圖片的面部特徵下,合成參考圖片的妝容風格。

IrefAI_{ref}^{A}作爲不帶妝的參考圖片:參考圖片去掉妝容的圖片。
在這裏插入圖片描述
首先輸入兩張圖片,然後通過不同的兩組卷積提取特徵,然後concatenate在一起,
輸入residual block中,之後通過兩組反捲積,將輸出的feature map上採樣,生成IsrcBI_{src}^{B}IrefAI_{ref}^{A}

生成的圖片再次經過同樣的G得到最終的IsrcrecI^{rec}_{src}IrefrecI^{re c}_{ref}

注意:

  1. 生成器G使用了instance normalization

  2. 判別器DAD_A,DBD_B中使用了 70*70 的 Patch GAN

總的Loss函數包括四個部分:
在這裏插入圖片描述

4.1 GAN Loss

GAN Loss主要是使得生成的圖片更加逼真。

其包括兩個判別器DAD_ADBD_B的對抗損失
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4.2 Perceptual Loss

Perceptual Loss 的目的在於更好的保留圖片的面部特徵。

首先使用16層的VGG網絡在ImageNet上做預訓練,Fl(x)F_l(x)表示圖片X在VGG中第i層的特徵,Cl,Hl,WlC_l, H_l, W_l分別是feature map的數量、高度、寬度。
在這裏插入圖片描述

4.3 Cycle Consistency Loss

Cycle Consistency Loss 目的在於保持背景信息的一致。

通過直接對比生成圖像和原圖像的距離,L1或者L2距離都可以。
在這裏插入圖片描述

4.4 Makeup Loss

在這裏插入圖片描述
Makeup Loss目的在於遷移時只將化妝部位的顏色遷移過來,而不改變源圖的形態。具體的方法是採用直方圖匹配(Histogram Matching)

首先先對IsrcI_{src}IrefI_{ref}, IsrcBI_{src}^{B}面部進行分割,採用的方法是PSPNet,得到不同部位的Mask,在所有的Mask中只挑選出face eye lip部分進行二值化,得到MlipM_{lip},MleyeM_{leye},MfaceM_{face}.。

然後用該模板與對應的圖像相乘,得到源圖片x和參考圖片y的不同部位。

對這些部位進行顏色直方圖匹配,得到相同顏色分佈的H(x,y),其保留了x的特徵,和y的顏色分佈。

然後對生成的帶妝圖IsrcBI^B_{src}和直方圖匹配的函數進行對比。
在這裏插入圖片描述
在這裏插入圖片描述

五、實驗效果

5.1 定性分析

  1. Guo[11]-Digital Face Makeup:傳統方法,效果不真實、輪廓不準確,細節遷移的不對
  2. Gatys[8]:顆粒感,沒有對妝容進行遷移
  3. Liu[23]-DTN:對於不同的妝部分獨立的遷移:邊緣有缺陷,面部和眼影遷移的不好
  4. Liao[21]:Deep Image Analogy:妝容遷移的細節較好,但是背景也被錯誤的遷移了過來。
  5. Cycle-GAN[35]:並沒有進行遷移妝容
    在這裏插入圖片描述
    其實後面兩種方法是對整體的畫面風格進行遷移,所以效果有所缺陷。

5.2 定量分析

在這裏插入圖片描述
利用人對不同方法生成的圖片進行打分,可以看到BueatyGAN打分在RANK1區間的最高,所以效果最好。

5.3 Ablation Study

對不同的Loss的作用進行對比。
在這裏插入圖片描述

在這裏插入圖片描述
可以看到去掉了perceptual loss之後,面部的特徵發生了變化,所以perceptual loss的作用對於保留面部特徵起到很大的作用。

C、D、E依次加上了不同化妝部位的Loss,可以看到三個不同部分的妝容依次添加了上去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章