neural style源代码阅读

Gram矩阵在风格迁移中的应用

https://blog.csdn.net/dcrmg/article/details/81231044

Gram矩阵本身定义

  • n维欧式空间中任意k个向量之间两两的内积所组成的矩阵

  • 通过网络提取图像局部细节纹理特征向量,组合起来计算Gram矩阵,得到图像特征之间的隐藏联系

  • 数值意义:

    • Gram计算的是两两特征之间的相关性,哪两个特征是同时出现的,哪两个是此消彼长的等等

    • Gram的对角线元素,还体现了每个特征在图像中出现的量

    • Gram矩阵可以度量各个维度自己的特性以及各个维度之间的关系,所以可以反映整个图像的大体风格。只需要比较Gram矩阵就可以比较两个图像的风格差异了。


可以修改的参数

Loss的计算方法:当前为MSE,探究各种方法的区别

更新参数的方法~

调整内容和风格的weight之比


Gatys论文中算法的知乎实现

https://zhuanlan.zhihu.com/p/30349930

  • CNN卷积过后提取了图像的特征图,每个数字是原图像的特征大小,Gram矩阵内积运算后,特征图中越大的数字数字会变得更大,相当于对图像的特性进行缩放,使得特征突出

  • 迁移vgg16模型并剔除全连接部分,加入计算内容和风格loss的部分

  • 优化:使用LBFGS -> 对于多个loss的优化可以取得较好效果