Abstract
- 本文提出了一個端到端訓練的卷積網絡來實現圖像編輯系統,進而實現圖片的生成。系統的輸入為
free-form mask
、sketch
、color
。 - 與現存的方法相比,作者的方法利用具有顏色和形狀的
free-form
的用戶輸入。 - 提出的網絡結構稱為
SC-FEGAN
。
Introduction
- 即使在圖像中存在擦除部分的情況下,只要給出草圖和顏色輸入的情況下,作者提出的系統具有輕松生成高質量人臉圖像的能力。
- 最近的工作,深度學習在圖像修復上展現了驚人的修復能力。
- 最典型的方法是采用矩形的
mask
,修復這個mask
采用一個encode-decode generator
。然后通過global and local discriminator
來評估這個生成的結果是真的還是假的。- 存在的問題:僅適用於低分辨率圖片的修復;會在缺失區域生成明顯的邊界;缺失區域上合成的圖像經常達不到用戶的期望(因為從未向生成器提供任何用戶輸入來用作生成器)
- 一些方法試圖解決以上問題:
Deeepfillv2
,網絡的輸入有用戶的sketch
,但是未將顏色做為輸入信息;GuidedInpating
的方法是拿一個其它圖像的一部分做為輸入,來實現缺失部分的恢復,但是很難恢復細節信息。將顏色做為信息輸入,合成圖像中的顏色是根據從訓練數據集中學習的先驗分布推斷得出的。Ideepcolor
接受用戶輸入的顏色作為參考以創建用於黑白圖像的彩色圖像。但是不允許編輯對象結構或還原圖像上已刪除的部分。FaceShop
允許用戶輸入Sketch和color,但是FaceShop
作為合成圖像生成的交互式系統有一些限制。
- 為解決上面的問題,作者提出了一端到端的訓練方式的全卷積神經網絡,即
SC-FEGAN
。判別器采用SN-patchGAN
,來解決和提高缺失部分明顯的邊界信息。訓練的損失函數,不僅僅有GAN loss
,還有Style loss
等。網絡的輸入包括Input image、mask、Sketch、Color、Noise。 - 本文主要貢獻:
- 提出了類似
Unet
網絡結構,網絡中部分卷積層采用Gated convolution layer
,這樣的結構在訓練和推理過程中容易、速度較快。 - 作者創造了一個
free-form domain data of masks,color and sketch.
用於網絡的訓練。 - 采用
SN-patchGAN discriminator
,訓練網絡時,附加了style loss。
當缺失部分較大時,讓能表現出較強的魯棒性,還允許在所產生的圖像上產生細節,例如高質量的合成發型和耳環。
- 提出了類似
Related Work
Image Translation
AA
Image Completion
Image completion
存在兩個難點:- 填充圖像的已刪除區域。
- 正確反映用戶在恢復區域中的輸入。
- 在之前的研究中,
GAN
系統探索性的生成從具體缺失區域的圖像到完整圖像的可行性,它使用來自U-net
結構的生成器,並且利用local and global discriminator
。Discriminator
分別確定在新填充的部分和完全重建的圖像上生成的圖像是真實的還是偽造的。Deepfillv1
還使用矩形Mask
以及local and global discriminator model
來表明上下文關注層可以大大提高性能。 但是,the global and local discriminator
仍然在恢復部分的邊界處產生尷尬的區域。 - 在后續
DeepfillV2
中,引入free-form mask and SN-patchGAN
,a free-form mask and SN-patchGAN were introduced to replace the existing rectangular mask and global and local discriminator with single discriminator.
In addition, the gated convolutional layer that learns the features of the masked region was also suggested. This layer can present masks automatically from data by training, which gives the network ability to reflect user sketch input on the results.
- 作者提出的網絡,不僅可以使用
Sketch
,而且還可以使用color data
做為輸入來實現編輯圖像。作者使用U-net結構,而不是使用Coarse-Refined net structure
(DeepfillV1,2
中采用的)。作者提出的網絡能夠生成高質量的結果,不需要復雜的訓練計划或其他復雜層的要求。
Approach
- 3.1描述
Masking training data
- 3.2描述
network structure
和loss function
Training Data
- 數據集:
CelebA-HQ
- 我們首先隨機選擇2組共29000張圖片進行訓練,1000張圖片進行測試。在獲得
Sketch
和color
數據集之前,我們將圖像大小調整為512 ×512
像素。 - 為了更好的表達眼部的復雜性,作者提出了一個基於眼睛位置的
free-from mask
來做為訓練神經網絡的輸入。同時,作者還使用free-from mask
和人臉分割GFC
(CVPR: Generative face completion)來創建Sketch domains
和color domains
。在輸入的數據中,作者隨機的將遮罩應用到頭發區域,因為他與人臉其它部分相比具有不同的特性。
Free-form masking with eye-positions
- 使用與DeepfillV2相同的方法來實現缺失圖像(incomplete images)的生成。然而,在對人臉進行訓練時,我們隨機的使用了一個以眼睛為起點的
free draw mask
,來表達眼睛的復雜部分。同時還是要了GFC來對頭發進行隨機的缺失。眼睛free draw mask
具體算法如下:
Sketch & Color domain
- 作者使用類似
FaceShop
的方法,而不是采用AutoTrace的方法。(AutoTrace:converts bitmap to vector graphics for sketch data。
) sketch data
的生成:作者使用HED edge detector
生成對應於用戶輸入修改的面部圖像的sketch data
。然后平滑曲線並刪除小的邊。color domain data
的生成:首先使用大小為3的中值濾波,然后使用20個雙邊濾波來創建模糊圖像,然后使用GFC來分割面部,每個分割部分替換為相應部分的中間色。- 注意:在為
color domain
創建數據時,不應用直方圖均衡化來避免光反射和陰影造成的顏色污染。然而,由於用戶在sketch domain
中表達人臉的所有部分,而不受光的干擾而產生模糊,因此在根據域數據生成素描時采用了直方圖均衡化方法。更具體地說,在直方圖均衡化之后,我們應用HED
從圖像中提取邊緣。然后,我們平滑曲線並刪除小對象。最后,與mask
進行逐項乘機(采用類似於以前的free-form mask
的生成過程)和對圖像進行彩色化,得到color brushed
圖像。數據示例,如下:
Network Architecture
- 作者的
completion network
(即generator
),采用了encoder-decoder architecture like the U-net
。discrimination network
是基於SN-patchGAN
的。 trains generator and discriminator simultaneously
。- 網絡的輸出結果為
512×512.(RGB channel)
- 網絡的處理過程:
- 將生成器網絡輸出圖像的遮罩區域插入輸入圖像(
incomplete image
)以創建complete image
。 - 上面生成的
complete image
和原始圖片(original image (without masking) or ground truth
)輸入到判別器網絡(discrimination network
)來判別圖片的真假。
- 將生成器網絡輸出圖像的遮罩區域插入輸入圖像(