OpenCV中的超分辨率

article/2025/9/15 13:24:49

文章目录

      • 介绍
      • OpenCV中的超分辨率
      • EDSR
      • ESPCN
      • FSRCNN
      • LapSRN
      • 结果
      • 结论

介绍

        超分辨率是指放大或改善图像细节的过程。请关注此博客,以了解OpenCV中“超分辨率”的选项。当增加图像的尺寸时,需要以某种方式插入额外的像素。基本的图像处理技术无法提供良好的效果,因为它们在放大时不会考​​虑周围环境。深度学习以及最新的GAN则考虑到了这一点,能够给出更好的结果。

        下图展示的是超分辨率图像。最左边是原始高分辨率图像能够显示的最佳细节效果。其他图像是在使用各种超分辨率方法重构后获得的。您可以在此仔细的对比它们的效果。
使用超分辨率变体获得的重建图像与原始高分辨率图像的效果比较
在这里插入图片描述

OpenCV中的超分辨率

        OpenCV当前提供四种深度学习算法供您选择,以用于放大图像。在本文中,所有这些都将进行审查。我们还将看到它们的结果,并将它们与使用双三次插值法在OpenCV中使用标准调整大小操作放大后的图像进行比较。我们将讨论的四种方法是:

EDSR 论文 模型
ESPCN 论文 模型
FSRCNN 论文 模型
LapSRN 论文 模型
        请注意,前三种算法的放大倍数是原始大小的2倍,3倍和4倍,而后一种算法的原始倍数是原始大小的2倍,4倍和8倍!可以使用上面提供的链接下载每个所需比率的TensorFlow模型。要将它们与OpenCV的DNN模块一起使用,需要opencv-contrib。可以使用以下方法安装最新版本的pip:

pip install opencv-contrib-python

注意:如果您已经安装了OpenCV,则最好创建一个虚拟环境并在其中安装opencv-contrib,以避免任何依赖性问题。默认情况下,这将安装最新版本的OpenCV以及opencv-contrib模块。如果您以前在运行此命令之前已安装过OpenCV,则也可以选择卸载它。

EDSR

        Lim等。在他们的论文中提出了两种方法,EDSR和MDSR。EDSR方法中的不同规模需要不同的模型。相比之下,单个模型可以在MDSR模型中重建各种规模。但是,在本文中,我们将仅讨论EDSR。

        使用ResNet样式的体系结构时不使用“批处理规范化”层。他们发现这些图层摆脱了要素网络的范围灵活性,从而提高了性能。这使他们可以构建具有更好性能的更大模型。为了应对大型模型中的不稳定性,他们通过在最后的卷积层之后放置恒定的缩放层,在每个残余块中使用因子为0.1的残余缩放。同样,在残留块之后不使用ReLu激活层。

        最初使用该体系结构的比例因子为2。然后,当针对比例因子3和4进行训练时,将使用这些预训练的权重。这不仅可以加快训练速度,而且可以提高模型的性能。下图是EDSR方法,双三次插值方法和原始高分辨率图像的4倍超分辨率结果的比较。
使用双三次插值法,ESPCN和相应的高分辨率图像进行超分辨率的比较。 使用双三次插值法,ESPCN和相应的高分辨率图像进行超分辨率的比较。
在这里插入图片描述

ESPCN

        Shi等人,而不是使用双三次滤波器在将低分辨率放大后执行超分辨率。以低分辨率本身提取特征图,并使用复杂的放大滤镜获得结果。升级层仅部署在网络的末端。这样可以确保模型中发生的复杂操作在较小的维度上发生,这使其速度更快,尤其是与其他技术相比。

        ESPCN的基本结构受SRCNN的启发。代替使用常规的卷积层,利用了子像素卷积层,其作用类似于去卷积层。在最后一层中使用子像素卷积层以生成高分辨率图。与此同时,他们发现Tanh激活功能比标准ReLu功能要好得多。

下图是ESPCN方法,双三次插值法和原始高分辨率图像的3倍超分辨率结果的比较。
在这里插入图片描述

使用双三次插值法,ESPCN和相应的高分辨率图像进行超分辨率的比较。 使用双三次插值法,ESPCN和相应的高分辨率图像进行超分辨率的比较。

