本文是参考文献[1]的笔记。该论文是Li Fei-Fei名下的论文。

引入

最近新出的图像风格转换算法,虽然效果好,但对于每一张要生成的图片,都需要初始化,然后保持CNN的参数不变,反向传播更新图像,得到最后的结果。性能问题堪忧。

但是图像风格转换算法的成功,在生成图像领域,产生了一个非常重要的idea,那就是可以将卷积神经网络提取出的feature,作为目标函数的一部分,通过比较待生成的图片经过CNN的feature值与目标图片经过CNN的feature值,使得待生成的图片与目标图片在语义上更加相似(相对于Pixel级别的损失函数)。

图像风格转换算法将图片生成以生成的方式进行处理,如风格转换,是从一张噪音图(相当于白板)中得到一张结果图,具有图片A的内容和图片B的风格。而Perceptual Losses则是将生成问题看做是变换问题。即生成图像是从内容图中变化得到。

图像风格转换是针对待生成的图像进行求导,CNN的反向传播由于参数众多,是非常慢的,同样利用卷积神经网络的feature产生的loss,训练了一个神经网络,将内容图片输入进去,可以直接输出转换风格后的图像。而将低分辨率的图像输入进去,可以得到高分辨率的图像。因为只进行一次网络的前向计算,速度非常快,可以达到实时的效果。

架构

下面这个网络图是论文的精华所在。图中将网络分为Transform网络和Loss网络两种,在使用中,Transform网络用来对图像进行转换,它的参数是变化的,而Loss网络,则保持参数不变,Transform的结果图,风格图和内容图都通过Loss Net得到每一层的feature激活值,并以之进行Loss计算。

在风格转换上,输入x=yc是内容图片。而在图片高清化上,x是低分辨率图片,内容图片是高分辨率图片,风格图片未曾使用。

网络细节

网络细节的设计大体遵循DCGAN中的设计思路:

确切的网络参数值请参考文献2。

输入输出

Downsampling and Upsampling

Residual Connections

残差连接可以帮助网络学习到identify function,而生成模型也要求结果图像和生成图像共享某些结构,因而,残差连接对生成模型正好对应得上。

损失函数

同图像风格转换算法类似,论文定义了两种损失函数。其中,损失网络都使用在ImageNet上训练好的VGG net,使用φ来表示损失网络。

Feature Reconstruction Loss

使用不同层的重建效果如下:

Style Reconstruction Loss

对于风格重建的损失函数,首先要先计算Gram矩阵,

产生的feature_map的大小为CjHjWj,可以看成是Cj个特征,这些特征两两之间的内积的计算方式如上。

两张图片,在loss网络的每一层都求出Gram矩阵,然后对应层之间计算欧式距离,最后将不同层的欧氏距离相加,得到最后的风格损失。

不同层的风格重建效果如下: 

Simple Loss Function

Loss对比

在图像风格转换任务上,针对不同分辨率的图像,Loss值在Perceptual Loss(ours)和图像风格转换([10])以及内容图片上的。

可以看到,使用Perceptual Loss相当于原始算法迭代50到100次。

而就时间来看:

可以提升几百倍,在GPU上0.0015s可以达到相当的效果,在CPU上更具实用性。

效果图

风格转换



虽然风格转换是在256的图片上训练的,但也可以应用到其他size上,比如512的

图片超清

4倍清晰度提升:


8倍清晰度提升:

总结

贡献当然就是图像风格转换的实用化:

参考文献

  1. Perceptual Losses for Real-Time Style Transfer and Super-Resolution.
  2. Perceptual Losses for Real-Time Style Transfer and Super-Resolution: Supplementary Material

GAN网络生成:感知损失(Perceptual Losses)相关推荐

  1. 不服就GAN:GAN网络生成 cifar10 的图片实例(keras 详细实现步骤),GAN 的训练的各种技巧总结,GAN的注意事项和大坑汇总

    GAN 的调参技巧总结 生成器的最后一层不使用 sigmoid,使用 tanh 代替 使用噪声作为生成器的输入时,生成噪声的步骤使用 正态分布 的采样来产生,而不使用均匀分布 训练 discrimin ...

  2. GAN网络生成手写体数字图片

    Keras真香,以前都是用tensorflow来写神经网络,自从用了keras,发现这个Keras也蛮方便的. 目前感觉keras的优点就是方便搭建基于标准网络组件的神经网络,这里的网络组件包括全连接 ...

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

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

  4. 基于感知损失的实时风格迁移与超分辨率重建

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 方法概述 许多经典的图像问题都可以被看成是图像变换任务,算法接受一 ...

  5. 异常检测 and GAN网络(1)

    文章目录 前言 一.什么是GAN网络? 二.GAN网络的优缺点 总结 前言   这一节主要介绍什么是GAN网络,边学习边记录,总结了一些我认为比较重要的知识点,有不对的地方欢迎大家指正~ 一.什么是G ...

  6. GAN相关:PAN(Perceptual Adversarial Network)/ 感知对抗网络

    GAN相关:PAN(Perceptual Adversarial Network)/ 感知对抗网络 Perceptual Adversarial Networks for Image-to-Image ...

  7. Perceptual Loss(感知损失)Perceptual Losses for Real-Time Style Transferand Super-Resolution论文解读

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

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

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

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

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

最新文章

  1. python 判断字符串是否为空,字典是否为空,列表是否为空,元组是否为空的方法
  2. Java项目:药品管理系统(java+swing+Gui+mysql)
  3. 解决hibernate对Sql Server分页慢的问题
  4. 2、编写单元测试用例,对用户注册功能的DAO层进行测试。(注意:测试用例应考虑成功和失败的情况)...
  5. c语言控制安卓桌面,让你自己编写的Android的Launcher成为系统中第一个启动应用程序,也是唯一的Launcher...
  6. php处理mysql的符号_MySQL数据入库时特殊字符处理
  7. mysql主从配置启动失败_Mysql主从配置错误及解决办法
  8. 桥本分数式(用递归法实现全排列)
  9. PostgreSQL 生成随机数字、字符串、日期、验证码以及 UUID
  10. skyline 查询 和 验证索引数据结构MR-tree的构建
  11. 周末了,看,首富出门遛狗。
  12. 广义表的头尾链表存储表示(第五章 P115 算法5.5,5.6,5.8)
  13. java计算机毕业设计口红专卖网站MyBatis+系统+LW文档+源码+调试部署
  14. 使用Xgboost自带的读取格式DMatrix()
  15. BSCI验厂考勤资料工资作假不一致解决方案
  16. 类的组合在什么情况下使用_什么情况下选择使用圆锥滚子轴承?(原创轴承外贸写作素材)...
  17. 使用腾讯云服务器和个人域名外加WordPress和WDCP建立个人博客的过程
  18. log4j输出系统抛出的异常
  19. Kubernetes(k8s)入门及集群部署文档
  20. ablation study 消融实验/消融研究

热门文章

  1. ubuntu mysql允许远程连接mysql_ubuntu下允许mysql远程连接
  2. 绑定域名_[云丰网]如何绑定第三方购买的域名?
  3. java 并发任务_java 并发 - 运行多个任务并执行第一个结果
  4. jsp点击按钮弹出输入框_按键精灵UI界面的输入框原来是这样使用的
  5. 搭建高可用web和数据库集群
  6. sosoApi 环境搭建
  7. matlab norm 范式
  8. 关于js中cookie的认识
  9. Flex与.NET互操作(一):基于Socket的网络连接
  10. 图片的奇怪Cache_MISS原因!