由于传统的L1,L2 loss是针对于像素级的损失计算,且L2 loss与人眼感知的图像质量并不匹配,单一使用L1或L2 loss对于超分等任务来说恢复出来的图像往往细节表现都不好。

现在的研究中,L2 loss逐步被人眼感知loss所取代。人眼感知loss也被称为perceptual loss(感知损失),它与MSE(L2损失)采用图像像素进行求差的不同之处在于所计算的空间不再是图像空间。

研究者们常使用VGG等网络的特征,令φ来表示损失网络,Cj表示网络的第j层,CjHjWj表示第j层的特征图的大小,感知损失的定义如下:可以看出,它有与L2 loss同样的形式,只是计算的空间被转换到了特征空间。

本篇文章首次提出感知损失,分别在图像风格转化和单张图像超分上进行实验和对比,证明了感知损失的有效性。

下面针对单张图像的超分进行解释说明。

感知损失通过一个固定的网络(VGG16,VGG19..),分别用prediction 和 groundtruth作为VGG16输入, 得到对应的输出特征,pre-vgg,gt-vgg。

然后让pre-vgg和gt-vgg构造损失(L2-Loss)。使预测结果和真实值之间的深层信息(感知信息)不断接近。

相比于普通的L2-Loss,使用感知损失可以更好的增强输出的细节信息。

构建感知损失准备:

1.预训练好的VGG网络,只需要prediction阶段(前向即可)。

2.送入prediction和ground truth分别通过VGG前向,并得到pre-vgg,gt-vgg。

3.计算pre-vgg和gt-vgg的L2损失。 注:往往pre-loss(感知损失)为正则项,需要配合其他损失函数进行指导,可以通过自定参数调节感知损失的惩罚(调节)力度。

在提取特征时,通常不会只使用一层的特征,而是使用网络中浅层,中层,深层特征,进行组合。 比图vgg16会使用 3 ,5,7层进行组合,并对输出特征进行累加。

原论文中,针对单张图像超分问题。 作者并不鼓励输出图像ˆy=fW(x)的像素与目标图像y的像素完全匹配,而是鼓励它们具有与损失网络φ计算的相似的特征表示。

设φj (x)为处理图像x时网络φ的第j层的激活情况;如果j是一个卷积层,那么φj (x)将是形状Cj×Hj×Wj的特征图。特征重建的损失是特征表示之间的(平方,归一化)欧氏距离:

如下图所示,找到一个使早期层特征重建损失最小的图像ˆy往往会产生视觉上与y无法区分的图像。 当从更高的层次重建时,图像内容和整体空间结构被保留,但颜色、纹理和精确的形状没有被保留。使用特征重建损失进行训练,我们的图像转换网络鼓励输出图像ˆy在感知上与目标图像y相似,但并不迫使它们精确匹配。

上面所述殴打简而言之一句话:针对于单张图像的超分问题,选择浅层(论文说是relu2_2)的特征图进行损失计算,而对于风格转化任务,选择深层特征或深层结合浅层的特征图来计算损失。

下图是实验结果:

代码:

2023.2.16

在使用vgg作为模型推导的感知损失时,突然发现一个问题,都说一般选择浅层和深层的网络作为损失函数的计算层,比如这里我取第三层卷积和第13层卷积,可是第三层卷积有64个通道,第13层卷积后有256个通道,这么多通道要怎么计算损失呢?是求均值吗?后面看了别人的代码是这样处理的。这里直接上整体代码。关键一行是:np.mean() 也就是说应该是64个通道求均值了。

还有一点特别要注意,看到很多人分享的代码都是定义relu层为损失计算层,我亲自测试过发现,relu后特征可视化会变的偏向黑色,甚至在刚开始训练的时候就是全黑的,全黑的图像和半黑的GT图计算损失,损失可能会变成0.0000000007这样的,所以选择层的时候一定要选择卷积后的层,而不是relu后的层,目前选择卷积后的层[0,14,24] 特征可视化和损失函数均正常。

更新一下感知损失的结果,在训练接近拟合后,打印出预测和GT的特征图,已经非常相似了,损失函数也到达0.000001这样了,特征图如下:(左边的是预测的结果,右边是GT)

测试了一下发现没有明显的涨点,但是感知损失理论上也不会明显的涨点,感知损失的主要作用还是增强图像的细节,虽然这次测试也没有看到细节的增强,但是原因应该是模型还没有拟合完全,后续更新结果。

更新。。

上面说的应该选择卷积层作为特征图,是自己分析的结论,实验结果发现是可行的,但是原论文中说明的是relu2_2层,然后原论文还说应该选择L2loss做为感知损失的计算函数,可是有其他研究表明L1loss+L2loss的效果更好,至于选择哪个loss 选择 哪个层 这个还是亲身实践去试一试吧,下面贴一些第一次实验的结果。

上面三张从上到下分别是GT,不加感知损失的结果,加入感知损失(3,14,27卷积层累加)的结果。

