by KuyiKing
这个小课题将使用明日方舟PRTS的干员图像数据和收集自维基百科的开源图像数据,使用神经风格迁移(Neural Style Transfer, NST)和深梦(DeepDream)算法,合成具有不同画风的干员图像。
- 该课题的全部代码使用Python脚本语言编写,在命令行运行。
- 该课题使用深度学习框架PyTorch搭建神经网络模型。
- 该课题使用的神经风格迁移代码非原创,修改自Aditya Gupta的项目AI-Art.
- 该课题使用的深梦代码非原创,修改自wmn7的项目deep-dream-pytorch,也参考了Aleksa Gordić的项目pytorch-deepdream。
- 该课题中,神经风格迁移代码需要在GPU环境运行,深梦代码可在GPU或CPU上运行(因为本质上深梦只用到了模型推断,不需要后向传播修改大量网络参数)。
- 主要软件或模型的版本如下:
- Python 3.6.2
- PyTorch 1.5.0 与相应版本的 Torchvision 0.2.0
- Python Imaging Library (PIL) 5.0.0
- VGG16(在torchvision.models脚本中可以找到各种预训练图像模型的下载地址,也可以尝试vgg19、resent50等模型。注意:在第一次运行时如果还没有下载相应模型,程序会自动下载。但如果已经单独从别的地方下载了模型,那么需要把下载的模型放到正确路径才能让torchvision调用。路径有/.cache/torch/checkpoints/或者~/.torch/models/等,不同路径取决于操作系统是ubuntu、windows还是osx。)
- 神经风格迁移需要输入内容图像(content_fig)与风格图像(style_fig),最终生成的图像内容来自content_fig,风格则是style_fig的。
- 深梦需要输入内容图像(content_fig)即可,最终生成的图像内容来自content_fig,风格则来自VGG16(或其他你使用的预训练图像模型)不同激活层提取的特征。
- 本课题使用来自明日方舟PRTS的干员立绘图作为content_fig,使用来自WikiArt的世界名画作为style_fig。
---> dataset ---> content_fig # 这个目录下放干员图
|-> style_fig # 这个目录下放世界名画
|-> neural_style_transfer.py # 运行这个脚本,执行神经风格迁移
|-> deep_dream.py # 运行这个脚本,执行深梦
- 无论神经风格迁移还是深梦都是训练完成即得到生成的图像。为方便训练,在neural_style_transfer.py和deep_dream.py中都写了循环执行函数。
- 运行后,神经风格迁移脚本会两两结合content_fig与style_fig生成图像:
python neural_style_transfer.py
- 而深梦脚本会逐个处理content_fig图像:
python deep_dream.py
- 嫌麻烦的话,可以在脚本里找单独执行一次的函数来调用即可。生成的图像都在当前目录下存放。
- AI-Art: about PyTorch (and PyTorch Lightning) implementation of Neural Style Transfer, Pix2Pix, CycleGAN, and Deep Dream.
- deepdream and its various approaches/tutorials: pytorch-deepdream, neural-dream, deep-dream-pytorch.
- 人们发现深度卷积神经网络中,浅层记住的主要是图像的边缘特征(琐碎但具象),深层记住的是图像的整体轮廓(完备而抽象)。
- 人们觉得,所谓的“画风”更倾向于边缘特征,所谓的“主题”(或内容)更倾向于整体轮廓。
- 这些观察心得如果适用于生物的视神经原理,那么浅层神经变异的生物将会看到不同其他同类的风景,而深层神经变异的生物将会看到无尽的碎片,那还真是一场混沌迷梦呢。
2022年2月7日,干员信息更新至将进酒活动。
- 该课题仅供爱好者学习、交流,禁止商用!
- 转载请注明原作者,并附出处链接。