srcnn超分辨率

CONTRIBUTE:
1、提供了一个卷积神经网络做图像超分辨率方法,该方法端到端的直接学习LR-HR图像,不需要复杂的预处理或者后处理。
2、对传统的稀疏字典SR和深度学习SR做了分析估计,这个估计有助于指导设计网络结构。
3、证明了深度学习在SR领域是有效的,并且速度和质量都不错。

STEP:

1、LR块字典
2、HR块字典
3、非线性映射函数
4、块减去均值的预处理和生成块结果平均的后处理

METHOD:

     流程图大致如下: 
    1、训练图像中,将LR图像切片成33x33大小图像块,切片步长为14;
       将对应HR图像切片成21X21大小图像块,步长一样为14。

  2、第一层卷积:
      输入LR图像块,卷积核为:cxf1xf1xn1。
      c为输入图像通道数,Y的话,c为1。
      f1为卷积核size,可以设置为9
      n1为当前卷积层输出深度,可以设置为:64

  3、第二层卷积(非线性映射)
      输入为前一卷积层的输出,当前层卷积核为:n1x1x1xn2
      n1为前一个卷积层输出数据深度
      n2位当前层输出数据深度,这里可以设置为32

  4、第三次卷积层(重建)
      输入为第二卷积层输出,当前层卷积核为:n2xf3xf3xc
      n2为前一个卷积层输出数据深度
      f3为卷积核size,可以设置为5
      c为重建后HR图像通道数,和输入图像通道数保持一致。
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
srcnn超分辨率pytorch代码是用于实现图像超分辨率(Super Resolution)的一种深度学习模型。下面我将逐行讲解这个代码。 首先,代码导入了需要的库和模块,包括torch、torchvision等,以及一些辅助函数。 接下来,定义了一个名为SRCNN的类。这个类继承自nn.Module类,用来构建SRCNN模型。在这个类的构造函数中,首先调用父类的构造函数初始化模型;然后定义了三个卷积层,分别是nn.Conv2d,并且设置输入通道数、输出通道数、卷积核大小和步长;接着定义了ReLU激活函数;最后定义了一个反卷积层nn.ConvTranspose2d,用于得到最终的超分辨率图像。 在类的前面还定义了两个辅助函数,即adjust_scale和normalize,分别用于将图像缩放到指定尺寸和对图像进行归一化处理。 接下来,定义了一个名为train的函数,该函数用于训练模型。在函数中,首先根据指定的参数设置模型的训练参数,如学习率、损失函数、优化器等;然后加载训练数据集和验证数据集,采用DataLoader进行批量加载和预处理;随后,利用模型进行迭代训练,通过计算输出图像与标签图像之间的损失来更新模型参数;最后将训练得到的模型保存到指定路径。 最后,定义了一个名为test的函数,用于测试模型。在函数中,首先加载测试图像,并通过模型进行超分辨率处理;然后将超分辨率图像与原始图像进行比较,计算并打印出PSNR指标,评估超分辨率效果。 总结一下,这个SRCNN的pytorch代码包括了模型的构建、训练和测试三个主要部分,通过迭代训练和测试来实现图像的超分辨率。通过调整参数、数据集和函数的调用,可以适应不同的超分辨率任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值