openmmlab使用系列(二):图像超分辨率重构

文章目录

  • 前言
  • 一、图像超分辨率重构简介
  • 二、mmmagic实现图像超分


前言

超分辨率重构技术,作为计算机视觉领域的一项重要研究课题,近年来受到了广泛关注。随着科技的飞速发展,人们对图像质量的要求越来越高,尤其是在智能手机、监控、医疗影像等领域。然而,受限于硬件设备的限制,我们往往无法直接获取高分辨率的图像。此时,超分辨率重构技术应运而生,它能够在保证图像质量的前提下,将低分辨率图像转换为高分辨率图像,为我们带来更为清晰、细腻的视觉体验。在这篇博客中,我们将使用mmmagic,探讨超分辨率重构技术,为大家揭示其背后的原理、方法及最新研究进展。


一、图像超分辨率重构简介

图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数,包括时间分辨率、空间分辨率及色阶分辨率等,体现了成像系统实际所能反映物体细节信息的能力。相较于低分辨率图像,高分辨率图像通常包含更大的像素密度、更丰富的纹理细节及更高的可信赖度。但在实际上情况中,受采集设备与环境、网络传输介质与带宽、图像退化模型本身等诸多因素的约束,我们通常并不能直接得到具有边缘锐化、无成块模糊的理想高分辨率图像。提升图像分辨率的最直接的做法是对采集系统中的光学硬件进行改进,但是由于制造工艺难以大幅改进并且制造成本十分高昂,因此物理上解决图像低分辨率问题往往代价太大。由此,从软件和算法的角度着手,实现图像超分辨率重建的技术成为了图像处理和计算机视觉等多个领域的热点研究课题。
图像的超分辨率重建技术指的是将给定的低分辨率图像通过特定的算法恢复成相应的高分辨率图像。具体来说,图像超分辨率重建技术指的是利用数字图像处理、计算机视觉等领域的相关知识,借由特定的算法和处理流程,从给定的低分辨率图像中重建出高分辨率图像的过程。其旨在克服或补偿由于图像采集系统或采集环境本身的限制,导致的成像图像模糊、质量低下、感兴趣区域不显著等问题。
简单来理解超分辨率重建就是将小尺寸图像变为大尺寸图像,使图像更加“清晰”。具体效果如下图所示:
在这里插入图片描述
可以看到,通过特定的超分辨率重建算法,使得原本模糊的图像变得清晰了。读者可能会疑惑,直接对低分辨率图像进行“拉伸”不就可以了吗?答案是可以的,但是效果并不好。传统的“拉伸”型算法主要采用近邻搜索等方式,即对低分辨率图像中的每个像素采用近邻查找或近邻插值的方式进行重建,这种手工设定的方式只考虑了局部并不能满足每个像素的特殊情况,难以恢复出低分辨率图像原本的细节信息。因此,一系列有效的超分辨率重建算法开始陆续被研究学者提出,重建能力不断加强,直至今日,依托深度学习技术,图像的超分辨率重建已经取得了非凡的成绩,在效果上愈发真实和清晰。

二、mmmagic实现图像超分

在mmmagic中提供了十种常用的深度学习图像超分的方法,如下图所示:
在这里插入图片描述
本次我们以其中最新的Real-ESRGAN举例,讲述如何实现图像超分任务,Real-ESRGAN是一种先进的图像超分辨率算法,它是基于ESRGAN(Enhanced Super-Resolution Generative Adversarial Networks)的改进版本。ESRGAN本身是在SRGAN(Super-Resolution Generative Adversarial Networks)的基础上进行改进的,而Real-ESRGAN进一步提升了算法的性能,尤其是在处理真实世界的低分辨率图像时。
Real-ESRGAN算法的核心特点在于其对于重建图像真实感的显著提升,它能够使生成的超分辨率图像看起来更加自然和逼真。此外,该算法在细节恢复方面表现卓越,即使在原始低分辨率图像中细节已经模糊或丢失,它也能有效地恢复图像的细节和纹理。Real-ESRGAN展现出了良好的鲁棒性,能够应对包括噪声、模糊和压缩伪影在内的多种图像退化问题。同时,它的通用性也很强,不仅能够处理自然图像,还能应用于动漫风格的图像超分辨率任务。
同时在技术层面上,Real-ESRGAN基于生成对抗网络(GAN)架构,包含一个生成器和一个判别器,分别负责生成高分辨率图像和区分图像真伪。算法内部采用了多个残差块来构建生成器,这些残差块有助于学习图像的内在结构,从而更好地恢复细节。除了传统的像素级损失,如均方误差(MSE),Real-ESRGAN还引入了感知损失,这是一种基于卷积神经网络的特征级损失,旨在生成更符合人类视觉感知的高分辨率图像。通过对抗性训练,生成器能够生成足以欺骗判别器的高分辨率图像,从而提升图像的真实感。此外,Real-ESRGAN还引入了通道注意力机制,这使得网络能够更加聚焦于重要的特征通道,进而提高重建图像的整体质量。