在psnr上没有明显的变化,对于细节来说,仔细看是可以看到感知损失的细节强化效果(噪声减小了,对应gt来说细节也有所强化)。

2.28继续更新感知损失,这次使用L1来计算感知损失,且加入不同比列来增强或抑制感知损失与原始损失的比例,细节效果明显得到提高,效果如下:

左图是未加入感知损失的推理结果,右图为加入感知损失的结果,细节提升十分明显。

Perceptual Loss(感知损失)Perceptual Losses for Real-Time Style Transferand Super-Resolution论文解读相关推荐

  1. GAN网络生成:感知损失(Perceptual Losses)

    本文是参考文献[1]的笔记.该论文是Li Fei-Fei名下的论文. 引入 最近新出的图像风格转换算法,虽然效果好,但对于每一张要生成的图片,都需要初始化,然后保持CNN的参数不变,反向传播更新图像, ...

  2. perceptual loss(感知loss)介绍

    1.介绍 在讲感知损失函数之前,我们先讲一下,网络所提取到的特征代表什么,在下图中,layer1,layer2学到的是边缘,颜色,亮度等底层的特征:layer3开始变得复杂,学到的是纹理的特征,Lay ...

  3. 感知损失(perceptual loss)详解

    本文来自收费专栏:感知损失(perceptual loss)详解_南淮北安的博客-CSDN博客_感知损失 目录 一.感知损失 二.Loss_feature 三.Loss_style 感知损失的作用: ...

  4. Pytorch Feature loss与Perceptual Loss的实现

    本文主要改动自:https://github.com/sowmyay/medium/blob/master/CV-LossFunctions.ipynb 首先回顾下特征损失(Feature loss) ...

  5. 深度学习在单图像超分辨率上的应用:SRCNN、Perceptual loss、SRResNet

    单图像超分辨率技术涉及到增加小图像的大小,同时尽可能地防止其质量下降.这一技术有着广泛用途,包括卫星和航天图像分析.医疗图像处理.压缩图像/视频增强及其他应用.我们将在本文借助三个深度学习模型解决这个 ...

  6. LPIPS 图像相似性度量标准(感知损失)

    可学习感知图像块相似度(Learned Perceptual Image Patch Similarity, LPIPS)  项目主页:https://richzhang.github.io/Perc ...

  7. 【损失函数:3】感知损失:Perceptual Loss、总变分损失(TV Loss)(附Pytorch实现)

    损失函数 一.感知损失(Perceptual Loss) 1.相关介绍 1)Perceptual Loss是什么? 2)Perceptual Loss如何构造? 3)代码实现 2.代码示例 二.总变分 ...

  8. 损失函数——感知损失(Perceptual Loss)

    感知损失(Perceptual Loss)是一种基于深度学习的图像风格迁移方法中常用的损失函数.与传统的均方误差损失函数(Mean Square Error,MSE)相比,感知损失更注重图像的感知质量 ...

  9. Perceptual Loss(感知损失)论文笔记

    "Perceptual Losses for Real-Time Style Transfer and Super-Resolution"论文出自斯坦福大学李飞飞团队,发表于ECC ...

最新文章

  1. IDEA运行第一个Spring Boot应用程序
  2. 蓝桥杯-未名湖边的烦恼(java)
  3. 【学习笔记】mybatis自定义插件案例代码
  4. 【10月17日】2020年十月蓝桥杯A组题目【感想与总结】(热乎的)
  5. 【CCF】201803-2 碰撞的小球
  6. 带有天气预报的高大上web报表制作分享
  7. 笨方法学python 习题11
  8. Java代码编写规范总结
  9. 小米安装linux驱动怎么安装教程,小米手机驱动程序怎么安装教程【图文版】
  10. esp8266 蓝牙耳机_基于Qualcomm QCC3001/TWS迷你型入耳式蓝牙耳机方案
  11. 强化学习DQN 入门小游戏 最简单的Pytorch代码
  12. developer.biao.daily.20140628
  13. 软件测试周刊(第48期):无聊是非常有必要的,一个人在空白时间所做的事,决定了这个人和其他人根本的不同。
  14. 使用两种方式,Android 发送文件到指定邮箱(带多个附件)
  15. 【每日一短语】首席芭蕾舞演员
  16. 大材小用,211硕士抢占家政市场?
  17. PAP和CHAP认证是什么
  18. 谈谈我的佛系增长之道
  19. 基于stm32的恒功率无线充电
  20. 软件定义存储的头部厂商也来了,XSKY 星辰天合加入龙蜥社区

热门文章

  1. [ssh新闻发布系统四]使用富文本编辑器发布新闻
  2. PostgreSql强制删除数据库的操作
  3. matplotlib——3D绘图教程
  4. 准确率 99.9% 的离线IP地址定位库
  5. 大数据离线阶段--数据获取
  6. SPADE(GauGAN)算法笔记
  7. 数字从0递增到指定数值
  8. ICE通信之IceBox服务器
  9. 计算机网络自顶向下 应用层 习题
  10. 字节跳动历年校招Android面试真题解析,大厂直通车!