1、Gram矩阵的定义

n维欧式空间中任意k个向量之间两两的内积所组成的矩阵,称为这k个向量的格拉姆矩阵(Gram matrix)

根据定义可以看到,每个Gram矩阵背后都有一组向量,Gram矩阵就是由这一组向量两两内积得到的,先说一下向量内积是做什么的。

一个重要的应用就是可以根据内积判断向量a和向量b之间的夹角和方向关系,具体来说:

a·b>0    方向基本相同,夹角在0°到90°之间
a·b=0    正交,相互垂直  
a·b<0    方向基本相反,夹角在90°到180°之间 

简单来说就是内积可以反映出两个向量之间的某种关系或联系。Gram矩阵是两两向量的内积组成的,所以Gram矩阵可以反映出该组向量中各个向量之间的某种关系。

风格迁移中的Gram矩阵

深度学习中经典的风格迁移大体流程是:
1. 准备基准图像和风格图像
2. 使用深层网络分别提取基准图像(加白噪声)和风格图像的特征向量(或者说是特征图feature map)
3. 分别计算两个图像的特征向量的Gram矩阵,以两个图像的Gram矩阵的差异最小化为优化目标,不断调整基准图像,使风格不断接近目标风格图像

这里边比较关键的一个是在网络中提取的特征图,一般来说浅层网络提取的是局部的细节纹理特征,深层网络提取的是更抽象的轮廓、大小等信息。这些特征总的结合起来表现出来的感觉就是图像的风格,由这些特征向量计算出来的的Gram矩阵,就可以把图像特征之间隐藏的联系提取出来,也就是各个特征之间的相关性高低。如果两个图像的特征向量的Gram矩阵的差异较小,就可以认定这两个图像风格是相近的。

格拉姆矩阵可以看做feature之间的偏心协方差矩阵(即没有减去均值的协方差矩阵),在feature map中,每个数字都来自于一个特定滤波器在特定位置的卷积,因此每个数字代表一个特征的强度,而Gram计算的实际上是两两特征之间的相关性,哪两个特征是同时出现的,哪两个是此消彼长的等等,同时,Gram的对角线元素,还体现了每个特征在图像中出现的量,因此,Gram有助于把握整个图像的大体风格。有了表示风格的Gram Matrix,要度量两个图像风格的差异,只需比较他们Gram Matrix的差异即可。

3、计算实例

MATLAB计算程序及结果:

x1=[3,3]',  
x2=[4,3]',  
x3=[1,1]',  
G=[x1'*x1,x1'*x2,x1'*x3;  
    x2'*x1,x2'*x2,x2'*x3;  
    x3'*x1,x3'*x2,x3'*x3] 
         
G =

18    21     6

21    25     7

6     7     2

格拉姆矩阵(Gram Matrix)相关推荐

  1. 【小概念】格拉姆矩阵(gram matrix)

    gram矩阵是计算每个通道I的feature map与每个通道j的feature map的内积. gram matrix的每个值可以说是代表i通道的feature map与j通道的feature ma ...

  2. Gram matrix 格拉姆矩阵

    2019独角兽企业重金招聘Python工程师标准>>> Gram matrix 度量各个维度自己的特性以及各个维度之间的关系. 来自:https://www.zhihu.com/qu ...

  3. 风格迁移与Gram matrix

    参考链接:https://blog.csdn.net/hellocsz/article/details/91486679 参考链接:https://blog.csdn.net/appleyuchi/a ...

  4. python神经结构二层_《python深度学习》笔记---8.3、神经风格迁移

    <python深度学习>笔记---8.3.神经风格迁移 一.总结 一句话总结: 神经风格迁移是指将参考图像的风格应用于目标图像,同时保留目标图像的内容. 1."神经风格迁移是指将 ...

  5. 风格化图像_【技术综述】人脸风格化核心技术与数据集总结

    我的新书<深度学习之人脸图像算法>市了,欢迎大家关注! 言有三新书来袭,业界首次深入全面讲解深度学习人脸图像算法​mp.weixin.qq.com 人脸图像是计算机视觉领域中研究历史最久, ...

  6. 【技术综述】人脸风格化核心技术与数据集总结

    人脸图像是计算机视觉领域中研究历史最久,也是应用最广泛的图像.近几年随着研究方法的进步以及相关数据集的收集,人脸风格化成为了一个非常热门的研究领域和应用方向,本文我们来介绍其中的核心技术和相关资源. ...

  7. 图像迁移风格保存模型_图像风格迁移

    样式迁移 如果你是一位摄影爱好者,也许接触过滤镜.它能改变照片的颜色样式,从而使风景照更加锐利或者令人像更加美白.但一个滤镜通常只能改变照片的某个方面.如果要照片达到理想中的样式,经常需要尝试大量不同 ...

  8. pytorch系统学习

    经过网络后的输出图片形状的计算公式: 第一种情况:如果stride值为0的话,输入形状是n_h x n_w,卷积核窗口是k_h x k_w,那么输出形状是(n_h - k_h +1) x (n_w - ...

  9. 吴恩达Coursera深度学习课程 deeplearning.ai (4-4) 神经风格转换--编程作业

    吴恩达Coursera深度学习课程 deeplearning.ai (4-4) 神经风格转换–编程作业 注:由于这个作业目前未找到完整的中文版的,所以楼主综合了几篇不完整的,自己完整运行了一遍(pyt ...

  10. 吴恩达Coursera深度学习课程 deeplearning.ai (4-4) 人脸识别和神经风格转换--编程作业

    Part 1:Happy House 的人脸识别 本周的第一个作业我们将完成一个人脸识别系统. 人脸识别问题可以分为两类: 人脸验证: 输入图片,验证是不是A 1:1 识别 举例:人脸解锁手机,人脸刷 ...

最新文章

  1. Go 学习笔记(66)— Go 并发同步原语(sync.Mutex、sync.RWMutex、sync.Once)
  2. oracle 分区表的建立方法
  3. 轻松理解汉诺塔问题(图解java描述)
  4. Mysql客户端中文乱码问题解决
  5. 原创全新打包工具Parcel零配置VueJS开发脚手架
  6. 从汉诺塔讲递归的思考方式
  7. 求两个集合是否有交集 c语言_高中数学:集合与函数概念知识点总结
  8. [转]Teach Yourself Programming in Ten Years——用十年教会自己编程
  9. 结构型模式——桥接模式
  10. python网络-多线程(22)
  11. 我们的系统是否需要EJB3?
  12. 我为什么弃用OpenStack转向CNware
  13. vb查询mysql数据库实例_初识vb数据库开发之实例5(数据查询)
  14. 身份证读取设备开发解决方案:1、Windows下开发Qt程序demo读取身份证信息
  15. 10个城市logo设计
  16. Node.js Buffer
  17. 2021最新阿里云部署k8s集群(篇1 购买服务器)
  18. EasyNVR流媒体直播之:零基础实现摄像头的全平台直播 (一)内网直播的实现
  19. python发送json参数
  20. D-Link的DIR-655无线网络firmware升级(一)

热门文章

  1. 卡片跳转快应用指定页面,如何点返回直接退出快应用回到卡片
  2. Tivoli Storage Manager[转]
  3. 云计算是什么? 云计算入门必备的60条术语
  4. html页脚的话,HTML页脚footer标记
  5. ERROR | Corrupt JPEG data: 111 extraneous bytes before marker 0xd9...
  6. 数据库服务器,sql
  7. UVC Camera简单介绍
  8. TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数
  9. 这四款Windows上的高质量软件,装机必备,使用起来极度舒适
  10. C语言 AES加解密