您可以使用该网站通过多种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