曉查 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
如果你想用AI把特朗普的臉變成貓,又或者是把自己的臉與漂亮的奧妹結合起來,你會怎麼辦?
也許你會想到兩樣AI工具。但是Deepfake生成人臉違和感太強,GAN生成假臉又很難深度定製。
現在來自韓國團隊開發的風格遷移模型StarGANv2可以完美解決這個問題。
如果你是一個對GAN長期關注的同學,那麼一定還記得StarGAN,它是韓國高麗大學和Clova AI研究院在2017年底推出的風格遷移模型。
只需輸入一張大頭照,StarGAN就能讓你知道自己改變髮型、性別、年齡後分別長啥樣。
而StarGANv2正是同一研究團隊推出的升級版本,已經被CVPR 2020收錄。最近他們在GitHub上公佈了官方實現代碼,很快就被網友玩壞了。
StarGANv2有兩個訓練數據集,一個針對人臉,一個針對動物臉。
兩者本來是“井水不犯河水”,但是有人偏偏要混用,拿特朗普的臉輸入到動物臉預訓練模型裡。結果川普的臉轉換成貓就成了這樣:
與狗臉合成又成了這樣,模型甚至給狗穿上了西服。
安裝使用
這麼有趣的模型,如何安裝呢?好在StarGANv2的開發團隊提供了完整的代碼和預訓練模型。
先將項目克隆到本地:
<code>git clone https://github.com/clovaai/stargan-v2.git cd stargan-v2//<code>
安裝依賴項:
<code>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/<code>
然後下載預訓練數據集,其中前兩項是人臉數據集和預訓練模型,後一項是動物臉。
<code>bash download.sh pretrained-network-celeba-hq bash download.sh wing bash download.sh pretrained-network-afhq/<code>
最後將需要轉換的照片裁切成和數據集圖片一樣的長寬比,輸入以下命令轉換圖片。
<code>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/<code>
效果遠超其他GAN
StarGANv2由四個模塊組成:
- 生成器將輸入圖像轉換為反映特定域風格編碼的輸出圖像;
- 映射網絡將潛在代碼轉換為訓練中隨機選擇的多個域的風格編碼;
- 風格編碼器提取圖像的風格編碼,允許生成器執行參照物引導的圖像合成;
- 鑑別器從多個域中區分真實圖像和虛假圖像。
作者隨機選取了10張圖像進行風格遷移的實驗,結果FID遠遠小於其他同類模型。
他們還把四種模型生成的圖像上傳到AMT平臺,交給人工評選,絕大部分測試者都認為StarGANv2生成的圖片更優質。
從人工評選的結果也可以看出,StarGANv2在生成動物臉上的效果更好,難怪網友要拿動物模型來改造特朗普頭像了。
傳送門
論文地址:
https://arxiv.org/abs/1912.01865v2
官方實現代碼:
https://github.com/clovaai/stargan-v2
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態