FSRCNN

        FSRCNN和ESPCN具有非常相似的概念。两者的基本结构均受SRCNN的启发,并在最后采用了放大层以提高速度,而不是尽早进行插值。此外,它们甚至在最终使用更多映射层之前缩小输入要素的尺寸并使用较小的过滤器尺寸,从而导致模型变得更小,更快。

        该体系结构从卷积层开始,其滤波器大小从SRCNN的9减少到5。应用缩小层是因为输入分辨率本身可能很大并且需要很多时间。使用的过滤器大小为1×1,这不会增加计算成本。

        接下来,作者将重点放在减少非线性映射上,该非线性映射在不降低准确性的前提下减慢了模型的速度。因此,他们使用多个3×3滤镜。下一个扩展部分与收缩部分相反,最后才应用反卷积层进行上采样。对于激活功能,使用了PReLu。

        下图是FSRCNN方法,双三次插值方法和原始高分辨率图像的3倍超分辨率结果的比较。
在这里插入图片描述

双三次插值,FSRCNN和相应的高分辨率图像的超分辨率比较。 双三次插值,FSRCNN和相应的高分辨率图像的超分辨率比较。 图片 来源

LapSRN

        LapSRN提供了在开始和结束时进行提升的对比策略之间的中间立场。建议将其逐渐放大到最后。它的名称基于拉普拉斯金字塔,其结构基本上就像金字塔,将低分辨率图像放大到最后。为了提高速度,很大程度上依赖于参数共享。就像EDSR模型一样,他们还提出了一个可以重构不同尺度的单一模型,称为MS-LapSRN。但是,在本文中,我们将仅讨论LapSRN。

        这些模型包括两个分支:特征提取和图像重建分支。参数共享发生在不同比例之间,即4x使用2x模型中的参数,依此类推。这意味着一个金字塔用于缩放2倍,两个金字塔用于缩放4倍,而三个用于缩放8倍!制作如此深的模型意味着它们可能会遇到梯度消失的问题。因此,他们尝试使用不同类型的本地跳过连接,例如,不同源的跳过连接和共享源的连接。Charbonnier损失用于模型的损失函数,而未使用批次归一化层。

        下图是LapSRN方法,双三次插值方法和原始高分辨率图像的8倍超分辨率结果的比较。
在这里插入图片描述

双三次插值,LapSRN和相应的高分辨率图像的超分辨率比较。 双三次插值,LapSRN和相应的高分辨率图像的超分辨率比较。 图片 来源

代码

        第一步是创建DNN超分辨率类的对象。接下来是读取和设置模型,最后将图像放大。

        我们在下面提供了Python和C ++代码。您可以将model_path变量的值替换为要使用的模型的路径。我们已经在博客的开头提供了所有模型的链接。下面还提供了它们以供参考。

EDSR [型号]
ESPCN [模型]
FSRCNN [模型]
LapSRN [型号]

C ++

#include <opencv2/dnn_superres.hpp>DnnSuperResImpl sr;
string model_path = "ESPCN_x4.pb";
sr.readModel(model_path);
sr.setModel("espcn", 4); // set the model by passing the value and the upsampling ratio
Mat result; // creating blank mat for result
sr.upsample(img, result); // upscale the input image

Python

import cv2sr = cv2.dnn_superres.DnnSuperResImpl_create()
path = "ESPCN_x4.pb" 
sr.readModel(path) 
sr.setModel("espcn", 4) # set the model by passing the value and the upsampling ratio
result = sr.upsample(img) # upscale the input image

注意:确保以小写形式正确传递模型名称,并采用正确的上采样率作为所采用的模型sr.setModel()。

结果

在这里插入图片描述

        原始图像。卡尔文·马诺(Calvin Mano)在Unsplash上 拍摄的照片

        为了在此处显示结果,仅裁剪了上图中的蝴蝶区域。使用超分辨率模型将其放大了四倍,并在下表中列出。
在这里插入图片描述

结果 使用4种不同模型从原始图像按比例放大蝴蝶区域的结果

        仅通过放大图像来用肉眼在结果之间进行区分并不容易。因此,为了验证模型的所有性能,将这些技术应用于三张尺寸为500×333的图像,并在将其上采样回500×333之前将其缩小为所需的尺寸。然后使用PSNR和SSIM将放大后的图像与原始图像进行比较。计算所有图像的平均结果,并在下面给出。

姓名2倍3倍4倍8倍
双三次27.866725.965324.763721.5657
EDSR28.550326.48425.3513
静电防护网28.380325.961325.0947
FSRCNN28.167326.12825.0683
LapSRN28.09825.05321.587

平均PSNR值(dB)

