A1.计算机视觉入门

单帧图像超分辨率

1. 环境搭建

远程环境
服务器, Ubuntu 16.04, GPU 1080 Ti

本地应用

  • MobaXterm(与远程建立ssh连接,方便SFTP方式管理远程文件)
  • Sublime(作为本地文本阅读器使用, Markdown,Code)
  • Pycharm(可选,方便工程管理,调试)
  • Vscode(可选,方便工程管理,调试)

2. 框架学习

  • 此处向Xinntao前辈学习,使用其BasicSR框架,此处为Github地址
  • 该框架可实现三类深度超分网络, PSNR-oriented SR(如 SCRCNN, SRResNet等),Enhanced SRGAN(同时可训练SRGAN),以及SFTGAN。
  • 代码分为五大部分

3. SRResnet的具体实现

本框架所选用默认训练集为DIV2K(分为训练部分和测试部分),本次实验所选用验证(测试)集为Set5

  1. DIV2K数据集处理:
  • a.先下载得到 DIV2K_train_HR与DIV2K_valid_HR两部分数据;
  • b.然后用codes/scripts中的 extract_subimags_single.py处理(需要修改其中保存路径),分别得到DIV2K_train_HR_sub,和DIV2K_valid_HR_sub;
  • c.接着用codes/scripts中的generate_mod_LR_bic.m进行处理(需要修改其中保存路径),此步为生成低分辨率的图像(设定mod=4, scale=4),得到DIV2K_train_HR_sub_bicLRx4,以及DIV2K_valid_HR_sub_bicLRx4;
  • d.接下来用codes/scripts中的create_lmdb.py处理,生成相应的DIV2K_train_HR_sub.imdb和DIV2K_valid_HR_sub_bicLRx4.imdb,至此图片处理暂时完成。
  • (对于Set5及Set14类似,但不需进行b的处理)
  1. 修改train_sr.json
    需要添加一些路径信息,如下所示,根据自己的具体设置更改。
, "path": {
   
    "root": "/media/sdc/cyli/BasicSR"
	, "experiments_root":"/media/sdc/cyli/BasicSR/experiments/SRresnet_PSNR_x4_DIV2K/"
	, "models":"/media/sdc/cyli/BasicSR/experiments/SRresnet_PSNR_x4_DIV2K/models"
	, "log":"/media/sdc/cyli/BasicSR/experiments/SRresnet_PSNR_x4_DIV2K"
	, "val_images": "/media/sdc/cyli/BasicSR/experiments/SRresnet_PSNR_x4_DIV2K/val_images"
    ,  "pretrain_model_G": null
  1. 训练开始
    待修改train_sr.json完成后可以,进入train.py所在目录,输入 python test.py -opt options/test/test_sr.json 即可开始训练。如果顺利在终端界面会出现如下图所示的输出信息。
    训练时终端输出结果

  2. 训练过程可视化
    可用Tensorboard 实现训练过程的可视化,在开始训练时会出现“BasicSR/tb_logger/XX”文件夹,在另一终端窗口输入 tensorboard --logdir ./BasicSR/tb_logger/XX/ ,会有输出结果类似于 “TensorBoard 1.12.0 at http://ubuntu:6006 (Press CTRL+C to quit)”,此时将ubuntu替换为你所用的远程服务器的地址,并在浏览器窗口打开相应地址即可得到类似如下图的结果。
    TensorBoard显示训练效果图

  3. (未完待续)

[1] : https://github.com/xinntao/public_figures/blob/master/BasicSR/code_framework.png

Network Building

###1. First meet
train.py

from models import create_model
# Create model
model = create_model(opt) #返回何种类型的model, sr, srgan, srrgan, stfgan

Here the opt is a dictionary

{
   'name': 'DnCNN_S_PSNR_sigma25_001', 'use_tb_logger': True, 'model': 'sr', 'scale': 1, 'gpu_ids': [0, 1, 2, 3], 'datasets': {
   'train': {
   'name': 'DIV2K', 'mode': 'NHR', 'dataroot_HR': '/media/sdc/cyli/datasets/DIV2K800/DIV2K800_train_sub/', 'dataroot_LR': None, 'subset_file': None, 'use_shuffle': True, 'n_workers': 8, 'batch_size': 128, 'HR_size': 40, 'use_flip': True, 'use_rot': True, 'data_type': 'img', 'phase': 'train', 'scale': 1}, 'val': {
   'name': 'val_set5', 'mode': 'NHR', 'dataroot_HR': '/media/sdc/cyli/datasets/val_set5/Set5/', 'dataroot_LR': None, 'phase': 'val', 'HR_size': 40, 'scale': 1, 'data_type': 'img'}}, 'path': {
   'root': '/media/sdc/cyli/BasicSR', 'experiments_root': '/media/sdc/cyli/BasicSR/experiments/DnCNN_S_PSNR_sigma25_001', 'models': '/media/sdc/cyli/BasicSR/experiments/DnCNN_S_PSNR_sigma25_001/models', 'log': '/media/sdc/cyli/BasicSR/experiments/DnCNN_S_PSNR_sigma25_001', 'val_images': '/media/sdc/cyli/BasicSR/experiments/DnCNN_S_PSNR_sigma25_001/val_images', 'pretrain_model_G': None}, 'network_G': 
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值