图像超分辨--SRGAN 解读和感悟

最近在学习图像超分辨的任务,看了一些论文,从较古老的SRGAN到最近IEEE上的新论文都进行了简单的阅读,感觉要学习的东西还是挺多呀!!

这篇文章主要对基于GAN的图像超分辨领域的开山之作SRGAN进行简单的梳理,加深和扩宽一下自己的思路。

目前SRGAN的代码已经开源,下面给出链接(至少2023年可以用)

论文地址:1609.04802.pdf (arxiv.org)

代码地址:PyTorch实现:leftthomas/SRGAN: A PyTorch implementation of SRGAN based on CVPR 2017 paper "Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network" (github.com)


实现图像超分辨其实思路十分清晰。

首先输入低分辨率图像lr,通过cnn产生一个生成的假的高分辨率图像fr,然后用这个fr和你自己真正的高分辨率图像hr进行对比,得到你假的fr和真正hr的差距(其实就是损失函数),然后用这个差距来改善我们的cnn。什么时候你的假的fr和真正hr都几乎没有差距了,那就说明训练成功了。

那么从上面这段话中,我们很容易得到一个基本的训练要求,那就是你得有巨多巨多巨多成对的高分辨率图像和低分辨率图像,这种训练也是所谓的监督学习。


其实关注GAN网络,我个人认为主要就关注三个部分:1.生成器网络 2.判别器网络 3.损失函数,任何网络只要搞清楚这三部分其实都会迎刃而解。

SRGAN生成器和判别器网络都较为基础,利用残差、卷积、BN层搭建。

1.生成器网络及损失函数

网络的生成器如上图所示,核心是中间的五个残差模块,每一个残差包括卷积、BN、PReLU、卷积、BN组成,通过跳层实现残差。

图像的上采样通过PixelShuffle,如下图所示。PixelShuffle为目前图像领域最常用的上采样方法,主要利用层数换分辨率,将多层信息整合到同一层中,所以若需要n倍放大则需要n**2中间层。

 

 生成器损失函数由对抗损失adversarial_loss 、图像MSE损失image_loss 、内容损失perception_loss 和平滑损失tv_loss四部分组成,

loss = image_loss + 0.001 * adversarial_loss + 0.006 * perception_loss + 2e-8 * tv_loss

 adversarial_loss为生成图像过判别器后的值,由于希望过判别器后的值越大越好,所以adversarial_loss=torch.mean(1 - out_labels),即out_labels越大生成器模型就越接近成功了。image_loss、tv_loss为MES损失和平滑,可直接利用python库继续计算。内容损失perception_loss常利用VGG网络计算生成图像和真实图像在高层的像素距离,内容损失也可用RESNET进行计算。

2.判别器及损失函数

 网络的判别器为多个卷积层组成,最后过sigmoid得到归一化的值进行判别。

损失函数 d_loss = 1 - real_loss_out + fake_loss_out,判别器对真实图像判别为高,对生成图像判别为低。


整个代码训练后的效果不算特别好,但是对比以往的各种插值提高图像分辨率的方法,整体的效果还是提升了很多。下图是我的一些测试图像演示。

SRGAN分辨率四倍放大图像
插值分辨率四倍放大图像

 这就是SRGAN的简单介绍了,之后还会继续跟新前沿的图像超分辨算法介绍和感悟,一起学习进步。

预训练模型我放这里啦(CSDN下载应该不需要积分啥的吧,我反正选的不要,如果大家下载有问题直接找我哈):【免费】Srgan训练模型,用于SRGAN网络资源-CSDN文库

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
超分辨序列图像融合是一种通过融合不同分辨率的序列图像,以获得高分辨图像的技术。其中,Tikhonov-Arsenin方法是一种常用的超分图像复原方法。 Tikhonov-Arsenin方法的基本思想是通过最小化失真函数来恢复高分辨图像。在该方法中,首先需要建立一个模型,将低分辨图像与高分辨图像之间的关系表达出来。然后,根据建立的模型和观测到的低分辨率序列图像,使用最小二乘法来求解高分辨图像。 具体而言,Tikhonov-Arsenin方法使用正则化方法来约束解的平滑性,并通过引入一个正则化参数来控制平滑性与精确度之间的权衡。通过调整正则化参数的取值,可以在平滑性与保留细节之间进行权衡。 其实现过程一般包括以下几个步骤:首先,根据低分辨率序列图像的测量值估计高分辨率序列图像;然后,构建一个包含平滑约束的目标函数,并使用最小二乘法求解高分辨率序列;最后,通过不断优化目标函数,得到最终的高分辨图像。 Tikhonov-Arsenin方法在图像融合中被广泛应用,并已经取得了一定的成果。它能够有效地提高图像分辨率,保留图像的细节,改善图像的质量。然而,该方法在处理复杂场景和噪声较多的情况下,效果可能有所不足。因此,在具体应用中,需要根据实际情况选择最适合的图像融合方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值