实时图像与视频超分辨率:高效子像素卷积网络(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的核心创新
-
子像素卷积层(Sub-Pixel Convolution)
设计思想:将上采样操作延迟至网络末端,直接在LR空间提取特征,最后通过子像素卷积实现高效上采样。
具体实现:在LR空间通过多层卷积提取特征图,最后一层输出通道数为C×r×r
(r为放大倍数),通过周期混洗(Periodic Shuffling)将特征图重新排列为HR图像(图1)。
图示:LR特征图经子像素卷积层直接生成HR图像,避免中间高成本计算。 -
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中运行.