图像风格迁移
- 最早实现风格迁移的原理:
- 损失函数
- 内容损失函数
- 风格损失函数
- 融合内容损失函数与风格损失函数
- 可以融合多种风格图片的效果
- 同一个网络可以生成多种风格图像的效果
- 效果改进
最早实现风格迁移的原理:
最早出现的论文的实现想法是将风格图像、内容图像、白噪声图像输入到VGG19网络,利用求得的风格损失函数与内容损失函数,利用迭代,实现图像风格迁移。
损失函数
损失函数包括****内容损失与风格损失
内容损失函数
分析各层的输出特征图可以发现,浅层网络学习提取得到的特征多为像素、纹理等特征;深层网络结构学习提取的特征多是更偏向语义的特征
如下为使用不同的层来进行内容的重建的效果图:
可以发现,网络层数越深,重建的效果就越差,越更加偏向于语义
风格损失函数
向量点乘,可以反映出 某两种特征之间的共线相关性。
反映出256个特征向量间的两两共线相关性,对角线上的数据为自身共线相关性。
下图是采用不同的层输出特征计算获得的格拉姆矩阵构建的风格损失函数获得的不同效果:
底层的网络捕获得到的风格特征是比较细小的风格特征;高层的网络结构捕获的风格特征是比较更宏观、更高层的原始风格特征。
只优化风格损失函数的话,获得的效果相当于是纹理生成。
融合内容损失函数与风格损失函数
可以融合多种风格图片的效果
思路是:将多张风格图的gram矩阵分别求出,获得一张图像与多张风格图gram矩阵的做差结果,得到损失函数,多个损失函数进行相加
同一个网络可以生成多种风格图像的效果
效果改进
最初的图像风格迁移实现的方式是,先生成随机噪音图像,然后经过不断地迭代优化实现风格迁移的学习,过程较慢、耗时;如下是优化后的方案,即加上一个生成网络的模块。
思路是:对输入的图像先经过**Feedforward Net(生成网络)**模块进行下采样,然后再进行上采样(反卷积)进行尺寸还原;将经过生成网络得到的图像再经过VGG16(已经训练好的ImageNet数据模型,可以更好地捕捉图像中重要信息),与风格图像与内容图像进行差异对比