实时图像超分辨率:高效子像素卷积网络(ESPCN)解析与代码分享

概要

超分辨率系列论文阅读卷1:Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network
PDF网址:https://arxiv.org/pdf/1609.05158
官网:https://github.com/pytorch/examples/tree/main/super_resolution
本人打包代码、模型百度云盘: https://pan.baidu.com/s/17jJ2mM5PHbVGl_fubr0XZA?pwd=m75r 提取码: m75r

理论知识

大多数深度超分方法(如SRCNN)在输入阶段通过双三次插值(Bicubic)将LR图像上采样至HR空间,随后进行特征提取。这一流程存在两大问题:
(1)计算冗余:HR空间的特征提取需要更大的卷积核和更多计算资源。
(2)信息缺失:插值操作未引入新信息,无法有效解决SR的“病态逆问题”。

ESPCN的核心创新

  1. 子像素卷积层(Sub-Pixel Convolution)
    设计思想:将上采样操作延迟至网络末端,直接在LR空间提取特征,最后通过子像素卷积实现高效上采样。
    具体实现:在LR空间通过多层卷积提取特征图,最后一层输出通道数为C×r×r (r为放大倍数),通过周期混洗(Periodic Shuffling)将特征图重新排列为HR图像(图1)。
    在这里插入图片描述
    图示:LR特征图经子像素卷积层直接生成HR图像,避免中间高成本计算。

  2. LR空间特征提取的优势
    计算效率:假设放大倍数为r,在LR空间处理的计算复杂度降低r×r倍。
    灵活学习:每个特征图独立学习上采样滤波器,比单一插值滤波器更适应复杂纹理。

操作实操

环境配置

下载预训练模型:espcn_x3.pth,云盘分享文件中已有。

模型位置

项目目录/
├── BLAH_BLAH/
│   ├──espcn_x3.pth

训练数据

| Dataset | Scale | Type | Link |
|---------|-------|------|------|
| 91-image | 3 | Train | [Download](https://www.dropbox.com/s/4mv1v4qfjo17zg3/91-image_x3.h5?dl=0) |
| Set5 | 3 | Eval | [Download](https://www.dropbox.com/s/9qlb94in1iqh6nf/Set5_x3.h5?dl=0) |

基础命令格式:

python train.py --train-file "BLAH_BLAH/91-image_x3.h5" \
                --eval-file "BLAH_BLAH/Set5_x3.h5" \
                --outputs-dir "BLAH_BLAH/outputs" \
                --scale 3 \
                --lr 1e-3 \
                --batch-size 16 \
                --num-epochs 200 \
                --num-workers 8 \
                --seed 123                
python test.py --weights-file "BLAH_BLAH/espcn_x3.pth" \
               --image-file "data/butterfly_GT.bmp" \
               --scale 3

云盘分享文件中,test.py可直接在pycharm中运行.

效果示例

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值