位置: IT常识 - 正文

图像超分辨率重建(pytorch)(图像超分辨率重建数据集)

编辑:rootadmin
图像超分辨率重建(pytorch) 本文代码

推荐整理分享图像超分辨率重建(pytorch)(图像超分辨率重建数据集),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:图像超分辨率重建经典论文,图像超分辨率重构,图像超分辨率重建数据集,图像超分辨率重建算法,图像超分辨率重建算法,图像超分辨率重建,图像超分辨率重建,图像超分辨率重建经典论文,内容如对您有帮助,希望把文章链接给更多的朋友!

         本文代码主体来自CVPR2020论文《Closed-loop matters: Dual regression networks for single image super-resolution》,但原作者并未提供论文亮点--如何使用unpair数据进行训练的代码,所以我在其基础上补齐了该过程的代码。

        代码仓库:https://github.com/VitaminyW/Super_Solution

        PS:对代码存在问题可以通过私信或评论区提问。

一、数据预处理

为了训练模型实现8倍超分,本工作中使用BICUBIC算法对高清图像进行下采样8倍,从而获得作为网络输入的低分辨率图像。

BICUBIC算法:双三次插值又称立方卷积插值。三次卷积插值是一种更加复杂的插值方式。该算法利用待采样点周围16个点的灰度值作三次插值,不仅考虑到4个直接相邻点的灰度影响,而且考虑到各邻点间灰度值变化率的影响。其权重函数如下所示,

       其中a=-0.5,x为待插值点与插值点的距离。插值过程可由下式所示,

   

       其中代表距离待插值点的像素值。

图1. 0200.png下采图像展示

二、算法原理

图2.DRN网络结构图

2.1  算法目标

      在超分辨率问题中,存在着两个问题:

      a. 从超分辨率图像到低分辨率图像存在着非常多种下采样方式,即真实世界的低分辨率图像形成的原因多种多样。

      b. 深度学习是一种基于数据的学习方式,若数据集的输入是由某种特定下采方式得到的,则模型可能会学习到该特定下采方式的伪逆。

2.2  解决方法以及算法原理

      a. 正向过程

           网络通过借鉴UNet网络的结构方式,通过多级下采样提取图像特征,并通过concat方式结合原有图像特征与上采特征图进行上采样,从而产生多个高分辨率图像。若网络存在3个层级,则每个层级分别对应1倍、2倍以及4倍分辨率重建网络。最后通过MSE或MAE损失函数可以促使网络学习如何进行正向重建。

图像超分辨率重建(pytorch)(图像超分辨率重建数据集)

      b. 对偶过程

           正向过程是求解由低分辨率到高分辨率的解,即该问题解空间较大,所以需要较为复杂的网络结构。对偶过程指在学习数据中由高分辨率到低分辨率的下采过程,该过程解空间较小,可以使用较为简单的网络结构进行学习。

      c. 半监督学习

           由于对偶过程输入的为网络重建出来的高分辨率图像,其学习标签为低分辨率图像,所以该过程不依赖于是否拥有真实超分标签,从而网络可以进行半监督学习。

      d. 损失函数

        其中表示第i张低分辨率图像,表示第张高分辨率图像,代表网络重建,分别代表正向过程和反向过程的评估函数,代表指示是否有对应的的函数,若有为1,否则为0. 由函数,在编程中易得pair数据与unpair数据分别计算损失函数进行反向传播。

三、代码流程3.1 详细步骤:

3.1.1 构建数据集,数据集结构如下图所示:

下采样代码位于代码目录的dataProcessing.ipynb

图3. 数据集结构

3.1.2 设置option.py文件

        将--data_dir,--data_train,--data_val参数修改为对应数据集路径与名称。也可选择通过命令行输入。

3.1.3 运行训练代码

        使用终端打开main.py所在文件目录,输入以下指令进行训练。

python main.py –batch_size 32 –n_GPUs 4 –save ./experiment/training_result --model DRN-S