在mmmagic中使用Real-ESRGAN方法如下所示:
首先下载模型:将下载好的模型放到根目录下,并通过如下代码进行推理。

测试代码:

from mmagic.apis import MMagicInferencer
config = 'configs/real_esrgan/realesrnet_c64b23g32_4xb12-lr2e-4-1000k_df2k-ost.py'
checkpoint = 'realesrnet_c64b23g32_12x4_lr2e-4_1000k_df2k_ost_20210816-4ae3b5a4.pth'
img_path = 'tests/data/image/lq/baboon_x4.png'
editor = MMagicInferencer('real_esrgan', model_config=config, model_ckpt=checkpoint)
output = editor.infer(img=img_path,result_out_dir='output.png')

原图:
在这里插入图片描述
结果图:
在这里插入图片描述

模型训练也很简单,按照官方数据集df2k_ost的格式进行更改,并修改路径,数据集制作好之后直接执行下面的代码:

# cpu train
CUDA_VISIBLE_DEVICES=-1 python tools/train.py configs/real_esrgan/realesrgan_c64b23g32_4xb12-lr1e-4-400k_df2k-ost.py# single-gpu train
python tools/train.py configs/real_esrgan/realesrgan_c64b23g32_4xb12-lr1e-4-400k_df2k-ost.py# multi-gpu train
./tools/dist_train.sh configs/real_esrgan/realesrgan_c64b23g32_4xb12-lr1e-4-400k_df2k-ost.py 8

即可进行训练。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1557291.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot3实战:实现接口签名验证

有时候我们要把自己的服务暴露给第三方去调用,为了防止接口不被授权访问,我们一般采用接口签名的方式去保护接口。 接下来松哥和大家聊一聊这个话题。 一 场景分析 什么时候需要接口签名? 接口签名是一种重要的安全机制,用于确…

JAVA基础: synchronized 和 lock的区别、synchronized锁机制与升级

1 synchronized 和 lock的区别 synchronized是一个关键字, lock是一个接口,实际使用的是实现类 synchronized通过触发的是系统级别的锁机制, lock是API级别的锁机制 synchronized自动获得锁,自动释放锁。 lock需要通过方法获得锁…

[oeasy]python036_数据类型有什么用_type_类型_int_str_查看帮助

回忆上次内容 ord(c)和chr(i) 这是俩函数 这俩函数是一对 相反相成的⚖️ ord 通过 字符 找到对应的 序号chr 通过 序号 找到对应的 字符 为什么ord后面括弧里的参数 一定 要加引号不加不行 而chr后面括弧里的参数 又一定 不加引号加了不行呢?🤔 TypeErr…

强基计划与少儿编程有什么关系?

