生成“貓狗版”特朗普,造假臉工具StarGANv2被玩壞,算法已開源
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
如果你想用AI把特朗普的臉變成貓,又或者是把自己的臉與漂亮的奧妹結合起來,你會怎么辦?
也許你會想到兩樣AI工具。但是Deepfake生成人臉違和感太強,GAN生成假臉又很難深度定制。
現在來自韓國團隊開發的風格遷移模型StarGANv2可以完美解決這個問題。

如果你是一個對GAN長期關注的同學,那么一定還記得StarGAN,它是韓國高麗大學和Clova AI研究院在2017年底推出的風格遷移模型。
只需輸入一張大頭照,StarGAN就能讓你知道自己改變發型、性別、年齡后分別長啥樣。
而StarGANv2正是同一研究團隊推出的升級版本,已經被CVPR 2020收錄。最近他們在GitHub上公布了官方實現代碼,很快就被網友玩壞了。
StarGANv2有兩個訓練數據集,一個針對人臉,一個針對動物臉。
兩者本來是“井水不犯河水”,但是有人偏偏要混用,拿特朗普的臉輸入到動物臉預訓練模型里。結果川普的臉轉換成貓就成了這樣:

與狗臉合成又成了這樣,模型甚至給狗穿上了西服。

安裝使用
這么有趣的模型,如何安裝呢?好在StarGANv2的開發團隊提供了完整的代碼和預訓練模型。
先將項目克隆到本地:
- git clone https://github.com/clovaai/stargan-v2.git
- cd stargan-v2/
安裝依賴項:
- conda create -n stargan-v2 python=3.6.7
- conda activate stargan-v2
- conda install -y pytorch=1.4.0 torchvision=0.5.0 cudatoolkit=10.0 -c pytorch
- conda install x264==’1!152.20180717’ ffmpeg=4.0.2 -c conda-forge
- pip install opencv-python==4.1.2.30 ffmpeg-python==0.2.0 scikit-image==0.16.2
- pip install pillow==7.0.0 scipy==1.2.1 tqdm==4.43.0 munch==2.5.0
然后下載預訓練數據集,其中前兩項是人臉數據集和預訓練模型,后一項是動物臉。
- bash download.sh pretrained-network-celeba-hq
- bash download.sh wing
- bash download.sh pretrained-network-afhq
最后將需要轉換的照片裁切成和數據集圖片一樣的長寬比,輸入以下命令轉換圖片。
- python main.py —mode sample —num_domains 2 —resume_iter 100000 —w_hpf 1 \
- —checkpoint_dir expr/checkpoints/celeba_hq \
- —result_dir expr/results/celeba_hq \
- —src_dir assets/representative/celeba_hq/src \
- —ref_dir assets/representative/celeba_hq/ref
效果遠超其他GAN
StarGANv2由四個模塊組成:
- 生成器將輸入圖像轉換為反映特定域風格編碼的輸出圖像;
- 映射網絡將潛在代碼轉換為訓練中隨機選擇的多個域的風格編碼;
- 風格編碼器提取圖像的風格編碼,允許生成器執行參照物引導的圖像合成;
- 鑒別器從多個域中區分真實圖像和虛假圖像。

作者隨機選取了10張圖像進行風格遷移的實驗,結果FID遠遠小于其他同類模型。

他們還把四種模型生成的圖像上傳到AMT平臺,交給人工評選,絕大部分測試者都認為StarGANv2生成的圖片更優質。

從人工評選的結果也可以看出,StarGANv2在生成動物臉上的效果更好,難怪網友要拿動物模型來改造特朗普頭像了。

傳送門
論文地址:https://arxiv.org/abs/1912.01865v2
官方實現代碼:https://github.com/clovaai/stargan-v2