生成對抗網絡,AI將圖片轉成漫畫風格
哈嘍,大家好。
最近大家都在玩 AI 繪畫,我在 GitHub 上找了一個開源項目,給大家分享一下。
今天分享的這個項目是用 GAN? 生成對抗網絡實現的,關于GAN的原理和實戰我們之前分享過很多文章,想了解的朋友可以去翻歷史文章。
源碼和數據集文末獲取,下面分享如何訓練、運行項目。
1. 準備環境
安裝 tensorflow-gpu 1.15.0?,GPU顯卡使用2080Ti?,cuda版本10.0。
git下載項目AnimeGANv2源碼。
搭建好環境后,還需要準備數據集和vgg19。
下載dataset.zip?壓縮文件,里面包含 6k 張真實圖片和2k張漫畫圖片,用于GAN的訓練。
vgg19是用來計算損失的,下面會有詳細介紹。
2. 網絡模型
生成對抗網絡需要定義兩個模型,一個是生成器,一個是判別器。
生成器網絡定義如下:
生成器中主要的模塊是反向殘差塊
殘差結構(a)和反向殘差塊(b)
判別器網絡結構如下:
3. 損失
計算損失之前先用VGG19?網路將圖片向量化。這個過程有點像NLP?中的Embedding操作。
Eembedding?是講詞轉化成向量,VGG19是講圖片轉化成向量。
VGG19定義
計算損失部分邏輯如下:
這里使用vgg19?分別計算真實圖片(參數real)與生成的圖片(參數fake)?的損失,生成的圖片(參數fake)與漫畫風格(參數anime)的損失。
最終給這兩個損失不同的權重,這樣是的生成器生成的圖片,既保留了真實圖片的樣子,又向漫畫風格進行遷移
4. 訓練
在項目目錄下執行以下命令開始訓練
運行成功后,可以看到一下數據。
同時,也可以看到損失在不斷下降。
源碼和數據集都已經打包好了,需要的朋友評論區留言即可。
如果大家覺得本文對你有用就點個 在看 鼓勵一下吧,后續我會持續分享優秀的 Python+AI 項目。