本篇内容介绍了“Pytorch怎么搭建SRGAN平台提升图片超分辨率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SRGAN出自论文Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network。如果将SRGAN看作一个黑匣子,其主要的功能就是输入一张低分辨率图片,生成高分辨率图片。
该文章提到,普通的超分辨率模型训练网络时只用到了均方差作为损失函数,虽然能够获得很高的峰值信噪比,但是恢复出来的图像通常会丢失高频细节。SRGAN利用感知损失(perceptual loss)和对抗损失(adversarial loss)来提升恢复出的图片的真实感。
生成网络的构成如上图所示,生成网络的作用是输入一张低分辨率图片,生成高分辨率图片。:SRGAN的生成网络由三个部分组成。1、低分辨率图像进入后会经过一个卷积+RELU函数。2、然后经过B个残差网络结构,每个残差结构都包含两个卷积+标准化+RELU,还有一个残差边。3、然后进入上采样部分,在经过两次上采样后,原图的高宽变为原来的4倍,实现分辨率的提升。前两个部分用于特征提取,第三部分用于提高分辨率。
判别网络的构成如上图所示:SRGAN的判别网络由不断重复的 卷积+LeakyRELU和标准化 组成。
对于判断网络来讲,它的目的是判断输入图片的真假,它的输入是图片,输出是判断结果。判断结果处于0-1之间,利用接近1代表判断为真图片,接近0代表判断为假图片。判断网络的构建和普通卷积网络差距不大,都是不断的卷积对图片进行下采用,在多次卷积后,最终接一次全连接判断结果。实现代码如下:SRGAN的训练可以分为生成器训练和判别器训练:
每一个step中一般先训练判别器,然后训练生成器。在训练判别器的时候我们希望判别器可以判断输入图片的真伪,因此我们的输入就是真图片、假图片和它们对应的标签。因此判别器的训练步骤如下:1、随机选取batch_size个真实高分辨率图片。
2、利用resize后的低分辨率图片,传入到Generator中生成batch_size个虚假高分辨率图片。
3、真实图片的label为1,虚假图片的label为0,将真实图片和虚假图片当作训练集传入到Discriminator中进行训练。在训练生成器的时候我们希望生成器可以生成极为真实的假图片。因此我们在训练生成器需要知道判别器认为什么图片是真图片。因此生成器的训练步骤如下:1、将低分辨率图像传入生成模型,得到虚假高分辨率图像,将虚假高分辨率图像获得判别结果与1进行对比得到loss。(与1对比的意思是,让生成器根据判别器判别的结果进行训练)。
2、将真实高分辨率图像和虚假高分辨率图像传入VGG网络,获得两个图像的特征,通过这两个图像的特征进行比较获得lossSRGAN的库整体结构如下:在训练前需要准备好数据集,数据集保存在datasets文件夹里面。打开txt_annotation.py,默认指向根目录下的datasets。运行txt_an免费云主机域名notation.py。
此时生成根目录下面的train_lines.txt。在完成数据集处理后,运行train.py即可开始训练。
训练过程中,可在results文件夹内查看训练效果:“Pytorch怎么搭建SRGAN平台提升图片超分辨率”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!
本文小编为大家详细介绍“在html5里#999指的是什么意思”,内容详细,步骤清晰,细节处理妥当,希望这篇“在html5里#999指的是什么意思”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 在html5中,“#999”也即“#99…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。