近年来,编程教育逐渐在基础教育中崭露头角,成为培养孩子逻辑思维、创新能力和解决问题能力的重要手段。而2020年推出的强基计划则是一项面向高考生的特殊招生计划,旨在为基础学科(如数学、物理、化学、生物、历史、哲学等&#xf…

MySQL 删除数据库

使用 mysqladmin 删除数据库 使用普通用户登陆MySQL服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库。 所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 MySQL mysqladmin 命令来删除数据库。 在删除数据库过程中&a…

双向数据库迁移工具:轻松实现 MySQL 与 SQLite 数据互导

项目概述与作用 该项目的核心是实现 MySQL 和 SQLite 两种数据库之间的数据迁移工具。它能够轻松地将 MySQL 数据库中的数据导出为 SQLite 数据库文件,反过来也可以将 SQLite 数据库中的数据上传到 MySQL 数据库中。这个双向迁移工具非常适用于: 数据库备…

51c自动驾驶~合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/11491137 #BEVWorld BEV潜在空间构建多模态世界模型,全面理解自动驾驶~一、引言 世界模型建模了有关环境的知识,其可以通过给定的条件对未来进行合理的想象。未来想象要求世界模型具有物理规律的理解…

利用 OpenAI 和 Python 预测股市行情

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 本文介绍了如何利用 OpenAI 和 Python 进行股市情绪预测。主要通过使用 EODHD 提供的股市和金融新闻 API 来提取新闻数据,并利用 LangChain 和 OpenAI 的大型语言模型进行情感分析。 一、综述 …

如何在电脑上启动两个微信实例

前言 有时候,我们需要在电脑端登陆两个微信,来处理不同的事情,之前快速双击微信图标即可打开多个微信,最近发现不是太好使,所以今天介绍一种使用window命令启动两个微信的方法。 步骤 1、找到微信的安装目录&#x…

js逆向--某招标公告公示搜索引擎DES解密

js逆向--某招标公告公示搜索引擎DES解密 一、寻找数据接口二、寻找解密入口三、编写代码一、寻找数据接口 打开网页,在搜索框中输入关键词python。 试图通过按F12或者右键打开开发者工具,发现均没有反应。这时需要点击浏览器右上角的三个点,然后点击更多工具–开发者工具,…

增强分析:新时代的数据洞察工具

随着数据科学和人工智能的迅猛发展,分析数据的方式也发生了显著的变化。增强分析(Augmented Analytics)是近年来涌现出的新概念,它将人工智能(AI)、机器学习(ML)和自然语言处理&…

华为OD机试 - 实力差距最小总和(Java 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(E卷D卷A卷B卷C卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加…

SpringBoot 集成 Redis

一:SpringBoot 集成 Redis ①Redis是一个 NoSQL(not only)数据库, 常作用缓存 Cache 使用。 ②Redis是一个中间件、是一个独立的服务器;常用的数据类型: string , hash ,set ,zset , list ③通过Redis客…

【2024年持续更新】国内ChatGPT-4中文镜像网站整理

目录 一、什么是ChatGPT镜像站? 二、GPT工具跟国内AI大模型整理 三、国内大模型与ChatGPT的区别 四、ChatGPT能做什么? 五、ChatGPT提示词教学 一、什么是ChatGPT镜像站? 镜像网站是指将原始网站的内容复制并放置在另一服务器上的网站。…

在 Hugging Face MTEB 排行榜上比较 ELSER 的检索相关性

作者:来自 Elastic Aris Papadopoulos 及 Serena Chou 本博客对 ELSER 在 Hugging Face MTEB 排行榜上的检索相关性进行了比较。 在 Hugging Face MTEB 排行榜上比较 ELSER 的检索相关性 ELSER(Elastic Learned Sparse EncodeR)是 Elastic …

Linux TFTP服务器搭建

话得多说 先水一波字 TFTP(Trivial File Transfer Protocol)是一种简单的文件传输协议。它用于在计算机网络中传输文件,特别适用于在网络设备(如开发板和Linux系统下)代码调试等操作。TFTP使用UDP(User Da…

多模态大语言模型(MLLM)-Blip2深度解读

前言 Blip2是一个多模态大语言模型,因其提出时间较早(2023年),且效果较好,很快成为一个标杆性工作。Blip2中提出的Q-former也成为衔接多模态和文本的重要桥梁。 Blip2发表时间是2023年,现在引用已经3288了…

计算机毕业设计 自习室座位预约系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【2024最新】基于springboot+vue的家具销售电商平台lw+ppt

作者:计算机搬砖家 开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:Java精选实战项…

Android OpenGLES2.0开发(四):矩阵变换和相机投影

事物的本质是事物本身所固有的、深藏于‌现象背后并决定或支配现象的方面‌。 还记得我们上一篇绘制的三角形吗,我们确实能够顺利用OpenGL ES绘制出图形了,这是一个好的开始,但这还远远不够。我们定义的坐标是正三角形,但是绘制出…