生成对抗网络(六)----------Image Denoising Using a Generative Adversarial Network(用GAN对图像去噪)
前言
这是一篇关于使用GAN对图像降噪的论文,我翻译了论文,也看了代码,以下是github链接:GAN去噪。我看懂了论文,这确实是一篇很好的论文。使用当下最火的GAN对图像进行去噪。也是一个开创性的想法。文中的损失函数与以往的不同。但是其他思想与传统GAN都是类似的。读完论文之后,我下载了相关代码,但是在代码中我遇到了问题。想要训练模型,却没有跑起来。如果你将代码跑起来了。可以在下面留言。我们一起交流一下。下面我介绍一下我学到的一些知识总结。
一、介绍
计算机生成图像成为了一个热门的研究领域。为了渲染3D场景,有很多算法被提出,Pathtracing技术涉及随机拍摄1000个光线。然后拍摄场景中的物体,并且根据物体的反射特性,光线将被反射或折射或被吸收。将这些光线产生的颜色平均以获得像素的颜色,并且对所有像素重复该过程。但是这个方法代价是非常大的,计算复杂度非常高。渲染单帧都要花费8-16小时。因此要想实时渲染不可行。基于这个问题,我们要解决的就是提高渲染图像的速度。有一种方法是使用少量样本渲染,但是产生的结果带有噪声,因此还需要去降噪。最近提出的可靠的方法就是使用人工神经网咯。使用卷积神经网络去噪,为了提高性能,可以加深网络层数,比如利用残差网络。而本文提出一个神经网络,是利用了GAN的思想,基于残差网络。每个像素使用少量的样本。然后输入到GAN中带噪声的图像,最后得到高质量的图像,这个方法,可以将原来的8-16个小时,缩短到几分钟。
传统的神经网络广泛的应用在回归问题上,输入一个向量,靠优化一个损失函数得到另一个向量。使用噪声和干净的图像用来评估网络。神经网络的大概流程相信大家都有一定的了解。论文中提出了集中相关的降噪方法。第一个是BM3D降噪:将图像分割开作为输入,然后对每一Patch进行降噪,然后平均重叠的Patch,产生最后的降噪图像。第二个是使用MLP过滤掉蒙特卡洛噪声。使用蒙特卡洛方法渲染图像可以产生高质量的图像但是需要花费很多时间,使用少量样本又会产生噪声,使用MLP过滤噪声。第三种是使用CNN去噪。第四个是使用CNN提高图像的分辨率。第五个是使用SRGAN提高图像的分辨率。这个方法与我们使用的方法是相似的,都使用了GAN。下面看一下本篇论文的网络结构。
二、模型与参数设置
训练了一个基于残差网络的GAN网络。网络的目标是通过生成器生成干净的无噪声的图像,判别器通过真实的图像来提高生成器生成图像的质量。我们在网络的结构上使用了残差块。可以提高网络的性能。如果时间允许,我们可以使用更多的残差块,提高网络的性能。接下来先看一下生成器的结构;
生成器的目标是生成一个高质量的逼真的图像,通过在没有损失很多信息的情况下,用临近的像素填充噪声。我们采用了一个对称的结构。从图中可以看出,一共分为三部分,卷积层,残差层,解卷积层。在卷积层包含卷积、BN和LReLU。在残差块中,与卷积层使用了相同的结构。不同的是使用了捷径连接实现残差结构,最后是解卷积,先重设图像大小在经过相同的结构。最后添加一个tanh。得到输出。
判别器的目标是判断输入的图片是真是假。通过对抗的方式,让生成器质量提高。在这个网络中最重要的是损失函数,损失函数的公式如下:
其中,相对应的La为adversaial loss,Lp为piex loss, Lf为Feature loss,Ls是Smooth损失,关于他们的权重在论文中都有设置,可以查看论文的内容。我觉得这个损失函数是一个创新。虽然我还不能理解的很透彻。会继续深入研究。
三、总结
通过训练,得到了如下的结果:
最后,我感觉自己对论文的理解以及实现上还不是很深入。因此,希望有同样研究此方法的人我们可以互相交流一下。
生成对抗网络(六)----------Image Denoising Using a Generative Adversarial Network(用GAN对图像去噪)相关推荐
- 生成对抗网络(Generative Adversarial Network,GAN)
生成对抗网络(Generative Adversarial Network,GAN) Generative:生成式模型 Adversarial:采取对抗的策略 Networks:网络(不一定是深度学习 ...
- 四天搞懂生成对抗网络(二)——风格迁移的“精神始祖”Conditional GAN
点击左上方蓝字关注我们 [飞桨开发者说]吕坤,唐山广播电视台,算法工程师,喜欢研究GAN等深度学习技术在媒体.教育上的应用. 从"自由挥洒"到"有的放矢" 1. ...
- 【飞桨PaddlePaddle】四天搞懂生成对抗网络(二)——风格迁移的“精神始祖”Conditional GAN
从"自由挥洒"到"有的放矢" 1.给GAN加个"按钮" 上一篇<四天搞懂生成对抗网络(一)--通俗理解经典GAN>中,我们实现了 ...
- 生成对抗网络的背景与意义_生成对抗网络的意义
生成对抗网络的背景与意义 为什么我们需要生成对抗网络:-(Why do we need Generative Adversarial Network: -) If we show a lot and ...
- 生成对抗网络(GAN)简单梳理
作者:xg123321123 - 时光杂货店 出处:http://blog.csdn.net/xg123321123/article/details/78034859 声明:版权所有,转载请联系作者并 ...
- 生成对抗网络(GAN)的前沿进展(论文、报告、框架和Github资源)汇总
生成模型(GenerativeModel)是一种可以通过学习训练样本来产生更多类似样本的模型.在所有生成模型当中,最具潜力的是生成对抗网络(Generative Adversarial Network ...
- 生成对抗网络(GAN)资料打包
进入正文 全文 摘要 生成式对抗网络,即所谓的GAN是近些年来最火的无监督学习方法之一,模型由Goodfellow等人在2014年首次提出,将博弈论中非零和博弈思想与生成模型结合在一起,巧妙避开了传统 ...
- 简单理解与实验生成对抗网络GAN
from:https://blog.csdn.net/on2way/article/details/72773771 之前 GAN网络是近两年深度学习领域的新秀,火的不行,本文旨在浅显理解传统GAN, ...
- 科普 | 生成对抗网络(GAN)的发展史
来源:https://en.wikipedia.org/wiki/Edmond_de_Belamy 五年前,Generative Adversarial Networks(GANs)在深度学习领域掀起 ...
- 吴恩达Deeplearning.ai国庆节上新:生成对抗网络(GAN)专项课程
机器之心报道 作者:蛋酱 Coursera 刚刚上新了 GAN 的专项课程,或许在这个国庆假期,你应该学习一波了. 生成对抗网络(Generative Adversarial Network,GAN) ...
最新文章
- 1、存在如下数列1、1、2、4、7、13、24、44、81、149......现要求该数列第n项的值(n从O开始算)。 	程序运行结果: 	1/2 	输入:4 	输出:7 	输入:9 	输出:149
- css3 局部放大,CSS3/JS 鼠标悬停图片局部放大动效
- 蜘蛛纸牌java注释_自己摸索的纸牌游戏代码,感觉还有很多知识不懂,任重道远啊!...
- 二 jQuery 语法
- Eclipse常用快捷键与代码模板
- java 中怎么比较两个时间相差的秒数
- Solr基础教程之solrconfig.xml(三)
- odoo开发笔记 -- 附件上传
- 一个初学者的辛酸路程-Python基础-3
- Flutter作插件的研究(学习)记录
- hualinux 学生党 建议:读书就是为了社会目标做准备
- 【ARM开发】交叉编译Qt源码之(1)编译xcb
- CentOS 7拨号上网(ADSL PPPoE)
- Hello Juejin
- alios things开发板_AliOS Things这个操作系统怎么样?
- 我们且请仁兄到敝庄 水浒
- Linux系统资源查看
- 参加华为HCIP的培训班吗?
- 外国官方网站下载文件速度缓慢
- NKOJ 2770 难度系数(最小生成树)
热门文章
- 201704 创建财务凭证函数
- 搜狗二季度财报解读:有扎实的现在,也有性感的未来
- Java.day17
- spring 集成MongoDB错误Interrupted acquiring a permit to retrieve an item from the pool
- Windows 自动连接wifi的bat批处理脚本
- linux wifi开机自动连接 wifi连接
- HTML压缩(JSP的GZIP实现)
- SpringBoot项目遇到AopAutoConfiguration matched: - @ConditionalOnProperty (spring.aop.auto=true)错误
- openwrt路由器安装Transmission软件包与web控制台(中文界面)
- VUE-waterfall瀑布流组件使用