风格迁移

基于在线图像优化的慢速神经网络方法

在线图像优化的基本思想是分别从内容和风格图像中提取内容和风格特征,并将这两个特征重新组合成为目标图像,之后在线迭代地重建目标图像,依据是生成图像与内容和风格图像之间的差异。

input

-noise
-content_img
-style_img

output

generated_img

Loss

内容损失函数定义为两者通过VGG网络提取的特征之间的欧式距离。
风格损失函数定义为两者通过VGG网络提取的特征之间的格拉姆矩阵的欧氏距离。
对于一个深层网络,浅层网络提取的是低维特征如颜色等,深层网络提取的是高维的语义内容信息。所以风格损失经常对比的是浅层网络特征,内容损失对比的是深层网络特征。使用VGG-19网路,一个推荐的选择是内容损失取1到5层的5个特征图,风格损失取第4层特征图。
另一点比较重要的是经常会添加一个整体差异loss,用来平滑生成图像,使结果更自然。
该方法应用的最大限制是效率问题,单张图片生成耗时少则几分钟,多则几个小时。


风格迁移_第1张图片
为了便于计算,将三维的feature map展开成二维

content_loss

a是某一层卷积的激活值


content_loss

style_loss

style matrix使用gram matrix表示

gram matrix

风格迁移_第2张图片
gram matrix

feature map中的每个值代表某个特征的激活强度,Gram Matrix中的值表示,相乘特征值之间的关系,值越大,表示特征越相关,以此来表示风格。对角线元素表示该filter的活跃程度,值越大,表示提取某特征越明显。
style_loss

将多个ocnv层的style_loss相加,得到更好的结果

total_loss

风格迁移_第3张图片
total_loss.png

两者各带一个超参数可以调整内容和风格之间的平衡

训练参数

生成图片G
由预训练模型VGG提取的参数,是constant(常量),不会更新
每次训练迭代,更新的参数并非VGG19网络本身,而是随机初始化的输入x;
由于输入x是随机初始化的,最终得到的“合成画”会有差异;
每生成一幅“合成画”,都要重新训练一次,速度较慢,难以做到实时。

你可能感兴趣的:(风格迁移)