3.1.4 由于原文作者未提供使用unpaired数据进行网络fine-tune代码,本工作根据论文逻辑,编写了 main_fine_tune.py代码,输入以下指令进行训练

python main.py –batch_size 32 –n_GPUs 4 –save ./experiment/fine_tune_result --pre_train {预训练正向模型的参数保存地址} --pre_train_dual {预训练对偶模型的参数保存地址} --model DRN-S

3.1.5 由于原文作者未提供重建unpaired数据的代码,本工作根据代码逻辑编写了对应main_reconstruction.py代码,输入指令进行预测。

python main_reconstruction.py --no_augment --model DRN-S --test_only --save ./reconstruction --save_results --batch_size 1 --save ./reconstruction --pre_train {fine-turn后正向模型的参数保存地址} --pre_train_dual {fine-turn后对偶模型的参数保存地址}3.2 过程截图

a. ./experiment/training_result文件夹下:

图4.train输出内容展示

b. ./experiment/fine_tune_result

图5.fine-tune输出内容展示

c. ./reconstruction

图6.reconstrution输出内容展示

四、部分结果展示

本文链接地址:https://www.jiuchutong.com/zhishi/299439.html 转载请保留说明!

上一篇:各浏览器useragent大全 包括(chrome/360/搜狗浏览器以及百度/google/搜狗/神马)(各浏览器主页的网址)

