您可以使用該網站透過多種neural style遷移方法對圖像進行風格化。
此專案主要在Keras 2.1.3中實現(部分是Tensorflow)
示範影片
快速neural style
神經風格「 style="max-width: 100%;">
風格互換
面具款式
快速neural style
快速neural style實作基於misgod的fast-neural-style-keras,我們對其進行了一些更改,該方法基於Johnson等人的即時風格遷移和超解析度的感知損失。
在目前版本中,我們將影像變換網路中的一些 Conv2D 層替換為深度可分離卷積。培訓程序的詳細資訊將很快添加。
風格互換
樣式交換層參考eridgd的WCT-TF,原始論文是Chen等人的Fast Patch-based Style Transfer of Arbitrary Style。
面具款式
我們使用matterport實作的Mask R-CNN,Mask R-CNN的原始論文是He等人的Mask R-CNN。
Python >= 3.5(蟒蛇)
CUDA >=8.0(對於GPU支持,使用較新版本需要檢查與tensorflow-gpu版本的兼容性)
Cudnn >=6.0(用於 GPU 支援)
燒瓶0.12.2
喀拉斯2.1.3
張量流GPU 1.4
scipy 1.0.0
scikit 影像
pycoco工具
伊姆高格
皮爾
賽通
還需要滿足Mask R-CNN的要求。
下載經過精煉的預訓練模型,並將模型解壓縮到models/fast_style_transfer/pretrained
中,然後修改models/file_path.py
中的 MODELS_PATH ,並使用控制台移動到根項目資料夾並輸入
python app.py
然後開啟瀏覽器前往localhost:5000
你必須先下載COCO資料集,我們使用2014年的訓練集(83K圖片)。
快速neural style原創
您需要將models/src/nets.py
中的loss_net
函數中的路徑字串填入預先訓練的 vgg16 模型中。請注意,您的訓練圖像應該放在像這樣的資料夾中cocotrain/0/xxx.jpg
因為我們使用 ImageDataGenerator 來載入圖像,它假設不同類別的圖像儲存在不同的資料夾中。
準備一張樣式圖片並將其放在static/img/styles/
中。
輸入以下命令來訓練模型。這是一個範例,顯示如果我的訓練圖像儲存在專案根資料夾中,並說我想訓練名為馬賽克的樣式。
python train_fast_model.py -p ./cocotrain -s mosaic
您也可以調整 content 和 style 的權重,輸入 -h 以查看所有參數。
python train_fast_model.py -h
快速neural style蒸餾
您需要擁有原始的快速neural style預訓練模型,這裡是原始預訓練模型的連結。
運行generate_image.py
,還需要使用-p
指定COCO資料集路徑。
python generate_image.py -p ./cocotrain
train_distillated_model.py
,需要COCO資料集路徑和樣式名稱。下面是範例。 python train_distillated_model.py -p ./cocotrain -s mosaic
風格互換模型
你不僅需要COCO資料集,還需要大量的風格影像。就像紙張一樣,我們使用 Painter by Numbers。請注意,您的訓練圖像和樣式圖像應放入cocotrain/0/xxx.jpg
和styleimages/0/xxx.jpg
等資料夾中。
train_style_swap_model.py
,需要COCO資料集路徑和樣式影像的路徑。下面是範例。 python train_style_swap_model.py -p ./cocotrain -s ./styleimages