s超分辨率(super-resolution)的通俗解释就是:将低分辨率的图像通过算法转换成高分辨率图像。
通常的超分辨率分两种:SISR和VSR。前者叫做单图像超分辨率,后者叫做视频超分辨率。我们通常理解的超分辨率都是指SISR,我们只需要输入一张低分辨率图像而获得高分辨率图像的输出。 而VSR会利用视频的时间关联性来获得对某一帧的SR。https://muzhan.blog.csdn.net/article/details/85048846

本文讲的是利用OpenCV实现前者,实现步骤和代码基于’小白学视觉’ https://cloud.tencent.com/developer/article/1635759

操作步骤

1、首先安装OpenCV contrib模块

OpenCV中的超分辨率功能被集成在了contrib模块中,因此我们首先需要安装OpenCV的扩展模块。原文提供的安装参考过于复杂,见opencv-contrib模块的安装

实际上只需要用pip安装opencv-contrib-python这个模块就可以,我这里用的是opencv-contrib-python ==4.4.0.44版本的,亲测没有问题。**注意:**如果你已经安装了opencv-python,你需要先卸载掉opencv-python。原因:opencv有4个不同的程序包(https://pypi.org/project/opencv-contrib-python/),我们最好只选择其中一个,不要在同一环境中安装多个不同的软件包,因为没有插件架构:所有软件包都使用相同的名称空间(cv2)。
所以我们选择安装OpenCV contrib模块,它包含了opencv的主要模块和扩展模块。卸载完之前安装的opencv包,然后用pip安装,pip install opencv-contrib-python。

2、下载训练的模型

opencv代码库目前仅支持4种不同的超分辨率模型,他们可以实现2倍、3倍、4倍甚至8倍的图像方法。这些模型具体如下

EDSR:这个是表现最好的模型。但是这个模型也是最大的,所以运行速度会比较慢。

ESPCN:这个模型具有速度快,效果好的特点,并且模型较小。它可以进行对视频进行实时处理(取决于图像大小)。

FSRCNN:这也是具有快速准确推断功能的小型模型。也可以进行实时视频升频。

LapSRN:这是一个中等大小的模型,它的特点是最大可以将图像放大8倍。
模型下载地址:https://github.com/opencv/opencv_contrib/tree/master/modules/dnn_superres

3、代码实现

import cv2
from cv2 import dnn_superres

Create an SR object

sr = dnn_superres.DnnSuperResImpl_create()

Read image

image = cv2.imread(‘D:/res/test.png’)

Read the desired model

path = ‘D:/res/EDSR_x4.pb’
sr.readModel(path)

Set the desired model and scale to get correct pre- and post-processing

sr.setModel(‘edsr’, 4)

Upscale the image

result = sr.upsample(image)

Save the image

cv2.imwrite(‘D:/res/upscaled.png’, result)

再次提醒,确认只安装了opencv-contrib包,没有安装其他opencv包,不然你导入dnn_superres时会出错。

4、结果

结果就不展示了,网上随便找了个图试了下,效果和我想像的有差距,不是我要的那种效果。做了个总结,把试过的坑和实现过程写了下,大家可以自己去试试,也许是你们需要的呢。如果有自己的研究目的和数据的,可以去查看源码,构建自己的模型,EDSR、WDSR、UDSR分别为17、18、19的 NTIRE超分辨率冠军。
EDSR:
github(pytorch): https://github.com/thstkdgus35/EDSR-PyTorch
WDSR:
github(pytorch):https://github.com/JiahuiYu/wdsr_ntire2018

python opencv 实现基于深度学习的超分辨率处理相关推荐

  1. 利用OpenCV实现基于深度学习的超分辨率处理

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 OpenCV是一个非常强大的计算机视觉处理的工具库.很多小伙伴在入 ...

  2. 黄浴:基于深度学习的超分辨率图像技术发展轨迹一览

    作者 | 黄浴 转载自知乎 导读:近年来,使用深度学习技术的图像超分辨率(SR)取得了显著进步.本文中,奇点汽车自动驾驶首席科学家黄浴对基于深度学习技术的图像超分辨率技术进行了一次全面的总结,分析了这 ...

  3. 基于深度学习的超分辨率综述

    1.单图像超分辨率重建 SISR方法框架由两部分组成,非线性映射学习和上采样模块. 非线性映射学习模块负责完成LR到HR的映射,这过程中利用损失函数引导和监督学习的进程:上采样模块实现重建图像的放大, ...

  4. 开源代码基于深度学习的超分辨率如何让大脑显微镜成像去除毛刺

    背景 通过显微成像拍摄大脑非常薄的层的照片并以三维形式对其进行重构,可以确定结构在哪里以及它们之间的关系.但这会带来巨大挑战.获取高分辨率图像并快速捕获以覆盖大脑的合理区域是一项主要任务. 一部分问题 ...

  5. 普通视频转高清:10个基于深度学习的超分辨率神经网络

    原文:http://www.tinymind.cn/articles/1176 在 AlphaGo 对弈李世石.柯洁之后,更多行业开始尝试通过机器学习优化现有技术方案.其实对于实时音视频来讲,对机器学 ...

  6. 基于深度学习的超级分辨率,无需使用GAN

    本文介绍了技术和培训深度学习模型的图像改进,图像恢复,修复和超分辨率.这利用了Fastai课程中教授的许多技术,并利用Fastai软件库.这种训练模型的方法是基于非常有才华的AI研究人员的方法和研究, ...

  7. 在OpenCV中基于深度学习的边缘检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 导读 分析了Canny的优劣,并给出 ...

  8. opencv threshold_基于深度学习OpenCV与python进行字符识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 当我们在处理图像数据集时,总是会想有没有什么办法以简单的文本格式检 ...

  9. 深度学习图像超分辨率最新综述:从模型到应用

    点击我爱计算机视觉标星,更快获取CVML新技术 今日arXiv新上论文<Deep Learning for Image Super-resolution:A Survey>,详细回顾了近年 ...

最新文章

  1. inline-block代替浮动布局float:left列表布局最佳方案
  2. Java网络爬虫实操(8)
  3. c语言判断这天是星期几,【求指导!!】输入年,月,日,然后判断这天是星期几!!!!!...
  4. flutter 监听返回
  5. 源码分析Dubbo Invoker概述----服务发现、集群、负载均衡、路由体系
  6. asp.net执行js出现“已终止操作”的解决方法
  7. EVE上传Dynamips、IOL和QEMU镜像
  8. win7系统蓝屏修复工具如何使用
  9. 电商产品经理的那些图 订单、确认支付、发货、退货、退款、换货...
  10. 科学与星球大战:当科幻遇到现实
  11. CTF-WEB小技俩 ——合天网安实验室学习笔记
  12. 企查查某 2022/7/13 随机请求头JS逆向:★★
  13. 《关键对话》读书笔记
  14. 读书有益——》生僻字、可能念错的字
  15. 手把手教你使用R语言做出SCI论文中的表二(单因素分析表)(1)
  16. 实验四 SQL语言的数据更新和视图
  17. 设置img标签的默认图片
  18. faker和劫的图片_faker劫反杀ryu第一视角完整视频和gif,慢动作回放两个劫之间的较量分析...
  19. A - Heavy Transportation POJ - 1797
  20. 信息安全管理体系认证

热门文章

  1. 使用WebAudio实现音频音波可视化
  2. Talking to Internet
  3. Unity-获得正在播放的动画
  4. 敏感词检测:整合阿里云与腾讯云相关API
  5. python输入五个数并求平均值奇数和、偶数和_输入八个数,求偶数和奇数的个数,并求偶数的平均值,奇数的平均值(c语言编程)...
  6. java 处理pdb文件格式_PDB(Protein Data Bank)数据格式详解
  7. 计算机打字没打完,电脑打字打不出来,详细教您电脑打字打不出来怎么解决
  8. 通俗易懂的布谷鸟算法与莱维飞行,(附求解函数最小值matlab源码)
  9. 核电厂混床树脂HPM123
  10. Android BlueTooth蓝牙使用