下一篇:联邦学习攻击与防御综述

  • 小谷机器人怎么连wifi(小谷机器人怎么联网)

    小谷机器人怎么连wifi(小谷机器人怎么联网)

  • 苹果键盘怎么滑动打字(苹果键盘怎么滑动)

    苹果键盘怎么滑动打字(苹果键盘怎么滑动)

  • 电话一直在通话中是不是设置了(手机不能接听电话只能拨打电话)

    电话一直在通话中是不是设置了(手机不能接听电话只能拨打电话)

  • 拼多多买家经常退款有影响吗(拼多多买家经常退货会怎么样)

    拼多多买家经常退款有影响吗(拼多多买家经常退货会怎么样)

  • 充电宝进水以后晒干了还可以再用吗(充电宝进水以后一直亮)

    充电宝进水以后晒干了还可以再用吗(充电宝进水以后一直亮)

  • 华为nova7se导航键怎么设置(华为nova7设置导航)

    华为nova7se导航键怎么设置(华为nova7设置导航)

  • 如何在屏幕上显示步数(如何在屏幕上显示日期和时间)

    如何在屏幕上显示步数(如何在屏幕上显示日期和时间)

  • 抖音灯牌怎么设置(抖音灯牌怎么设置自动点亮)

    抖音灯牌怎么设置(抖音灯牌怎么设置自动点亮)

  • 网络不给力怎么办(网络不给力怎么检查网络配置)

    网络不给力怎么办(网络不给力怎么检查网络配置)

  • 苹果6plus听筒声音越来越小是怎么回事

    苹果6plus听筒声音越来越小是怎么回事

  • cache是一种什么储存器(cache是由什么)

    cache是一种什么储存器(cache是由什么)

  • qq等待验证是什么意思(qq等待验证是什么意思多久会没有)

    qq等待验证是什么意思(qq等待验证是什么意思多久会没有)

  • qq通讯录发消息能看到吗(qq通讯录发消息能收到吗)

    qq通讯录发消息能看到吗(qq通讯录发消息能收到吗)

  • 怎么找微信删除的视频(怎么找微信删除的好友)

    怎么找微信删除的视频(怎么找微信删除的好友)

  • iphone怎么加email(iPhone怎么加入校园网)

    iphone怎么加email(iPhone怎么加入校园网)

  • 拼多多场景推广在哪里(拼多多场景推广ocpx怎样出价)

    拼多多场景推广在哪里(拼多多场景推广ocpx怎样出价)

  • 大光圈级别1 16怎么用(大光圈级别1~16怎么用)

    大光圈级别1 16怎么用(大光圈级别1~16怎么用)

  • 苹果11pro背面是什么材质(苹果11pro背面是什么材质呀)

    苹果11pro背面是什么材质(苹果11pro背面是什么材质呀)

  • 拆了塑封还能退货吗(拆封了商品塑封不给退货)

    拆了塑封还能退货吗(拆封了商品塑封不给退货)

  • 苹果电池健康度剩余多少就该换了(苹果电池健康度75%要换吗)

    苹果电池健康度剩余多少就该换了(苹果电池健康度75%要换吗)

  • soul怎么看访问记录(soul怎么看访客)

    soul怎么看访问记录(soul怎么看访客)

  • Mtdacq.exe - Mtdacq是什么进程 有什么用

    Mtdacq.exe - Mtdacq是什么进程 有什么用

  • JS数组方法中哪些会改变原数组,哪些不会?(js中数组方法有哪些)

    JS数组方法中哪些会改变原数组,哪些不会?(js中数组方法有哪些)

  • 山东省增值税发票勾选认证平台
  • 白酒赠品赠什么方案
  • 吴中区个体户如何办理
  • 公司申报个税流程
  • 必要收益率的取值可以是
  • 怎么计提固定资产折旧科目
  • 公司资料更新
  • 工业会计成本核算分录
  • 如何计算非居民用电量
  • 挂靠管理费有收税前还是收税后?
  • 三证合一后没有去税务局登记会怎么样
  • 预付年金终值与普通年金终值的关系
  • 手撕票可以报销么
  • 建筑挂靠管理费用如何账务处理?
  • 外贸企业出口退税账务处理
  • 再生资源会计科目
  • 财政拨款收入的预算会计科目
  • 在境外缴纳的增值税税率
  • php创建二维数组
  • php+mysql项目实战教程
  • 新店开业费用预算表格
  • 若依框架介绍
  • 董事费属于什么费用
  • 现金流量表结构分析
  • javascript移动鼠标
  • “Ninja is required to load C++ extensions”解决方案
  • PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
  • vue 实战
  • vue路由使用方法
  • php运用
  • html 提交表单
  • vue fragment标签
  • 谷歌浏览器无法安装
  • 一般纳税人不动产租赁可以简易征收吗
  • 一般纳税人设备安装税率
  • 商户待清算账户是什么
  • mac安装mysql8.0
  • mysql中文乱码怎样用代码解决
  • mongodb性能测试
  • 织梦cms要钱吗
  • 企业变更股东需要什么手续
  • 筹建期发生的费用会计分录
  • 现金流量表年报本期金额和上期金额
  • 计提持有至到期债券投资的利息
  • 银行存款为负数可以结账吗
  • 职工教育经费的扣除限额
  • 专用红字发票如何开具
  • 预收工程款的会计分录
  • 幼儿园会计做账流程
  • 增值税普通发票和专用发票有什么区别
  • 股东多缴投资款处理
  • 小规模纳税人减按1%账务处理
  • 外贸公司是不是什么都做的?
  • 主营业务利润率反映了企业的什么能力
  • 长期合同价格怎么定
  • 个人付款开了公章怎么办
  • 企业因固定资产破产
  • 如何查看连接网络的密码
  • centos7rpm安装命令
  • 怎样修改注册表关闭win11系统杀毒软件
  • ubuntu 安装指定位置
  • centos下载安装
  • linux界面显示
  • mac读取光驱
  • linux 文件夹权限 777
  • win7系统开机后很卡什么原因
  • 爱家保障行动
  • unity3d官方教程
  • 简单的jquery插件实例
  • [置顶]公主大人接下来是拷问时间31
  • androidstudio手机编程软件
  • 记录心率
  • nodejs连接mysql的历程
  • 批处理怎么学
  • js中的类和对象
  • python获取linux磁盘信息
  • 加油站怎么收税
  • 我是一般纳税人对方给我开的普票
  • 空置房物业收费标准
  • 首问责任制的概念
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设