姓名2倍3倍4倍8倍
双三次0.8590.7940.7280.552
EDSR0.8850.8250.762
静电防护网0.8770.7990.736
FSRCNN0.8760.7980.735
LapSRN0.8740.7350.554

平均SSIM值

        此外,还将记录在Intel i5-7200U上花费的时间,下面给出所有图像的平均值。请记住,传递给3倍的图像大小小于2倍,并且对于更大的缩放因子也是如此。

姓名2倍3倍4倍8倍
双三次0.000990.000990.000980.00098
EDSR32.50116.71810.224
ESPCN0.0490.0320.018
FSRCNN0.0740.0350.054
LapSRN0.5010.7420.765

平均时间(以秒为单位)

        如需更详细的指标,这些方法,请参阅此文章上的OpenCV的文档。

结论

        在此博客中,我们简要介绍了超分辨率的概念。我们选择了四个超分辨率模型,讨论了它们的架构和结果,特别说明了图像超分辨率显示的不同方法以及实现效率的差异。

        总结我们的观察结果,EDSR很容易就给出了四种方法中的最佳结果。但是它效率很低,不能用于实时应用程序。如果需要实时性能并且具有几乎相同的性能,则ESPCN和FSRCNN是首选方法。但是对于所选用的测试图像,ESPCN比FSRCNN要略微领先。对于8x的放大因子,即使可以使用2x和4x模型的组合,LapSRN的8x放大模型在大多数情况下也表现更好。尽管这些方法都无法与传统的双三次方法速度相提并论,但它们肯定能能得到更好的结果。


http://chatgpt.dhexx.cn/article/GLmKxJiF.shtml

相关文章

超分辨率IMDN

Lightweight Image Super-Resolution with Information Multi-distillation Network IMDB模块&#xff0c; class IMDModule(nn.Module):def __init__(self, in_channels, distillation_rate0.25):super(IMDModule, self).__init__()self.distilled_channels int(in_channels …

学习盲图像超分辨率的退化分布

学习盲图像超分辨率的退化分布 文章目录 学习盲图像超分辨率的退化分布摘要前言2、相关工作基于预定义的退化基于学习的退化 3、学习退化过程的分布3.1 核模型3.2 噪声模型3.3 概率退化模型3.4 盲SR统一的框架 4、实验4、1 实验设置4.2 与其他方法比较4.2 与其他方法比较 论文 …

超分辨率重建基础知识总结

超分辨率重建基础知识总结 1、为什么使用超分辨率重建&#xff1f;2、经典图像插值算法有哪些&#xff0c;局限在哪里&#xff1f;3、进行超分辨率重建的方式有哪些?4、超分辨率重建技术与图像复原技术区别与联系&#xff1f;5、SR常用的评价指标基于重建的方法基于学习的图像…

ELAN超分辨率

ELAN&#xff1a;将超分网络SwinIR高效化&#xff0c; https://github.com/xindongzhang/ELAN pip install pytorch-msssim -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple pip install tqdm -i https://pypi…

超分辨率论文阅读

残差卷积注意力超分 VDSR、ESPCN 等方法表明:网络深度的加深对超 分辨率图像重建质量有至关重要的影响。但训练深度 卷积神经网络难以收敛,在训练过程会出现梯度消失和 梯度爆炸等问题。同时,未完全考虑到图像全局上下文 的信息对提取区域的影响,没有重点关注到图像边缘和…

图像超分辨率重构实战

低分辨率图像重建 任务总览数据加载与配置模型设置生成、判别、特征提取模块调用损失函数与训练测试 今天我们来介绍利用对抗生成网络&#xff08;GAN&#xff09;对低分辨率图像进行重构的介绍。再开始今天的任务之前&#xff0c;给大家强调一下&#xff0c;我们需要使用1.x.x…

图像超分辨率重建

文章目录 一、前言二、网络详解2.1 FSRCNN2.2 ESPCN2.3 VDSR2.4 EDSR2.5 SR-GAN 一、前言 写这篇文章&#xff0c;主要看了NTIRE 图像复原(Image Restoration)。挑战赛上超分辨率赛道上一些优胜队伍的方法。在这里跟大家分享下&#xff0c;如有错误的地方&#xff0c;还请指正…

图像超分辨率重建概述

1. 概念&#xff1a; 图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数&#xff0c;包括时间分辨率、空间分辨率及色阶分辨率等&#xff0c;体现了成像系统实际所能反映物体细节信息的能力。相较于低分辨率图像&#xff0c;高分辨率图像通常包含更大的像素密度、…

