图像超分辨率重建(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个直接相邻点的灰度影响,而且考虑到各邻点间灰度值变化率的影响。其权重函数如下所示,

 

超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

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

   超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

       其中超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能代表距离待插值点超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能的像素值。

超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

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

二、算法原理

        

超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

图2.DRN网络结构图

2.1  算法目标

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

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

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

2.2  解决方法以及算法原理

      a. 正向过程

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

      b. 对偶过程

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

      c. 半监督学习

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

      d. 损失函数

超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

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

三、代码流程

        

3.1 详细步骤:

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

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

超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

图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文件夹下:

超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

图4.train输出内容展示

b. ./experiment/fine_tune_result

超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

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

c. ./reconstruction

超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

图6.reconstrution输出内容展示

四、部分结果展示

超分辨率图像重建,超分辨率重建,pytorch,深度学习,人工智能

 文章来源地址https://www.toymoban.com/news/detail-793905.html

到了这里,关于图像超分辨率重建(pytorch)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python&图像超分】Real-ESRGAN图像超分模型(超分辨率重建)详细安装和使用教程

            图像超分是一种图像处理技术,旨在 提高图像的分辨率 ,使其具有更高的清晰度和细节。这一技术通常用于图像重建、图像恢复、图像增强等领域,可以帮助我们更好地理解和利用图像信息。图像超分技术可以通过多种方法实现,包括插值算法、深度学习等。其

    2024年02月04日
    浏览(49)
  • 位深度/像素/分辨率/图像大小的计算/帧率/刷新率

    有关图像的基本名词解释: 在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深度来表示的。黑白二色的图像是数字图像中最简单的一种,它只有黑、白两种颜色,也就是说它的每个像素只有1位颜色,位深度是1,用2的一次幂来表示;考虑到位深度平均分给R,

    2024年02月11日
    浏览(47)
  • 应用高分辨率 GAN 对扰动文档图像去扭曲的深度Python实践

    1. 引言 随着技术的不断发展,图像处理在各种场景中的应用也变得越来越广泛。高分辨率 GAN (Generative Adversarial Network) 是近年来图像处理领域的热点技术,它能够生成极高分辨率的图像,与此同时,它也可以用于各种修复和增强任务。本文将专注于使用高分辨率 GAN 对扰动文

    2024年02月12日
    浏览(53)
  • 遥感图像应用:在低分辨率图像上实现洪水损害检测(迁移学习)

    对于卷积神经网络(CNN)等模型,通常包括一些卷积层和池化层,这些层的权重用于提取图像的特征。当这些层的参数被冻结时,这些权重将保持不变,不会在训练过程中进行更新。这意味着模型会继续使用预训练模型的 特征提取能力 。 如果模型还包含其他的预训练层,例

    2024年02月09日
    浏览(43)
  • 探秘GFPGAN:腾讯AI的超分辨率重建神器

    项目地址:https://gitcode.com/TencentARC/GFPGAN 在图像处理的世界中,提高低质量或模糊图片的清晰度一直是一项挑战。而今天,我们要介绍的就是来自腾讯ARC团队的开源项目——GFPGAN(Gated Frequency Priors Guided Generative Adversarial Networks)。这是一个基于深度学习的高精度超分辨率重建模

    2024年04月10日
    浏览(53)
  • HarmonyOS学习路之开发篇—AI功能开发(图像超分辨率)

    针对图片分辨率不足的问题,传统的解决方案是使用双线性或双三次插值的方法来放大图像;而针对图片压缩噪声的问题,传统的解决方案则是通过各种算法实现平滑、去噪。 本SDK使用智能的方法,基于深度神经网络,依托硬件的神经网络加速器,提供适用于移动终端的1x和

    2024年02月11日
    浏览(51)
  • 【YOLOv8改进】 SPD-Conv空间深度转换卷积,处理低分辨率图像和小对象问题 (论文笔记+引入代码)

    卷积神经网络(CNNs)在许多计算机视觉任务中取得了巨大成功,例如图像分类和目标检测。然而,当面对图像分辨率低或对象较小的更加困难的任务时,它们的性能迅速下降。在本文中,我们指出这一问题根源于现有CNN架构中一个有缺陷但常见的设计,即使用了步长卷积和

    2024年04月14日
    浏览(39)
  • 『CV学习笔记』图像超分辨率等图像处理任务中的评价指标PSNR(峰值信噪比)

    图像超分辨率等图像处理任务中的评价指标PSNR(峰值信噪比) 峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)是图像超分辨率等图像处理任务中常用的一个指标,用来评估图像质量。PSNR的值越高,表示失真越小,图像质量越好。 PSNR是通过对比原图像和处理后图像的每个像素的差异来

    2024年02月06日
    浏览(50)
  • 图像超分辨率简单介绍

    图像超分辨率(Image Super-Resolution,简称SR)是一种通过使用计算机算法提高图像分辨率的技术,即从低分辨率的图像中生成高分辨率的图像。图像SR可以在许多领域得到应用,例如计算机视觉、医学成像、遥感等。 图像SR旨在从低分辨率(低清晰度)图像中提高图像质量和信

    2024年02月06日
    浏览(42)
  • AI数字人:语音驱动面部模型及超分辨率重建Wav2Lip-HD

    数字人打造中语音驱动人脸和超分辨率重建两种必备的模型,它们被用于实现数字人的语音和图像方面的功能。通过Wav2Lip-HD项目可以快速使用这两种模型,完成高清数字人形象的打造。 项目代码地址:github地址 1.1 语音驱动面部模型wav2lip 语音驱动人脸技术主要是通过语音信

    2024年02月16日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包