最近忙著弄論文,不知不覺三個多月沒更新了 = =
心里實在過意不去,分享一下前段時間看的一篇論文,以及復現(xiàn)的模型~
一鍵上妝效果如下
BeautyGAN
- 論文名稱:BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network,2018年的ACM MM
- 官方網(wǎng)站:http://liusi-group.com/projects/BeautyGAN
- 實現(xiàn)功能:輸入兩張人臉圖片,一張無妝,一張有妝,模型輸出換妝之后的結(jié)果,即一張上妝圖和一張卸妝圖
采用了經(jīng)典的圖像翻譯結(jié)構(gòu):
- 生成器G包括兩個輸入,分別是無妝圖、有妝圖,通過encoder、residual blocks、decoder得到兩個輸出,分別是上妝圖、卸妝圖
- 上妝和卸妝不能改變原始的人物信息,這里通過perceptual loss保證
- 使用兩個判別器,DA區(qū)分真假無妝圖,DB區(qū)分真假有妝圖
- 訓練了一個語義分割網(wǎng)絡用于提取人臉不同區(qū)域的mask,上妝圖和有妝圖在臉部、眼部、嘴部三個區(qū)域需滿足makeup loss,通過直方圖匹配實現(xiàn)
- 把上妝圖和卸妝圖再次輸入給G,重新執(zhí)行一次卸妝和上妝,從而得到兩張重建圖,通過cycle consistency loss需要和原始圖相同
論文中的上妝結(jié)果看起來很nice~
作者也很nice地給出了自建的數(shù)據(jù)集,包括1116張無妝圖、2720張有妝圖,在官方網(wǎng)站提供了下載鏈接
唯一不nice的是,沒有開源代碼,也沒有提供訓練好的模型
自己動手
看了論文中的效果,正好數(shù)據(jù)集也可以下載,感覺挺有意思,當然要手動復現(xiàn)一下啦
復現(xiàn)結(jié)果如下,看起來還闊以~
- 項目放到了Github上,https://github.com/Honlan/BeautyGAN
- 訓練好的模型傳到了網(wǎng)盤上,https://pan.baidu.com/s/1wngvgT0qzcKJ5LfLMO7m8A,7lip
- 編程環(huán)境為Python3.6和TensorFlow1.9
- 項目中包括11張無妝圖片,以及9張有妝圖片
- 下載訓練好的模型,新建文件夾model,將模型文件放于其中
默認對imgs/no_makeup/xfsy_0068.png
進行上妝
python main.py
如果需要對其他人臉圖片上妝,傳入圖片路徑即可,推薦使用大小合適的正臉圖片
python main.py --no_makeup xxx.xxx
自取玩耍,歡迎star~