FSRCNN神经网络

1 FSRCNN

FSRCNN是对之前SRCNN的改进,主要体现在更快的加速和更出色的修复质量上。
在这里插入图片描述
作者将FSRCNN分为五个部分:

  • 特征提取:这部分类似于SRCNN中的第一部分。但SRCNN中输入的是经过插值后的低分辨率图像(尺寸与输出图像一致),而FSRCNN直接是对原始低分辨率图像进行操作。kernelSize: 5 × 5 5\times5 5×5
  • 收缩:减低特征维度,减少参数。kernelSize: 1 × 1 1\times1 1×1
  • 非线性映射:串联多个中等大小的卷积核( 3 × 3 3\times3 3×3)来代替SRCNN中的 5 × 5 5\times5 5×5
  • 扩展:类似于收缩的逆过程。若直接从低维特征中生成图像,最终的恢复质量会很差。kernelSize: 1 × 1 1\times1 1×1
  • 反卷积:上采样。kernelSize: 9 × 9 9\times 9 9×9

激活函数:PReLu。主要是为了避免ReLu中零梯度导致的“死特征”。
损失函数:MSE。

并且可针对不同的放大因子训练特定的反卷积层
在这里插入图片描述

The transitions from SRCNN to FSRCNN:
在这里插入图片描述
可以从图中看出来,这种加速并不是以性能下降为代价的。

2 code

from torch import nn


class FSRCNN(nn.Module):
    def __init__(self, scale, inputChannel=1, outputChannel=1):
        super(FSRCNN, self).__init__()
        self.firstPart = nn.Sequential(
            nn.Conv2d(inputChannel, 56, kernel_size=5, padding=5 // 2),
            nn.PReLU(56)
        )
        self.midPart = nn.Sequential(
            nn.Conv2d(56, 12, kernel_size=1),
            nn.PReLU(12),
            nn.Conv2d(12, 12, kernel_size=3, padding=3 // 2),
            nn.PReLU(12),
            nn.Conv2d(12, 12, kernel_size=3, padding=3 // 2),
            nn.PReLU(12),
            nn.Conv2d(12, 12, kernel_size=3, padding=3 // 2),
            nn.PReLU(12),
            nn.Conv2d(12, 12, kernel_size=3, padding=3 // 2),
            nn.PReLU(12),
            nn.Conv2d(12, 56, kernel_size=1),
            nn.PReLU(56),
        )
        self.lastPart = nn.Sequential(
            nn.ConvTranspose2d(56, outputChannel, kernel_size=9, stride=scale, padding=9//2, output_padding=scale-1),
        )

    def forward(self, x):
        x = self.firstPart(x)
        x = self.midPart(x)
        out = self.lastPart(x)

        return out


https://zhuanlan.zhihu.com/p/31664818
https://arxiv.org/abs/1608.00367

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值