深度学习用于图像超分辨率重建综述——超分辨率(一)

文章目录 Deep Learning for Image Super-resolution: A Survey超分辨简介最新进展1. 超分网络的升采样结构2. 可学习的升采样方法3. 全局和局部网络结构设计4. 损失函数设计5. 批归一化6. 课程学习7. 多级监督8. 其他网络设计和学习策略9. 无监督图像超分辨率10. 超分在专有领…

单图像超分辨率重建总结

单图像超分辨率重建总结 定义 单图像超分辨率重建&#xff08;Single Image Super-resolution Reconstruction&#xff0c;SISR&#xff09;旨在从给定的低分辨率&#xff08;LR&#xff09;图像中&#xff0c;重建含有清晰细节特征的高分辨率&#xff08;HR&#xff09;图像…

基于深度学习的图像超分辨率重建技术的研究

1 超分辨率重建技术的研究背景与意义 图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数&#xff0c;包括时间分辨率、空间分辨率及色阶分辨率等&#xff0c;体现了成像系统实际所能反映物体细节信息的能力。相较于低分辨率图像&#xff0c;高分辨率图像通常包含…

图像超分辨率评价指标

参考文章&#xff1a;https://zhuanlan.zhihu.com/p/50757421 https://blog.csdn.net/weixin_36815313/article/details/108531674 实现方式有两种 skimage.measure.compare_ssim sk_psnr skimage.measure.compare_psnr(im1, im2, 255) print(sk_psnr ) 手动实现 def calc…

超分辨率——综述文章

参考地址&#xff1a;https://www.jiqizhixin.com/articles/2019-03-15-7 超分辨率研究的意义 超分辨率研究的问题是 将低分辨率的图像重建为高分辨率的图像。这种操作主要有这么几种应用场景&#xff1a; 图像压缩方面&#xff0c;在传输过程中可以只传输低分辨率的图片&am…

超分辨率基础

超分辨率综述 Image Super-resolution 的深度学习方法 微信二维码引擎OpenCV开源 微信扫码背后的图像超分辨率技术 技术解析 | 即构移动端超分辨率技术 DIV2K数据集下载 B100/Manga109/Set5/Set14/Urban100 提取码&#xff1a;q4ev 超分难点延伸出的技术方向上采样倍数是整数无…

超分辨率学习

超分辨率学习 传统图像超分辨率重建方法基于插值基于重建基于学习&#xff08;机器学习&#xff09;基于深度学习 获取低分图像的方法简单下采样加入模糊和噪声的下采样 超分图像的评价指标客观峰值信噪比PSNR&#xff08;DB&#xff09;结构相似度SSIM 主观&#xff1a;意见平…

超分辨率综述

概念&#xff1a; 图像超分辨率(image super resolution, SR)是计算机视觉和图像处理中一类重要的图像处理技术&#xff0c;是指从低分辨率(low resolution, LR)图像中恢复高分辨率(high resolution, HR)图像的过程。它有广泛的现实世界的应用&#xff0c;如医学成像&#xff0…

揭秘超分辨率的正确打开方式

写在前边&#xff1a;图像和视频通常包含着大量的视觉信息&#xff0c;且视觉信息本身具有直观高效的描述能力&#xff0c;所以随着信息技术的高速发展&#xff0c;图像和视频的应用逐渐遍布人类社会的各个领域。近些年来&#xff0c;在计算机图像处理&#xff0c;计算机视觉和…

【超分辨率】3分钟带你读懂

内容概述&#xff1a;超分辨率技术是指从观测到的低分辨率图像重建出相应的高分辨率图像&#xff0c;随着深度学习技术的发展&#xff0c;超分辨率技术在电影、医疗影像、游戏等领域的应用&#xff0c;也愈发广泛。在本文中&#xff0c;帝视科技将深入探讨超分辨率的背景及原理…

基于深度学习的图像超分辨率——综述

2021-Deep Learning for Image Super-resolution:A Survey 基本信息 作者&#xff1a; Zhihao Wang, Jian Chen, Steven C.H. Hoi, Fellow, IEEE 期刊&#xff1a; IEEE Trans Pattern Anal Mach Intell(16.389) 引用&#xff1a; 156(热点论文) 摘要&#xff1a; 本文旨在对…

区块链学习笔记

廖雪峰的官方网站-区块链教程 https://www.liaoxuefeng.com/wiki/1207298049439968 思维导图整理