基于AdaIN的实时图像风格迁移-照片艺术化
文章目录
- 概要
- 理论知识
- 操作实操
- 环境配置
- 基础命令格式:
- 参数详解
- 效果示例
概要
官网:https://github.com/xunhuang1995/AdaIN-style
提示:本人打包代码、模型、5k种风格参考图,百度云分享:pytorch-AdaIN-master.zip 链接: https://pan.baidu.com/s/1lobiPdJYeilgzeT66nSKwg?pwd=3wgb 提取码: 3wgb
AdaIN提出了第一个实时样式迁移算法,该算法能够传输任意新样式,而非仅限于单个样式或 32 个预定义样式。该算法在 Pascal Titan X 上运行时,图像分辨率为 512x512,速度可达 15 FPS。与 Gatys 等人提出的原始算法相比,这一算法的加速效果约为 720 倍,同时不牺牲任何灵活性。为了实现这一目标,算法引入了一种新的自适应实例归一化(AdaIN)层。该层与传统的实例归一化类似,但不同的是,AdaIN 通过从任意样式图像的特征表示自适应计算仿射参数,从而实现对任意新样式的传输。
理论知识
一、算法核心原理
本实现核心是ICCV 2017提出的Adaptive Instance Normalization技术,核心思想:通过调整内容特征的统计量(均值、方差)来匹配风格特征
数学表达式:
AdaIN(c, s) = σ(s)*(c - μ(c))/σ(c) + μ(s)
其中c代表内容特征,s代表风格特征
操作实操
环境配置
requirements.txt配置如下,实际上优于该要求即可。
numpy==1.22.0
Pillow==9.0.1
pkg-resources==0.0.0
protobuf==3.15.0
six==1.12.0
tensorboardX==1.8
torch==1.2.0
torchvision==0.4.0
tqdm==4.35.0
opencv-python==4.4.0.46
imageio==2.9.0
下载预训练模型:vgg_normalised.pth、decoder.pth,云盘分享文件中已有。
模型位置
项目目录/
├── models/
│ ├── vgg_normalised.pth
│ └── decoder.pth
数据位置
项目目录/input/
├── content/内容图像(输入图像)
├── style/风格图像(参考图像)
├── videos/视频转换时使用
基础命令格式:
python test.py \
--content [内容图像路径] \
--style [风格图像路径] \
--output [输出目录] \
--alpha [风格强度]
云盘分享文件中,test.py可直接在pycharm中运行,生成单张图像。
test批量.py将根据image_sets = os.listdir(‘input/style’),批量化生成多种风格图像。
参数详解
参数 | 类型 | 说明 |
---|---|---|
–content | str | 内容图像路径 |
–style | str | 参考风格图像路径 |
–alpha | float(0-1) | 风格化强度 |
–content_size | int | 内容图像尺寸 |
–style_size | int | 风格图像尺寸 |
–preserve_color | flag | 保持内容图像颜色 |
–crop | bool | 启用中心裁剪 |
其中–style为多个时,将进行风格融合。
效果示例
云盘分享代码直接运行test批量.py,生成效果如下: