博客
关于我
实验——基于pytorch的SRResNet的复现
阅读量:515 次
发布时间:2019-03-07

本文共 2746 字,大约阅读时间需要 9 分钟。

SRResNet: 基于残差网络的图像超分辨率方法优化与实现

在图像超分辨率(SR)领域,残差网络(ResNet)及其衍生物一直是研究热点之一。SRResNet(Shortcut Residual Network)作为一种高效的图像超分辨率方法,在大比例放大的场景中表现优异。本文将详细介绍SRResNet的网络结构、训练设置及实际效果。


1. 网络结构分析

SRResNet的核心架构由多个残差块构成,具体流程如下:

  • 输入层:接收 }}/home/guanwp/BasicSR-master/codes/下的输入图像,经过初次卷积层提取低层特征。
  • 残差块:包含多个RGB化残差块,每个块包含:
    • 卷积层:用于降低维度并提取特征。
    • 批归一化层:保持层间通用性。
    • 激活函数:选择ReLU或LeakyReLU,视具体实现而定。
  • 中间层:通过平移层(如PixelShuffle)调整体积,实现高效的超分辨率。
  • ** Upscaler**:逐层放大输出图像至目标分辨率。
  • 输出层:生成最终的超分辨率图像。
  • 网络深度通过控制残差块数量(如23个或16个)调整,适用于不同超分辨率倍数的应用场景。


    2. 代码实现与训练设置

    2.1 代码配置

    代码主要位于 /home/guanwp/BasicSR-master/codes/,运行以下命令启动训练和测试:

    python train.py -opt options/train/train_sr.json
    python test.py -opt options/test/test_sr.json

    训练参数配置样例(train_sr.json)如下:

    {
    "name": "sr_resnet_baesline",
    "use_tb_logger": true,
    "model": "sr",
    "scale": 4,
    "gpu_ids": [1],
    "datasets": {
    "train": {
    "name": "DIV2K800",
    "mode": "LRHR",
    "dataroot_HR": "/home/guanwp/BasicSR_datasets/DIV2K800_sub",
    "dataroot_LR": "/home/guanwp/BasicSR_datasets/DIV2K800_sub_bicLRx4",
    "subset_file": null,
    "use_shuffle": true,
    "n_workers": 8,
    "batch_size": 16,
    "HR_size": 128,
    "use_flip": true,
    "use_rot": true
    },
    "val": {
    "name": "val_set5",
    "mode": "LRHR",
    "dataroot_HR": "/home/guanwp/BasicSR_datasets/val_set5/Set5",
    "dataroot_LR": "/home/guanwp/BasicSR_datasets/val_set5/Set5_sub_bicLRx4"
    }
    },
    "path": {
    "root": "/home/guanwp/BasicSR-master",
    "pretrain_model_G": null,
    "experiments_root": "/home/guanwp/BasicSR-master/experiments/",
    "models": "/home/guanwp/BasicSR-master/experiments/sr_resnet_baesline/models",
    "log": "/home/guanwp/BasicSR-master/experiments/sr_resnet_baesline",
    "val_images": "/home/guanwp/BasicSR-master/experiments/sr_resnet_baesline/val_images"
    },
    "network_G": {
    "which_model_G": "sr_resnet",
    "norm_type": null,
    "mode": "CNA",
    "nf": 64,
    "nb": 23,
    "in_nc": 3,
    "out_nc": 3,
    "gc": 32,
    "group": 1
    },
    "train": {
    "lr_G": 1e-3,
    "lr_scheme": "MultiStepLR",
    "lr_steps": [200000, 400000, 600000, 800000, 1000000, 1500000],
    "lr_gamma": 0.5,
    "pixel_criterion": "l1",
    "pixel_weight": 1.0,
    "val_freq": 5e3,
    "manual_seed": 0,
    "niter": 2e6
    },
    "logger": {
    "print_freq": 200,
    "save_checkpoint_freq": 5e3
    }
    }

    3. 实验结果

    3.1 测试效果

    在DIV2K800和SET5 datasets上测试,SRResNet在x4倍放大的场景中表现优异。测试结果如下:

    • SRResNet: 32.05 dB PSNR值,SSIM指标显示良好的结构相似度。
    • FSRCNN(对比实验):30.55 dB PSNR值,表现稍逊。

    3.2 超面性能

    代码实现中,批量处理支持8个线程,单次批量量共16张图像。建议根据硬件性能调整批量大小。


    4. 补充说明

    4.1 激活函数选择

    • ReLU:适合普通残差网络。
    • LeakyReLU:适合光滑化处理(如ESRGAN)。部分实现中可选用LeakyReLU替代ReLU。

    4.2 MOS测试

    虽然本文未详细描述MOS测试结果,但支持使用NIQE等更具代表性的质量评估工具。


    通过以上分析,SRResNet在图像超分辨率任务中展现出优异性能,是目前高比例放大场景的标准配置。

    转载地址:http://xiajz.baihongyu.com/

    你可能感兴趣的文章
    nginx异常:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf
    查看>>
    nginx总结及使用Docker创建nginx教程
    查看>>
    nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
    查看>>
    nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in usrlocalnginxconfnginx.conf128
    查看>>
    nginx日志分割并定期删除
    查看>>
    Nginx日志分析系统---ElasticStack(ELK)工作笔记001
    查看>>
    Nginx映射本地json文件,配置解决浏览器跨域问题,提供前端get请求模拟数据
    查看>>
    nginx最最最详细教程来了
    查看>>
    Nginx服务器---正向代理
    查看>>
    Nginx服务器上安装SSL证书
    查看>>
    Nginx服务器的安装
    查看>>
    Nginx模块 ngx_http_limit_conn_module 限制连接数
    查看>>
    nginx添加模块与https支持
    查看>>
    Nginx用户认证
    查看>>
    Nginx的location匹配规则的关键问题详解
    查看>>
    Nginx的Rewrite正则表达式,匹配非某单词
    查看>>
    Nginx的使用总结(一)
    查看>>
    Nginx的使用总结(三)
    查看>>
    Nginx的使用总结(二)
    查看>>
    Nginx的可视化神器nginx-gui的下载配置和使用
    查看>>