GAN网络生成:感知损失(Perceptual Losses)
本文是参考文献[1]的笔记。该论文是Li Fei-Fei名下的论文。
引入
最近新出的图像风格转换算法,虽然效果好,但对于每一张要生成的图片,都需要初始化,然后保持CNN的参数不变,反向传播更新图像,得到最后的结果。性能问题堪忧。
架构
在风格转换上,输入x=yc是内容图片。而在图片高清化上,x是低分辨率图片,内容图片是高分辨率图片,风格图片未曾使用。
网络细节
- 不使用pooling层,而是使用strided和fractionally strided卷积来做downsampling和upsampling,
- 使用了五个residual blocks
- 除了输出层之外的所有的非residual blocks后面都跟着spatial batch normalization和ReLU的非线性激活函数。
- 输出层使用一个scaled tanh来保证输出值在[0, 255]内。
- 第一个和最后一个卷积层使用9×9的核,其他卷积层使用3×3的核。
输入输出
- 对于风格转换来说,输入和输出的大小都是256×256×3。
- 对于图片清晰化来说,输出是288×288×3,而输入是288/f×288/f×3,f是压缩比,因为Transform Net是全卷积的,所以可以支持任意的尺寸。
Downsampling and Upsampling
- 对于图片清晰化来说,当upsampling factor是f的时候,使用后面接着log2f个stride为1/2卷积层的residual blocks.
- fractionally-strided卷积允许网络自己学习一个upsampling函数出来。
- 对于风格转换来说,使用2个stride=2的卷积层来做downsample,每个卷积层后面跟着若干个residual blocks。然后跟着两个stride=1/2的卷积层来做upsample。虽然输入和输出相同,但是这样有两个优点:
- 提高性能,减少了参数
- 大视野,风格转换会导致物体变形,因而,结果图像中的每个像素对应着的初始图像中的视野越大越好。
Residual Connections
残差连接可以帮助网络学习到identify function,而生成模型也要求结果图像和生成图像共享某些结构,因而,残差连接对生成模型正好对应得上。
损失函数
同图像风格转换算法类似,论文定义了两种损失函数。其中,损失网络都使用在ImageNet上训练好的VGG net,使用φ来表示损失网络。
Feature Reconstruction Loss
Style Reconstruction Loss
产生的feature_map的大小为CjHjWj,可以看成是Cj个特征,这些特征两两之间的内积的计算方式如上。
两张图片,在loss网络的每一层都求出Gram矩阵,然后对应层之间计算欧式距离,最后将不同层的欧氏距离相加,得到最后的风格损失。
Simple Loss Function
- Pixel Loss,像素级的欧氏距离。
- Total Variation Regularization,是之前feature inversion和super resolution工作中使用的损失,具体还需参考论文的参考论文[6,20,48,49]
Loss对比
在图像风格转换任务上,针对不同分辨率的图像,Loss值在Perceptual Loss(ours)和图像风格转换([10])以及内容图片上的。
可以看到,使用Perceptual Loss相当于原始算法迭代50到100次。
可以提升几百倍,在GPU上0.0015s可以达到相当的效果,在CPU上更具实用性。
效果图
风格转换
虽然风格转换是在256的图片上训练的,但也可以应用到其他size上,比如512的
图片超清
总结
参考文献
GAN网络生成:感知损失(Perceptual Losses)相关推荐
- 不服就GAN:GAN网络生成 cifar10 的图片实例(keras 详细实现步骤),GAN 的训练的各种技巧总结,GAN的注意事项和大坑汇总
GAN 的调参技巧总结 生成器的最后一层不使用 sigmoid,使用 tanh 代替 使用噪声作为生成器的输入时,生成噪声的步骤使用 正态分布 的采样来产生,而不使用均匀分布 训练 discrimin ...
- GAN网络生成手写体数字图片
Keras真香,以前都是用tensorflow来写神经网络,自从用了keras,发现这个Keras也蛮方便的. 目前感觉keras的优点就是方便搭建基于标准网络组件的神经网络,这里的网络组件包括全连接 ...
- LPIPS 图像相似性度量标准(感知损失)
可学习感知图像块相似度(Learned Perceptual Image Patch Similarity, LPIPS) 项目主页:https://richzhang.github.io/Perc ...
- 基于感知损失的实时风格迁移与超分辨率重建
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 方法概述 许多经典的图像问题都可以被看成是图像变换任务,算法接受一 ...
- 异常检测 and GAN网络(1)
文章目录 前言 一.什么是GAN网络? 二.GAN网络的优缺点 总结 前言 这一节主要介绍什么是GAN网络,边学习边记录,总结了一些我认为比较重要的知识点,有不对的地方欢迎大家指正~ 一.什么是G ...
- GAN相关:PAN(Perceptual Adversarial Network)/ 感知对抗网络
GAN相关:PAN(Perceptual Adversarial Network)/ 感知对抗网络 Perceptual Adversarial Networks for Image-to-Image ...
- Perceptual Loss(感知损失)Perceptual Losses for Real-Time Style Transferand Super-Resolution论文解读
由于传统的L1,L2 loss是针对于像素级的损失计算,且L2 loss与人眼感知的图像质量并不匹配,单一使用L1或L2 loss对于超分等任务来说恢复出来的图像往往细节表现都不好. 现在的研究中,L ...
- 感知损失(perceptual loss)详解
本文来自收费专栏:感知损失(perceptual loss)详解_南淮北安的博客-CSDN博客_感知损失 目录 一.感知损失 二.Loss_feature 三.Loss_style 感知损失的作用: ...
- 【损失函数:3】感知损失:Perceptual Loss、总变分损失(TV Loss)(附Pytorch实现)
损失函数 一.感知损失(Perceptual Loss) 1.相关介绍 1)Perceptual Loss是什么? 2)Perceptual Loss如何构造? 3)代码实现 2.代码示例 二.总变分 ...
最新文章
- python 判断字符串是否为空,字典是否为空,列表是否为空,元组是否为空的方法
- Java项目:药品管理系统(java+swing+Gui+mysql)
- 解决hibernate对Sql Server分页慢的问题
- 2、编写单元测试用例,对用户注册功能的DAO层进行测试。(注意:测试用例应考虑成功和失败的情况)...
- c语言控制安卓桌面,让你自己编写的Android的Launcher成为系统中第一个启动应用程序,也是唯一的Launcher...
- php处理mysql的符号_MySQL数据入库时特殊字符处理
- mysql主从配置启动失败_Mysql主从配置错误及解决办法
- 桥本分数式(用递归法实现全排列)
- PostgreSQL 生成随机数字、字符串、日期、验证码以及 UUID
- skyline 查询 和 验证索引数据结构MR-tree的构建
- 周末了,看,首富出门遛狗。
- 广义表的头尾链表存储表示(第五章 P115 算法5.5,5.6,5.8)
- java计算机毕业设计口红专卖网站MyBatis+系统+LW文档+源码+调试部署
- 使用Xgboost自带的读取格式DMatrix()
- BSCI验厂考勤资料工资作假不一致解决方案
- 类的组合在什么情况下使用_什么情况下选择使用圆锥滚子轴承?(原创轴承外贸写作素材)...
- 使用腾讯云服务器和个人域名外加WordPress和WDCP建立个人博客的过程
- log4j输出系统抛出的异常
- Kubernetes(k8s)入门及集群部署文档
- ablation study 消融实验/消融研究
热门文章
- ubuntu mysql允许远程连接mysql_ubuntu下允许mysql远程连接
- 绑定域名_[云丰网]如何绑定第三方购买的域名?
- java 并发任务_java 并发 - 运行多个任务并执行第一个结果
- jsp点击按钮弹出输入框_按键精灵UI界面的输入框原来是这样使用的
- 搭建高可用web和数据库集群
- sosoApi 环境搭建
- matlab norm 范式
- 关于js中cookie的认识
- Flex与.NET互操作(一):基于Socket的网络连接
- 图片的奇怪Cache_MISS原因!