SRGAN
来源:互联网 发布:熊猫tv抢佛跳墙软件 编辑:程序博客网 时间:2024/06/06 20:26
SRGAN
以下内容将介绍Christian Ledig等人在2017年发表的文章[Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network]。该文讨论了生成对抗网络在超分中的应用方法。
em这片文章让我读下去的理由
在这片文章中,作者论证PSNR(峰值信噪比)不适合作为SR评判标准这一观点,因为高的PSNR并不能保证人对图片有好的视觉感受。为了使超分效果更接近人的视觉感受,作者采用了新的损失函数perceptual loss,是的,很独特。
虽然其实主要原因是小组汇报我必须要汇报这一篇……
目录
- SRGAN
- 目录
- SRGAN的工作内容
- 方法
- 生成网络G网
- 判别网络D网
- Perceptual loss function
- 内容损失
- 对抗损失
- 实验中的一丢丢
SRGAN的工作内容
Generative adversarial network (GAN) 由 G (generative) 网和D (Discriminator)网组成,附上原文传送门[>.<]。GAN所要完成的工作,原文举了个栗子:
G网是印假钞的人,D网是检测假钞的人。G的工作是让自己印出来的假钞尽量能骗过D,D则要尽可能的分辨自己拿到的钞票是银行中的真票票还是G印出来的假票票。
开始的时候呢,G技术不过关,D能指出这个假钞哪里很假。G每次失败之后都认真总结经验,努力提升自己,每次都进步。直到最后,D无法判断钞票的真假……
SRGAN的工作就是:
G网通过低分辨率的图像生成高分辨率图像,由D网判断拿到的图像是由G网生成的,还是数据库中的原图像。当G网能成功骗过D网的时候,那我们就可以通过这个GAN完成超分了。
方法
我们想要通过低分辨率的图像
ILR 生成一个高分辨率,超分辨图像ISR 。
在GAN中,G网与D网之间是一场maxmin的博弈游戏,即如下公式:
SRGAN中,也同样是这样的博弈游戏。判别网络(D网)希望最大化判别出图片来自训练集还是生成网络(G网)生成的概率。生成网络则希望能尽可能蒙蔽判别网络。因此能得到如下公式:
emmmmmmm……写不下去的崩溃。
好了,我又来了。文章中说道,将生成网络训练为前馈CNN
损失函数后面再讲,先从生成网络开始。
生成网络(G网)
emmmmm把网络图放上来我就真的不知道该讲什么了,很想讲,自行看图……
在生成网络中,作者应用了分布相同的B残差块,每个残差块都有两个卷积层,卷积层后面加上batch-normalization,并用PReLU作为激活函数。卷积层的卷积核都是3×3,并有64个特征图。在这个网络里面,作者通过训练两个子像素卷积层来提高分辨率(就是图里倒数第二和倒数第三个大块块),这种方法来自[><]。
判别网络(D网)
网络放在这里了,请自行感受吧。
Perceptual loss function
这篇文章里,提出了perceptual loss这样一个损失函数,是为了弥补MSE(均方误差)造成细节缺失,在MSE基础上建模的。
作者将perceptual loss 函数
内容损失
基于像素的MSE损失被定义为:
这是当前很流行的一种应用于超分的损失函数,因为这种方法能使结果得到良好的PSNR。然而作者通过请26位评判者打分的方式,证明高PSNR并不能带来良好的感官效果。因此作者基于多篇文章提出了视觉相似性的损失函数。
作者所选择的是基于VGG的内容损失。先基于预训练的19层VGG网络的ReLU激活层来定义损失函数。
图片来源于大佬[><],不行就删。
我们可以看到,作者是将内容损失表示为重构图像
对抗损失
作者基于训练样本在判别器上的概率定义了对抗损失:
实验中的一丢丢
在Goodfellow提出的原始GAN中,我们是训练
好了我写完了,撒花完结……
- SRGAN
- [1609.04802] SRGAN中的那些loss
- SRGAN基于keras实现代码框架
- 用SRGAN提升图片清晰度(TensorFlow)
- 5种将死的编程语言
- Python常用标准库使用
- Android 调试之 Log和LogCat的详解
- HDU 2829 Lawrence(四边形不等式优化DP)
- linux下卸载软件
- SRGAN
- Java访问者模式
- Sublime Text3 关闭自动更新-yellowcong
- IDEA 快捷键大全
- unity通过android adb查看真机日志
- Java MVC模式
- Unity3d设计模式之单例模式
- java 邮件发送
- Qt之pro配置多个子工程/子模块